From 9528eb07f9e0b8918b644f2734918306bfd935cd Mon Sep 17 00:00:00 2001 From: dzil123 <5725958+dzil123@users.noreply.github.com> Date: Sat, 1 May 2021 03:59:00 -0700 Subject: [PATCH 001/200] Fix update_delta_time() assertion fail from zero Duration --- imgui/src/io.rs | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/imgui/src/io.rs b/imgui/src/io.rs index 8bc6238dd..575713698 100644 --- a/imgui/src/io.rs +++ b/imgui/src/io.rs @@ -354,13 +354,7 @@ impl Io { } pub fn update_delta_time(&mut self, delta: Duration) { - let delta_s = delta.as_secs() as f32 + delta.subsec_nanos() as f32 / 1_000_000_000.0; - if delta_s > 0.0 { - self.delta_time = delta_s; - } else { - self.delta_time = f32::MIN_POSITIVE; - } - self.delta_time = delta_s; + self.delta_time = delta.as_secs_f32().max(f32::MIN_POSITIVE); } } From b86e54ffe961f75e52c4e6b54b1ccf9816b571b0 Mon Sep 17 00:00:00 2001 From: Lukasz Wiklendt Date: Fri, 17 Sep 2021 15:45:32 +0930 Subject: [PATCH 002/200] Add Style accessor functions to Ui --- imgui/src/utils.rs | 202 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 201 insertions(+), 1 deletion(-) diff --git a/imgui/src/utils.rs b/imgui/src/utils.rs index aa4c99e22..e917528e4 100644 --- a/imgui/src/utils.rs +++ b/imgui/src/utils.rs @@ -3,8 +3,8 @@ use bitflags::bitflags; use crate::input::mouse::MouseButton; use crate::style::StyleColor; -use crate::sys; use crate::Ui; +use crate::{sys, Direction}; bitflags! { /// Item hover check option flags @@ -173,4 +173,204 @@ impl<'ui> Ui<'ui> { pub fn style_color(&self, style_color: StyleColor) -> [f32; 4] { self.ctx.style()[style_color] } + /// Returns the current [`Style::alpha`](crate::Style::alpha). + #[doc(alias = "GetStyle")] + pub fn style_alpha(&self) -> f32 { + self.ctx.style().alpha + } + /// Returns the current [`Style::disabled_alpha`](crate::Style::disabled_alpha). + #[doc(alias = "GetStyle")] + pub fn style_disabled_alpha(&self) -> f32 { + self.ctx.style().disabled_alpha + } + /// Returns the current [`Style::window_padding`](crate::Style::window_padding). + #[doc(alias = "GetStyle")] + pub fn style_window_padding(&self) -> [f32; 2] { + self.ctx.style().window_padding + } + /// Returns the current [`Style::window_rounding`](crate::Style::window_rounding). + #[doc(alias = "GetStyle")] + pub fn style_window_rounding(&self) -> f32 { + self.ctx.style().window_rounding + } + /// Returns the current [`Style::window_border_size`](crate::Style::window_border_size). + #[doc(alias = "GetStyle")] + pub fn style_window_border_size(&self) -> f32 { + self.ctx.style().window_border_size + } + /// Returns the current [`Style::window_min_size`](crate::Style::window_min_size). + #[doc(alias = "GetStyle")] + pub fn style_window_min_size(&self) -> [f32; 2] { + self.ctx.style().window_min_size + } + /// Returns the current [`Style::window_title_align`](crate::Style::window_title_align). + #[doc(alias = "GetStyle")] + pub fn style_window_title_align(&self) -> [f32; 2] { + self.ctx.style().window_title_align + } + /// Returns the current [`Style::window_menu_button_position`](crate::Style::window_menu_button_position). + #[doc(alias = "GetStyle")] + pub fn style_window_menu_button_position(&self) -> Direction { + self.ctx.style().window_menu_button_position + } + /// Returns the current [`Style::child_rounding`](crate::Style::child_rounding). + #[doc(alias = "GetStyle")] + pub fn style_child_rounding(&self) -> f32 { + self.ctx.style().child_rounding + } + /// Returns the current [`Style::child_border_size`](crate::Style::child_border_size). + #[doc(alias = "GetStyle")] + pub fn style_child_border_size(&self) -> f32 { + self.ctx.style().child_border_size + } + /// Returns the current [`Style::popup_rounding`](crate::Style::popup_rounding). + #[doc(alias = "GetStyle")] + pub fn style_popup_rounding(&self) -> f32 { + self.ctx.style().popup_rounding + } + /// Returns the current [`Style::popup_border_size`](crate::Style::popup_border_size). + #[doc(alias = "GetStyle")] + pub fn style_popup_border_size(&self) -> f32 { + self.ctx.style().popup_border_size + } + /// Returns the current [`Style::frame_padding`](crate::Style::frame_padding). + #[doc(alias = "GetStyle")] + pub fn style_frame_padding(&self) -> [f32; 2] { + self.ctx.style().frame_padding + } + /// Returns the current [`Style::frame_rounding`](crate::Style::frame_rounding). + #[doc(alias = "GetStyle")] + pub fn style_frame_rounding(&self) -> f32 { + self.ctx.style().frame_rounding + } + /// Returns the current [`Style::frame_border_size`](crate::Style::frame_border_size). + #[doc(alias = "GetStyle")] + pub fn style_frame_border_size(&self) -> f32 { + self.ctx.style().frame_border_size + } + /// Returns the current [`Style::item_spacing`](crate::Style::item_spacing). + #[doc(alias = "GetStyle")] + pub fn style_item_spacing(&self) -> [f32; 2] { + self.ctx.style().item_spacing + } + /// Returns the current [`Style::item_inner_spacing`](crate::Style::item_inner_spacing). + #[doc(alias = "GetStyle")] + pub fn style_item_inner_spacing(&self) -> [f32; 2] { + self.ctx.style().item_inner_spacing + } + /// Returns the current [`Style::cell_padding`](crate::Style::cell_padding). + #[doc(alias = "GetStyle")] + pub fn style_cell_padding(&self) -> [f32; 2] { + self.ctx.style().cell_padding + } + /// Returns the current [`Style::touch_extra_padding`](crate::Style::touch_extra_padding). + #[doc(alias = "GetStyle")] + pub fn style_touch_extra_padding(&self) -> [f32; 2] { + self.ctx.style().touch_extra_padding + } + /// Returns the current [`Style::indent_spacing`](crate::Style::indent_spacing). + #[doc(alias = "GetStyle")] + pub fn style_indent_spacing(&self) -> f32 { + self.ctx.style().indent_spacing + } + /// Returns the current [`Style::columns_min_spacing`](crate::Style::columns_min_spacing). + #[doc(alias = "GetStyle")] + pub fn style_columns_min_spacing(&self) -> f32 { + self.ctx.style().columns_min_spacing + } + /// Returns the current [`Style::scrollbar_size`](crate::Style::scrollbar_size). + #[doc(alias = "GetStyle")] + pub fn style_scrollbar_size(&self) -> f32 { + self.ctx.style().scrollbar_size + } + /// Returns the current [`Style::scrollbar_rounding`](crate::Style::scrollbar_rounding). + #[doc(alias = "GetStyle")] + pub fn style_scrollbar_rounding(&self) -> f32 { + self.ctx.style().scrollbar_rounding + } + /// Returns the current [`Style::grab_min_size`](crate::Style::grab_min_size). + #[doc(alias = "GetStyle")] + pub fn style_grab_min_size(&self) -> f32 { + self.ctx.style().grab_min_size + } + /// Returns the current [`Style::grab_rounding`](crate::Style::grab_rounding). + #[doc(alias = "GetStyle")] + pub fn style_grab_rounding(&self) -> f32 { + self.ctx.style().grab_rounding + } + /// Returns the current [`Style::log_slider_deadzone`](crate::Style::log_slider_deadzone). + #[doc(alias = "GetStyle")] + pub fn style_log_slider_deadzone(&self) -> f32 { + self.ctx.style().log_slider_deadzone + } + /// Returns the current [`Style::tab_rounding`](crate::Style::tab_rounding). + #[doc(alias = "GetStyle")] + pub fn style_tab_rounding(&self) -> f32 { + self.ctx.style().tab_rounding + } + /// Returns the current [`Style::tab_border_size`](crate::Style::tab_border_size). + #[doc(alias = "GetStyle")] + pub fn style_tab_border_size(&self) -> f32 { + self.ctx.style().tab_border_size + } + /// Returns the current [`Style::tab_min_width_for_close_button`](crate::Style::tab_min_width_for_close_button). + #[doc(alias = "GetStyle")] + pub fn style_tab_min_width_for_close_button(&self) -> f32 { + self.ctx.style().tab_min_width_for_close_button + } + /// Returns the current [`Style::color_button_position`](crate::Style::color_button_position). + #[doc(alias = "GetStyle")] + pub fn style_color_button_position(&self) -> Direction { + self.ctx.style().color_button_position + } + /// Returns the current [`Style::button_text_align`](crate::Style::button_text_align). + #[doc(alias = "GetStyle")] + pub fn style_button_text_align(&self) -> [f32; 2] { + self.ctx.style().button_text_align + } + /// Returns the current [`Style::selectable_text_align`](crate::Style::selectable_text_align). + #[doc(alias = "GetStyle")] + pub fn style_selectable_text_align(&self) -> [f32; 2] { + self.ctx.style().selectable_text_align + } + /// Returns the current [`Style::display_window_padding`](crate::Style::display_window_padding). + #[doc(alias = "GetStyle")] + pub fn style_display_window_padding(&self) -> [f32; 2] { + self.ctx.style().display_window_padding + } + /// Returns the current [`Style::display_safe_area_padding`](crate::Style::display_safe_area_padding). + #[doc(alias = "GetStyle")] + pub fn style_display_safe_area_padding(&self) -> [f32; 2] { + self.ctx.style().display_safe_area_padding + } + /// Returns the current [`Style::mouse_cursor_scale`](crate::Style::mouse_cursor_scale). + #[doc(alias = "GetStyle")] + pub fn style_mouse_cursor_scale(&self) -> f32 { + self.ctx.style().mouse_cursor_scale + } + /// Returns the current [`Style::anti_aliased_lines`](crate::Style::anti_aliased_lines). + #[doc(alias = "GetStyle")] + pub fn style_anti_aliased_lines(&self) -> bool { + self.ctx.style().anti_aliased_lines + } + /// Returns the current [`Style::anti_aliased_lines_use_tex`](crate::Style::anti_aliased_lines_use_tex). + #[doc(alias = "GetStyle")] + pub fn style_anti_aliased_lines_use_tex(&self) -> bool { + self.ctx.style().anti_aliased_lines_use_tex + } + /// Returns the current [`Style::anti_aliased_fill`](crate::Style::anti_aliased_fill). + #[doc(alias = "GetStyle")] + pub fn style_anti_aliased_fill(&self) -> bool { + self.ctx.style().anti_aliased_fill + } + /// Returns the current [`Style::curve_tessellation_tol`](crate::Style::curve_tessellation_tol). + #[doc(alias = "GetStyle")] + pub fn style_curve_tessellation_tol(&self) -> f32 { + self.ctx.style().curve_tessellation_tol + } + /// Returns the current [`Style::circle_tesselation_max_error`](crate::Style::circle_tesselation_max_error). + #[doc(alias = "GetStyle")] + pub fn style_circle_tesselation_max_error(&self) -> f32 { + self.ctx.style().circle_tesselation_max_error + } } From f05a2e0147a07781947035e44061f838588bf520 Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Fri, 17 Sep 2021 15:36:46 -0400 Subject: [PATCH 003/200] yeeted imgui-gfx renderer. Please see the new repository under this organization to see its grave --- imgui-gfx-examples/Cargo.toml | 33 - imgui-gfx-examples/README.md | 4 - .../examples/gfx_custom_textures.rs | 128 ---- .../examples/gfx_hello_world.rs | 29 - .../examples/gfx_test_window.rs | 6 - imgui-gfx-examples/examples/support/mod.rs | 286 --------- imgui-gfx-renderer/Cargo.toml | 25 - imgui-gfx-renderer/LICENSE-APACHE | 202 ------ imgui-gfx-renderer/LICENSE-MIT | 19 - imgui-gfx-renderer/build.rs | 124 ---- imgui-gfx-renderer/src/data/pixel.fx | Bin 652 -> 0 bytes imgui-gfx-renderer/src/data/vertex.fx | Bin 848 -> 0 bytes imgui-gfx-renderer/src/lib.rs | 592 ------------------ imgui-gfx-renderer/src/shader/glsl_110.frag | 13 - imgui-gfx-renderer/src/shader/glsl_110.vert | 19 - imgui-gfx-renderer/src/shader/glsl_130.frag | 12 - imgui-gfx-renderer/src/shader/glsl_130.vert | 19 - imgui-gfx-renderer/src/shader/glsl_150.frag | 12 - imgui-gfx-renderer/src/shader/glsl_150.vert | 19 - imgui-gfx-renderer/src/shader/glsl_400.frag | 12 - imgui-gfx-renderer/src/shader/glsl_400.vert | 19 - imgui-gfx-renderer/src/shader/glsles_100.frag | 13 - imgui-gfx-renderer/src/shader/glsles_100.vert | 19 - imgui-gfx-renderer/src/shader/glsles_300.frag | 12 - imgui-gfx-renderer/src/shader/glsles_300.vert | 19 - imgui-gfx-renderer/src/shader/sm_40.hlsl | 34 - 26 files changed, 1670 deletions(-) delete mode 100644 imgui-gfx-examples/Cargo.toml delete mode 100644 imgui-gfx-examples/README.md delete mode 100644 imgui-gfx-examples/examples/gfx_custom_textures.rs delete mode 100644 imgui-gfx-examples/examples/gfx_hello_world.rs delete mode 100644 imgui-gfx-examples/examples/gfx_test_window.rs delete mode 100644 imgui-gfx-examples/examples/support/mod.rs delete mode 100644 imgui-gfx-renderer/Cargo.toml delete mode 100644 imgui-gfx-renderer/LICENSE-APACHE delete mode 100644 imgui-gfx-renderer/LICENSE-MIT delete mode 100644 imgui-gfx-renderer/build.rs delete mode 100644 imgui-gfx-renderer/src/data/pixel.fx delete mode 100644 imgui-gfx-renderer/src/data/vertex.fx delete mode 100644 imgui-gfx-renderer/src/lib.rs delete mode 100644 imgui-gfx-renderer/src/shader/glsl_110.frag delete mode 100644 imgui-gfx-renderer/src/shader/glsl_110.vert delete mode 100644 imgui-gfx-renderer/src/shader/glsl_130.frag delete mode 100644 imgui-gfx-renderer/src/shader/glsl_130.vert delete mode 100644 imgui-gfx-renderer/src/shader/glsl_150.frag delete mode 100644 imgui-gfx-renderer/src/shader/glsl_150.vert delete mode 100644 imgui-gfx-renderer/src/shader/glsl_400.frag delete mode 100644 imgui-gfx-renderer/src/shader/glsl_400.vert delete mode 100644 imgui-gfx-renderer/src/shader/glsles_100.frag delete mode 100644 imgui-gfx-renderer/src/shader/glsles_100.vert delete mode 100644 imgui-gfx-renderer/src/shader/glsles_300.frag delete mode 100644 imgui-gfx-renderer/src/shader/glsles_300.vert delete mode 100644 imgui-gfx-renderer/src/shader/sm_40.hlsl diff --git a/imgui-gfx-examples/Cargo.toml b/imgui-gfx-examples/Cargo.toml deleted file mode 100644 index 97becf6c3..000000000 --- a/imgui-gfx-examples/Cargo.toml +++ /dev/null @@ -1,33 +0,0 @@ -[package] -name = "imgui-gfx-examples" -version = "0.0.0" -edition = "2018" -authors = ["The imgui-rs Developers"] -description = "imgui crate examples" -homepage = "https://github.com/imgui-rs/imgui-rs" -repository = "https://github.com/imgui-rs/imgui-rs" -license = "MIT/Apache-2.0" -publish = false - -[badges] -maintenance = { status = "deprecated" } - -[features] -opengl = ["imgui-gfx-renderer/opengl"] -# FIXME -# directx = ["imgui-gfx-renderer/directx"] -default = ["opengl"] - -[dev-dependencies] -gfx = "0.18" -gfx_device_gl = "0.16" -glutin = "0.27" -image = "0.23" -imgui = { path = "../imgui" } -imgui-gfx-renderer = { path = "../imgui-gfx-renderer" } -imgui-winit-support = { path = "../imgui-winit-support" } -old_school_gfx_glutin_ext = "0.27" - -[target.'cfg(windows)'.dev-dependencies] -gfx_device_dx11 = "0.8" -gfx_window_dxgi = "0.19" diff --git a/imgui-gfx-examples/README.md b/imgui-gfx-examples/README.md deleted file mode 100644 index 0e6f710d9..000000000 --- a/imgui-gfx-examples/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# `imgui-gfx-examples` - -- Run with OpenGL backend: `cargo run --example gfx_hello_world` -- Run with DirectX backend: `cargo run --example gfx_hello_world --features directx --no-default-features` diff --git a/imgui-gfx-examples/examples/gfx_custom_textures.rs b/imgui-gfx-examples/examples/gfx_custom_textures.rs deleted file mode 100644 index 4c92217a7..000000000 --- a/imgui-gfx-examples/examples/gfx_custom_textures.rs +++ /dev/null @@ -1,128 +0,0 @@ -use gfx::texture::{FilterMethod, SamplerInfo, WrapMode}; -use image::ImageFormat; -use imgui::*; -use std::error::Error; - -mod support; - -#[derive(Default)] -struct CustomTexturesApp { - my_texture_id: Option, - lenna: Option, -} - -struct Lenna { - texture_id: TextureId, - size: [f32; 2], -} - -impl CustomTexturesApp { - fn register_textures( - &mut self, - factory: &mut F, - textures: &mut Textures>, - ) -> Result<(), Box> - where - R: gfx::Resources, - F: gfx::Factory, - { - const WIDTH: usize = 128; - const HEIGHT: usize = 128; - - if self.my_texture_id.is_none() { - // Generate dummy texture - let mut data = Vec::with_capacity(WIDTH * HEIGHT * 4); - for i in 0..WIDTH { - for j in 0..HEIGHT { - // Insert RGBA values - data.push(i as u8); - data.push(j as u8); - data.push((i + j) as u8); - data.push(255); - } - } - - let (_, texture_view) = factory.create_texture_immutable_u8::( - gfx::texture::Kind::D2(WIDTH as u16, HEIGHT as u16, gfx::texture::AaMode::Single), - gfx::texture::Mipmap::Provided, - &[data.as_slice()], - )?; - let sampler = - factory.create_sampler(SamplerInfo::new(FilterMethod::Bilinear, WrapMode::Clamp)); - let texture_id = textures.insert((texture_view, sampler)); - - self.my_texture_id = Some(texture_id); - } - - if self.lenna.is_none() { - self.lenna = Some(Lenna::new(factory, textures)?); - } - - Ok(()) - } - - fn show_textures(&self, ui: &Ui) { - Window::new("Hello textures") - .size([400.0, 600.0], Condition::FirstUseEver) - .build(ui, || { - ui.text("Hello textures!"); - if let Some(my_texture_id) = self.my_texture_id { - ui.text("Some generated texture"); - Image::new(my_texture_id, [100.0, 100.0]).build(ui); - } - - if let Some(lenna) = &self.lenna { - ui.text("Say hello to Lenna.jpg"); - lenna.show(ui); - } - }); - } -} - -impl Lenna { - fn new( - factory: &mut F, - textures: &mut Textures>, - ) -> Result> - where - R: gfx::Resources, - F: gfx::Factory, - { - let lenna_bytes = include_bytes!("../../resources/Lenna.jpg"); - - let image = image::load_from_memory_with_format(lenna_bytes, ImageFormat::Jpeg)?; - // gfx doesn't support easily RGB8 without alpha, so we need to convert - let image = image.to_rgba8(); - let (width, height) = image.dimensions(); - let raw_data = image.into_raw(); - - let (_, texture_view) = factory.create_texture_immutable_u8::( - gfx::texture::Kind::D2(width as u16, height as u16, gfx::texture::AaMode::Single), - gfx::texture::Mipmap::Provided, - &[raw_data.as_slice()], - )?; - let sampler = - factory.create_sampler(SamplerInfo::new(FilterMethod::Bilinear, WrapMode::Clamp)); - let texture_id = textures.insert((texture_view, sampler)); - Ok(Lenna { - texture_id, - size: [width as f32, height as f32], - }) - } - - fn show(&self, ui: &Ui) { - Image::new(self.texture_id, self.size).build(ui); - } -} - -fn main() { - let mut my_app = CustomTexturesApp::default(); - let mut system = support::init(file!()); - my_app - .register_textures( - &mut system.render_sys.factory, - system.render_sys.renderer.textures(), - ) - .expect("Failed to register textures"); - system.main_loop(|_, ui| my_app.show_textures(ui)); -} diff --git a/imgui-gfx-examples/examples/gfx_hello_world.rs b/imgui-gfx-examples/examples/gfx_hello_world.rs deleted file mode 100644 index 6c96b7623..000000000 --- a/imgui-gfx-examples/examples/gfx_hello_world.rs +++ /dev/null @@ -1,29 +0,0 @@ -use imgui::*; - -mod support; - -fn main() { - let system = support::init(file!()); - - let window_title = if cfg!(all(feature = "directx", windows)) { - "Hello world (OpenGL)" - } else { - "Hello world (DirectX)" - }; - - system.main_loop(|_, ui| { - Window::new(window_title) - .size([300.0, 100.0], Condition::FirstUseEver) - .build(ui, || { - ui.text("Hello world!"); - ui.text("こんにちは世界!"); - ui.text("This...is...imgui-rs!"); - ui.separator(); - let mouse_pos = ui.io().mouse_pos; - ui.text(format!( - "Mouse Position: ({:.1},{:.1})", - mouse_pos[0], mouse_pos[1] - )); - }); - }); -} diff --git a/imgui-gfx-examples/examples/gfx_test_window.rs b/imgui-gfx-examples/examples/gfx_test_window.rs deleted file mode 100644 index 72d1bab4c..000000000 --- a/imgui-gfx-examples/examples/gfx_test_window.rs +++ /dev/null @@ -1,6 +0,0 @@ -mod support; - -fn main() { - let system = support::init(file!()); - system.main_loop(|run, ui| ui.show_demo_window(run)); -} diff --git a/imgui-gfx-examples/examples/support/mod.rs b/imgui-gfx-examples/examples/support/mod.rs deleted file mode 100644 index 1b9cc7574..000000000 --- a/imgui-gfx-examples/examples/support/mod.rs +++ /dev/null @@ -1,286 +0,0 @@ -use gfx::Device; -use glutin::{ - dpi::LogicalSize, - event::{Event, WindowEvent}, - event_loop::{ControlFlow, EventLoop}, - // XXX for easier porting... - platform::run_return::EventLoopExtRunReturn, - window::WindowBuilder, -}; -use imgui::{Context, FontConfig, FontGlyphRanges, FontSource, Ui}; -use imgui_gfx_renderer::{Renderer, Shaders}; -use imgui_winit_support::{HiDpiMode, WinitPlatform}; -use old_school_gfx_glutin_ext::*; -use std::time::Instant; - -type ColorFormat = gfx::format::Rgba8; -type DepthFormat = gfx::format::DepthStencil; -// hack -type EventsLoop = EventLoop<()>; - -pub struct System { - pub events_loop: EventsLoop, - pub imgui: Context, - pub platform: WinitPlatform, - pub render_sys: RenderSystem, - pub font_size: f32, -} - -pub fn init(title: &str) -> System { - let title = match title.rfind('/') { - Some(idx) => title.split_at(idx + 1).1, - None => title, - }; - let events_loop = EventsLoop::new(); - let builder = WindowBuilder::new() - .with_title(title.to_owned()) - .with_inner_size(LogicalSize::new(1024f64, 768f64)); - - let mut imgui = Context::create(); - imgui.set_ini_filename(None); - - let mut platform = WinitPlatform::init(&mut imgui); - - let hidpi_factor = platform.hidpi_factor(); - let font_size = (13.0 * hidpi_factor) as f32; - imgui.fonts().add_font(&[ - FontSource::DefaultFontData { - config: Some(FontConfig { - size_pixels: font_size, - ..FontConfig::default() - }), - }, - FontSource::TtfData { - data: include_bytes!("../../../resources/mplus-1p-regular.ttf"), - size_pixels: font_size, - config: Some(FontConfig { - rasterizer_multiply: 1.75, - glyph_ranges: FontGlyphRanges::japanese(), - ..FontConfig::default() - }), - }, - ]); - - imgui.io_mut().font_global_scale = (1.0 / hidpi_factor) as f32; - - let render_sys = RenderSystem::init(&mut imgui, builder, &events_loop); - platform.attach_window(imgui.io_mut(), render_sys.window(), HiDpiMode::Rounded); - System { - events_loop, - imgui, - platform, - render_sys, - font_size, - } -} - -impl System { - pub fn main_loop(self, mut run_ui: F) { - let System { - mut events_loop, - mut imgui, - mut platform, - mut render_sys, - .. - } = self; - let mut encoder: gfx::Encoder<_, _> = render_sys.factory.create_command_buffer().into(); - - let mut last_frame = Instant::now(); - let mut run = true; - - while run { - events_loop.run_return(|event, _, control_flow| { - platform.handle_event(imgui.io_mut(), render_sys.window(), &event); - if let Event::WindowEvent { event, .. } = event { - match event { - WindowEvent::Resized(_) => render_sys.update_views(), - WindowEvent::CloseRequested => { - run = false; - } - _ => (), - } - } - *control_flow = ControlFlow::Exit; - }); - if !run { - break; - } - - let io = imgui.io_mut(); - platform - .prepare_frame(io, render_sys.window()) - .expect("Failed to start frame"); - let now = Instant::now(); - io.update_delta_time(now - last_frame); - last_frame = now; - let mut ui = imgui.frame(); - run_ui(&mut run, &mut ui); - - if let Some(main_color) = render_sys.main_color.as_mut() { - encoder.clear(main_color, [1.0, 1.0, 1.0, 1.0]); - } - platform.prepare_render(&ui, render_sys.window()); - let draw_data = ui.render(); - if let Some(main_color) = render_sys.main_color.as_mut() { - render_sys - .renderer - .render(&mut render_sys.factory, &mut encoder, main_color, draw_data) - .expect("Rendering failed"); - } - encoder.flush(&mut render_sys.device); - render_sys.swap_buffers(); - render_sys.device.cleanup(); - } - } -} - -#[cfg(feature = "opengl")] -mod types { - pub type Device = gfx_device_gl::Device; - pub type Factory = gfx_device_gl::Factory; - pub type Resources = gfx_device_gl::Resources; -} - -#[cfg(feature = "opengl")] -pub struct RenderSystem { - pub renderer: Renderer, - pub windowed_context: glutin::WindowedContext, - pub device: types::Device, - pub factory: types::Factory, - pub main_color: Option>, - pub main_depth: gfx::handle::DepthStencilView, -} - -#[cfg(feature = "opengl")] -impl RenderSystem { - pub fn init( - imgui: &mut Context, - builder: WindowBuilder, - events_loop: &EventsLoop, - ) -> RenderSystem { - { - // Fix incorrect colors with sRGB framebuffer - fn imgui_gamma_to_linear(col: [f32; 4]) -> [f32; 4] { - let x = col[0].powf(2.2); - let y = col[1].powf(2.2); - let z = col[2].powf(2.2); - let w = 1.0 - (1.0 - col[3]).powf(2.2); - [x, y, z, w] - } - - let style = imgui.style_mut(); - for col in 0..style.colors.len() { - style.colors[col] = imgui_gamma_to_linear(style.colors[col]); - } - } - - let (windowed_context, device, mut factory, main_color, main_depth) = - glutin::ContextBuilder::new() - .with_vsync(true) - .with_gfx_color_depth::() - .build_windowed(builder, events_loop) - .expect("Failed to initialize graphics") - .init_gfx::(); - - let shaders = { - let version = device.get_info().shading_language; - if version.is_embedded { - if version.major >= 3 { - Shaders::GlSlEs300 - } else { - Shaders::GlSlEs100 - } - } else if version.major >= 4 { - Shaders::GlSl400 - } else if version.major >= 3 { - if version.minor >= 2 { - Shaders::GlSl150 - } else { - Shaders::GlSl130 - } - } else { - Shaders::GlSl110 - } - }; - let renderer = - Renderer::init(imgui, &mut factory, shaders).expect("Failed to initialize renderer"); - RenderSystem { - renderer, - windowed_context, - device, - factory, - main_color: Some(main_color), - main_depth, - } - } - pub fn window(&self) -> &glutin::window::Window { - self.windowed_context.window() - } - pub fn update_views(&mut self) { - if let Some(main_color) = self.main_color.as_mut() { - self.windowed_context - .update_gfx(main_color, &mut self.main_depth); - } - } - pub fn swap_buffers(&mut self) { - self.windowed_context.swap_buffers().unwrap(); - } -} - -#[cfg(all(feature = "directx", windows))] -mod types { - pub type Device = gfx_device_dx11::Device; - pub type Factory = gfx_device_dx11::Factory; - pub type Resources = gfx_device_dx11::Resources; -} - -#[cfg(all(feature = "directx", windows))] -pub struct RenderSystem { - pub renderer: Renderer, - pub window: gfx_window_dxgi::Window, - pub device: types::Device, - pub factory: types::Factory, - pub main_color: Option>, -} - -#[cfg(all(feature = "directx", windows))] -impl RenderSystem { - pub fn init( - imgui: &mut Context, - builder: WindowBuilder, - events_loop: &EventsLoop, - ) -> RenderSystem { - let (window, device, mut factory, main_color) = - gfx_window_dxgi::init(builder, &events_loop).expect("Failed to initialize graphics"); - let renderer = Renderer::init(imgui, &mut factory, Shaders::HlslSm40) - .expect("Failed to initialize renderer"); - RenderSystem { - renderer, - window, - device, - factory, - main_color: Some(main_color), - } - } - pub fn window(&self) -> &glutin::Window { - &self.window.inner - } - pub fn update_views(&mut self, size: LogicalSize) { - let physical = size.to_physical(self.window().get_hidpi_factor()); - let (width, height): (u32, u32) = physical.into(); - let _ = self.main_color.take(); // we need to drop main_color before calling update_views - self.main_color = Some( - gfx_window_dxgi::update_views( - &mut self.window, - &mut self.factory, - &mut self.device, - width as u16, - height as u16, - ) - .expect("Failed to update resize"), - ); - } - pub fn swap_buffers(&mut self) { - self.window.swap_buffers(1); - } -} diff --git a/imgui-gfx-renderer/Cargo.toml b/imgui-gfx-renderer/Cargo.toml deleted file mode 100644 index 4a486b639..000000000 --- a/imgui-gfx-renderer/Cargo.toml +++ /dev/null @@ -1,25 +0,0 @@ -[package] -name = "imgui-gfx-renderer" -version = "0.8.0" -edition = "2018" -authors = ["The imgui-rs Developers"] -description = "gfx renderer for the imgui crate" -homepage = "https://github.com/imgui-rs/imgui-rs" -repository = "https://github.com/imgui-rs/imgui-rs" -license = "MIT/Apache-2.0" -categories = ["gui", "rendering"] - -[features] -opengl = [] -directx = [] -default = ["opengl"] - -[badges] -maintenance = { status = "deprecated" } - -[dependencies] -gfx = "0.18" -imgui = { version = "0.8.0", path = "../imgui" } - -[target.'cfg(windows)'.build-dependencies] -winapi = { version = "0.3", features = ["d3dcompiler"] } diff --git a/imgui-gfx-renderer/LICENSE-APACHE b/imgui-gfx-renderer/LICENSE-APACHE deleted file mode 100644 index 8f71f43fe..000000000 --- a/imgui-gfx-renderer/LICENSE-APACHE +++ /dev/null @@ -1,202 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright {yyyy} {name of copyright owner} - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - diff --git a/imgui-gfx-renderer/LICENSE-MIT b/imgui-gfx-renderer/LICENSE-MIT deleted file mode 100644 index ea896c1f8..000000000 --- a/imgui-gfx-renderer/LICENSE-MIT +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2015-2020 The imgui-rs Developers - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/imgui-gfx-renderer/build.rs b/imgui-gfx-renderer/build.rs deleted file mode 100644 index bd5405170..000000000 --- a/imgui-gfx-renderer/build.rs +++ /dev/null @@ -1,124 +0,0 @@ -fn main() { - #[cfg(windows)] - { - // Note: When building on Windows, this build script will automatically recompile the HLSL shaders. - - use std::env; - use std::path::PathBuf; - - let src_dir = PathBuf::from(env::var("CARGO_MANIFEST_DIR").unwrap()).join("src"); - - hlsl_build::update_hlsl_shaders( - &src_dir.join("shader").join("sm_40.hlsl"), - &src_dir.join("data").join("vertex.fx"), - &src_dir.join("data").join("pixel.fx"), - ); - } -} - -#[cfg(windows)] -mod hlsl_build { - use std::ffi::CString; - use std::fs; - use std::path::Path; - use std::ptr; - use std::slice; - use std::str; - - pub fn update_hlsl_shaders( - source_path: &Path, - vertex_destination: &Path, - pixel_destination: &Path, - ) { - println!("cargo:rerun-if-changed={}", source_path.display()); - - let src_data = fs::read_to_string(&source_path).unwrap(); - - if vertex_destination.exists() { - fs::remove_file(vertex_destination).unwrap(); - } - fs::write( - vertex_destination, - compile_shader(&src_data, source_path, "VertexMain", "vs_4_0").unwrap_or_else( - |error_message| { - eprintln!("{}", error_message); - panic!("Vertex shader failed to compile"); - }, - ), - ) - .unwrap(); - - if pixel_destination.exists() { - fs::remove_file(pixel_destination).unwrap(); - } - fs::write( - pixel_destination, - compile_shader(&src_data, source_path, "PixelMain", "ps_4_0").unwrap_or_else( - |error_message| { - eprintln!("{}", error_message); - panic!("Pixel shader failed to compile"); - }, - ), - ) - .unwrap(); - } - - fn compile_shader( - src_data: &str, - source_path: &Path, - entry_point: &str, - target: &str, - ) -> Result, String> { - use winapi::shared::minwindef::LPCVOID; - use winapi::um::d3dcommon::ID3DBlob; - use winapi::um::d3dcompiler; - - unsafe { - let mut code: *mut ID3DBlob = ptr::null_mut(); - let mut error_msgs: *mut ID3DBlob = ptr::null_mut(); - - let c_entry_point = CString::new(entry_point).unwrap(); - let c_target = CString::new(target).unwrap(); - let c_source_path = CString::new(source_path.to_string_lossy().to_string()).unwrap(); - let hr = d3dcompiler::D3DCompile( - src_data.as_bytes().as_ptr() as LPCVOID, - src_data.as_bytes().len(), - c_source_path.as_ptr(), - ptr::null(), - ptr::null_mut(), - c_entry_point.as_ptr(), - c_target.as_ptr(), - 0, - 0, - &mut code, - &mut error_msgs, - ); - - if hr < 0 { - if !error_msgs.is_null() { - let error_msgs = error_msgs.as_ref().unwrap(); - - let error_msgs = str::from_utf8(slice::from_raw_parts( - error_msgs.GetBufferPointer() as *const u8, - error_msgs.GetBufferSize(), - )) - .expect("error messages from D3DCompile not valid UTF-8"); - - Err(error_msgs.to_string()) - } else { - Err(format!("hresult: {}", hr)) - } - } else { - let code = code - .as_ref() - .expect("null code blob returned from D3DCompile"); - - Ok(slice::from_raw_parts( - code.GetBufferPointer() as *const u8, - code.GetBufferSize(), - ) - .to_vec()) - } - } - } -} diff --git a/imgui-gfx-renderer/src/data/pixel.fx b/imgui-gfx-renderer/src/data/pixel.fx deleted file mode 100644 index 697cba0add874e0018f875a3bf6aff7e0fad6bff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 652 zcmaJ-y-LGS82vOAe-N8Ra1hBNR1j&4gCIz2e%eCqExD-_5o*;)3zd|bK@i;B96I;_ z-Ls1?;O5}ugY*UB`I=r(p&mHNx#xaAC$XBx=F|J=ZDo`hetzW-U$g5Eb42t!Pqcvd zKKKC^V1}R$-?eOK2u}ePZSo-%$AlUm@*LFI`vacMXoK9xJ5pc_;Kl8<3WolDiyw5- zy&42}!A)pn+#RD_l~qG_+SmTTFoWBEw+E5S?&T`$;JbPAU}LG&KJK-*~B zvR(8N(mFfGnF}F7-Qmo=-?``hd^+jkjyYFZoceek+3dU*;lbm-8S4ogb=k;I!^^-|hvXx|4W557))1zD-3ZFpK|@+CYRR1dDL}0m1u1xp zm3x48RSxRaW=Udr2JoouRV#JB;hzV_yt80r^KRa7FUzNAb;Ib!a3H1k)q1TzrCq+gzuRLfO ziuSO^!x~V-I#)T>^Zsl29CZ&1wd_q!_pxTey|(ZZy56=Ia0WmfjWPSEDX-_hJn#G; F`vw)JPpkj{ diff --git a/imgui-gfx-renderer/src/lib.rs b/imgui-gfx-renderer/src/lib.rs deleted file mode 100644 index e479ae198..000000000 --- a/imgui-gfx-renderer/src/lib.rs +++ /dev/null @@ -1,592 +0,0 @@ -#[macro_use] -pub extern crate gfx; -pub extern crate imgui; - -use gfx::format::BlendFormat; -use gfx::handle::{Buffer, RenderTargetView}; -use gfx::memory::Bind; -use gfx::pso::PipelineState; -use gfx::texture::{FilterMethod, SamplerInfo, WrapMode}; -use gfx::traits::FactoryExt; -use gfx::{CommandBuffer, Encoder, Factory, IntoIndexBuffer, Rect, Resources, Slice}; -use imgui::internal::RawWrapper; -use imgui::{BackendFlags, DrawCmd, DrawCmdParams, DrawData, DrawIdx, TextureId, Textures}; -use std::error::Error; -use std::fmt; -use std::usize; - -#[derive(Clone, Debug)] -pub enum RendererError { - Update(gfx::UpdateError), - Buffer(gfx::buffer::CreationError), - Pipeline(gfx::PipelineStateError), - Combined(gfx::CombinedError), - BadTexture(TextureId), -} - -impl fmt::Display for RendererError { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - use self::RendererError::*; - match *self { - Update(ref e) => write!(f, "{}", e), - Buffer(ref e) => write!(f, "{}", e), - Pipeline(ref e) => write!(f, "{}", e), - Combined(ref e) => write!(f, "{}", e), - BadTexture(ref t) => write!(f, "Bad texture ID: {}", t.id()), - } - } -} - -impl Error for RendererError { - fn source(&self) -> Option<&(dyn Error + 'static)> { - use self::RendererError::*; - match *self { - Update(ref e) => Some(e), - Buffer(ref e) => Some(e), - Pipeline(ref e) => Some(e), - Combined(ref e) => Some(e), - BadTexture(_) => None, - } - } -} - -impl From> for RendererError { - fn from(e: gfx::UpdateError) -> RendererError { - RendererError::Update(e) - } -} - -impl From for RendererError { - fn from(e: gfx::buffer::CreationError) -> RendererError { - RendererError::Buffer(e) - } -} - -impl From> for RendererError { - fn from(e: gfx::PipelineStateError) -> RendererError { - RendererError::Pipeline(e) - } -} - -impl From for RendererError { - fn from(e: gfx::CombinedError) -> RendererError { - RendererError::Combined(e) - } -} - -#[derive(Copy, Clone, Debug, PartialEq, Eq)] -pub enum Shaders { - /// OpenGL 4.0+ - GlSl400, - /// OpenGL 3.2+ - GlSl150, - /// OpenGL 3.0+ - GlSl130, - /// OpenGL 2.0+ - GlSl110, - /// OpenGL ES 3.0+ - GlSlEs300, - /// OpenGL ES 2.0+ - GlSlEs100, - /// HLSL Shader Model 4.0+ - HlslSm40, -} - -impl Shaders { - fn get_program_code(self) -> (&'static [u8], &'static [u8]) { - use self::Shaders::*; - match self { - GlSl400 => ( - include_bytes!("shader/glsl_400.vert"), - include_bytes!("shader/glsl_400.frag"), - ), - GlSl150 => ( - include_bytes!("shader/glsl_150.vert"), - include_bytes!("shader/glsl_150.frag"), - ), - GlSl130 => ( - include_bytes!("shader/glsl_130.vert"), - include_bytes!("shader/glsl_130.frag"), - ), - GlSl110 => ( - include_bytes!("shader/glsl_110.vert"), - include_bytes!("shader/glsl_110.frag"), - ), - GlSlEs300 => ( - include_bytes!("shader/glsles_300.vert"), - include_bytes!("shader/glsles_300.frag"), - ), - GlSlEs100 => ( - include_bytes!("shader/glsles_100.vert"), - include_bytes!("shader/glsles_100.frag"), - ), - HlslSm40 => ( - include_bytes!("data/vertex.fx"), - include_bytes!("data/pixel.fx"), - ), - } - } -} - -pub type Texture = ( - gfx::handle::ShaderResourceView, - gfx::handle::Sampler, -); - -pub struct Renderer { - vertex_buffer: Buffer, - index_buffer: Buffer, - slice: Slice, - pso: PipelineState>, - font_texture: Texture, - textures: Textures>, - #[cfg(feature = "directx")] - constants: Buffer, -} - -impl Renderer -where - Cf: BlendFormat, - R: Resources, -{ - pub fn init>( - ctx: &mut imgui::Context, - factory: &mut F, - shaders: Shaders, - ) -> Result, RendererError> { - let (vs_code, ps_code) = shaders.get_program_code(); - let pso = factory.create_pipeline_simple(vs_code, ps_code, pipeline::new::())?; - let vertex_buffer = factory.create_buffer::( - 256, - gfx::buffer::Role::Vertex, - gfx::memory::Usage::Dynamic, - Bind::empty(), - )?; - let index_buffer = factory.create_buffer::( - 256, - gfx::buffer::Role::Index, - gfx::memory::Usage::Dynamic, - Bind::empty(), - )?; - let font_texture = upload_font_texture(ctx.fonts(), factory)?; - let slice = Slice { - start: 0, - end: 0, - base_vertex: 0, - instances: None, - buffer: index_buffer.clone().into_index_buffer(factory), - }; - ctx.set_renderer_name(Some(format!( - "imgui-gfx-renderer {}", - env!("CARGO_PKG_VERSION") - ))); - ctx.io_mut() - .backend_flags - .insert(BackendFlags::RENDERER_HAS_VTX_OFFSET); - Ok(Renderer { - vertex_buffer, - index_buffer, - slice, - pso, - font_texture, - textures: Textures::new(), - #[cfg(feature = "directx")] - constants: factory.create_constant_buffer(1), - }) - } - pub fn reload_font_texture>( - &mut self, - ctx: &mut imgui::Context, - factory: &mut F, - ) -> Result<(), RendererError> { - self.font_texture = upload_font_texture(ctx.fonts(), factory)?; - Ok(()) - } - pub fn textures(&mut self) -> &mut Textures> { - &mut self.textures - } - pub fn render, C: CommandBuffer>( - &mut self, - factory: &mut F, - encoder: &mut Encoder, - target: &mut RenderTargetView, - draw_data: &DrawData, - ) -> Result<(), RendererError> { - let fb_width = draw_data.display_size[0] * draw_data.framebuffer_scale[0]; - let fb_height = draw_data.display_size[1] * draw_data.framebuffer_scale[1]; - if !(fb_width > 0.0 && fb_height > 0.0) { - return Ok(()); - } - let left = draw_data.display_pos[0]; - let right = draw_data.display_pos[0] + draw_data.display_size[0]; - let top = draw_data.display_pos[1]; - let bottom = draw_data.display_pos[1] + draw_data.display_size[1]; - let matrix = [ - [(2.0 / (right - left)), 0.0, 0.0, 0.0], - [0.0, (2.0 / (top - bottom)), 0.0, 0.0], - [0.0, 0.0, -1.0, 0.0], - [ - (right + left) / (left - right), - (top + bottom) / (bottom - top), - 0.0, - 1.0, - ], - ]; - let clip_off = draw_data.display_pos; - let clip_scale = draw_data.framebuffer_scale; - for draw_list in draw_data.draw_lists() { - self.upload_vertex_buffer(factory, encoder, unsafe { - draw_list.transmute_vtx_buffer::() - })?; - self.upload_index_buffer(factory, encoder, draw_list.idx_buffer())?; - self.slice.start = 0; - for cmd in draw_list.commands() { - match cmd { - DrawCmd::Elements { - count, - cmd_params: - DrawCmdParams { - clip_rect, - texture_id, - vtx_offset, - idx_offset, - .. - }, - } => { - let clip_rect = [ - (clip_rect[0] - clip_off[0]) * clip_scale[0], - (clip_rect[1] - clip_off[1]) * clip_scale[1], - (clip_rect[2] - clip_off[0]) * clip_scale[0], - (clip_rect[3] - clip_off[1]) * clip_scale[1], - ]; - - self.slice.start = idx_offset as u32; - self.slice.end = self.slice.start + count as u32; - self.slice.base_vertex = vtx_offset as u32; - - if clip_rect[0] < fb_width - && clip_rect[1] < fb_height - && clip_rect[2] >= 0.0 - && clip_rect[3] >= 0.0 - { - let scissor = Rect { - x: f32::max(0.0, clip_rect[0]).floor() as u16, - y: f32::max(0.0, clip_rect[1]).floor() as u16, - w: (clip_rect[2] - clip_rect[0]).abs().ceil() as u16, - h: (clip_rect[3] - clip_rect[1]).abs().ceil() as u16, - }; - let tex = self.lookup_texture(texture_id)?; - #[cfg(feature = "directx")] - { - let constants = constants::Constants { matrix }; - encoder.update_constant_buffer(&self.constants, &constants); - } - let data = pipeline::Data { - vertex_buffer: &self.vertex_buffer, - #[cfg(not(feature = "directx"))] - matrix: &matrix, - #[cfg(feature = "directx")] - constants: &self.constants, - tex, - scissor: &scissor, - target, - }; - encoder.draw(&self.slice, &self.pso, &data); - } - } - DrawCmd::ResetRenderState => (), // TODO - DrawCmd::RawCallback { callback, raw_cmd } => unsafe { - callback(draw_list.raw(), raw_cmd) - }, - } - } - } - Ok(()) - } - fn upload_vertex_buffer, C: CommandBuffer>( - &mut self, - factory: &mut F, - encoder: &mut Encoder, - vtx_buffer: &[GfxDrawVert], - ) -> Result<(), RendererError> { - if self.vertex_buffer.len() < vtx_buffer.len() { - self.vertex_buffer = factory.create_buffer::( - vtx_buffer.len(), - gfx::buffer::Role::Vertex, - gfx::memory::Usage::Dynamic, - Bind::empty(), - )?; - } - encoder.update_buffer(&self.vertex_buffer, vtx_buffer, 0)?; - Ok(()) - } - fn upload_index_buffer, C: CommandBuffer>( - &mut self, - factory: &mut F, - encoder: &mut Encoder, - idx_buffer: &[DrawIdx], - ) -> Result<(), RendererError> { - if self.index_buffer.len() < idx_buffer.len() { - self.index_buffer = factory.create_buffer::( - idx_buffer.len(), - gfx::buffer::Role::Index, - gfx::memory::Usage::Dynamic, - Bind::empty(), - )?; - self.slice.buffer = self.index_buffer.clone().into_index_buffer(factory); - } - encoder.update_buffer(&self.index_buffer, idx_buffer, 0)?; - Ok(()) - } - fn lookup_texture(&self, texture_id: TextureId) -> Result<&Texture, RendererError> { - if texture_id.id() == usize::MAX { - Ok(&self.font_texture) - } else if let Some(texture) = self.textures.get(texture_id) { - Ok(texture) - } else { - Err(RendererError::BadTexture(texture_id)) - } - } -} - -fn upload_font_texture>( - mut fonts: imgui::FontAtlasRefMut, - factory: &mut F, -) -> Result, RendererError> { - let texture = fonts.build_rgba32_texture(); - let (_, texture_view) = factory.create_texture_immutable_u8::( - gfx::texture::Kind::D2( - texture.width as u16, - texture.height as u16, - gfx::texture::AaMode::Single, - ), - gfx::texture::Mipmap::Provided, - &[texture.data], - )?; - fonts.tex_id = TextureId::from(usize::MAX); - let sampler = factory.create_sampler(SamplerInfo::new(FilterMethod::Bilinear, WrapMode::Tile)); - let font_texture = (texture_view, sampler); - Ok(font_texture) -} - -#[cfg(feature = "directx")] -mod constants { - use gfx::gfx_constant_struct_meta; - use gfx::gfx_impl_struct_meta; - - gfx::gfx_constant_struct! { - Constants { - // `matrix` is a reserved keyword in HLSL - matrix: [[f32; 4]; 4] = "matrix_", - } - } -} - -// This is basically what gfx_pipeline generates, but with some changes: -// -// * Data struct contains references to avoid copying -// * Everything is parameterized with BlendFormat -// * Pipeline init is specialized for our structs -mod pipeline { - use super::*; - use gfx::format::BlendFormat; - use gfx::handle::Manager; - use gfx::preset::blend; - use gfx::pso::{ - AccessInfo, DataBind, DataLink, Descriptor, InitError, PipelineData, PipelineInit, - RawDataSet, - }; - use gfx::state::ColorMask; - use gfx::{ProgramInfo, Resources}; - - #[derive(Clone, Debug, PartialEq)] - pub struct Data<'a, R: Resources, Cf: BlendFormat + 'a> { - pub vertex_buffer: &'a as DataBind>::Data, - #[cfg(not(feature = "directx"))] - pub matrix: &'a as DataBind>::Data, - #[cfg(feature = "directx")] - pub constants: &'a as DataBind>::Data, - pub tex: &'a as DataBind>::Data, - pub target: &'a as DataBind>::Data, - pub scissor: &'a >::Data, - } - - #[derive(Clone, Debug, Hash, PartialEq)] - pub struct Meta { - vertex_buffer: gfx::VertexBuffer, - #[cfg(not(feature = "directx"))] - matrix: gfx::Global<[[f32; 4]; 4]>, - #[cfg(feature = "directx")] - constants: gfx::ConstantBuffer, - tex: gfx::TextureSampler<[f32; 4]>, - target: gfx::BlendTarget, - scissor: gfx::Scissor, - } - - #[derive(Clone, Debug, PartialEq)] - pub struct Init<'a, Cf: BlendFormat> { - vertex_buffer: as DataLink<'a>>::Init, - #[cfg(not(feature = "directx"))] - matrix: as DataLink<'a>>::Init, - #[cfg(feature = "directx")] - constants: as DataLink<'a>>::Init, - tex: as DataLink<'a>>::Init, - target: as DataLink<'a>>::Init, - scissor: >::Init, - } - - impl<'a, Cf: BlendFormat> PipelineInit for Init<'a, Cf> { - type Meta = Meta; - fn link_to<'s>( - &self, - desc: &mut Descriptor, - info: &'s ProgramInfo, - ) -> Result, InitError<&'s str>> { - let mut meta = Meta { - vertex_buffer: DataLink::new(), - #[cfg(not(feature = "directx"))] - matrix: DataLink::new(), - #[cfg(feature = "directx")] - constants: DataLink::new(), - tex: DataLink::new(), - target: DataLink::new(), - scissor: DataLink::new(), - }; - if let Some(d) = meta - .vertex_buffer - .link_vertex_buffer(0, &self.vertex_buffer) - { - assert!(meta.vertex_buffer.is_active()); - desc.vertex_buffers[0] = Some(d); - } - for at in &info.vertex_attributes { - match meta.vertex_buffer.link_input(at, &self.vertex_buffer) { - Some(Ok(d)) => { - assert!(meta.vertex_buffer.is_active()); - desc.attributes[at.slot as usize] = Some(d); - continue; - } - Some(Err(fm)) => return Err(InitError::VertexImport(&at.name, Some(fm))), - None => return Err(InitError::VertexImport(&at.name, None)), - } - } - #[cfg(feature = "directx")] - for cb in &info.constant_buffers { - match meta.constants.link_constant_buffer(cb, &self.constants) { - Some(Ok(d)) => { - assert!(meta.constants.is_active()); - desc.constant_buffers[cb.slot as usize] = Some(d); - } - Some(Err(e)) => return Err(InitError::ConstantBuffer(&cb.name, Some(e))), - None => return Err(InitError::ConstantBuffer(&cb.name, None)), - } - } - #[cfg(not(feature = "directx"))] - for gc in &info.globals { - match meta.matrix.link_global_constant(gc, &self.matrix) { - Some(Ok(())) => assert!(meta.matrix.is_active()), - Some(Err(e)) => return Err(InitError::GlobalConstant(&gc.name, Some(e))), - None => return Err(InitError::GlobalConstant(&gc.name, None)), - } - } - for srv in &info.textures { - match meta.tex.link_resource_view(srv, &self.tex) { - Some(Ok(d)) => { - assert!(meta.tex.is_active()); - desc.resource_views[srv.slot as usize] = Some(d); - } - Some(Err(_)) => return Err(InitError::ResourceView(&srv.name, Some(()))), - None => return Err(InitError::ResourceView(&srv.name, None)), - } - } - for sm in &info.samplers { - match meta.tex.link_sampler(sm, &self.tex) { - Some(d) => { - assert!(meta.tex.is_active()); - desc.samplers[sm.slot as usize] = Some(d); - } - None => return Err(InitError::Sampler(&sm.name, None)), - } - } - for out in &info.outputs { - match meta.target.link_output(out, &self.target) { - Some(Ok(d)) => { - assert!(meta.target.is_active()); - desc.color_targets[out.slot as usize] = Some(d); - } - Some(Err(fm)) => return Err(InitError::PixelExport(&out.name, Some(fm))), - None => return Err(InitError::PixelExport(&out.name, None)), - } - } - if !info.knows_outputs { - use gfx::shade::core::*; - let mut out = OutputVar { - name: String::new(), - slot: 0, - base_type: BaseType::F32, - container: ContainerType::Vector(4), - }; - match meta.target.link_output(&out, &self.target) { - Some(Ok(d)) => { - assert!(meta.target.is_active()); - desc.color_targets[out.slot as usize] = Some(d); - out.slot += 1; - } - Some(Err(fm)) => return Err(InitError::PixelExport("!known", Some(fm))), - None => (), - } - } - if meta.scissor.link_scissor() { - assert!(meta.scissor.is_active()); - desc.scissor = true; - } - Ok(meta) - } - } - - impl<'a, R: Resources, Cf: BlendFormat> PipelineData for Data<'a, R, Cf> { - type Meta = Meta; - fn bake_to( - &self, - out: &mut RawDataSet, - meta: &Meta, - man: &mut Manager, - access: &mut AccessInfo, - ) { - meta.vertex_buffer - .bind_to(out, self.vertex_buffer, man, access); - #[cfg(not(feature = "directx"))] - { - meta.matrix.bind_to(out, self.matrix, man, access); - } - #[cfg(feature = "directx")] - { - meta.constants.bind_to(out, self.constants, man, access); - } - meta.tex.bind_to(out, self.tex, man, access); - meta.target.bind_to(out, self.target, man, access); - meta.scissor.bind_to(out, self.scissor, man, access); - } - } - - pub fn new() -> Init<'static, Cf> { - Init { - vertex_buffer: (), - #[cfg(not(feature = "directx"))] - matrix: "matrix", - #[cfg(feature = "directx")] - constants: "Constants", - tex: "tex", - target: ("Target0", ColorMask::all(), blend::ALPHA), - scissor: (), - } - } -} - -gfx_vertex_struct! { - GfxDrawVert { - pos: [f32; 2] = "pos", - uv: [f32; 2] = "uv", - col: [gfx::format::U8Norm; 4] = "col", - } -} diff --git a/imgui-gfx-renderer/src/shader/glsl_110.frag b/imgui-gfx-renderer/src/shader/glsl_110.frag deleted file mode 100644 index d45b190f7..000000000 --- a/imgui-gfx-renderer/src/shader/glsl_110.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 110 - -uniform sampler2D tex; - -varying vec2 f_uv; -varying vec4 f_color; - -// Built-in: -// vec4 gl_FragColor - -void main() { - gl_FragColor = f_color * texture2D(tex, f_uv.st); -} diff --git a/imgui-gfx-renderer/src/shader/glsl_110.vert b/imgui-gfx-renderer/src/shader/glsl_110.vert deleted file mode 100644 index d9c56ccbb..000000000 --- a/imgui-gfx-renderer/src/shader/glsl_110.vert +++ /dev/null @@ -1,19 +0,0 @@ -#version 110 - -uniform mat4 matrix; - -attribute vec2 pos; -attribute vec2 uv; -attribute vec4 col; - -varying vec2 f_uv; -varying vec4 f_color; - -// Built-in: -// vec4 gl_Position - -void main() { - f_uv = uv; - f_color = col; - gl_Position = matrix * vec4(pos.xy, 0, 1); -} diff --git a/imgui-gfx-renderer/src/shader/glsl_130.frag b/imgui-gfx-renderer/src/shader/glsl_130.frag deleted file mode 100644 index 5e0157a00..000000000 --- a/imgui-gfx-renderer/src/shader/glsl_130.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 130 - -uniform sampler2D tex; - -in vec2 f_uv; -in vec4 f_color; - -out vec4 Target0; - -void main() { - Target0 = f_color * texture(tex, f_uv.st); -} diff --git a/imgui-gfx-renderer/src/shader/glsl_130.vert b/imgui-gfx-renderer/src/shader/glsl_130.vert deleted file mode 100644 index 6132c7fc4..000000000 --- a/imgui-gfx-renderer/src/shader/glsl_130.vert +++ /dev/null @@ -1,19 +0,0 @@ -#version 130 - -uniform mat4 matrix; - -in vec2 pos; -in vec2 uv; -in vec4 col; - -out vec2 f_uv; -out vec4 f_color; - -// Built-in: -// vec4 gl_Position - -void main() { - f_uv = uv; - f_color = col; - gl_Position = matrix * vec4(pos.xy, 0, 1); -} diff --git a/imgui-gfx-renderer/src/shader/glsl_150.frag b/imgui-gfx-renderer/src/shader/glsl_150.frag deleted file mode 100644 index 675af2e4f..000000000 --- a/imgui-gfx-renderer/src/shader/glsl_150.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 150 - -uniform sampler2D tex; - -in vec2 f_uv; -in vec4 f_color; - -out vec4 Target0; - -void main() { - Target0 = f_color * texture(tex, f_uv.st); -} diff --git a/imgui-gfx-renderer/src/shader/glsl_150.vert b/imgui-gfx-renderer/src/shader/glsl_150.vert deleted file mode 100644 index b8593d106..000000000 --- a/imgui-gfx-renderer/src/shader/glsl_150.vert +++ /dev/null @@ -1,19 +0,0 @@ -#version 150 - -uniform mat4 matrix; - -in vec2 pos; -in vec2 uv; -in vec4 col; - -out vec2 f_uv; -out vec4 f_color; - -// Built-in: -// vec4 gl_Position - -void main() { - f_uv = uv; - f_color = col; - gl_Position = matrix * vec4(pos.xy, 0, 1); -} diff --git a/imgui-gfx-renderer/src/shader/glsl_400.frag b/imgui-gfx-renderer/src/shader/glsl_400.frag deleted file mode 100644 index 15eb37aa0..000000000 --- a/imgui-gfx-renderer/src/shader/glsl_400.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 400 - -uniform sampler2D tex; - -in vec2 f_uv; -in vec4 f_color; - -out vec4 Target0; - -void main() { - Target0 = f_color * texture(tex, f_uv.st); -} diff --git a/imgui-gfx-renderer/src/shader/glsl_400.vert b/imgui-gfx-renderer/src/shader/glsl_400.vert deleted file mode 100644 index 748215706..000000000 --- a/imgui-gfx-renderer/src/shader/glsl_400.vert +++ /dev/null @@ -1,19 +0,0 @@ -#version 400 - -uniform mat4 matrix; - -in vec2 pos; -in vec2 uv; -in vec4 col; - -out vec2 f_uv; -out vec4 f_color; - -// Built-in: -// vec4 gl_Position - -void main() { - f_uv = uv; - f_color = col; - gl_Position = matrix * vec4(pos.xy, 0, 1); -} diff --git a/imgui-gfx-renderer/src/shader/glsles_100.frag b/imgui-gfx-renderer/src/shader/glsles_100.frag deleted file mode 100644 index dd01b098f..000000000 --- a/imgui-gfx-renderer/src/shader/glsles_100.frag +++ /dev/null @@ -1,13 +0,0 @@ -#version 100 - -uniform sampler2D tex; - -varying mediump vec2 f_uv; -varying lowp vec4 f_color; - -// Built-in: -// vec4 gl_FragColor - -void main() { - gl_FragColor = f_color * texture2D(tex, f_uv.st); -} diff --git a/imgui-gfx-renderer/src/shader/glsles_100.vert b/imgui-gfx-renderer/src/shader/glsles_100.vert deleted file mode 100644 index fb18cb69d..000000000 --- a/imgui-gfx-renderer/src/shader/glsles_100.vert +++ /dev/null @@ -1,19 +0,0 @@ -#version 100 - -uniform mat4 matrix; - -attribute mediump vec2 pos; -attribute mediump vec2 uv; -attribute lowp vec4 col; - -varying mediump vec2 f_uv; -varying lowp vec4 f_color; - -// Built-in: -// vec4 gl_Position - -void main() { - f_uv = uv; - f_color = col; - gl_Position = matrix * vec4(pos.xy, 0, 1); -} diff --git a/imgui-gfx-renderer/src/shader/glsles_300.frag b/imgui-gfx-renderer/src/shader/glsles_300.frag deleted file mode 100644 index 81ecfcf24..000000000 --- a/imgui-gfx-renderer/src/shader/glsles_300.frag +++ /dev/null @@ -1,12 +0,0 @@ -#version 300 es - -uniform sampler2D tex; - -in mediump vec2 f_uv; -in lowp vec4 f_color; - -out lowp vec4 Target0; - -void main() { - Target0 = f_color * texture(tex, f_uv.st); -} diff --git a/imgui-gfx-renderer/src/shader/glsles_300.vert b/imgui-gfx-renderer/src/shader/glsles_300.vert deleted file mode 100644 index 32293fa54..000000000 --- a/imgui-gfx-renderer/src/shader/glsles_300.vert +++ /dev/null @@ -1,19 +0,0 @@ -#version 300 es - -uniform mat4 matrix; - -in mediump vec2 pos; -in mediump vec2 uv; -in lowp vec4 col; - -out mediump vec2 f_uv; -out lowp vec4 f_color; - -// Built-in: -// vec4 gl_Position - -void main() { - f_uv = uv; - f_color = col; - gl_Position = matrix * vec4(pos.xy, 0, 1); -} diff --git a/imgui-gfx-renderer/src/shader/sm_40.hlsl b/imgui-gfx-renderer/src/shader/sm_40.hlsl deleted file mode 100644 index bdfb4ca3f..000000000 --- a/imgui-gfx-renderer/src/shader/sm_40.hlsl +++ /dev/null @@ -1,34 +0,0 @@ -cbuffer Constants : register(b0) { - float4x4 matrix_; -} - -Texture2D tex; -SamplerState tex_; - -struct VIn { - float2 position : pos; - float2 uv : uv; - float4 color : col; -}; - -struct VOut -{ - float4 position : SV_POSITION; - float2 uv : TEXCOORD0; - float4 color : COLOR; -}; - -VOut VertexMain(VIn vertex) -{ - VOut output; - output.position = mul(matrix_, float4(vertex.position, 0.0, 1.0)); - output.uv = vertex.uv; - output.color = vertex.color; - - return output; -} - -float4 PixelMain(VOut vout) : SV_TARGET -{ - return vout.color * tex.Sample(tex_, vout.uv); -} \ No newline at end of file From 42f900770f97712803969507ac230607c102a38a Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Fri, 17 Sep 2021 15:37:49 -0400 Subject: [PATCH 004/200] oops forgot to remove them here --- Cargo.toml | 2 -- 1 file changed, 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index b55895623..bd21db58c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,11 +2,9 @@ members = [ "imgui", "imgui-sys", - "imgui-gfx-renderer", "imgui-glium-renderer", "imgui-glow-renderer", "imgui-winit-support", "imgui-examples", - "imgui-gfx-examples", "xtask", ] From a6b61be583a01508a54bb76fdc1b029cf8c41f44 Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Fri, 17 Sep 2021 15:40:06 -0400 Subject: [PATCH 005/200] incremented remaining crates to a pre-release version --- imgui-glium-renderer/Cargo.toml | 4 ++-- imgui-glow-renderer/Cargo.toml | 6 +++--- imgui-sys/Cargo.toml | 2 +- imgui-winit-support/Cargo.toml | 4 ++-- imgui/Cargo.toml | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/imgui-glium-renderer/Cargo.toml b/imgui-glium-renderer/Cargo.toml index 0132bd9b3..a04e9a918 100644 --- a/imgui-glium-renderer/Cargo.toml +++ b/imgui-glium-renderer/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "imgui-glium-renderer" -version = "0.8.0" +version = "0.8.1-alpha.0" edition = "2018" authors = ["The imgui-rs Developers"] description = "Glium renderer for the imgui crate" @@ -11,4 +11,4 @@ categories = ["gui", "rendering"] [dependencies] glium = { version = ">=0.28, < 0.31", default-features = false } -imgui = { version = "0.8.0", path = "../imgui" } +imgui = { version = "0.8.1-alpha.0", path = "../imgui" } diff --git a/imgui-glow-renderer/Cargo.toml b/imgui-glow-renderer/Cargo.toml index e845d4c00..ee73c1099 100644 --- a/imgui-glow-renderer/Cargo.toml +++ b/imgui-glow-renderer/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "imgui-glow-renderer" -version = "0.8.0" +version = "0.8.1-alpha.0" edition = "2018" authors = ["jmaargh and the imgui-rs Developers"] description = "glow renderer for the imgui crate" @@ -10,13 +10,13 @@ license = "MIT/Apache-2.0" categories = ["gui", "rendering"] [dependencies] -imgui = { version = "0.8.0", path = "../imgui" } +imgui = { version = "0.8.1-alpha.0", path = "../imgui" } glow = "0.10.0" memoffset = "0.6.4" [dev-dependencies] glutin = "0.27.0" -imgui-winit-support = { version = "0.8.0", path = "../imgui-winit-support" } +imgui-winit-support = { version = "0.8.1-alpha.0", path = "../imgui-winit-support" } image = "0.23" [features] diff --git a/imgui-sys/Cargo.toml b/imgui-sys/Cargo.toml index 58e8a4437..54cd05ce8 100644 --- a/imgui-sys/Cargo.toml +++ b/imgui-sys/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "imgui-sys" -version = "0.8.0" +version = "0.8.1-alpha.0" edition = "2018" authors = ["The imgui-rs Developers"] description = "Raw FFI bindings to dear imgui" diff --git a/imgui-winit-support/Cargo.toml b/imgui-winit-support/Cargo.toml index 493421450..73cd04506 100644 --- a/imgui-winit-support/Cargo.toml +++ b/imgui-winit-support/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "imgui-winit-support" -version = "0.8.0" +version = "0.8.1-alpha.0" edition = "2018" authors = ["The imgui-rs Developers"] description = "winit support code for the imgui crate" @@ -10,7 +10,7 @@ license = "MIT/Apache-2.0" categories = ["gui"] [dependencies] -imgui = { version = "0.8.0", path = "../imgui" } +imgui = { version = "0.8.1-alpha.0", path = "../imgui" } winit-19 = { version = ">= 0.16, < 0.20", package = "winit", optional = true } winit-20 = { version = ">= 0.20, < 0.22", package = "winit", optional = true } winit-22 = { version = "0.22", package = "winit", optional = true } diff --git a/imgui/Cargo.toml b/imgui/Cargo.toml index 5bd9b72b4..d57114277 100644 --- a/imgui/Cargo.toml +++ b/imgui/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "imgui" -version = "0.8.0" +version = "0.8.1-alpha.0" edition = "2018" authors = ["The imgui-rs Developers"] description = "High-level Rust bindings to dear imgui" @@ -14,7 +14,7 @@ exclude = ["/resources"] [dependencies] bitflags = "1" -imgui-sys = { version = "0.8.0", path = "../imgui-sys" } +imgui-sys = { version = "0.8.1-alpha.0", path = "../imgui-sys" } parking_lot = "0.11" [features] From c40be71bb4187c86eccd1de41e0e98762bc78df2 Mon Sep 17 00:00:00 2001 From: toyboot4e Date: Sat, 18 Sep 2021 14:55:55 +0900 Subject: [PATCH 006/200] Fix glow renderer doc links --- imgui-glow-renderer/src/lib.rs | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/imgui-glow-renderer/src/lib.rs b/imgui-glow-renderer/src/lib.rs index f6d1814d0..e35e5ce10 100644 --- a/imgui-glow-renderer/src/lib.rs +++ b/imgui-glow-renderer/src/lib.rs @@ -1,4 +1,4 @@ -//! Renderer for `[imgui-rs]` using the `[glow]` library for OpenGL. +//! Renderer for [`imgui-rs`][imgui] using the [`glow`] library for OpenGL. //! //! This is heavily influenced by the //! [example from upstream](https://github.com/ocornut/imgui/blob/fe245914114588f272b0924538fdd43f6c127a26/backends/imgui_impl_opengl3.cpp). @@ -7,9 +7,9 @@ //! //! A few code examples are provided in the source. //! -//! In short, create either an `[AutoRenderer]` (for basic usage) or `[Renderer]` +//! In short, create either an [`AutoRenderer`] (for basic usage) or [`Renderer`] //! (for slightly more customizable operation), then call the `render(...)` -//! method with draw data from `imgui-rs`. +//! method with draw data from [`imgui`]. //! //! # OpenGL (ES) versions //! @@ -30,10 +30,10 @@ //! //! When outputting colors to a screen, colors need to be converted from a //! linear color space to a non-linear space matching the monitor (e.g. sRGB). -//! When using the `[AutoRenderer]`, this library will convert colors to sRGB -//! as a step in the shader. When initialising a `[Renderer]`, you can choose +//! When using the [`AutoRenderer`], this library will convert colors to sRGB +//! as a step in the shader. When initialising a [`Renderer`], you can choose //! whether or not to include this step in the shader or not when calling -//! `[Renderer::initialize]`. +//! [`Renderer::initialize`]. //! //! This library also assumes that textures have their internal format //! set appropriately when uploaded to OpenGL. That is, assuming your texture @@ -57,11 +57,11 @@ type GlUniformLocation = ::Program; /// Renderer which owns the OpenGL context and handles textures itself. Also /// converts all output colors to sRGB for display. Useful for simple applications, -/// but more complicated applications may prefer to use `[Renderer]`, or even +/// but more complicated applications may prefer to use [`Renderer`], or even /// write their own renderer based on this code. /// /// OpenGL context is still available to the rest of the application through -/// the `[gl_context]` method. +/// the [`gl_context`](Self::gl_context) method. pub struct AutoRenderer { gl: glow::Context, texture_map: SimpleTextureMap, @@ -86,7 +86,7 @@ impl AutoRenderer { } /// Note: no need to provide a `mut` version of this, as all methods on - /// `[glow::HasContext]` are immutable. + /// [`glow::HasContext`] are immutable. #[inline] pub fn gl_context(&self) -> &glow::Context { &self.gl @@ -534,11 +534,15 @@ impl Renderer { /// Trait for mapping imgui texture IDs to OpenGL textures. /// -/// `[register]` should be called after uploading a texture to OpenGL to get a -/// `[imgui::TextureId]` corresponding to it. +/// [`register`] should be called after uploading a texture to OpenGL to get a +/// [`imgui::TextureId`] corresponding to it. /// -/// Then `[gl_texture]` can be called to find the OpenGL texture corresponding to -/// that `[imgui::TextureId]`. +/// [`register`]: Self::register +/// +/// Then [`gl_texture`] can be called to find the OpenGL texture corresponding to +/// that [`imgui::TextureId`]. +/// +/// [`gl_texture`]: Self::gl_texture pub trait TextureMap { fn register(&mut self, gl_texture: GlTexture) -> Option; @@ -563,7 +567,7 @@ impl TextureMap for SimpleTextureMap { } } -/// `[imgui::Textures]` is a simple choice for a texture map. +/// [`imgui::Textures`] is a simple choice for a texture map. impl TextureMap for imgui::Textures { fn register(&mut self, gl_texture: glow::Texture) -> Option { Some(self.insert(gl_texture)) From 0633f112c8942ad634d2edf26e69713b85f4a57b Mon Sep 17 00:00:00 2001 From: toyboot4e Date: Sat, 18 Sep 2021 15:11:47 +0900 Subject: [PATCH 007/200] link to `imgui-glow-renderer/examples` --- imgui-glow-renderer/src/lib.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/imgui-glow-renderer/src/lib.rs b/imgui-glow-renderer/src/lib.rs index e35e5ce10..33814475a 100644 --- a/imgui-glow-renderer/src/lib.rs +++ b/imgui-glow-renderer/src/lib.rs @@ -5,7 +5,9 @@ //! //! # Basic usage //! -//! A few code examples are provided in the source. +//! A few code [examples] are provided in the source. +//! +//! [examples]: https://github.com/imgui-rs/imgui-rs/tree/main/imgui-glow-renderer/examples //! //! In short, create either an [`AutoRenderer`] (for basic usage) or [`Renderer`] //! (for slightly more customizable operation), then call the `render(...)` From 2ff4de3918472c73b9f74f9fb681e4a7c20fc4b9 Mon Sep 17 00:00:00 2001 From: Jonathan Spira Date: Mon, 20 Sep 2021 00:49:27 -0400 Subject: [PATCH 008/200] disabled debug_message_insert_support on apple --- imgui-glow-renderer/Cargo.toml | 2 +- imgui-glow-renderer/src/lib.rs | 29 +++++++++++++++-------------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/imgui-glow-renderer/Cargo.toml b/imgui-glow-renderer/Cargo.toml index ee73c1099..3fbc013bc 100644 --- a/imgui-glow-renderer/Cargo.toml +++ b/imgui-glow-renderer/Cargo.toml @@ -37,7 +37,7 @@ default = [ ] # Enable checking for OpenGL extensions gl_extensions_support = [] -# Support for `glPrimitiveRestartIndex` +# Support for `gl.debug_message_insert` debug_message_insert_support = [] # Support for `glBindVertexArray` bind_vertex_array_support = [] diff --git a/imgui-glow-renderer/src/lib.rs b/imgui-glow-renderer/src/lib.rs index 33814475a..eacdd902d 100644 --- a/imgui-glow-renderer/src/lib.rs +++ b/imgui-glow-renderer/src/lib.rs @@ -44,7 +44,7 @@ use std::{borrow::Cow, error::Error, fmt::Display, mem::size_of}; -use imgui::internal::RawWrapper; +use imgui::{internal::RawWrapper, DrawCmd, DrawData, DrawVert}; use crate::versions::{GlVersion, GlslVersion}; use glow::{Context, HasContext}; @@ -113,7 +113,7 @@ impl AutoRenderer { /// Some OpenGL errors trigger an error (few are explicitly checked, /// however) #[inline] - pub fn render(&mut self, draw_data: &imgui::DrawData) -> Result<(), RenderError> { + pub fn render(&mut self, draw_data: &DrawData) -> Result<(), RenderError> { self.renderer.render(&self.gl, &self.texture_map, draw_data) } } @@ -261,7 +261,7 @@ impl Renderer { &mut self, gl: &Context, texture_map: &T, - draw_data: &imgui::DrawData, + draw_data: &DrawData, ) -> Result<(), RenderError> { if self.is_destroyed { return Err(Self::renderer_destroyed()); @@ -296,7 +296,7 @@ impl Renderer { gl_debug_message(gl, "start loop over commands"); for command in draw_list.commands() { match command { - imgui::DrawCmd::Elements { count, cmd_params } => self.render_elements( + DrawCmd::Elements { count, cmd_params } => self.render_elements( gl, texture_map, count, @@ -305,10 +305,10 @@ impl Renderer { fb_width, fb_height, ), - imgui::DrawCmd::RawCallback { callback, raw_cmd } => unsafe { + DrawCmd::RawCallback { callback, raw_cmd } => unsafe { callback(draw_list.raw(), raw_cmd) }, - imgui::DrawCmd::ResetRenderState => { + DrawCmd::ResetRenderState => { self.set_up_render_state(gl, draw_data, fb_width, fb_height)? } } @@ -332,7 +332,7 @@ impl Renderer { pub fn set_up_render_state( &mut self, gl: &Context, - draw_data: &imgui::DrawData, + draw_data: &DrawData, fb_width: f32, fb_height: f32, ) -> Result<(), RenderError> { @@ -407,9 +407,9 @@ impl Renderer { } // TODO: soon it should be possible for these to be `const` functions - let position_field_offset = memoffset::offset_of!(imgui::DrawVert, pos) as _; - let uv_field_offset = memoffset::offset_of!(imgui::DrawVert, uv) as _; - let color_field_offset = memoffset::offset_of!(imgui::DrawVert, col) as _; + let position_field_offset = memoffset::offset_of!(DrawVert, pos) as _; + let uv_field_offset = memoffset::offset_of!(DrawVert, uv) as _; + let color_field_offset = memoffset::offset_of!(DrawVert, col) as _; unsafe { gl.bind_buffer(glow::ARRAY_BUFFER, Some(self.vbo_handle)); @@ -453,7 +453,7 @@ impl Renderer { texture_map: &T, element_count: usize, element_params: imgui::DrawCmdParams, - draw_data: &imgui::DrawData, + draw_data: &DrawData, fb_width: f32, fb_height: f32, ) { @@ -1083,7 +1083,8 @@ fn prepare_font_atlas( Ok(gl_texture) } -#[cfg(feature = "debug_message_insert_support")] +// this CFG guard disables apple usage of this function -- apple only has supported up to opengl 3.3 +#[cfg(all(not(target_vendor = "apple"), feature = "debug_message_insert_support"))] fn gl_debug_message(gl: &G, message: impl AsRef) { unsafe { gl.debug_message_insert( @@ -1096,10 +1097,10 @@ fn gl_debug_message(gl: &G, message: impl AsRef) { }; } -#[cfg(not(feature = "debug_message_insert_support"))] +#[cfg(any(target_vendor = "apple", not(feature = "debug_message_insert_support")))] fn gl_debug_message(_gl: &G, _message: impl AsRef) {} -fn calculate_matrix(draw_data: &imgui::DrawData, clip_origin_is_lower_left: bool) -> [f32; 16] { +fn calculate_matrix(draw_data: &DrawData, clip_origin_is_lower_left: bool) -> [f32; 16] { #![allow(clippy::deprecated_cfg_attr)] let left = draw_data.display_pos[0]; From cb3d9c3609960ff819d3f21d864ca64970a78ffa Mon Sep 17 00:00:00 2001 From: Lukasz Wiklendt Date: Tue, 21 Sep 2021 12:01:16 +0930 Subject: [PATCH 009/200] Swap multiple Style accessor functions from Ui for a single unsafe Style accessor --- imgui/src/utils.rs | 211 +++------------------------------------------ 1 file changed, 11 insertions(+), 200 deletions(-) diff --git a/imgui/src/utils.rs b/imgui/src/utils.rs index e917528e4..cba439257 100644 --- a/imgui/src/utils.rs +++ b/imgui/src/utils.rs @@ -2,9 +2,9 @@ use bitflags::bitflags; use crate::input::mouse::MouseButton; -use crate::style::StyleColor; +use crate::style::{Style, StyleColor}; use crate::Ui; -use crate::{sys, Direction}; +use crate::sys; bitflags! { /// Item hover check option flags @@ -173,204 +173,15 @@ impl<'ui> Ui<'ui> { pub fn style_color(&self, style_color: StyleColor) -> [f32; 4] { self.ctx.style()[style_color] } - /// Returns the current [`Style::alpha`](crate::Style::alpha). + /// Returns a shared reference to the current [`Style`]. This function is tagged as `unsafe` + /// because pushing via [`Ui::push_style_color`](crate::Ui::push_style_color) or + /// [`UI::push_style_var`](crate::Ui::push_style_var) or popping via + /// [`ColorStackToken::pop`](crate::ColorStackToken::pop) or + /// [`StyleStackToken::pop`](crate::StyleStackToken::pop) will modify the values in the returned + /// shared reference. Therefore, you should not retain this reference across calls to push and + /// pop. #[doc(alias = "GetStyle")] - pub fn style_alpha(&self) -> f32 { - self.ctx.style().alpha - } - /// Returns the current [`Style::disabled_alpha`](crate::Style::disabled_alpha). - #[doc(alias = "GetStyle")] - pub fn style_disabled_alpha(&self) -> f32 { - self.ctx.style().disabled_alpha - } - /// Returns the current [`Style::window_padding`](crate::Style::window_padding). - #[doc(alias = "GetStyle")] - pub fn style_window_padding(&self) -> [f32; 2] { - self.ctx.style().window_padding - } - /// Returns the current [`Style::window_rounding`](crate::Style::window_rounding). - #[doc(alias = "GetStyle")] - pub fn style_window_rounding(&self) -> f32 { - self.ctx.style().window_rounding - } - /// Returns the current [`Style::window_border_size`](crate::Style::window_border_size). - #[doc(alias = "GetStyle")] - pub fn style_window_border_size(&self) -> f32 { - self.ctx.style().window_border_size - } - /// Returns the current [`Style::window_min_size`](crate::Style::window_min_size). - #[doc(alias = "GetStyle")] - pub fn style_window_min_size(&self) -> [f32; 2] { - self.ctx.style().window_min_size - } - /// Returns the current [`Style::window_title_align`](crate::Style::window_title_align). - #[doc(alias = "GetStyle")] - pub fn style_window_title_align(&self) -> [f32; 2] { - self.ctx.style().window_title_align - } - /// Returns the current [`Style::window_menu_button_position`](crate::Style::window_menu_button_position). - #[doc(alias = "GetStyle")] - pub fn style_window_menu_button_position(&self) -> Direction { - self.ctx.style().window_menu_button_position - } - /// Returns the current [`Style::child_rounding`](crate::Style::child_rounding). - #[doc(alias = "GetStyle")] - pub fn style_child_rounding(&self) -> f32 { - self.ctx.style().child_rounding - } - /// Returns the current [`Style::child_border_size`](crate::Style::child_border_size). - #[doc(alias = "GetStyle")] - pub fn style_child_border_size(&self) -> f32 { - self.ctx.style().child_border_size - } - /// Returns the current [`Style::popup_rounding`](crate::Style::popup_rounding). - #[doc(alias = "GetStyle")] - pub fn style_popup_rounding(&self) -> f32 { - self.ctx.style().popup_rounding - } - /// Returns the current [`Style::popup_border_size`](crate::Style::popup_border_size). - #[doc(alias = "GetStyle")] - pub fn style_popup_border_size(&self) -> f32 { - self.ctx.style().popup_border_size - } - /// Returns the current [`Style::frame_padding`](crate::Style::frame_padding). - #[doc(alias = "GetStyle")] - pub fn style_frame_padding(&self) -> [f32; 2] { - self.ctx.style().frame_padding - } - /// Returns the current [`Style::frame_rounding`](crate::Style::frame_rounding). - #[doc(alias = "GetStyle")] - pub fn style_frame_rounding(&self) -> f32 { - self.ctx.style().frame_rounding - } - /// Returns the current [`Style::frame_border_size`](crate::Style::frame_border_size). - #[doc(alias = "GetStyle")] - pub fn style_frame_border_size(&self) -> f32 { - self.ctx.style().frame_border_size - } - /// Returns the current [`Style::item_spacing`](crate::Style::item_spacing). - #[doc(alias = "GetStyle")] - pub fn style_item_spacing(&self) -> [f32; 2] { - self.ctx.style().item_spacing - } - /// Returns the current [`Style::item_inner_spacing`](crate::Style::item_inner_spacing). - #[doc(alias = "GetStyle")] - pub fn style_item_inner_spacing(&self) -> [f32; 2] { - self.ctx.style().item_inner_spacing - } - /// Returns the current [`Style::cell_padding`](crate::Style::cell_padding). - #[doc(alias = "GetStyle")] - pub fn style_cell_padding(&self) -> [f32; 2] { - self.ctx.style().cell_padding - } - /// Returns the current [`Style::touch_extra_padding`](crate::Style::touch_extra_padding). - #[doc(alias = "GetStyle")] - pub fn style_touch_extra_padding(&self) -> [f32; 2] { - self.ctx.style().touch_extra_padding - } - /// Returns the current [`Style::indent_spacing`](crate::Style::indent_spacing). - #[doc(alias = "GetStyle")] - pub fn style_indent_spacing(&self) -> f32 { - self.ctx.style().indent_spacing - } - /// Returns the current [`Style::columns_min_spacing`](crate::Style::columns_min_spacing). - #[doc(alias = "GetStyle")] - pub fn style_columns_min_spacing(&self) -> f32 { - self.ctx.style().columns_min_spacing - } - /// Returns the current [`Style::scrollbar_size`](crate::Style::scrollbar_size). - #[doc(alias = "GetStyle")] - pub fn style_scrollbar_size(&self) -> f32 { - self.ctx.style().scrollbar_size - } - /// Returns the current [`Style::scrollbar_rounding`](crate::Style::scrollbar_rounding). - #[doc(alias = "GetStyle")] - pub fn style_scrollbar_rounding(&self) -> f32 { - self.ctx.style().scrollbar_rounding - } - /// Returns the current [`Style::grab_min_size`](crate::Style::grab_min_size). - #[doc(alias = "GetStyle")] - pub fn style_grab_min_size(&self) -> f32 { - self.ctx.style().grab_min_size - } - /// Returns the current [`Style::grab_rounding`](crate::Style::grab_rounding). - #[doc(alias = "GetStyle")] - pub fn style_grab_rounding(&self) -> f32 { - self.ctx.style().grab_rounding - } - /// Returns the current [`Style::log_slider_deadzone`](crate::Style::log_slider_deadzone). - #[doc(alias = "GetStyle")] - pub fn style_log_slider_deadzone(&self) -> f32 { - self.ctx.style().log_slider_deadzone - } - /// Returns the current [`Style::tab_rounding`](crate::Style::tab_rounding). - #[doc(alias = "GetStyle")] - pub fn style_tab_rounding(&self) -> f32 { - self.ctx.style().tab_rounding - } - /// Returns the current [`Style::tab_border_size`](crate::Style::tab_border_size). - #[doc(alias = "GetStyle")] - pub fn style_tab_border_size(&self) -> f32 { - self.ctx.style().tab_border_size - } - /// Returns the current [`Style::tab_min_width_for_close_button`](crate::Style::tab_min_width_for_close_button). - #[doc(alias = "GetStyle")] - pub fn style_tab_min_width_for_close_button(&self) -> f32 { - self.ctx.style().tab_min_width_for_close_button - } - /// Returns the current [`Style::color_button_position`](crate::Style::color_button_position). - #[doc(alias = "GetStyle")] - pub fn style_color_button_position(&self) -> Direction { - self.ctx.style().color_button_position - } - /// Returns the current [`Style::button_text_align`](crate::Style::button_text_align). - #[doc(alias = "GetStyle")] - pub fn style_button_text_align(&self) -> [f32; 2] { - self.ctx.style().button_text_align - } - /// Returns the current [`Style::selectable_text_align`](crate::Style::selectable_text_align). - #[doc(alias = "GetStyle")] - pub fn style_selectable_text_align(&self) -> [f32; 2] { - self.ctx.style().selectable_text_align - } - /// Returns the current [`Style::display_window_padding`](crate::Style::display_window_padding). - #[doc(alias = "GetStyle")] - pub fn style_display_window_padding(&self) -> [f32; 2] { - self.ctx.style().display_window_padding - } - /// Returns the current [`Style::display_safe_area_padding`](crate::Style::display_safe_area_padding). - #[doc(alias = "GetStyle")] - pub fn style_display_safe_area_padding(&self) -> [f32; 2] { - self.ctx.style().display_safe_area_padding - } - /// Returns the current [`Style::mouse_cursor_scale`](crate::Style::mouse_cursor_scale). - #[doc(alias = "GetStyle")] - pub fn style_mouse_cursor_scale(&self) -> f32 { - self.ctx.style().mouse_cursor_scale - } - /// Returns the current [`Style::anti_aliased_lines`](crate::Style::anti_aliased_lines). - #[doc(alias = "GetStyle")] - pub fn style_anti_aliased_lines(&self) -> bool { - self.ctx.style().anti_aliased_lines - } - /// Returns the current [`Style::anti_aliased_lines_use_tex`](crate::Style::anti_aliased_lines_use_tex). - #[doc(alias = "GetStyle")] - pub fn style_anti_aliased_lines_use_tex(&self) -> bool { - self.ctx.style().anti_aliased_lines_use_tex - } - /// Returns the current [`Style::anti_aliased_fill`](crate::Style::anti_aliased_fill). - #[doc(alias = "GetStyle")] - pub fn style_anti_aliased_fill(&self) -> bool { - self.ctx.style().anti_aliased_fill - } - /// Returns the current [`Style::curve_tessellation_tol`](crate::Style::curve_tessellation_tol). - #[doc(alias = "GetStyle")] - pub fn style_curve_tessellation_tol(&self) -> f32 { - self.ctx.style().curve_tessellation_tol - } - /// Returns the current [`Style::circle_tesselation_max_error`](crate::Style::circle_tesselation_max_error). - #[doc(alias = "GetStyle")] - pub fn style_circle_tesselation_max_error(&self) -> f32 { - self.ctx.style().circle_tesselation_max_error + pub unsafe fn style(&self) -> &Style { + self.ctx.style() } } From 6670826e349efe8989f00c1c1ccc3c65ddf6fee9 Mon Sep 17 00:00:00 2001 From: Lukasz Wiklendt Date: Tue, 21 Sep 2021 12:01:16 +0930 Subject: [PATCH 010/200] Swap multiple Style accessor functions from Ui for a single unsafe Style accessor --- imgui/src/utils.rs | 211 +++------------------------------------------ 1 file changed, 11 insertions(+), 200 deletions(-) diff --git a/imgui/src/utils.rs b/imgui/src/utils.rs index e917528e4..2036efd92 100644 --- a/imgui/src/utils.rs +++ b/imgui/src/utils.rs @@ -2,9 +2,9 @@ use bitflags::bitflags; use crate::input::mouse::MouseButton; -use crate::style::StyleColor; +use crate::style::{Style, StyleColor}; +use crate::sys; use crate::Ui; -use crate::{sys, Direction}; bitflags! { /// Item hover check option flags @@ -173,204 +173,15 @@ impl<'ui> Ui<'ui> { pub fn style_color(&self, style_color: StyleColor) -> [f32; 4] { self.ctx.style()[style_color] } - /// Returns the current [`Style::alpha`](crate::Style::alpha). + /// Returns a shared reference to the current [`Style`]. This function is tagged as `unsafe` + /// because pushing via [`Ui::push_style_color`](crate::Ui::push_style_color) or + /// [`UI::push_style_var`](crate::Ui::push_style_var) or popping via + /// [`ColorStackToken::pop`](crate::ColorStackToken::pop) or + /// [`StyleStackToken::pop`](crate::StyleStackToken::pop) will modify the values in the returned + /// shared reference. Therefore, you should not retain this reference across calls to push and + /// pop. #[doc(alias = "GetStyle")] - pub fn style_alpha(&self) -> f32 { - self.ctx.style().alpha - } - /// Returns the current [`Style::disabled_alpha`](crate::Style::disabled_alpha). - #[doc(alias = "GetStyle")] - pub fn style_disabled_alpha(&self) -> f32 { - self.ctx.style().disabled_alpha - } - /// Returns the current [`Style::window_padding`](crate::Style::window_padding). - #[doc(alias = "GetStyle")] - pub fn style_window_padding(&self) -> [f32; 2] { - self.ctx.style().window_padding - } - /// Returns the current [`Style::window_rounding`](crate::Style::window_rounding). - #[doc(alias = "GetStyle")] - pub fn style_window_rounding(&self) -> f32 { - self.ctx.style().window_rounding - } - /// Returns the current [`Style::window_border_size`](crate::Style::window_border_size). - #[doc(alias = "GetStyle")] - pub fn style_window_border_size(&self) -> f32 { - self.ctx.style().window_border_size - } - /// Returns the current [`Style::window_min_size`](crate::Style::window_min_size). - #[doc(alias = "GetStyle")] - pub fn style_window_min_size(&self) -> [f32; 2] { - self.ctx.style().window_min_size - } - /// Returns the current [`Style::window_title_align`](crate::Style::window_title_align). - #[doc(alias = "GetStyle")] - pub fn style_window_title_align(&self) -> [f32; 2] { - self.ctx.style().window_title_align - } - /// Returns the current [`Style::window_menu_button_position`](crate::Style::window_menu_button_position). - #[doc(alias = "GetStyle")] - pub fn style_window_menu_button_position(&self) -> Direction { - self.ctx.style().window_menu_button_position - } - /// Returns the current [`Style::child_rounding`](crate::Style::child_rounding). - #[doc(alias = "GetStyle")] - pub fn style_child_rounding(&self) -> f32 { - self.ctx.style().child_rounding - } - /// Returns the current [`Style::child_border_size`](crate::Style::child_border_size). - #[doc(alias = "GetStyle")] - pub fn style_child_border_size(&self) -> f32 { - self.ctx.style().child_border_size - } - /// Returns the current [`Style::popup_rounding`](crate::Style::popup_rounding). - #[doc(alias = "GetStyle")] - pub fn style_popup_rounding(&self) -> f32 { - self.ctx.style().popup_rounding - } - /// Returns the current [`Style::popup_border_size`](crate::Style::popup_border_size). - #[doc(alias = "GetStyle")] - pub fn style_popup_border_size(&self) -> f32 { - self.ctx.style().popup_border_size - } - /// Returns the current [`Style::frame_padding`](crate::Style::frame_padding). - #[doc(alias = "GetStyle")] - pub fn style_frame_padding(&self) -> [f32; 2] { - self.ctx.style().frame_padding - } - /// Returns the current [`Style::frame_rounding`](crate::Style::frame_rounding). - #[doc(alias = "GetStyle")] - pub fn style_frame_rounding(&self) -> f32 { - self.ctx.style().frame_rounding - } - /// Returns the current [`Style::frame_border_size`](crate::Style::frame_border_size). - #[doc(alias = "GetStyle")] - pub fn style_frame_border_size(&self) -> f32 { - self.ctx.style().frame_border_size - } - /// Returns the current [`Style::item_spacing`](crate::Style::item_spacing). - #[doc(alias = "GetStyle")] - pub fn style_item_spacing(&self) -> [f32; 2] { - self.ctx.style().item_spacing - } - /// Returns the current [`Style::item_inner_spacing`](crate::Style::item_inner_spacing). - #[doc(alias = "GetStyle")] - pub fn style_item_inner_spacing(&self) -> [f32; 2] { - self.ctx.style().item_inner_spacing - } - /// Returns the current [`Style::cell_padding`](crate::Style::cell_padding). - #[doc(alias = "GetStyle")] - pub fn style_cell_padding(&self) -> [f32; 2] { - self.ctx.style().cell_padding - } - /// Returns the current [`Style::touch_extra_padding`](crate::Style::touch_extra_padding). - #[doc(alias = "GetStyle")] - pub fn style_touch_extra_padding(&self) -> [f32; 2] { - self.ctx.style().touch_extra_padding - } - /// Returns the current [`Style::indent_spacing`](crate::Style::indent_spacing). - #[doc(alias = "GetStyle")] - pub fn style_indent_spacing(&self) -> f32 { - self.ctx.style().indent_spacing - } - /// Returns the current [`Style::columns_min_spacing`](crate::Style::columns_min_spacing). - #[doc(alias = "GetStyle")] - pub fn style_columns_min_spacing(&self) -> f32 { - self.ctx.style().columns_min_spacing - } - /// Returns the current [`Style::scrollbar_size`](crate::Style::scrollbar_size). - #[doc(alias = "GetStyle")] - pub fn style_scrollbar_size(&self) -> f32 { - self.ctx.style().scrollbar_size - } - /// Returns the current [`Style::scrollbar_rounding`](crate::Style::scrollbar_rounding). - #[doc(alias = "GetStyle")] - pub fn style_scrollbar_rounding(&self) -> f32 { - self.ctx.style().scrollbar_rounding - } - /// Returns the current [`Style::grab_min_size`](crate::Style::grab_min_size). - #[doc(alias = "GetStyle")] - pub fn style_grab_min_size(&self) -> f32 { - self.ctx.style().grab_min_size - } - /// Returns the current [`Style::grab_rounding`](crate::Style::grab_rounding). - #[doc(alias = "GetStyle")] - pub fn style_grab_rounding(&self) -> f32 { - self.ctx.style().grab_rounding - } - /// Returns the current [`Style::log_slider_deadzone`](crate::Style::log_slider_deadzone). - #[doc(alias = "GetStyle")] - pub fn style_log_slider_deadzone(&self) -> f32 { - self.ctx.style().log_slider_deadzone - } - /// Returns the current [`Style::tab_rounding`](crate::Style::tab_rounding). - #[doc(alias = "GetStyle")] - pub fn style_tab_rounding(&self) -> f32 { - self.ctx.style().tab_rounding - } - /// Returns the current [`Style::tab_border_size`](crate::Style::tab_border_size). - #[doc(alias = "GetStyle")] - pub fn style_tab_border_size(&self) -> f32 { - self.ctx.style().tab_border_size - } - /// Returns the current [`Style::tab_min_width_for_close_button`](crate::Style::tab_min_width_for_close_button). - #[doc(alias = "GetStyle")] - pub fn style_tab_min_width_for_close_button(&self) -> f32 { - self.ctx.style().tab_min_width_for_close_button - } - /// Returns the current [`Style::color_button_position`](crate::Style::color_button_position). - #[doc(alias = "GetStyle")] - pub fn style_color_button_position(&self) -> Direction { - self.ctx.style().color_button_position - } - /// Returns the current [`Style::button_text_align`](crate::Style::button_text_align). - #[doc(alias = "GetStyle")] - pub fn style_button_text_align(&self) -> [f32; 2] { - self.ctx.style().button_text_align - } - /// Returns the current [`Style::selectable_text_align`](crate::Style::selectable_text_align). - #[doc(alias = "GetStyle")] - pub fn style_selectable_text_align(&self) -> [f32; 2] { - self.ctx.style().selectable_text_align - } - /// Returns the current [`Style::display_window_padding`](crate::Style::display_window_padding). - #[doc(alias = "GetStyle")] - pub fn style_display_window_padding(&self) -> [f32; 2] { - self.ctx.style().display_window_padding - } - /// Returns the current [`Style::display_safe_area_padding`](crate::Style::display_safe_area_padding). - #[doc(alias = "GetStyle")] - pub fn style_display_safe_area_padding(&self) -> [f32; 2] { - self.ctx.style().display_safe_area_padding - } - /// Returns the current [`Style::mouse_cursor_scale`](crate::Style::mouse_cursor_scale). - #[doc(alias = "GetStyle")] - pub fn style_mouse_cursor_scale(&self) -> f32 { - self.ctx.style().mouse_cursor_scale - } - /// Returns the current [`Style::anti_aliased_lines`](crate::Style::anti_aliased_lines). - #[doc(alias = "GetStyle")] - pub fn style_anti_aliased_lines(&self) -> bool { - self.ctx.style().anti_aliased_lines - } - /// Returns the current [`Style::anti_aliased_lines_use_tex`](crate::Style::anti_aliased_lines_use_tex). - #[doc(alias = "GetStyle")] - pub fn style_anti_aliased_lines_use_tex(&self) -> bool { - self.ctx.style().anti_aliased_lines_use_tex - } - /// Returns the current [`Style::anti_aliased_fill`](crate::Style::anti_aliased_fill). - #[doc(alias = "GetStyle")] - pub fn style_anti_aliased_fill(&self) -> bool { - self.ctx.style().anti_aliased_fill - } - /// Returns the current [`Style::curve_tessellation_tol`](crate::Style::curve_tessellation_tol). - #[doc(alias = "GetStyle")] - pub fn style_curve_tessellation_tol(&self) -> f32 { - self.ctx.style().curve_tessellation_tol - } - /// Returns the current [`Style::circle_tesselation_max_error`](crate::Style::circle_tesselation_max_error). - #[doc(alias = "GetStyle")] - pub fn style_circle_tesselation_max_error(&self) -> f32 { - self.ctx.style().circle_tesselation_max_error + pub unsafe fn style(&self) -> &Style { + self.ctx.style() } } From a0a04cdb91064c485ddf67feb97c43c73390c8e6 Mon Sep 17 00:00:00 2001 From: Lukasz Wiklendt Date: Tue, 21 Sep 2021 12:29:02 +0930 Subject: [PATCH 011/200] Update Ui Style accessor function doc --- imgui/src/utils.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/imgui/src/utils.rs b/imgui/src/utils.rs index cba439257..b4006b6b3 100644 --- a/imgui/src/utils.rs +++ b/imgui/src/utils.rs @@ -3,8 +3,8 @@ use bitflags::bitflags; use crate::input::mouse::MouseButton; use crate::style::{Style, StyleColor}; -use crate::Ui; use crate::sys; +use crate::Ui; bitflags! { /// Item hover check option flags @@ -174,12 +174,12 @@ impl<'ui> Ui<'ui> { self.ctx.style()[style_color] } /// Returns a shared reference to the current [`Style`]. This function is tagged as `unsafe` - /// because pushing via [`Ui::push_style_color`](crate::Ui::push_style_color) or - /// [`UI::push_style_var`](crate::Ui::push_style_var) or popping via + /// because pushing via [`push_style_color`](crate::Ui::push_style_color) or + /// [`push_style_var`](crate::Ui::push_style_var) or popping via /// [`ColorStackToken::pop`](crate::ColorStackToken::pop) or /// [`StyleStackToken::pop`](crate::StyleStackToken::pop) will modify the values in the returned /// shared reference. Therefore, you should not retain this reference across calls to push and - /// pop. + /// pop. The [`clone_style`](Ui::clone_style) version may instead be used to avoid `unsafe`. #[doc(alias = "GetStyle")] pub unsafe fn style(&self) -> &Style { self.ctx.style() From 31cc4b3df07b809a6e9ac601cb097c044aefbf5a Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Tue, 21 Sep 2021 12:46:17 -0400 Subject: [PATCH 012/200] switched to using usings --- imgui/src/lib.rs | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/imgui/src/lib.rs b/imgui/src/lib.rs index 929636ef8..d453a882c 100644 --- a/imgui/src/lib.rs +++ b/imgui/src/lib.rs @@ -4,12 +4,7 @@ pub extern crate imgui_sys as sys; -use std::cell; -use std::ffi::CStr; use std::os::raw::{c_char, c_void}; -use std::ptr; -use std::str; -use std::thread; pub use self::clipboard::*; pub use self::color::ImColor32; @@ -96,8 +91,8 @@ pub use core as __core; #[doc(alias = "GetVersion")] pub fn dear_imgui_version() -> &'static str { unsafe { - let bytes = CStr::from_ptr(sys::igGetVersion()).to_bytes(); - str::from_utf8_unchecked(bytes) + let bytes = std::ffi::CStr::from_ptr(sys::igGetVersion()).to_bytes(); + std::str::from_utf8_unchecked(bytes) } } @@ -122,9 +117,9 @@ impl Context { #[derive(Debug)] pub struct Ui<'ui> { ctx: &'ui Context, - font_atlas: Option>, + font_atlas: Option>, // imgui isn't mutli-threaded -- so no one will ever access twice. - buffer: cell::UnsafeCell, + buffer: std::cell::UnsafeCell, } impl<'ui> Ui<'ui> { @@ -199,7 +194,7 @@ impl<'ui> Ui<'ui> { impl<'a> Drop for Ui<'a> { #[doc(alias = "EndFrame")] fn drop(&mut self) { - if !thread::panicking() { + if !std::thread::panicking() { unsafe { sys::igEndFrame(); } @@ -246,7 +241,7 @@ impl<'ui> Ui<'ui> { /// Renders a style editor block (not a window) for the currently active style #[doc(alias = "ShowStyleEditor")] pub fn show_default_style_editor(&self) { - unsafe { sys::igShowStyleEditor(ptr::null_mut()) }; + unsafe { sys::igShowStyleEditor(std::ptr::null_mut()) }; } /// Renders a basic help/info block (not a window) #[doc(alias = "ShowUserGuide")] From 9cee827d23ad369867601029bdc2f276f0417025 Mon Sep 17 00:00:00 2001 From: Lukasz Wiklendt Date: Wed, 22 Sep 2021 08:54:02 +0930 Subject: [PATCH 013/200] Update Ui Style accessor function doc safety --- imgui/src/utils.rs | 378 +++++++++++++++++++++++---------------------- 1 file changed, 191 insertions(+), 187 deletions(-) diff --git a/imgui/src/utils.rs b/imgui/src/utils.rs index b4006b6b3..a1f41e1f7 100644 --- a/imgui/src/utils.rs +++ b/imgui/src/utils.rs @@ -1,187 +1,191 @@ -#![allow(clippy::float_cmp)] -use bitflags::bitflags; - -use crate::input::mouse::MouseButton; -use crate::style::{Style, StyleColor}; -use crate::sys; -use crate::Ui; - -bitflags! { - /// Item hover check option flags - #[repr(transparent)] - pub struct ItemHoveredFlags: u32 { - /// Return true even if a popup window is blocking access to this item - const ALLOW_WHEN_BLOCKED_BY_POPUP = sys::ImGuiHoveredFlags_AllowWhenBlockedByPopup; - /// Return true even if an active item is blocking access to this item - const ALLOW_WHEN_BLOCKED_BY_ACTIVE_ITEM = sys::ImGuiHoveredFlags_AllowWhenBlockedByActiveItem; - /// Return true even if the position is obstructed or overlapped by another window - const ALLOW_WHEN_OVERLAPPED = sys::ImGuiHoveredFlags_AllowWhenOverlapped; - /// Return true even if the item is disabled - const ALLOW_WHEN_DISABLED = sys::ImGuiHoveredFlags_AllowWhenDisabled; - const RECT_ONLY = sys::ImGuiHoveredFlags_RectOnly; - } -} - -/// # Item/widget utilities -impl<'ui> Ui<'ui> { - /// Returns `true` if the last item is hovered - #[doc(alias = "IsItemHovered")] - pub fn is_item_hovered(&self) -> bool { - unsafe { sys::igIsItemHovered(0) } - } - /// Returns `true` if the last item is hovered based on the given flags - #[doc(alias = "IsItemHovered")] - pub fn is_item_hovered_with_flags(&self, flags: ItemHoveredFlags) -> bool { - unsafe { sys::igIsItemHovered(flags.bits() as i32) } - } - /// Returns `true` if the last item is active - #[doc(alias = "IsItemActive")] - pub fn is_item_active(&self) -> bool { - unsafe { sys::igIsItemActive() } - } - #[doc(alias = "IsItemFocused")] - /// Returns `true` if the last item is focused for keyboard/gamepad navigation - pub fn is_item_focused(&self) -> bool { - unsafe { sys::igIsItemFocused() } - } - /// Returns `true` if the last item is being clicked by `MouseButton::Left`. - /// - /// This is the same as [is_item_clicked_with_button](Self::is_item_clicked_with_button) - /// with `button` set to `MouseButton::Left`. - #[doc(alias = "IsItemClicked")] - pub fn is_item_clicked(&self) -> bool { - self.is_item_clicked_with_button(MouseButton::Left) - } - - /// Returns `true` if the last item is being clicked - #[doc(alias = "IsItemClicked")] - pub fn is_item_clicked_with_button(&self, button: MouseButton) -> bool { - unsafe { sys::igIsItemClicked(button as i32) } - } - /// Returns `true` if the last item is visible - #[doc(alias = "IsItemVisible")] - pub fn is_item_visible(&self) -> bool { - unsafe { sys::igIsItemVisible() } - } - /// Returns `true` if the last item modified its underlying value this frame or was pressed - #[doc(alias = "IsItemEdited")] - pub fn is_item_edited(&self) -> bool { - unsafe { sys::igIsItemEdited() } - } - /// Returns `true` if the last item was just made active - #[doc(alias = "IsItemActivated")] - pub fn is_item_activated(&self) -> bool { - unsafe { sys::igIsItemActivated() } - } - /// Returns `true` if the last item was just made inactive - #[doc(alias = "IsItemDeactivated")] - pub fn is_item_deactivated(&self) -> bool { - unsafe { sys::igIsItemDeactivated() } - } - /// Returns `true` if the last item was just made inactive and made a value change when it was - #[doc(alias = "IsItemDeactivatedAfterEdit")] - /// active - pub fn is_item_deactivated_after_edit(&self) -> bool { - unsafe { sys::igIsItemDeactivatedAfterEdit() } - } - /// Returns `true` if the last item open state was toggled - #[doc(alias = "IsItemToggledOpen")] - pub fn is_item_toggled_open(&self) -> bool { - unsafe { sys::igIsItemToggledOpen() } - } - /// Returns `true` if any item is hovered - #[doc(alias = "IsAnyItemHovered")] - pub fn is_any_item_hovered(&self) -> bool { - unsafe { sys::igIsAnyItemHovered() } - } - /// Returns `true` if any item is active - #[doc(alias = "IsAnyItemActive")] - pub fn is_any_item_active(&self) -> bool { - unsafe { sys::igIsAnyItemActive() } - } - /// Returns `true` if any item is focused - #[doc(alias = "IsAnyItemFocused")] - pub fn is_any_item_focused(&self) -> bool { - unsafe { sys::igIsAnyItemFocused() } - } - /// Returns the upper-left bounding rectangle of the last item (in screen coordinates) - #[doc(alias = "GetItemRectMin")] - pub fn item_rect_min(&self) -> [f32; 2] { - let mut out = sys::ImVec2::zero(); - unsafe { sys::igGetItemRectMin(&mut out) } - out.into() - } - /// Returns the lower-right bounding rectangle of the last item (in screen coordinates) - #[doc(alias = "GetItemRectMax")] - pub fn item_rect_max(&self) -> [f32; 2] { - let mut out = sys::ImVec2::zero(); - unsafe { sys::igGetItemRectMax(&mut out) } - out.into() - } - /// Returns the size of the last item - #[doc(alias = "GetItemRectSize")] - pub fn item_rect_size(&self) -> [f32; 2] { - let mut out = sys::ImVec2::zero(); - unsafe { sys::igGetItemRectSize(&mut out) } - out.into() - } - /// Allows the last item to be overlapped by a subsequent item. - /// - /// Both may be activated during the same frame before the later one takes priority. - #[doc(alias = "SetItemAllowOverlap")] - pub fn set_item_allow_overlap(&self) { - unsafe { sys::igSetItemAllowOverlap() }; - } - /// Makes the last item the default focused item of the window - #[doc(alias = "SetItemDefaultFocus")] - pub fn set_item_default_focus(&self) { - unsafe { sys::igSetItemDefaultFocus() }; - } -} - -/// # Miscellaneous utilities -impl<'ui> Ui<'ui> { - /// Returns `true` if the rectangle (of given size, starting from cursor position) is visible - #[doc(alias = "IsRectVisibleNil")] - pub fn is_cursor_rect_visible(&self, size: [f32; 2]) -> bool { - unsafe { sys::igIsRectVisible_Nil(size.into()) } - } - /// Returns `true` if the rectangle (in screen coordinates) is visible - #[doc(alias = "IsRectVisibleNilVec2")] - pub fn is_rect_visible(&self, rect_min: [f32; 2], rect_max: [f32; 2]) -> bool { - unsafe { sys::igIsRectVisible_Vec2(rect_min.into(), rect_max.into()) } - } - /// Returns the global imgui-rs time. - /// - /// Incremented by Io::delta_time every frame. - #[doc(alias = "GetTime")] - pub fn time(&self) -> f64 { - unsafe { sys::igGetTime() } - } - /// Returns the global imgui-rs frame count. - /// - /// Incremented by 1 every frame. - #[doc(alias = "GetFrameCount")] - pub fn frame_count(&self) -> i32 { - unsafe { sys::igGetFrameCount() } - } - /// Returns a single style color from the user interface style. - /// - /// Use this function if you need to access the colors, but don't want to clone the entire - /// style object. - #[doc(alias = "GetStyle")] - pub fn style_color(&self, style_color: StyleColor) -> [f32; 4] { - self.ctx.style()[style_color] - } - /// Returns a shared reference to the current [`Style`]. This function is tagged as `unsafe` - /// because pushing via [`push_style_color`](crate::Ui::push_style_color) or - /// [`push_style_var`](crate::Ui::push_style_var) or popping via - /// [`ColorStackToken::pop`](crate::ColorStackToken::pop) or - /// [`StyleStackToken::pop`](crate::StyleStackToken::pop) will modify the values in the returned - /// shared reference. Therefore, you should not retain this reference across calls to push and - /// pop. The [`clone_style`](Ui::clone_style) version may instead be used to avoid `unsafe`. - #[doc(alias = "GetStyle")] - pub unsafe fn style(&self) -> &Style { - self.ctx.style() - } -} +#![allow(clippy::float_cmp)] +use bitflags::bitflags; + +use crate::input::mouse::MouseButton; +use crate::style::{Style, StyleColor}; +use crate::sys; +use crate::Ui; + +bitflags! { + /// Item hover check option flags + #[repr(transparent)] + pub struct ItemHoveredFlags: u32 { + /// Return true even if a popup window is blocking access to this item + const ALLOW_WHEN_BLOCKED_BY_POPUP = sys::ImGuiHoveredFlags_AllowWhenBlockedByPopup; + /// Return true even if an active item is blocking access to this item + const ALLOW_WHEN_BLOCKED_BY_ACTIVE_ITEM = sys::ImGuiHoveredFlags_AllowWhenBlockedByActiveItem; + /// Return true even if the position is obstructed or overlapped by another window + const ALLOW_WHEN_OVERLAPPED = sys::ImGuiHoveredFlags_AllowWhenOverlapped; + /// Return true even if the item is disabled + const ALLOW_WHEN_DISABLED = sys::ImGuiHoveredFlags_AllowWhenDisabled; + const RECT_ONLY = sys::ImGuiHoveredFlags_RectOnly; + } +} + +/// # Item/widget utilities +impl<'ui> Ui<'ui> { + /// Returns `true` if the last item is hovered + #[doc(alias = "IsItemHovered")] + pub fn is_item_hovered(&self) -> bool { + unsafe { sys::igIsItemHovered(0) } + } + /// Returns `true` if the last item is hovered based on the given flags + #[doc(alias = "IsItemHovered")] + pub fn is_item_hovered_with_flags(&self, flags: ItemHoveredFlags) -> bool { + unsafe { sys::igIsItemHovered(flags.bits() as i32) } + } + /// Returns `true` if the last item is active + #[doc(alias = "IsItemActive")] + pub fn is_item_active(&self) -> bool { + unsafe { sys::igIsItemActive() } + } + #[doc(alias = "IsItemFocused")] + /// Returns `true` if the last item is focused for keyboard/gamepad navigation + pub fn is_item_focused(&self) -> bool { + unsafe { sys::igIsItemFocused() } + } + /// Returns `true` if the last item is being clicked by `MouseButton::Left`. + /// + /// This is the same as [is_item_clicked_with_button](Self::is_item_clicked_with_button) + /// with `button` set to `MouseButton::Left`. + #[doc(alias = "IsItemClicked")] + pub fn is_item_clicked(&self) -> bool { + self.is_item_clicked_with_button(MouseButton::Left) + } + + /// Returns `true` if the last item is being clicked + #[doc(alias = "IsItemClicked")] + pub fn is_item_clicked_with_button(&self, button: MouseButton) -> bool { + unsafe { sys::igIsItemClicked(button as i32) } + } + /// Returns `true` if the last item is visible + #[doc(alias = "IsItemVisible")] + pub fn is_item_visible(&self) -> bool { + unsafe { sys::igIsItemVisible() } + } + /// Returns `true` if the last item modified its underlying value this frame or was pressed + #[doc(alias = "IsItemEdited")] + pub fn is_item_edited(&self) -> bool { + unsafe { sys::igIsItemEdited() } + } + /// Returns `true` if the last item was just made active + #[doc(alias = "IsItemActivated")] + pub fn is_item_activated(&self) -> bool { + unsafe { sys::igIsItemActivated() } + } + /// Returns `true` if the last item was just made inactive + #[doc(alias = "IsItemDeactivated")] + pub fn is_item_deactivated(&self) -> bool { + unsafe { sys::igIsItemDeactivated() } + } + /// Returns `true` if the last item was just made inactive and made a value change when it was + #[doc(alias = "IsItemDeactivatedAfterEdit")] + /// active + pub fn is_item_deactivated_after_edit(&self) -> bool { + unsafe { sys::igIsItemDeactivatedAfterEdit() } + } + /// Returns `true` if the last item open state was toggled + #[doc(alias = "IsItemToggledOpen")] + pub fn is_item_toggled_open(&self) -> bool { + unsafe { sys::igIsItemToggledOpen() } + } + /// Returns `true` if any item is hovered + #[doc(alias = "IsAnyItemHovered")] + pub fn is_any_item_hovered(&self) -> bool { + unsafe { sys::igIsAnyItemHovered() } + } + /// Returns `true` if any item is active + #[doc(alias = "IsAnyItemActive")] + pub fn is_any_item_active(&self) -> bool { + unsafe { sys::igIsAnyItemActive() } + } + /// Returns `true` if any item is focused + #[doc(alias = "IsAnyItemFocused")] + pub fn is_any_item_focused(&self) -> bool { + unsafe { sys::igIsAnyItemFocused() } + } + /// Returns the upper-left bounding rectangle of the last item (in screen coordinates) + #[doc(alias = "GetItemRectMin")] + pub fn item_rect_min(&self) -> [f32; 2] { + let mut out = sys::ImVec2::zero(); + unsafe { sys::igGetItemRectMin(&mut out) } + out.into() + } + /// Returns the lower-right bounding rectangle of the last item (in screen coordinates) + #[doc(alias = "GetItemRectMax")] + pub fn item_rect_max(&self) -> [f32; 2] { + let mut out = sys::ImVec2::zero(); + unsafe { sys::igGetItemRectMax(&mut out) } + out.into() + } + /// Returns the size of the last item + #[doc(alias = "GetItemRectSize")] + pub fn item_rect_size(&self) -> [f32; 2] { + let mut out = sys::ImVec2::zero(); + unsafe { sys::igGetItemRectSize(&mut out) } + out.into() + } + /// Allows the last item to be overlapped by a subsequent item. + /// + /// Both may be activated during the same frame before the later one takes priority. + #[doc(alias = "SetItemAllowOverlap")] + pub fn set_item_allow_overlap(&self) { + unsafe { sys::igSetItemAllowOverlap() }; + } + /// Makes the last item the default focused item of the window + #[doc(alias = "SetItemDefaultFocus")] + pub fn set_item_default_focus(&self) { + unsafe { sys::igSetItemDefaultFocus() }; + } +} + +/// # Miscellaneous utilities +impl<'ui> Ui<'ui> { + /// Returns `true` if the rectangle (of given size, starting from cursor position) is visible + #[doc(alias = "IsRectVisibleNil")] + pub fn is_cursor_rect_visible(&self, size: [f32; 2]) -> bool { + unsafe { sys::igIsRectVisible_Nil(size.into()) } + } + /// Returns `true` if the rectangle (in screen coordinates) is visible + #[doc(alias = "IsRectVisibleNilVec2")] + pub fn is_rect_visible(&self, rect_min: [f32; 2], rect_max: [f32; 2]) -> bool { + unsafe { sys::igIsRectVisible_Vec2(rect_min.into(), rect_max.into()) } + } + /// Returns the global imgui-rs time. + /// + /// Incremented by Io::delta_time every frame. + #[doc(alias = "GetTime")] + pub fn time(&self) -> f64 { + unsafe { sys::igGetTime() } + } + /// Returns the global imgui-rs frame count. + /// + /// Incremented by 1 every frame. + #[doc(alias = "GetFrameCount")] + pub fn frame_count(&self) -> i32 { + unsafe { sys::igGetFrameCount() } + } + /// Returns a single style color from the user interface style. + /// + /// Use this function if you need to access the colors, but don't want to clone the entire + /// style object. + #[doc(alias = "GetStyle")] + pub fn style_color(&self, style_color: StyleColor) -> [f32; 4] { + self.ctx.style()[style_color] + } + /// Returns a shared reference to the current [`Style`]. + /// + /// ## Safety + /// + /// This function is tagged as `unsafe` because pushing via + /// [`push_style_color`](crate::Ui::push_style_color) or + /// [`push_style_var`](crate::Ui::push_style_var) or popping via + /// [`ColorStackToken::pop`](crate::ColorStackToken::pop) or + /// [`StyleStackToken::pop`](crate::StyleStackToken::pop) will modify the values in the returned + /// shared reference. Therefore, you should not retain this reference across calls to push and + /// pop. The [`clone_style`](Ui::clone_style) version may instead be used to avoid `unsafe`. + #[doc(alias = "GetStyle")] + pub unsafe fn style(&self) -> &Style { + self.ctx.style() + } +} From 49702e0a68f158e5825c74b5e6e12b191b484d2f Mon Sep 17 00:00:00 2001 From: Malik Olivier Boussejra Date: Thu, 23 Sep 2021 13:49:19 +0900 Subject: [PATCH 014/200] fix typo in Ui::button documentation --- imgui/src/widget/misc.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/imgui/src/widget/misc.rs b/imgui/src/widget/misc.rs index a7e6713aa..e54e67806 100644 --- a/imgui/src/widget/misc.rs +++ b/imgui/src/widget/misc.rs @@ -26,7 +26,6 @@ impl<'ui> Ui<'ui> { /// This is the equivalent of [button_with_size](Self::button_with_size) /// with `size` set to `[0.0, 0.0]`, which will size the button to the /// label's width in the current style. - /// the current style. #[doc(alias = "Button")] pub fn button(&self, label: impl AsRef) -> bool { self.button_with_size(label, [0.0, 0.0]) From 210ca57ecbd3fd729266a199c79e4f876207aa8c Mon Sep 17 00:00:00 2001 From: Malik Olivier Boussejra Date: Thu, 23 Sep 2021 14:43:21 +0900 Subject: [PATCH 015/200] fix typo in color documentation In 4f1cde06, `ImColor` was renamed to `ImColor32`. The documentation in color.rs appears to be wrong, so we fix it. --- imgui/src/color.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/imgui/src/color.rs b/imgui/src/color.rs index a5bed56a8..5f7e07c42 100644 --- a/imgui/src/color.rs +++ b/imgui/src/color.rs @@ -5,7 +5,7 @@ /// bytes). For clarity: we don't support an equivalent to the /// `IMGUI_USE_BGRA_PACKED_COLOR` define. /// -/// This used to be named `ImColor32`, but was renamed to avoid confusion with +/// This used to be named `ImColor`, but was renamed to avoid confusion with /// the type with that name in the C++ API (which uses 32 bits per channel). /// /// While it doesn't provide methods to access the fields, they can be accessed From 0f7cb498650f84b9ea476b88415f18eaa1e10831 Mon Sep 17 00:00:00 2001 From: dbr Date: Sat, 25 Sep 2021 11:41:31 +1000 Subject: [PATCH 016/200] Create windows via ui.window("title").build() [#454] --- imgui/src/lib.rs | 47 ++++++++++++++++++++++++++++++++ imgui/src/window/child_window.rs | 41 ++++++++++++---------------- imgui/src/window/mod.rs | 26 ++++++++++-------- 3 files changed, 79 insertions(+), 35 deletions(-) diff --git a/imgui/src/lib.rs b/imgui/src/lib.rs index d453a882c..8b472dbea 100644 --- a/imgui/src/lib.rs +++ b/imgui/src/lib.rs @@ -314,6 +314,53 @@ impl<'a> Default for Id<'a> { } } +impl<'ui> Ui<'ui> { + /// # Windows + /// Start constructing a window. + /// + /// This, like many objects in the library, uses the builder + /// pattern to set optional arguments (like window size, flags, + /// etc). Once all desired options are set, you must call either + /// [`Window::build`] or [`Window::begin`] must be called to + /// actually create the window. + /// + /// # Examples + /// + /// Create a window using the closure based [`Window::build`]: + /// ```no_run + /// # let mut ctx = imgui::Context::create(); + /// # let ui = ctx.frame(); + /// ui.window("Example Window") + /// .size([100.0, 50.0], imgui::Condition::FirstUseEver) + /// .build(|| { + /// ui.text("An example"); + /// }); + /// ``` + pub fn window>(&'ui self, name: Label) -> Window<'ui, '_, Label> { + Window::new(self, name) + } + + /// Same as [`Ui::window`] but using the "token based" `.begin()` approach. + /// + /// ``` + /// fn example(ui: &imgui::Ui) { + /// let wt = ui.window("Example Window") + /// .size([100.0, 50.0], imgui::Condition::FirstUseEver) + /// .begin(); + /// if wt.is_some() { + /// ui.text("Window is visible"); + /// } + /// // Window ends where where wt is dropped, + /// // or you could call + /// wt.unwrap().end() + /// } + /// ``` + pub fn child_window>(&'ui self, name: Label) -> ChildWindow<'ui, Label> { + ChildWindow::new(self, name) + } +} + + // Widgets: Input impl<'ui> Ui<'ui> { #[doc(alias = "InputText", alias = "InputTextWithHint")] diff --git a/imgui/src/window/child_window.rs b/imgui/src/window/child_window.rs index 413c28f95..741c65749 100644 --- a/imgui/src/window/child_window.rs +++ b/imgui/src/window/child_window.rs @@ -1,15 +1,15 @@ use std::f32; -use std::os::raw::{c_char, c_void}; use crate::sys; use crate::window::WindowFlags; -use crate::{Id, Ui}; +use crate::Ui; /// Builder for a child window #[derive(Copy, Clone, Debug)] #[must_use] -pub struct ChildWindow<'a> { - id: Id<'a>, +pub struct ChildWindow<'ui, Label> { + ui: &'ui Ui<'ui>, + name: Label, flags: WindowFlags, size: [f32; 2], content_size: [f32; 2], @@ -18,12 +18,13 @@ pub struct ChildWindow<'a> { border: bool, } -impl<'a> ChildWindow<'a> { +impl<'ui, Label: AsRef> ChildWindow<'ui, Label> { /// Creates a new child window builder with the given ID #[doc(alias = "BeginChildID")] - pub fn new>>(id: T) -> ChildWindow<'a> { + pub fn new(ui: &'ui Ui<'ui>, name: Label) -> ChildWindow<'ui, Label> { ChildWindow { - id: id.into(), + ui, + name, flags: WindowFlags::empty(), size: [0.0, 0.0], content_size: [0.0, 0.0], @@ -245,7 +246,7 @@ impl<'a> ChildWindow<'a> { /// rendered, the token must be ended by calling `.end()`. /// /// Returns `None` if the window is not visible and no content should be rendered. - pub fn begin<'ui>(self, ui: &Ui<'ui>) -> Option> { + pub fn begin(self) -> Option> { if self.content_size[0] != 0.0 || self.content_size[1] != 0.0 { unsafe { sys::igSetNextWindowContentSize(self.content_size.into()) }; } @@ -255,22 +256,16 @@ impl<'a> ChildWindow<'a> { if self.bg_alpha.is_finite() { unsafe { sys::igSetNextWindowBgAlpha(self.bg_alpha) }; } - let id = unsafe { - match self.id { - Id::Int(i) => sys::igGetID_Ptr(i as *const c_void), - Id::Ptr(p) => sys::igGetID_Ptr(p), - Id::Str(s) => { - let start = s.as_ptr() as *const c_char; - let end = start.add(s.len()); - sys::igGetID_StrStr(start, end) - } - } - }; let should_render = unsafe { - sys::igBeginChild_ID(id, self.size.into(), self.border, self.flags.bits() as i32) + sys::igBeginChild_Str( + self.ui.scratch_txt(self.name), + self.size.into(), + self.border, + self.flags.bits() as i32, + ) }; if should_render { - Some(ChildWindowToken::new(ui)) + Some(ChildWindowToken::new(self.ui)) } else { unsafe { sys::igEndChild() }; None @@ -281,8 +276,8 @@ impl<'a> ChildWindow<'a> { /// /// Note: the closure is not called if no window content is visible (e.g. window is collapsed /// or fully clipped). - pub fn build T>(self, ui: &Ui<'_>, f: F) -> Option { - self.begin(ui).map(|_window| f()) + pub fn build T>(self, f: F) -> Option { + self.begin().map(|_window| f()) } } diff --git a/imgui/src/window/mod.rs b/imgui/src/window/mod.rs index 04161cd7a..a0f873cb4 100644 --- a/imgui/src/window/mod.rs +++ b/imgui/src/window/mod.rs @@ -160,8 +160,9 @@ impl<'ui> Ui<'ui> { /// Builder for a window #[derive(Debug)] #[must_use] -pub struct Window<'a, T> { - name: T, +pub struct Window<'ui, 'a, Label> { + ui: &'ui Ui<'ui>, + name: Label, opened: Option<&'a mut bool>, flags: WindowFlags, pos: [f32; 2], @@ -177,10 +178,11 @@ pub struct Window<'a, T> { bg_alpha: f32, } -impl<'a, T: AsRef> Window<'a, T> { - /// Creates a new window builder with the given name - pub fn new(name: T) -> Self { +impl<'ui, 'a, Label: AsRef> Window<'ui, 'a, Label> { + /// Typically created via [`Ui::window`] + pub fn new(ui: &'ui Ui<'ui>, name: Label) -> Self { Window { + ui, name, opened: None, flags: WindowFlags::empty(), @@ -487,7 +489,7 @@ impl<'a, T: AsRef> Window<'a, T> { /// /// Returns `None` if the window is not visible and no content should be rendered. #[must_use] - pub fn begin<'ui>(self, ui: &Ui<'ui>) -> Option> { + pub fn begin(self) -> Option> { if self.pos_cond != Condition::Never { unsafe { sys::igSetNextWindowPos( @@ -525,7 +527,7 @@ impl<'a, T: AsRef> Window<'a, T> { } let should_render = unsafe { sys::igBegin( - ui.scratch_txt(self.name), + self.ui.scratch_txt(self.name), self.opened .map(|x| x as *mut bool) .unwrap_or(ptr::null_mut()), @@ -533,7 +535,7 @@ impl<'a, T: AsRef> Window<'a, T> { ) }; if should_render { - Some(WindowToken::new(ui)) + Some(WindowToken::new(self.ui)) } else { unsafe { sys::igEnd() }; None @@ -542,10 +544,10 @@ impl<'a, T: AsRef> Window<'a, T> { /// Creates a window and runs a closure to construct the contents. /// Returns the result of the closure, if it is called. /// - /// Note: the closure is not called if no window content is visible (e.g. window is collapsed - /// or fully clipped). - pub fn build R>(self, ui: &Ui<'_>, f: F) -> Option { - self.begin(ui).map(|_window| f()) + /// Note: the closure is only called if the window content is + /// visible (e.g. will not run if window is collapsed). + pub fn build R>(self, f: F) -> Option { + self.begin().map(|_window| f()) } } From cc7ffbe351c0a1b23f0d98182dd734fa3abab6cf Mon Sep 17 00:00:00 2001 From: dbr Date: Sat, 25 Sep 2021 11:51:11 +1000 Subject: [PATCH 017/200] Update examples to ui.window(...) --- README.markdown | 4 +- imgui-examples/examples/collapsing_header.rs | 4 +- imgui-examples/examples/color_button.rs | 16 +++---- imgui-examples/examples/custom_textures.rs | 4 +- imgui-examples/examples/disablement.rs | 6 ++- imgui-examples/examples/draw_list.rs | 4 +- imgui-examples/examples/hello_world.rs | 4 +- imgui-examples/examples/keyboard.rs | 4 +- imgui-examples/examples/long_list.rs | 4 +- imgui-examples/examples/multiple_fonts.rs | 2 +- imgui-examples/examples/progress_bar.rs | 4 +- imgui-examples/examples/radio_button.rs | 12 ++--- imgui-examples/examples/slider.rs | 12 ++--- imgui-examples/examples/tables_api.rs | 4 +- imgui-examples/examples/test_window_impl.rs | 48 +++++++++---------- imgui-examples/examples/text_callbacks.rs | 4 +- .../examples/04_custom_textures.rs | 4 +- 17 files changed, 71 insertions(+), 69 deletions(-) diff --git a/README.markdown b/README.markdown index ad774f3f1..4cbc5bbe9 100644 --- a/README.markdown +++ b/README.markdown @@ -10,9 +10,9 @@ ![Hello world](hello_world.png) ```rust -Window::new("Hello world") +ui.window("Hello world") .size([300.0, 100.0], Condition::FirstUseEver) - .build(&ui, || { + .build(|| { ui.text("Hello world!"); ui.text("こんにちは世界!"); ui.text("This...is...imgui-rs!"); diff --git a/imgui-examples/examples/collapsing_header.rs b/imgui-examples/examples/collapsing_header.rs index 74873d7f6..66673987c 100644 --- a/imgui-examples/examples/collapsing_header.rs +++ b/imgui-examples/examples/collapsing_header.rs @@ -8,11 +8,11 @@ fn main() { }; let system = support::init(file!()); system.main_loop(move |run, ui| { - let w = Window::new("Collapsing header") + let w = ui.window("Collapsing header") .opened(run) .position([20.0, 20.0], Condition::Appearing) .size([700.0, 500.0], Condition::Appearing); - w.build(ui, || { + w.build(|| { if CollapsingHeader::new("I'm a collapsing header. Click me!").build(ui) { ui.text( "A collapsing header can be used to toggle rendering of a group of widgets", diff --git a/imgui-examples/examples/color_button.rs b/imgui-examples/examples/color_button.rs index 5c197462a..6a3ed0ad8 100644 --- a/imgui-examples/examples/color_button.rs +++ b/imgui-examples/examples/color_button.rs @@ -17,12 +17,12 @@ fn main() { } fn example_selector(run: &mut bool, ui: &mut Ui, state: &mut State) { - let w = Window::new("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) .resizable(false); - w.build(ui, || { + w.build(|| { let ex1 = ui.radio_button("Example 1: Basics", &mut state.example, 1); let ex2 = ui.radio_button("Example 2: Alpha component", &mut state.example, 2); let ex3 = ui.radio_button("Example 3: Input format", &mut state.example, 3); @@ -33,10 +33,10 @@ fn example_selector(run: &mut bool, ui: &mut Ui, state: &mut State) { } fn example_1(ui: &Ui, state: &mut State) { - let w = Window::new("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(ui, || { + w.build(|| { ui.text_wrapped( "Color button is a widget that displays a color value as a clickable rectangle. \ It also supports a tooltip with detailed information about the color value. \ @@ -73,10 +73,10 @@ fn example_1(ui: &Ui, state: &mut State) { } fn example_2(ui: &Ui) { - let w = Window::new("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(ui, || { + w.build(|| { ui.text_wrapped( "The displayed color is passed to the button as four float values between \ 0.0 - 1.0 (RGBA). If you don't care about the alpha component, it can be \ @@ -123,10 +123,10 @@ fn example_2(ui: &Ui) { } fn example_3(ui: &Ui) { - let w = Window::new("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(ui, || { + w.build(|| { ui.text("This button interprets the input value [1.0, 0.0, 0.0, 1.0] as RGB(A) (default):"); ColorButton::new("RGBA red", [1.0, 0.0, 0.0, 1.0]).build(ui); diff --git a/imgui-examples/examples/custom_textures.rs b/imgui-examples/examples/custom_textures.rs index a76b03fb0..6b8cfc575 100644 --- a/imgui-examples/examples/custom_textures.rs +++ b/imgui-examples/examples/custom_textures.rs @@ -78,9 +78,9 @@ impl CustomTexturesApp { } fn show_textures(&self, ui: &Ui) { - Window::new("Hello textures") + ui.window("Hello textures") .size([400.0, 400.0], Condition::FirstUseEver) - .build(ui, || { + .build(|| { ui.text("Hello textures!"); if let Some(my_texture_id) = self.my_texture_id { ui.text("Some generated texture"); diff --git a/imgui-examples/examples/disablement.rs b/imgui-examples/examples/disablement.rs index c5df984db..fa7dd7a3f 100644 --- a/imgui-examples/examples/disablement.rs +++ b/imgui-examples/examples/disablement.rs @@ -1,3 +1,5 @@ +//! Demonstrates disabling widgets. Prevents mouse interaction and greys out widgets + use imgui::*; mod support; @@ -11,9 +13,9 @@ fn main() { let mut click_count = 0; system.main_loop(move |_, ui| { - Window::new("Disabling widgets") + ui.window("Disabling widgets") .size([300.0, 200.0], Condition::FirstUseEver) - .build(ui, || { + .build(|| { ui.checkbox("Edit mode", &mut edit_mode); ui.checkbox("Safe mode", &mut safe_mode); diff --git a/imgui-examples/examples/draw_list.rs b/imgui-examples/examples/draw_list.rs index dfd91251c..f575e7768 100644 --- a/imgui-examples/examples/draw_list.rs +++ b/imgui-examples/examples/draw_list.rs @@ -57,10 +57,10 @@ fn main() { ); } - Window::new("Draw list") + ui.window("Draw list") .size([300.0, 110.0], Condition::FirstUseEver) .scroll_bar(false) - .build(ui, || { + .build(|| { ui.button("random button"); let draw_list = ui.get_window_draw_list(); let o = ui.cursor_screen_pos(); diff --git a/imgui-examples/examples/hello_world.rs b/imgui-examples/examples/hello_world.rs index 56eb77488..29f74edc1 100644 --- a/imgui-examples/examples/hello_world.rs +++ b/imgui-examples/examples/hello_world.rs @@ -7,9 +7,9 @@ fn main() { let mut value = 0; let choices = ["test test this is 1", "test test this is 2"]; system.main_loop(move |_, ui| { - Window::new("Hello world") + ui.window("Hello world") .size([300.0, 110.0], Condition::FirstUseEver) - .build(ui, || { + .build(|| { ui.text_wrapped("Hello world!"); ui.text_wrapped("こんにちは世界!"); if ui.button(choices[value]) { diff --git a/imgui-examples/examples/keyboard.rs b/imgui-examples/examples/keyboard.rs index d2d9c3f0a..a6aaa05c2 100644 --- a/imgui-examples/examples/keyboard.rs +++ b/imgui-examples/examples/keyboard.rs @@ -14,9 +14,9 @@ fn main() { let mut text_buffer = String::new(); system.main_loop(move |_, ui| { - Window::new("Means of accessing key state") + ui.window("Means of accessing key state") .size([500.0, 300.0], Condition::FirstUseEver) - .build(ui, || { + .build(|| { // You can check if a key is currently held down if ui.is_key_down(Key::A) { ui.text("The A key is down!"); diff --git a/imgui-examples/examples/long_list.rs b/imgui-examples/examples/long_list.rs index 8a745e6d2..2204c53ce 100644 --- a/imgui-examples/examples/long_list.rs +++ b/imgui-examples/examples/long_list.rs @@ -15,9 +15,9 @@ fn main() { let system = support::init(file!()); system.main_loop(move |_, ui| { - Window::new("Hello long world") + ui.window("Hello long world") .size([300.0, 110.0], Condition::FirstUseEver) - .build(ui, || { + .build(|| { let mut clipper = imgui::ListClipper::new(lots_of_words.len() as i32) .items_height(ui.current_font_size()) .begin(ui); diff --git a/imgui-examples/examples/multiple_fonts.rs b/imgui-examples/examples/multiple_fonts.rs index 5e0e927b9..4043c51fd 100644 --- a/imgui-examples/examples/multiple_fonts.rs +++ b/imgui-examples/examples/multiple_fonts.rs @@ -19,7 +19,7 @@ fn main() { .reload_font_texture(&mut system.imgui) .expect("Failed to reload fonts"); system.main_loop(move |run, ui| { - Window::new("Hello world").opened(run).build(ui, || { + ui.window("Hello world").opened(run).build(|| { ui.text("Hello, I'm the default font!"); let _roboto = ui.push_font(roboto); ui.text("Hello, I'm Roboto Regular!"); diff --git a/imgui-examples/examples/progress_bar.rs b/imgui-examples/examples/progress_bar.rs index 9d11746db..6915baace 100644 --- a/imgui-examples/examples/progress_bar.rs +++ b/imgui-examples/examples/progress_bar.rs @@ -5,11 +5,11 @@ mod support; fn main() { let system = support::init(file!()); system.main_loop(move |run, ui| { - let w = Window::new("Progress bar") + let w = ui.window("Progress bar") .opened(run) .position([20.0, 20.0], Condition::Appearing) .size([700.0, 200.0], Condition::Appearing); - w.build(ui, || { + w.build(|| { ui.text("This is a simple progress bar:"); ProgressBar::new(0.5).build(ui); diff --git a/imgui-examples/examples/radio_button.rs b/imgui-examples/examples/radio_button.rs index cb86a823e..d1cffae83 100644 --- a/imgui-examples/examples/radio_button.rs +++ b/imgui-examples/examples/radio_button.rs @@ -16,12 +16,12 @@ fn main() { } fn example_selector(run: &mut bool, ui: &mut Ui, state: &mut State) { - let w = Window::new("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) .resizable(false); - w.build(ui, || { + w.build(|| { let mut clicked = false; clicked |= ui.radio_button("Example 1: Boolean radio buttons", &mut state.example, 1); clicked |= ui.radio_button("Example 2: Radio buttons", &mut state.example, 2); @@ -32,10 +32,10 @@ fn example_selector(run: &mut bool, ui: &mut Ui, state: &mut State) { } fn example_1(ui: &Ui, state: &mut State) { - let w = Window::new("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(ui, || { + w.build(|| { ui.text_wrapped( "Boolean radio buttons accept a boolean active state, which is passed as a value and \ not as a mutable reference. This means that it's not updated automatically, so you \ @@ -58,10 +58,10 @@ fn example_1(ui: &Ui, state: &mut State) { } fn example_2(ui: &Ui, state: &mut State) { - let w = Window::new("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(ui, || { + w.build(|| { ui.text_wrapped( "Normal radio buttons accept a mutable reference to state, and the value \ corresponding to this button. They are very flexible, because the value can be any \ diff --git a/imgui-examples/examples/slider.rs b/imgui-examples/examples/slider.rs index e5e5bcc4d..d8605ce46 100644 --- a/imgui-examples/examples/slider.rs +++ b/imgui-examples/examples/slider.rs @@ -16,12 +16,12 @@ fn main() { } fn example_selector(run: &mut bool, ui: &mut Ui, state: &mut State) { - let w = Window::new("Slider examples") + let w = ui.window("Slider examples") .opened(run) .position([20.0, 20.0], Condition::Appearing) .size([700.0, 80.0], Condition::Appearing) .resizable(false); - w.build(ui, || { + w.build(|| { let mut clicked = false; clicked |= ui.radio_button("Example 1: Basic sliders", &mut state.example, 1); clicked |= ui.radio_button("Example 2: Slider arrays", &mut state.example, 2); @@ -32,10 +32,10 @@ fn example_selector(run: &mut bool, ui: &mut Ui, state: &mut State) { } fn example_1(ui: &Ui, state: &mut State) { - let w = Window::new("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(ui, || { + w.build(|| { ui.text("All of the following data types are supported:"); ui.text("Signed: i8 i16 i32 i64"); ui.text("Unsigned: u8 u16 u32 u64"); @@ -67,10 +67,10 @@ fn example_1(ui: &Ui, state: &mut State) { } fn example_2(ui: &Ui, state: &mut State) { - let w = Window::new("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(ui, || { + w.build(|| { ui.text("You can easily build a slider group from an array of values:"); Slider::new("[u8; 4]", 0, u8::MAX).build_array(ui, &mut state.array); diff --git a/imgui-examples/examples/tables_api.rs b/imgui-examples/examples/tables_api.rs index ae5c63eaf..47a1d7d66 100644 --- a/imgui-examples/examples/tables_api.rs +++ b/imgui-examples/examples/tables_api.rs @@ -29,9 +29,9 @@ fn main() { | TableFlags::NO_BORDERS_IN_BODY; system.main_loop(move |_, ui| { - Window::new("Input text callbacks") + ui.window("Input text callbacks") .size([800.0, 400.0], Condition::FirstUseEver) - .build(ui, || { + .build(|| { if let Some(_t) = ui.begin_table("Basic-Table", 3) { // we must also call `next_row` here, because we declined // to set up header rows. If we set up header rows ourselves, diff --git a/imgui-examples/examples/test_window_impl.rs b/imgui-examples/examples/test_window_impl.rs index f47c4a2a0..413e18ce4 100644 --- a/imgui-examples/examples/test_window_impl.rs +++ b/imgui-examples/examples/test_window_impl.rs @@ -286,15 +286,15 @@ fn show_test_window(ui: &Ui, state: &mut State, opened: &mut bool) { ui.show_metrics_window(&mut state.show_app_metrics); } if state.show_app_style_editor { - Window::new("Style Editor") + ui.window("Style Editor") .opened(&mut state.show_app_style_editor) - .build(ui, || ui.show_default_style_editor()); + .build(|| ui.show_default_style_editor()); } if state.show_app_about { - Window::new("About ImGui") + ui.window("About ImGui") .always_auto_resize(true) .opened(&mut state.show_app_about) - .build(ui, || { + .build(|| { ui.text(format!("dear imgui, {}", imgui::dear_imgui_version())); ui.separator(); ui.text("By Omar Cornut and all github contributors."); @@ -317,7 +317,7 @@ fn show_test_window(ui: &Ui, state: &mut State, opened: &mut bool) { show_app_log(ui, &mut state.app_log); } - let mut window = Window::new("ImGui Demo") + let mut window = ui.window("ImGui Demo") .title_bar(!state.no_titlebar) .resizable(!state.no_resize) .movable(!state.no_move) @@ -328,7 +328,7 @@ fn show_test_window(ui: &Ui, state: &mut State, opened: &mut bool) { if !state.no_close { window = window.opened(opened) } - window.build(ui, || { + window.build(|| { ui.push_item_width(-140.0); ui.text(format!("dear imgui says hello. ({})", imgui::dear_imgui_version())); if let Some(menu_bar) = ui.begin_menu_bar() { @@ -872,10 +872,10 @@ fn show_example_menu_file<'a>(ui: &Ui<'a>, state: &mut FileMenuState) { ui.separator(); if let Some(menu) = ui.begin_menu("Options") { MenuItem::new("Enabled").build_with_ref(ui, &mut state.enabled); - ChildWindow::new("child") + ui.child_window("child") .size([0.0, 60.0]) .border(true) - .build(ui, || { + .build(|| { for i in 0..10 { ui.text(format!("Scrolling Text {}", i)); } @@ -900,10 +900,10 @@ fn show_example_menu_file<'a>(ui: &Ui<'a>, state: &mut FileMenuState) { } fn show_example_app_auto_resize(ui: &Ui, state: &mut AutoResizeState, opened: &mut bool) { - Window::new("Example: Auto-resizing window") + ui.window("Example: Auto-resizing window") .opened(opened) .always_auto_resize(true) - .build(ui, || { + .build(|| { ui.text( "Window will resize every-ui to the size of its content. Note that you probably don't want to query the window size to @@ -920,7 +920,7 @@ fn show_example_app_fixed_overlay(ui: &Ui, opened: &mut bool) { const DISTANCE: f32 = 10.0; let window_pos = [DISTANCE, DISTANCE]; let style = ui.push_style_color(StyleColor::WindowBg, [0.0, 0.0, 0.0, 0.3]); - Window::new("Example: Fixed Overlay") + ui.window("Example: Fixed Overlay") .opened(opened) .position(window_pos, Condition::Always) .title_bar(false) @@ -928,7 +928,7 @@ fn show_example_app_fixed_overlay(ui: &Ui, opened: &mut bool) { .always_auto_resize(true) .movable(false) .save_settings(false) - .build(ui, || { + .build(|| { ui.text( "Simple overlay\nin the corner of the screen.\n(right-click to change position)", ); @@ -943,17 +943,17 @@ fn show_example_app_fixed_overlay(ui: &Ui, opened: &mut bool) { } fn show_example_app_manipulating_window_title(ui: &Ui) { - Window::new("Same title as another window##1") + ui.window("Same title as another window##1") .position([100.0, 100.0], Condition::FirstUseEver) - .build(ui, || { + .build(|| { ui.text( "This is window 1. My title is the same as window 2, but my identifier is unique.", ); }); - Window::new("Same title as another window##2") + ui.window("Same title as another window##2") .position([100.0, 200.0], Condition::FirstUseEver) - .build(ui, || { + .build(|| { ui.text( "This is window 2. My title is the same as window 1, but my identifier is unique.", @@ -963,16 +963,16 @@ My title is the same as window 1, but my identifier is unique.", let ch_idx = (ui.time() / 0.25) as usize & 3; let num = ui.frame_count(); // The C++ version uses rand() here let title = format!("Animated title {} {}###AnimatedTitle", chars[ch_idx], num); - Window::new(title) + ui.window(title) .position([100.0, 300.0], Condition::FirstUseEver) - .build(ui, || ui.text("This window has a changing title")); + .build(|| ui.text("This window has a changing title")); } fn show_example_app_custom_rendering(ui: &Ui, state: &mut CustomRenderingState, opened: &mut bool) { - Window::new("Example: Custom rendering") + ui.window("Example: Custom rendering") .size([350.0, 560.0], Condition::FirstUseEver) .opened(opened) - .build(ui, || { + .build(|| { ui.text("Primitives"); // TODO: Add DragFloat to change value of sz ColorEdit::new("Color", &mut state.col).build(ui); @@ -1217,9 +1217,9 @@ fn show_example_app_custom_rendering(ui: &Ui, state: &mut CustomRenderingState, } fn show_app_log(ui: &Ui, app_log: &mut Vec) { - Window::new("Example: Log") + ui.window("Example: Log") .size([500.0, 400.0], Condition::FirstUseEver) - .build(ui, || { + .build(|| { if ui.small_button("[Debug] Add 5 entries") { let categories = ["info", "warn", "error"]; let words = [ @@ -1251,9 +1251,9 @@ fn show_app_log(ui: &Ui, app_log: &mut Vec) { ui.set_clipboard_text(&ImString::from(app_log.join("\n"))); } ui.separator(); - ChildWindow::new("logwindow") + ui.child_window("logwindow") .flags(WindowFlags::HORIZONTAL_SCROLLBAR) - .build(ui, || { + .build(|| { if !app_log.is_empty() { let mut clipper = ListClipper::new(app_log.len() as i32).begin(ui); while clipper.step() { diff --git a/imgui-examples/examples/text_callbacks.rs b/imgui-examples/examples/text_callbacks.rs index 4adcb4aed..348ea28d0 100644 --- a/imgui-examples/examples/text_callbacks.rs +++ b/imgui-examples/examples/text_callbacks.rs @@ -7,9 +7,9 @@ fn main() { let mut buffers = vec![String::default(), String::default(), String::default()]; system.main_loop(move |_, ui| { - Window::new("Input text callbacks") + ui.window("Input text callbacks") .size([500.0, 300.0], Condition::FirstUseEver) - .build(ui, || { + .build(|| { ui.text("You can make a variety of buffer callbacks on an Input Text"); ui.text( "or on an InputTextMultiline. In this example, we'll use \ diff --git a/imgui-glow-renderer/examples/04_custom_textures.rs b/imgui-glow-renderer/examples/04_custom_textures.rs index efca79c08..70e4d95f4 100644 --- a/imgui-glow-renderer/examples/04_custom_textures.rs +++ b/imgui-glow-renderer/examples/04_custom_textures.rs @@ -144,9 +144,9 @@ impl TexturesUi { } fn show(&self, ui: &imgui::Ui) { - imgui::Window::new("Hello textures") + ui.window("Hello textures") .size([400.0, 400.0], Condition::FirstUseEver) - .build(ui, || { + .build(|| { ui.text("Hello textures!"); ui.text("Some generated texture"); imgui::Image::new(self.generated_texture, [100.0, 100.0]).build(ui); From 7953c4858b3a812adb80ec8cf38813a8a41c3ff8 Mon Sep 17 00:00:00 2001 From: dbr Date: Sat, 25 Sep 2021 11:52:36 +1000 Subject: [PATCH 018/200] More words in doc of imgui::Condition Mainly to try and clarify difference between Once/FirstUseEver --- imgui/src/lib.rs | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/imgui/src/lib.rs b/imgui/src/lib.rs index 8b472dbea..cb3f79e43 100644 --- a/imgui/src/lib.rs +++ b/imgui/src/lib.rs @@ -771,15 +771,20 @@ impl<'ui> Ui<'ui> { pub enum Condition { /// Never apply the setting Never = -1, - /// Always apply the setting + + /// Apply the setting every frame Always = sys::ImGuiCond_Always as i8, - /// Apply the setting once per runtime session (only the first call will succeed) + + /// Apply the setting once per runtime session (only the first + /// call will succeed). Will ignore any setting saved in `.ini` Once = sys::ImGuiCond_Once as i8, - /// Apply the setting if the object/window has no persistently saved data (no entry in .ini - /// file) + + /// Apply the setting if the object/window has no persistently + /// saved data (but otherwise use the setting from the .ini file) FirstUseEver = sys::ImGuiCond_FirstUseEver as i8, - /// Apply the setting if the object/window is appearing after being hidden/inactive (or the - /// first time) + + /// Apply the setting if the object/window is appearing after + /// being hidden/inactive (or the first time) Appearing = sys::ImGuiCond_Appearing as i8, } From 54598aa24d6348a6bfd288f2190a3c1b1dedda06 Mon Sep 17 00:00:00 2001 From: dbr Date: Sat, 25 Sep 2021 12:21:47 +1000 Subject: [PATCH 019/200] Example showing various methods of creating windows - ui.window(...).build() versus ui.window.begin() - ui.child_window(...) --- imgui-examples/examples/creating_windows.rs | 69 +++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 imgui-examples/examples/creating_windows.rs diff --git a/imgui-examples/examples/creating_windows.rs b/imgui-examples/examples/creating_windows.rs new file mode 100644 index 000000000..f4c81c3e4 --- /dev/null +++ b/imgui-examples/examples/creating_windows.rs @@ -0,0 +1,69 @@ +mod support; + +fn main() { + let system = support::init(file!()); + + system.main_loop(move |_, ui| { + // If we don't explicitly create a window before creating some kind of widget, then Dear Imgui will automatically create one + ui.text("This text will appear in a default window titled 'Debug'"); + + // However, in almost all cases it's best to make a window, so it has a useful title etc + + // 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.text("This content appears in a window"); + + // Everything in this callback appears in the window, like this button: + ui.button("This button"); + }); + + // Often the callback approach is most convenient, however occasionally the callbacks can be hard to use. + // 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 { + // If the token is Some(...) then the window contents are visible, so we need to draw them! + ui.text("Window contents!") + } + + // 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.."); + + // 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.child_window("Child window") + .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"); + } + }); + }); + }); +} From db5953a10c530e1a82ea2f0242be2047483655ae Mon Sep 17 00:00:00 2001 From: dbr Date: Sat, 25 Sep 2021 12:49:34 +1000 Subject: [PATCH 020/200] Docs on push_id --- imgui/src/stacks.rs | 72 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/imgui/src/stacks.rs b/imgui/src/stacks.rs index b507741d7..0204a9752 100644 --- a/imgui/src/stacks.rs +++ b/imgui/src/stacks.rs @@ -448,9 +448,81 @@ impl IdStackToken<'_> { /// # ID stack impl<'ui> Ui<'ui> { /// Pushes an identifier to the ID stack. + /// This can be called with an integer, a string, or a pointer. /// /// Returns an `IdStackToken` that can be popped by calling `.end()` /// or by dropping manually. + /// + /// # Examples + /// Dear ImGui uses labels to uniquely identify widgets. For a good explaination, see this part of the [Dear ImGui FAQ][faq] + /// + /// [faq]: https://github.com/ocornut/imgui/blob/v1.84.2/docs/FAQ.md#q-why-is-my-widget-not-reacting-when-i-click-on-it + /// + /// In `imgui-rs` the same applies, we can manually specify labels with the `##` syntax: + /// + /// ```no_run + /// # let mut imgui = imgui::Context::create(); + /// # let ui = imgui.frame(); + /// + /// ui.button("Click##button1"); + /// ui.button("Click##button2"); + /// ``` + /// + /// Here `Click` is the label used for both buttons, and everything after `##` is used as the identifier. + /// + /// However when you either have many items (say, created in a loop), we can use our loop number as an item in the "ID stack": + /// + /// ```no_run + /// # let mut imgui = imgui::Context::create(); + /// # let ui = imgui.frame(); + /// + /// ui.window("Example").build(|| { + /// // The window adds "Example" to the token stack. + /// for num in 0..10 { + /// // And now we add the loop number to the stack too, + /// // to make our buttons unique within this window. + /// let _id = ui.push_id(num); + /// if ui.button("Click!") { + /// println!("Button {} clicked", num); + /// } + /// } + /// }); + /// ``` + /// + /// We don't have to use numbers - strings also work: + /// + /// ```no_run + /// # let mut imgui = imgui::Context::create(); + /// # let ui = imgui.frame(); + /// + /// fn callback1(ui: &imgui::Ui) { + /// if ui.button("Click") { + /// println!("First button clicked") + /// } + /// } + /// + /// fn callback2(ui: &imgui::Ui) { + /// if ui.button("Click") { + /// println!("Second button clicked") + /// } + /// } + /// + /// ui.window("Example") + /// .build(||{ + /// { + /// // Since we don't know what callback1 might do, we create + /// // a unique ID stack by pushing (a hash of) "first" to the ID stack: + /// let _id1 = ui.push_id("first"); + /// callback1(&ui); + /// } + /// { + /// // Same for second callback. If we didn't do this, clicking the "Click" button + /// // would trigger both println statements! + /// let _id2 = ui.push_id("second"); + /// callback2(&ui); + /// } + /// }); + /// ``` #[doc(alias = "PushId")] pub fn push_id<'a, I: Into>>(&self, id: I) -> IdStackToken<'ui> { let id = id.into(); From 9eb6b410b46d8e728784cb333b3ed4b907ff4e55 Mon Sep 17 00:00:00 2001 From: dbr Date: Sat, 25 Sep 2021 13:02:51 +1000 Subject: [PATCH 021/200] Example for push_id --- imgui-examples/examples/id_wrangling.rs | 46 +++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 imgui-examples/examples/id_wrangling.rs diff --git a/imgui-examples/examples/id_wrangling.rs b/imgui-examples/examples/id_wrangling.rs new file mode 100644 index 000000000..e09d7b92e --- /dev/null +++ b/imgui-examples/examples/id_wrangling.rs @@ -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); + } + } + } + }); + + }); +} From 82ad7091672044294911a83e4001d1b37fe44bc0 Mon Sep 17 00:00:00 2001 From: dbr Date: Sat, 25 Sep 2021 13:03:06 +1000 Subject: [PATCH 022/200] fmt --- imgui-examples/examples/collapsing_header.rs | 3 +- imgui-examples/examples/color_button.rs | 12 +++-- imgui-examples/examples/creating_windows.rs | 52 +++++++++--------- imgui-examples/examples/id_wrangling.rs | 57 ++++++++++---------- imgui-examples/examples/progress_bar.rs | 3 +- imgui-examples/examples/radio_button.rs | 9 ++-- imgui-examples/examples/slider.rs | 9 ++-- imgui-examples/examples/test_window_impl.rs | 3 +- imgui/src/lib.rs | 1 - imgui/src/stacks.rs | 6 +-- 10 files changed, 82 insertions(+), 73 deletions(-) diff --git a/imgui-examples/examples/collapsing_header.rs b/imgui-examples/examples/collapsing_header.rs index 66673987c..d7fc86f33 100644 --- a/imgui-examples/examples/collapsing_header.rs +++ b/imgui-examples/examples/collapsing_header.rs @@ -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); diff --git a/imgui-examples/examples/color_button.rs b/imgui-examples/examples/color_button.rs index 6a3ed0ad8..b8f04840d 100644 --- a/imgui-examples/examples/color_button.rs +++ b/imgui-examples/examples/color_button.rs @@ -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(|| { diff --git a/imgui-examples/examples/creating_windows.rs b/imgui-examples/examples/creating_windows.rs index f4c81c3e4..7f58f2d9e 100644 --- a/imgui-examples/examples/creating_windows.rs +++ b/imgui-examples/examples/creating_windows.rs @@ -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"); + } + }); }); }); } diff --git a/imgui-examples/examples/id_wrangling.rs b/imgui-examples/examples/id_wrangling.rs index e09d7b92e..fbd0deda6 100644 --- a/imgui-examples/examples/id_wrangling.rs +++ b/imgui-examples/examples/id_wrangling.rs @@ -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); + } } } - } - }); - + }); }); } diff --git a/imgui-examples/examples/progress_bar.rs b/imgui-examples/examples/progress_bar.rs index 6915baace..81011d87f 100644 --- a/imgui-examples/examples/progress_bar.rs +++ b/imgui-examples/examples/progress_bar.rs @@ -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); diff --git a/imgui-examples/examples/radio_button.rs b/imgui-examples/examples/radio_button.rs index d1cffae83..20859b42b 100644 --- a/imgui-examples/examples/radio_button.rs +++ b/imgui-examples/examples/radio_button.rs @@ -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(|| { diff --git a/imgui-examples/examples/slider.rs b/imgui-examples/examples/slider.rs index d8605ce46..07b4072c4 100644 --- a/imgui-examples/examples/slider.rs +++ b/imgui-examples/examples/slider.rs @@ -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(|| { diff --git a/imgui-examples/examples/test_window_impl.rs b/imgui-examples/examples/test_window_impl.rs index 413e18ce4..f08300d44 100644 --- a/imgui-examples/examples/test_window_impl.rs +++ b/imgui-examples/examples/test_window_impl.rs @@ -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) diff --git a/imgui/src/lib.rs b/imgui/src/lib.rs index cb3f79e43..fa7f727e5 100644 --- a/imgui/src/lib.rs +++ b/imgui/src/lib.rs @@ -360,7 +360,6 @@ impl<'ui> Ui<'ui> { } } - // Widgets: Input impl<'ui> Ui<'ui> { #[doc(alias = "InputText", alias = "InputTextWithHint")] diff --git a/imgui/src/stacks.rs b/imgui/src/stacks.rs index 0204a9752..6a1e9f7ad 100644 --- a/imgui/src/stacks.rs +++ b/imgui/src/stacks.rs @@ -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(||{ /// { From c68632d9e4806d4f6df7fc6ec02e58b85aa573e4 Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Sat, 25 Sep 2021 12:47:28 -0400 Subject: [PATCH 023/200] removed min const generics feature --- CHANGELOG.markdown | 4 ++++ imgui/Cargo.toml | 3 --- imgui/src/tables.rs | 13 ++----------- 3 files changed, 6 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown index 4849440d6..2250024aa 100644 --- a/CHANGELOG.markdown +++ b/CHANGELOG.markdown @@ -1,5 +1,9 @@ # Change Log +## Unreleased + +- MSRV is now **1.54**. We soft-updated to this in 0.8.0 with a feature `min-const-generics`, which has now been removed (and as such, we resume having no default features). + ## [0.8.0] - 2021-09-17 Welcome to the `0.8.0` update. This is one of the largest updates imgui-rs has ever seen; it will generate errors in a `0.7` project, but hopefully it should be both quick to fix, and enjoyable to update. See our [release page](https://github.com/imgui-rs/imgui-rs/releases/tag/v0.8.0) for more information and a list of contributors to this cycle. Thank you to everyone who uses `imgui-rs`, files issues, and spend their time and effort to PR new changes into the codebase. Because of all that effort, this is by far the best `imgui-rs` has looked! diff --git a/imgui/Cargo.toml b/imgui/Cargo.toml index d57114277..b2d5e283c 100644 --- a/imgui/Cargo.toml +++ b/imgui/Cargo.toml @@ -18,11 +18,8 @@ imgui-sys = { version = "0.8.1-alpha.0", path = "../imgui-sys" } parking_lot = "0.11" [features] -default = ["min-const-generics"] - wasm = ["imgui-sys/wasm"] freetype = ["imgui-sys/freetype"] -min-const-generics = [] # this api is in beta in the upstream imgui crate. See issue #524 for more info. # it should be stable and fine to use though. tables-api = [] diff --git a/imgui/src/tables.rs b/imgui/src/tables.rs index 4909da7f3..ebd52dd63 100644 --- a/imgui/src/tables.rs +++ b/imgui/src/tables.rs @@ -303,7 +303,7 @@ impl<'ui> Ui<'ui> { outer_size: [f32; 2], inner_width: f32, ) -> Option> { - let should_render = unsafe { + unsafe { sys::igBeginTable( self.scratch_txt(str_id), column as i32, @@ -311,13 +311,7 @@ impl<'ui> Ui<'ui> { outer_size.into(), inner_width, ) - }; - - // todo: once msrv is 1.54, convert this to .then(||) - if should_render { - Some(TableToken::new(self)) - } else { - None + .then(|| TableToken::new(self)) } } @@ -325,7 +319,6 @@ impl<'ui> Ui<'ui> { /// /// Takes an array of table header information, the length of which determines /// how many columns will be created. - #[cfg(feature = "min-const-generics")] #[must_use = "if return is dropped immediately, table is ended immediately."] pub fn begin_table_header<'a, Name: AsRef, const N: usize>( &self, @@ -339,7 +332,6 @@ impl<'ui> Ui<'ui> { /// /// Takes an array of table header information, the length of which determines /// how many columns will be created. - #[cfg(feature = "min-const-generics")] #[must_use = "if return is dropped immediately, table is ended immediately."] pub fn begin_table_header_with_flags<'a, Name: AsRef, const N: usize>( &self, @@ -354,7 +346,6 @@ impl<'ui> Ui<'ui> { /// and gives users the most flexibility. /// Takes an array of table header information, the length of which determines /// how many columns will be created. - #[cfg(feature = "min-const-generics")] #[must_use = "if return is dropped immediately, table is ended immediately."] pub fn begin_table_header_with_sizing<'a, Name: AsRef, const N: usize>( &self, From 1082a29a379f3a7a72b57d17ee5f549398b53425 Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Sat, 25 Sep 2021 12:57:52 -0400 Subject: [PATCH 024/200] removed push style color multiple, which was silly --- CHANGELOG.markdown | 2 ++ imgui/src/stacks.rs | 36 +----------------------------------- 2 files changed, 3 insertions(+), 35 deletions(-) diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown index 2250024aa..8f2fd5057 100644 --- a/CHANGELOG.markdown +++ b/CHANGELOG.markdown @@ -4,6 +4,8 @@ - MSRV is now **1.54**. We soft-updated to this in 0.8.0 with a feature `min-const-generics`, which has now been removed (and as such, we resume having no default features). +- BREAKING: Removed `push_style_colors`. Instead, use `push_style_color` in a loop. This was deprecated in `0.7.0` and should have been removed in `0.8.0`. + ## [0.8.0] - 2021-09-17 Welcome to the `0.8.0` update. This is one of the largest updates imgui-rs has ever seen; it will generate errors in a `0.7` project, but hopefully it should be both quick to fix, and enjoyable to update. See our [release page](https://github.com/imgui-rs/imgui-rs/releases/tag/v0.8.0) for more information and a list of contributors to this cycle. Thank you to everyone who uses `imgui-rs`, files issues, and spend their time and effort to PR new changes into the codebase. Because of all that effort, this is by far the best `imgui-rs` has looked! diff --git a/imgui/src/stacks.rs b/imgui/src/stacks.rs index b507741d7..65c1c1a32 100644 --- a/imgui/src/stacks.rs +++ b/imgui/src/stacks.rs @@ -68,41 +68,7 @@ impl<'ui> Ui<'ui> { ColorStackToken::new(self) } - /// Changes style colors by pushing several changes to the color stack. - /// - /// Returns a `ColorStackToken` that must be popped by calling `.pop()` - /// - /// # Examples - /// - /// ```no_run - /// # use imgui::*; - /// # let mut ctx = Context::create(); - /// # let ui = ctx.frame(); - /// const RED: [f32; 4] = [1.0, 0.0, 0.0, 1.0]; - /// const GREEN: [f32; 4] = [0.0, 1.0, 0.0, 1.0]; - /// let colors = ui.push_style_colors(&[ - /// (StyleColor::Text, RED), - /// (StyleColor::TextDisabled, GREEN), - /// ]); - /// ui.text("I'm red!"); - /// ui.text_disabled("I'm green!"); - /// colors.pop(&ui); - /// ``` - #[deprecated = "deprecated in 0.7.0. Use `push_style_color` multiple times for similar effect."] - pub fn push_style_colors<'a, I>(&self, style_colors: I) -> MultiColorStackToken - where - I: IntoIterator, - { - let mut count = 0; - for &(style_color, color) in style_colors { - unsafe { sys::igPushStyleColor_Vec4(style_color as i32, color.into()) }; - count += 1; - } - MultiColorStackToken { - count, - ctx: self.ctx, - } - } + /// Changes a style variable by pushing a change to the style stack. /// /// Returns a `StyleStackToken` that can be popped by calling `.end()` From 9417eb4c42abad582b16f88af844e39ead5ae7b3 Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Sat, 25 Sep 2021 13:06:31 -0400 Subject: [PATCH 025/200] removed the other deprecation --- CHANGELOG.markdown | 2 +- imgui/src/stacks.rs | 83 --------------------------------------------- 2 files changed, 1 insertion(+), 84 deletions(-) diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown index 8f2fd5057..c89367bcd 100644 --- a/CHANGELOG.markdown +++ b/CHANGELOG.markdown @@ -4,7 +4,7 @@ - MSRV is now **1.54**. We soft-updated to this in 0.8.0 with a feature `min-const-generics`, which has now been removed (and as such, we resume having no default features). -- BREAKING: Removed `push_style_colors`. Instead, use `push_style_color` in a loop. This was deprecated in `0.7.0` and should have been removed in `0.8.0`. +- BREAKING: Removed `push_style_colors` and `push_style_vars`. Instead, use `push_style_color` in a loop. This was deprecated in `0.7.0` and should have been removed in `0.8.0`. This also removes their associated tokens. ## [0.8.0] - 2021-09-17 diff --git a/imgui/src/stacks.rs b/imgui/src/stacks.rs index 65c1c1a32..a2037aa24 100644 --- a/imgui/src/stacks.rs +++ b/imgui/src/stacks.rs @@ -1,7 +1,6 @@ use std::mem; use std::os::raw::{c_char, c_void}; use std::ptr; -use std::thread; use crate::context::Context; use crate::fonts::atlas::FontId; @@ -68,7 +67,6 @@ impl<'ui> Ui<'ui> { ColorStackToken::new(self) } - /// Changes a style variable by pushing a change to the style stack. /// /// Returns a `StyleStackToken` that can be popped by calling `.end()` @@ -89,39 +87,6 @@ impl<'ui> Ui<'ui> { unsafe { push_style_var(style_var) }; StyleStackToken::new(self) } - /// Changes style variables by pushing several changes to the style stack. - /// - /// Returns a `StyleStackToken` that must be popped by calling `.pop()` - /// - /// # Examples - /// - /// ```no_run - /// # use imgui::*; - /// # let mut ctx = Context::create(); - /// # let ui = ctx.frame(); - /// let styles = ui.push_style_vars(&[ - /// StyleVar::Alpha(0.2), - /// StyleVar::ItemSpacing([50.0, 50.0]) - /// ]); - /// ui.text("We're transparent..."); - /// ui.text("...with large spacing as well"); - /// styles.pop(&ui); - /// ``` - #[deprecated = "deprecated in 0.7.0. Use `push_style_var` multiple times for similar effect."] - pub fn push_style_vars<'a, I>(&self, style_vars: I) -> MultiStyleStackToken - where - I: IntoIterator, - { - let mut count = 0; - for &style_var in style_vars { - unsafe { push_style_var(style_var) }; - count += 1; - } - MultiStyleStackToken { - count, - ctx: self.ctx, - } - } } create_token!( @@ -156,30 +121,6 @@ impl ColorStackToken<'_> { } } -/// Tracks one or more changes pushed to the color stack that must be popped by calling `.pop()` -#[must_use] -pub struct MultiColorStackToken { - count: usize, - ctx: *const Context, -} - -impl MultiColorStackToken { - /// Pops changes from the color stack - #[doc(alias = "PopStyleColor")] - pub fn pop(mut self, _: &Ui<'_>) { - self.ctx = ptr::null(); - unsafe { sys::igPopStyleColor(self.count as i32) }; - } -} - -impl Drop for MultiColorStackToken { - fn drop(&mut self) { - if !self.ctx.is_null() && !thread::panicking() { - panic!("A ColorStackToken was leaked. Did you call .pop()?"); - } - } -} - create_token!( /// Tracks a style pushed to the style stack that can be popped by calling `.end()` /// or by dropping. @@ -196,30 +137,6 @@ impl StyleStackToken<'_> { } } -/// Tracks one or more changes pushed to the style stack that must be popped by calling `.pop()` -#[must_use] -pub struct MultiStyleStackToken { - count: usize, - ctx: *const Context, -} - -impl MultiStyleStackToken { - /// Pops changes from the style stack - #[doc(alias = "PopStyleVar")] - pub fn pop(mut self, _: &Ui<'_>) { - self.ctx = ptr::null(); - unsafe { sys::igPopStyleVar(self.count as i32) }; - } -} - -impl Drop for MultiStyleStackToken { - fn drop(&mut self) { - if !self.ctx.is_null() && !thread::panicking() { - panic!("A StyleStackToken was leaked. Did you call .pop()?"); - } - } -} - #[inline] unsafe fn push_style_var(style_var: StyleVar) { use crate::style::StyleVar::*; From 5cf67c22d423559b6d0f0e67e92083db39c27ed4 Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Tue, 28 Sep 2021 11:09:10 -0400 Subject: [PATCH 026/200] the input widget may have had an incorrect text callback. this should fix that --- imgui/src/input_widget.rs | 69 ++++++++++++++++++++------------------- 1 file changed, 35 insertions(+), 34 deletions(-) diff --git a/imgui/src/input_widget.rs b/imgui/src/input_widget.rs index a97252089..ae6b61866 100644 --- a/imgui/src/input_widget.rs +++ b/imgui/src/input_widget.rs @@ -689,25 +689,25 @@ pub trait InputTextCallbackHandler { /// /// To make ImGui run this callback, use [InputTextCallback::COMPLETION] or /// [InputTextMultilineCallback::COMPLETION]. - fn on_completion(&mut self, _: TextCallbackData<'_>) {} + fn on_completion(&mut self, _: TextCallbackData) {} /// Allows one to edit the inner buffer whenever the buffer has been changed. /// /// To make ImGui run this callback, use [InputTextCallback::EDIT] or /// [InputTextMultilineCallback::EDIT]. - fn on_edit(&mut self, _: TextCallbackData<'_>) {} + fn on_edit(&mut self, _: TextCallbackData) {} /// A callback when one of the direction keys have been pressed. /// /// To make ImGui run this callback, use [InputTextCallback::HISTORY]. It appears /// that this callback will not be ran in a multiline input widget at all. - fn on_history(&mut self, _: HistoryDirection, _: TextCallbackData<'_>) {} + fn on_history(&mut self, _: HistoryDirection, _: TextCallbackData) {} /// A callback which will always fire, each tick. /// /// To make ImGui run this callback, use [InputTextCallback::ALWAYS] or /// [InputTextMultilineCallback::ALWAYS]. - fn on_always(&mut self, _: TextCallbackData<'_>) {} + fn on_always(&mut self, _: TextCallbackData) {} } /// The arrow key a user pressed to trigger the `on_history` callback. @@ -720,11 +720,11 @@ pub enum HistoryDirection { /// This struct provides methods to edit the underlying text buffer that /// Dear ImGui manipulates. Primarily, it gives [remove_chars](Self::remove_chars), /// [insert_chars](Self::insert_chars), and mutable access to what text is selected. -pub struct TextCallbackData<'a>(&'a mut sys::ImGuiInputTextCallbackData); +pub struct TextCallbackData(*mut sys::ImGuiInputTextCallbackData); -impl<'a> TextCallbackData<'a> { +impl TextCallbackData { /// Creates the buffer. - unsafe fn new(data: &'a mut sys::ImGuiInputTextCallbackData) -> Self { + unsafe fn new(data: *mut sys::ImGuiInputTextCallbackData) -> Self { Self(data) } @@ -732,8 +732,8 @@ impl<'a> TextCallbackData<'a> { pub fn str(&self) -> &str { unsafe { std::str::from_utf8(std::slice::from_raw_parts( - self.0.Buf as *const _, - self.0.BufTextLen as usize, + (*(self.0)).Buf as *const _, + (*(self.0)).BufTextLen as usize, )) .expect("internal imgui error -- it boofed a utf8") } @@ -760,8 +760,8 @@ impl<'a> TextCallbackData<'a> { /// [push_str]: Self::push_str pub unsafe fn str_as_bytes_mut(&mut self) -> &mut [u8] { let str = std::str::from_utf8_mut(std::slice::from_raw_parts_mut( - self.0.Buf as *const _ as *mut _, - self.0.BufTextLen as usize, + (*(self.0)).Buf as *const _ as *mut _, + (*(self.0)).BufTextLen as usize, )) .expect("internal imgui error -- it boofed a utf8"); @@ -780,7 +780,9 @@ impl<'a> TextCallbackData<'a> { /// [remove_chars]: Self::remove_chars /// [insert_chars]: Self::insert_chars pub fn set_dirty(&mut self) { - self.0.BufDirty = true; + unsafe { + (*(self.0)).BufDirty = true; + } } /// Gets a range of the selected text. See [selection_start_mut](Self::selection_start_mut) @@ -789,7 +791,7 @@ impl<'a> TextCallbackData<'a> { /// This Range is given in `usize` so that it might be used in indexing /// operations more easily. To quickly grab the selected text, use [selected](Self::selected). pub fn selection(&self) -> Range { - self.0.SelectionStart as usize..self.0.SelectionEnd as usize + unsafe { (*(self.0)).SelectionStart as usize..(*(self.0)).SelectionEnd as usize } } /// Returns the selected text directly. Note that if no text is selected, @@ -823,7 +825,7 @@ impl<'a> TextCallbackData<'a> { pub fn push_str(&mut self, s: &str) { // this is safe because the ench of a self.str is a char_boundary. unsafe { - self.insert_chars_unsafe(self.0.BufTextLen as usize, s); + self.insert_chars_unsafe((*self.0).BufTextLen as usize, s); } } @@ -863,7 +865,7 @@ impl<'a> TextCallbackData<'a> { /// Clears the string to an empty buffer. pub fn clear(&mut self) { unsafe { - self.remove_chars_unchecked(0, self.0.BufTextLen as usize); + self.remove_chars_unchecked(0, (*self.0).BufTextLen as usize); } } @@ -899,28 +901,30 @@ impl<'a> TextCallbackData<'a> { /// Get a reference to the text callback buffer's cursor pos. pub fn cursor_pos(&self) -> usize { - self.0.CursorPos as usize + unsafe { (*self.0).CursorPos as usize } } /// Set the text callback buffer's cursor pos. pub fn set_cursor_pos(&mut self, cursor_pos: usize) { - self.0.CursorPos = cursor_pos as i32; + unsafe { + (*self.0).CursorPos = cursor_pos as i32; + } } /// Get a mutable reference to the text callback buffer's selection start. pub fn selection_start_mut(&mut self) -> &mut i32 { - &mut self.0.SelectionStart + unsafe { &mut (*self.0).SelectionStart } } /// Get a mutable reference to the text callback buffer's selection end.. pub fn selection_end_mut(&mut self) -> &mut i32 { - &mut self.0.SelectionEnd + unsafe { &mut (*self.0).SelectionEnd } } } #[repr(C)] -struct UserData<'a, T> { - container: &'a mut String, +struct UserData { + container: *mut String, cback_handler: T, } @@ -930,13 +934,13 @@ extern "C" fn callback( ) -> c_int { struct CallbackData<'a, T> { event_flag: InputTextFlags, - user_data: &'a mut UserData<'a, T>, + user_data: &'a mut UserData, } let callback_data = unsafe { CallbackData { event_flag: InputTextFlags::from_bits((*data).EventFlag as u32).unwrap(), - user_data: &mut *((*data).UserData as *mut UserData<'_, T>), + user_data: &mut *((*data).UserData as *mut UserData), } }; @@ -960,22 +964,19 @@ extern "C" fn callback( } InputTextFlags::CALLBACK_RESIZE => { unsafe { - let requested_size = (*data).BufTextLen as usize; + let requested_size = (*data).BufSize as usize; + let buffer = &mut *callback_data.user_data.container; // just confirm that we ARE working with our string. - debug_assert_eq!( - callback_data.user_data.container.as_ptr() as *const _, - (*data).Buf - ); + debug_assert_eq!(buffer.as_ptr() as *const _, (*data).Buf); + + if requested_size > buffer.capacity() { + let additional_bytes = requested_size - buffer.len(); - if requested_size > callback_data.user_data.container.capacity() { // reserve more data... - callback_data - .user_data - .container - .reserve(requested_size - callback_data.user_data.container.capacity()); + buffer.reserve(additional_bytes); - (*data).Buf = callback_data.user_data.container.as_mut_ptr() as *mut _; + (*data).Buf = buffer.as_mut_ptr() as *mut _; (*data).BufDirty = true; } } From 804ebd8b8c1f434fdd23a5aa141a5301f0f11205 Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Thu, 30 Sep 2021 18:45:35 -0400 Subject: [PATCH 027/200] fixed textcallback --- imgui-examples/examples/text_callbacks.rs | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/imgui-examples/examples/text_callbacks.rs b/imgui-examples/examples/text_callbacks.rs index 348ea28d0..dce2c7efc 100644 --- a/imgui-examples/examples/text_callbacks.rs +++ b/imgui-examples/examples/text_callbacks.rs @@ -39,19 +39,19 @@ fn main() { println!("Char filter fired! This means a char was inputted."); Some(c) } - fn on_completion(&mut self, _: TextCallbackData<'_>) { + fn on_completion(&mut self, _: TextCallbackData) { println!("Completion request fired! This means the tab key was hit."); } - fn on_edit(&mut self, _: TextCallbackData<'_>) { + fn on_edit(&mut self, _: TextCallbackData) { println!("Edit was fired! Any edit will cause this to fire.") } - fn on_history(&mut self, dir: HistoryDirection, _: TextCallbackData<'_>) { + fn on_history(&mut self, dir: HistoryDirection, _: TextCallbackData) { println!("History was fired by pressing {:?}", dir); } - fn on_always(&mut self, _: TextCallbackData<'_>) { + fn on_always(&mut self, _: TextCallbackData) { // We don't actually print this out because it will flood your log a lot! // println!("The always callback fired! It always fires."); } @@ -69,7 +69,7 @@ fn main() { struct Wrapper<'a>(&'a mut String); impl<'a> InputTextCallbackHandler for Wrapper<'a> { - fn on_always(&mut self, data: TextCallbackData<'_>) { + fn on_always(&mut self, data: TextCallbackData) { *self.0 = data.str().to_owned(); } } @@ -99,11 +99,7 @@ fn main() { struct Wrapper2<'a>(&'a str, &'a str); impl<'a> InputTextCallbackHandler for Wrapper2<'a> { - fn on_history( - &mut self, - dir: HistoryDirection, - mut data: TextCallbackData<'_>, - ) { + fn on_history(&mut self, dir: HistoryDirection, mut data: TextCallbackData) { match dir { HistoryDirection::Up => { // remove first char... From b23e0483aec27815858bf154be48a31d3901b889 Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Thu, 23 Sep 2021 12:44:00 -0400 Subject: [PATCH 028/200] init effort --- imgui-sys/Cargo.toml | 1 + imgui-sys/src/lib.rs | 6 ++++++ imgui/Cargo.toml | 1 + imgui/src/lib.rs | 1 + imgui/src/math.rs | 1 + imgui/src/window/mod.rs | 45 +++++++++++++++++++++++------------------ 6 files changed, 35 insertions(+), 20 deletions(-) create mode 100644 imgui/src/math.rs diff --git a/imgui-sys/Cargo.toml b/imgui-sys/Cargo.toml index 54cd05ce8..1cbe6658f 100644 --- a/imgui-sys/Cargo.toml +++ b/imgui-sys/Cargo.toml @@ -15,6 +15,7 @@ exclude = ["third-party/*.json", "third-party/*.lua", "third-party/imgui/*/"] [dependencies] chlorine = "1.0.7" +mint = "0.5" [build-dependencies] cc = "1.0" diff --git a/imgui-sys/src/lib.rs b/imgui-sys/src/lib.rs index d7afc7f7a..066038129 100644 --- a/imgui-sys/src/lib.rs +++ b/imgui-sys/src/lib.rs @@ -71,6 +71,12 @@ impl From for (f32, f32) { } } +impl From> for ImVec2 { + fn from(o: mint::Vector2) -> Self { + Self { x: o.x, y: o.y } + } +} + impl ImVec4 { #[inline] pub const fn new(x: f32, y: f32, z: f32, w: f32) -> ImVec4 { diff --git a/imgui/Cargo.toml b/imgui/Cargo.toml index b2d5e283c..b1268073f 100644 --- a/imgui/Cargo.toml +++ b/imgui/Cargo.toml @@ -15,6 +15,7 @@ exclude = ["/resources"] [dependencies] bitflags = "1" imgui-sys = { version = "0.8.1-alpha.0", path = "../imgui-sys" } +mint = "0.5.6" parking_lot = "0.11" [features] diff --git a/imgui/src/lib.rs b/imgui/src/lib.rs index fa7f727e5..73a0187b9 100644 --- a/imgui/src/lib.rs +++ b/imgui/src/lib.rs @@ -81,6 +81,7 @@ mod test; mod utils; mod widget; mod window; +mod math; // Used by macros. Underscores are just to make it clear it's not part of the // public API. diff --git a/imgui/src/math.rs b/imgui/src/math.rs new file mode 100644 index 000000000..c3f0269c9 --- /dev/null +++ b/imgui/src/math.rs @@ -0,0 +1 @@ +pub type MintVec2 = mint::Vector2; diff --git a/imgui/src/window/mod.rs b/imgui/src/window/mod.rs index a0f873cb4..6183ca844 100644 --- a/imgui/src/window/mod.rs +++ b/imgui/src/window/mod.rs @@ -2,6 +2,7 @@ use bitflags::bitflags; use std::f32; use std::ptr; +use crate::math::MintVec2; use crate::sys; use crate::{Condition, Ui}; @@ -165,13 +166,13 @@ pub struct Window<'ui, 'a, Label> { name: Label, opened: Option<&'a mut bool>, flags: WindowFlags, - pos: [f32; 2], + pos: MintVec2, pos_cond: Condition, - pos_pivot: [f32; 2], - size: [f32; 2], + pos_pivot: MintVec2, + size: MintVec2, size_cond: Condition, - size_constraints: Option<([f32; 2], [f32; 2])>, - content_size: [f32; 2], + size_constraints: Option<(MintVec2, MintVec2)>, + content_size: MintVec2, collapsed: bool, collapsed_cond: Condition, focused: bool, @@ -186,13 +187,13 @@ impl<'ui, 'a, Label: AsRef> Window<'ui, 'a, Label> { name, opened: None, flags: WindowFlags::empty(), - pos: [0.0, 0.0], + pos: [0.0, 0.0].into(), pos_cond: Condition::Never, - pos_pivot: [0.0, 0.0], - size: [0.0, 0.0], + pos_pivot: [0.0, 0.0].into(), + size: [0.0, 0.0].into(), size_cond: Condition::Never, size_constraints: None, - content_size: [0.0, 0.0], + content_size: [0.0, 0.0].into(), collapsed: false, collapsed_cond: Condition::Never, focused: false, @@ -213,8 +214,8 @@ impl<'ui, 'a, Label: AsRef> Window<'ui, 'a, Label> { } /// Sets the window position, which is applied based on the given condition value #[inline] - pub fn position(mut self, position: [f32; 2], condition: Condition) -> Self { - self.pos = position; + pub fn position(mut self, position: impl Into, condition: Condition) -> Self { + self.pos = position.into(); self.pos_cond = condition; self } @@ -224,14 +225,14 @@ impl<'ui, 'a, Label: AsRef> Window<'ui, 'a, Label> { /// For example, pass [0.5, 0.5] to center the window on the position. /// Does nothing if window position is not also set with `position()`. #[inline] - pub fn position_pivot(mut self, pivot: [f32; 2]) -> Self { - self.pos_pivot = pivot; + pub fn position_pivot(mut self, pivot: impl Into) -> Self { + self.pos_pivot = pivot.into(); self } /// Sets the window size, which is applied based on the given condition value #[inline] - pub fn size(mut self, size: [f32; 2], condition: Condition) -> Self { - self.size = size; + pub fn size(mut self, size: impl Into, condition: Condition) -> Self { + self.size = size.into(); self.size_cond = condition; self } @@ -239,8 +240,12 @@ impl<'ui, 'a, Label: AsRef> Window<'ui, 'a, Label> { /// /// Use -1.0, -1.0 on either X or Y axis to preserve current size. #[inline] - pub fn size_constraints(mut self, size_min: [f32; 2], size_max: [f32; 2]) -> Self { - self.size_constraints = Some((size_min, size_max)); + pub fn size_constraints( + mut self, + size_min: impl Into, + size_max: impl Into, + ) -> Self { + self.size_constraints = Some((size_min.into(), size_max.into())); self } /// Sets the window content size, which can be used to enforce scrollbars. @@ -248,8 +253,8 @@ impl<'ui, 'a, Label: AsRef> Window<'ui, 'a, Label> { /// Does not include window decorations (title bar, menu bar, etc.). Set one of the values to /// 0.0 to leave the size automatic. #[inline] - pub fn content_size(mut self, size: [f32; 2]) -> Self { - self.content_size = size; + pub fn content_size(mut self, size: impl Into) -> Self { + self.content_size = size.into(); self } /// Sets the window collapse state, which is applied based on the given condition value @@ -513,7 +518,7 @@ impl<'ui, 'a, Label: AsRef> Window<'ui, 'a, Label> { ) }; } - if self.content_size[0] != 0.0 || self.content_size[1] != 0.0 { + if self.content_size.x != 0.0 || self.content_size.y != 0.0 { unsafe { sys::igSetNextWindowContentSize(self.content_size.into()) }; } if self.collapsed_cond != Condition::Never { From 635cbfd01d40bca8f9911fb9a3a47aca3cc44a4b Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Fri, 24 Sep 2021 13:39:21 -0400 Subject: [PATCH 029/200] added more bounds. wow this is gonna take awhile --- imgui-examples/examples/test_window_impl.rs | 20 +- imgui/src/input/mouse.rs | 13 +- imgui/src/math.rs | 4 +- imgui/src/render/draw_data.rs | 3 +- imgui/src/widget/color_editors.rs | 534 +++++++++++++++++--- 5 files changed, 485 insertions(+), 89 deletions(-) diff --git a/imgui-examples/examples/test_window_impl.rs b/imgui-examples/examples/test_window_impl.rs index f08300d44..8d0d483df 100644 --- a/imgui-examples/examples/test_window_impl.rs +++ b/imgui-examples/examples/test_window_impl.rs @@ -544,8 +544,8 @@ fn show_test_window(ui: &Ui, state: &mut State, opened: &mut bool) { Drag::new("drag float").range(-1.0, 1.0).speed(0.001).build(ui, &mut state.f0); ui.input_float3("input float3", &mut state.vec3f) .build(); - ColorEdit::new("color 1", &mut state.col1).build(ui); - ColorEdit::new("color 2", &mut state.col2).build(ui); + ColorEdit3::new("color 1", &mut state.col1).build(ui); + ColorEdit3::new("color 2", &mut state.col2).build(ui); TreeNode::new("Multi-component Widgets").build(ui, || { ui.input_float2("input float2", &mut state.vec2f) @@ -601,19 +601,19 @@ fn show_test_window(ui: &Ui, state: &mut State, opened: &mut bool) { "Click on the colored square to open a color picker. CTRL+click on individual component to input value.\n", ); - ColorEdit::new("MyColor##1", &mut s.color) + ColorEdit3::new("MyColor##1", &mut s.color) .flags(misc_flags) .alpha(false) .build(ui); ui.text("Color widget HSV with Alpha:"); - ColorEdit::new("MyColor##2", &mut s.color) + ColorEdit3::new("MyColor##2", &mut s.color) .flags(misc_flags) .input_mode(ColorEditInputMode::HSV) .build(ui); ui.text("Color widget with Float Display:"); - ColorEdit::new("MyColor##2f", &mut s.color) + ColorEdit3::new("MyColor##2f", &mut s.color) .flags(misc_flags) .format(ColorFormat::Float) .build(ui); @@ -627,7 +627,7 @@ CTRL+click on individual component to input value.\n", With the label(false) function you can pass a non-empty label which \ will only be used for the tooltip and picker popup.", ); - ColorEdit::new("MyColor##3", &mut s.color) + ColorEdit3::new("MyColor##3", &mut s.color) .flags(misc_flags) .inputs(false) .label(false) @@ -642,13 +642,13 @@ CTRL+click on individual component to input value.\n", ui.checkbox("With Ref Color", &mut s.ref_color); if s.ref_color { ui.same_line(); - ColorEdit::new("##RefColor", &mut s.ref_color_v) + ColorEdit3::new("##RefColor", &mut s.ref_color_v) .flags(misc_flags) .inputs(false) .build(ui); } } - let mut b = ColorPicker::new + let mut b = ColorPicker3::new ("MyColor##4", &mut s.color) .flags(misc_flags) .alpha(s.alpha) @@ -806,7 +806,7 @@ CTRL+click on individual component to input value.\n", let items = &["aaaa", "bbbb", "cccc", "dddd", "eeee"]; ui.combo_simple_string("Combo", &mut state.stacked_modals_item, items); - ColorEdit::new("color", &mut state.stacked_modals_color).build(ui); + ColorEdit3::new("color", &mut state.stacked_modals_color).build(ui); if ui.button("Add another modal..") { ui.open_popup("Stacked 2") ; @@ -976,7 +976,7 @@ fn show_example_app_custom_rendering(ui: &Ui, state: &mut CustomRenderingState, .build(|| { ui.text("Primitives"); // TODO: Add DragFloat to change value of sz - ColorEdit::new("Color", &mut state.col).build(ui); + ColorEdit3::new("Color", &mut state.col).build(ui); let draw_list = ui.get_window_draw_list(); let p = ui.cursor_screen_pos(); let spacing = 8.0; diff --git a/imgui/src/input/mouse.rs b/imgui/src/input/mouse.rs index b92b3d0fc..7aa66abf0 100644 --- a/imgui/src/input/mouse.rs +++ b/imgui/src/input/mouse.rs @@ -1,5 +1,6 @@ use std::ptr; +use crate::math::MintVec2; use crate::sys; use crate::Ui; @@ -133,8 +134,12 @@ impl<'ui> Ui<'ui> { /// /// Clipped by current clipping settings, but disregards other factors like focus, window /// ordering, modal popup blocking. - pub fn is_mouse_hovering_rect(&self, r_min: [f32; 2], r_max: [f32; 2]) -> bool { - unsafe { sys::igIsMouseHoveringRect(r_min.into(), r_max.into(), true) } + pub fn is_mouse_hovering_rect( + &self, + r_min: impl Into, + r_max: impl Into, + ) -> bool { + unsafe { sys::igIsMouseHoveringRect(r_min.into().into(), r_max.into().into(), true) } } /// Returns the mouse position backed up at the time of opening a popup #[doc(alias = "GetMousePosOnOpeningCurrentPopup")] @@ -221,8 +226,8 @@ impl<'ui> Ui<'ui> { unsafe { sys::igIsMousePosValid(ptr::null()) } } #[doc(alias = "IsMousePosValid")] - pub fn is_mouse_pos_valid(&self, mouse_pos: [f32; 2]) -> bool { - unsafe { sys::igIsMousePosValid(&mouse_pos.into()) } + pub fn is_mouse_pos_valid(&self, mouse_pos: impl Into) -> bool { + unsafe { sys::igIsMousePosValid(&mouse_pos.into().into()) } } } diff --git a/imgui/src/math.rs b/imgui/src/math.rs index c3f0269c9..fe71d1a3e 100644 --- a/imgui/src/math.rs +++ b/imgui/src/math.rs @@ -1 +1,3 @@ -pub type MintVec2 = mint::Vector2; +pub(crate) type MintVec2 = mint::Vector2; +pub(crate) type MintVec3 = mint::Vector3; +pub(crate) type MintVec4 = mint::Vector4; diff --git a/imgui/src/render/draw_data.rs b/imgui/src/render/draw_data.rs index 0bd3e4967..56fed6396 100644 --- a/imgui/src/render/draw_data.rs +++ b/imgui/src/render/draw_data.rs @@ -1,6 +1,7 @@ use std::slice; use crate::internal::{RawCast, RawWrapper}; +use crate::math::MintVec2; use crate::render::renderer::TextureId; use crate::sys; @@ -72,7 +73,7 @@ impl DrawData { /// Can be used if your final output buffer is at a different scale than imgui-rs expects, or /// if there is a difference between your window resolution and framebuffer resolution. #[doc(alias = "ScaleClipRects")] - pub fn scale_clip_rects(&mut self, fb_scale: [f32; 2]) { + pub fn scale_clip_rects(&mut self, fb_scale: MintVec2) { unsafe { sys::ImDrawData_ScaleClipRects(self.raw_mut(), fb_scale.into()); } diff --git a/imgui/src/widget/color_editors.rs b/imgui/src/widget/color_editors.rs index 07906341e..b04a6b44c 100644 --- a/imgui/src/widget/color_editors.rs +++ b/imgui/src/widget/color_editors.rs @@ -1,41 +1,44 @@ use bitflags::bitflags; use std::ptr; +use crate::math::MintVec2; +use crate::math::MintVec3; +use crate::math::MintVec4; use crate::sys; use crate::Ui; -/// Mutable reference to an editable color value. -#[derive(Debug)] -pub enum EditableColor<'a> { - /// Color value with three float components (e.g. RGB). - Float3(&'a mut [f32; 3]), - /// Color value with four float components (e.g. RGBA). - Float4(&'a mut [f32; 4]), -} +// /// Mutable reference to an editable color value. +// #[derive(Debug)] +// pub enum EditableColor<'a, T> { +// /// Color value with three float components (e.g. RGB). +// Float3(&'a mut T), +// /// Color value with four float components (e.g. RGBA). +// Float4(&'a mut T), +// } -impl<'a> EditableColor<'a> { - /// Returns an unsafe mutable pointer to the color slice's buffer. - fn as_mut_ptr(&mut self) -> *mut f32 { - match *self { - EditableColor::Float3(ref mut value) => value.as_mut_ptr(), - EditableColor::Float4(ref mut value) => value.as_mut_ptr(), - } - } -} +// impl<'a> EditableColor<'a> { +// /// Returns an unsafe mutable pointer to the color slice's buffer. +// fn as_mut_ptr(&mut self) -> *mut f32 { +// match *self { +// EditableColor::Float3(ref mut value) => value.as_mut_ptr(), +// EditableColor::Float4(ref mut value) => value.as_mut_ptr(), +// } +// } +// } -impl<'a> From<&'a mut [f32; 3]> for EditableColor<'a> { - #[inline] - fn from(value: &'a mut [f32; 3]) -> EditableColor<'a> { - EditableColor::Float3(value) - } -} +// impl<'a> From<&'a mut [f32; 3]> for EditableColor<'a> { +// #[inline] +// fn from(value: &'a mut [f32; 3]) -> EditableColor<'a> { +// EditableColor::Float3(value) +// } +// } -impl<'a> From<&'a mut [f32; 4]> for EditableColor<'a> { - #[inline] - fn from(value: &'a mut [f32; 4]) -> EditableColor<'a> { - EditableColor::Float4(value) - } -} +// impl<'a> From<&'a mut [f32; 4]> for EditableColor<'a> { +// #[inline] +// fn from(value: &'a mut [f32; 4]) -> EditableColor<'a> { +// EditableColor::Float4(value) +// } +// } /// Color editor input mode. #[derive(Copy, Clone, Debug, PartialEq, Eq)] @@ -183,19 +186,24 @@ bitflags! { /// ``` #[derive(Debug)] #[must_use] -pub struct ColorEdit<'a, T: AsRef + 'a> { +pub struct ColorEdit3<'a, T, C> { label: T, - value: EditableColor<'a>, + value: &'a mut C, flags: ColorEditFlags, } -impl<'a, T: AsRef + 'a> ColorEdit<'a, T> { +impl<'a, T, C> ColorEdit3<'a, T, C> +where + T: AsRef, + MintVec3: From, + C: From + Copy, +{ /// Constructs a new color editor builder. - #[doc(alias = "ColorEdit3", alias = "ColorEdit4")] - pub fn new(label: T, value: impl Into>) -> ColorEdit<'a, T> { - ColorEdit { + #[doc(alias = "ColorEdit3")] + pub fn new(label: T, value: &'a mut C) -> Self { + ColorEdit3 { label, - value: value.into(), + value, flags: ColorEditFlags::empty(), } } @@ -319,25 +327,207 @@ impl<'a, T: AsRef + 'a> ColorEdit<'a, T> { /// /// Returns true if the color value was changed. pub fn build(mut self, ui: &Ui<'_>) -> bool { - if let EditableColor::Float3(_) = self.value { - self.flags.insert(ColorEditFlags::NO_ALPHA); + // if let EditableColor::Float3(_) = self.value { + self.flags.insert(ColorEditFlags::NO_ALPHA); + + let as_vec3: MintVec3 = (*self.value).into(); + let mut as_vec3: [f32; 3] = as_vec3.into(); + + let changed = unsafe { + sys::igColorEdit3( + ui.scratch_txt(self.label), + as_vec3.as_mut_ptr(), + self.flags.bits() as _, + ) + }; + + // and go backwards... + if changed { + let as_vec3: MintVec3 = as_vec3.into(); + + *self.value = as_vec3.into(); + } + + changed + } +} + +/// Builder for a color editor widget. +/// +/// # Examples +/// +/// ```no_run +/// # use imgui::*; +/// # let mut imgui = Context::create(); +/// # let ui = imgui.frame(); +/// # let mut color = [0.0, 0.0, 0.0, 1.0]; +/// let ce = ColorEdit::new(im_str!("color_edit"), &mut color); +/// if ce.build(&ui) { +/// println!("The color was changed"); +/// } +/// ``` +#[derive(Debug)] +#[must_use] +pub struct ColorEdit4<'a, T, C> { + label: T, + value: &'a mut C, + flags: ColorEditFlags, +} + +impl<'a, T, C> ColorEdit4<'a, T, C> +where + T: AsRef, + MintVec4: From, + C: From + Copy, +{ + /// Constructs a new color editor builder. + #[doc(alias = "ColorEdit4")] + pub fn new(label: T, value: &'a mut C) -> Self { + Self { + label, + value, + flags: ColorEditFlags::empty(), } - match self.value { - EditableColor::Float3(value) => unsafe { - sys::igColorEdit3( - ui.scratch_txt(self.label), - value.as_mut_ptr(), - self.flags.bits() as _, - ) - }, - EditableColor::Float4(value) => unsafe { - sys::igColorEdit4( - ui.scratch_txt(self.label), - value.as_mut_ptr(), - self.flags.bits() as _, - ) - }, + } + /// Replaces all current settings with the given flags. + #[inline] + pub fn flags(mut self, flags: ColorEditFlags) -> Self { + self.flags = flags; + self + } + /// Enables/disables the use of the alpha component. + #[inline] + pub fn alpha(mut self, value: bool) -> Self { + self.flags.set(ColorEditFlags::NO_ALPHA, !value); + self + } + /// Enables/disables the picker that appears when clicking on colored square. + #[inline] + pub fn picker(mut self, value: bool) -> Self { + self.flags.set(ColorEditFlags::NO_PICKER, !value); + self + } + /// Enables/disables toggling of the options menu when right-clicking on inputs or the small + /// preview. + #[inline] + pub fn options(mut self, value: bool) -> Self { + self.flags.set(ColorEditFlags::NO_OPTIONS, !value); + self + } + /// Enables/disables the colored square preview next to the inputs. + #[inline] + pub fn small_preview(mut self, value: bool) -> Self { + self.flags.set(ColorEditFlags::NO_SMALL_PREVIEW, !value); + self + } + /// Enables/disables the input sliders/text widgets. + #[inline] + pub fn inputs(mut self, value: bool) -> Self { + self.flags.set(ColorEditFlags::NO_INPUTS, !value); + self + } + /// Enables/disables the tooltip that appears when hovering the preview. + #[inline] + pub fn tooltip(mut self, value: bool) -> Self { + self.flags.set(ColorEditFlags::NO_TOOLTIP, !value); + self + } + /// Enables/disables display of the inline text label (the label is in any case forwarded to + /// the tooltip and picker). + #[inline] + pub fn label(mut self, value: bool) -> Self { + self.flags.set(ColorEditFlags::NO_LABEL, !value); + self + } + /// Enables/disables the vertical alpha bar/gradient in the color picker. + #[inline] + pub fn alpha_bar(mut self, value: bool) -> Self { + self.flags.set(ColorEditFlags::ALPHA_BAR, value); + self + } + /// Sets the preview style. + #[inline] + pub fn preview(mut self, preview: ColorPreview) -> Self { + self.flags.set( + ColorEditFlags::ALPHA_PREVIEW_HALF, + preview == ColorPreview::HalfAlpha, + ); + self.flags.set( + ColorEditFlags::ALPHA_PREVIEW, + preview == ColorPreview::Alpha, + ); + self + } + /// (WIP) Currently only disables 0.0..1.0 limits in RGBA edition. + /// + /// Note: you probably want to use ColorFormat::Float as well. + #[inline] + pub fn hdr(mut self, value: bool) -> Self { + self.flags.set(ColorEditFlags::HDR, value); + self + } + /// Sets the data format for input and output data. + #[inline] + pub fn input_mode(mut self, input_mode: ColorEditInputMode) -> Self { + self.flags.set( + ColorEditFlags::INPUT_RGB, + input_mode == ColorEditInputMode::RGB, + ); + self.flags.set( + ColorEditFlags::INPUT_HSV, + input_mode == ColorEditInputMode::HSV, + ); + self + } + /// Sets the color editor display mode. + #[inline] + pub fn display_mode(mut self, mode: ColorEditDisplayMode) -> Self { + self.flags.set( + ColorEditFlags::DISPLAY_RGB, + mode == ColorEditDisplayMode::RGB, + ); + self.flags.set( + ColorEditFlags::DISPLAY_HSV, + mode == ColorEditDisplayMode::HSV, + ); + self.flags.set( + ColorEditFlags::DISPLAY_HEX, + mode == ColorEditDisplayMode::HEX, + ); + self + } + /// Sets the formatting style of color components. + #[inline] + pub fn format(mut self, format: ColorFormat) -> Self { + self.flags + .set(ColorEditFlags::UINT8, format == ColorFormat::U8); + self.flags + .set(ColorEditFlags::FLOAT, format == ColorFormat::Float); + self + } + /// Builds the color editor. + /// + /// Returns true if the color value was changed. + pub fn build(self, ui: &Ui<'_>) -> bool { + let as_vec4: MintVec4 = (*self.value).into(); + let mut as_vec4: [f32; 4] = as_vec4.into(); + + let changed = unsafe { + sys::igColorEdit4( + ui.scratch_txt(self.label), + as_vec4.as_mut_ptr(), + self.flags.bits() as _, + ) + }; + + // and go backwards... + if changed { + let as_vec4: MintVec4 = as_vec4.into(); + + *self.value = as_vec4.into(); } + + changed } } @@ -357,20 +547,209 @@ impl<'a, T: AsRef + 'a> ColorEdit<'a, T> { /// ``` #[derive(Debug)] #[must_use] -pub struct ColorPicker<'a, T: AsRef + 'a> { - label: T, - value: EditableColor<'a>, +pub struct ColorPicker3<'a, Label, Color> { + label: Label, + value: &'a mut Color, flags: ColorEditFlags, - ref_color: Option<&'a [f32; 4]>, } -impl<'a, T: AsRef> ColorPicker<'a, T> { +impl<'a, Label, Color> ColorPicker3<'a, Label, Color> +where + Label: AsRef, + MintVec3: From, + Color: From + Copy, +{ /// Constructs a new color picker builder. - #[doc(alias = "ColorButton")] - pub fn new(label: T, value: impl Into>) -> Self { - ColorPicker { + #[doc(alias = "ColorPicker3")] + pub fn new(label: Label, value: &'a mut Color) -> Self { + ColorPicker3 { label, - value: value.into(), + value, + flags: ColorEditFlags::empty(), + } + } + /// Replaces all current settings with the given flags. + #[inline] + pub fn flags(mut self, flags: ColorEditFlags) -> Self { + self.flags = flags; + self + } + /// Enables/disables the use of the alpha component. + #[inline] + pub fn alpha(mut self, value: bool) -> Self { + self.flags.set(ColorEditFlags::NO_ALPHA, !value); + self + } + /// Enables/disables toggling of the options menu when right-clicking on inputs or the small + /// preview. + #[inline] + pub fn options(mut self, value: bool) -> Self { + self.flags.set(ColorEditFlags::NO_OPTIONS, !value); + self + } + /// Enables/disables the colored square preview next to the inputs. + #[inline] + pub fn small_preview(mut self, value: bool) -> Self { + self.flags.set(ColorEditFlags::NO_SMALL_PREVIEW, !value); + self + } + /// Enables/disables the input sliders/text widgets. + #[inline] + pub fn inputs(mut self, value: bool) -> Self { + self.flags.set(ColorEditFlags::NO_INPUTS, !value); + self + } + /// Enables/disables the tooltip that appears when hovering the preview. + #[inline] + pub fn tooltip(mut self, value: bool) -> Self { + self.flags.set(ColorEditFlags::NO_TOOLTIP, !value); + self + } + /// Enables/disables display of the inline text label (the label is in any case forwarded to + /// the tooltip and picker). + #[inline] + pub fn label(mut self, value: bool) -> Self { + self.flags.set(ColorEditFlags::NO_LABEL, !value); + self + } + /// Enables/disables the bigger color preview on the right side of the picker. + #[inline] + pub fn side_preview(mut self, value: bool) -> Self { + self.flags.set(ColorEditFlags::NO_SIDE_PREVIEW, !value); + self + } + /// Enables/disables the vertical alpha bar/gradient in the color picker. + #[inline] + pub fn alpha_bar(mut self, value: bool) -> Self { + self.flags.set(ColorEditFlags::ALPHA_BAR, value); + self + } + /// Sets the preview style. + #[inline] + pub fn preview(mut self, preview: ColorPreview) -> Self { + self.flags.set( + ColorEditFlags::ALPHA_PREVIEW_HALF, + preview == ColorPreview::HalfAlpha, + ); + self.flags.set( + ColorEditFlags::ALPHA_PREVIEW, + preview == ColorPreview::Alpha, + ); + self + } + /// Sets the data format for input and output data. + #[inline] + pub fn input_mode(mut self, input_mode: ColorEditInputMode) -> Self { + self.flags.set( + ColorEditFlags::INPUT_RGB, + input_mode == ColorEditInputMode::RGB, + ); + self.flags.set( + ColorEditFlags::INPUT_HSV, + input_mode == ColorEditInputMode::HSV, + ); + self + } + /// Enables/disables displaying the value as RGB. + #[inline] + pub fn display_rgb(mut self, value: bool) -> Self { + self.flags.set(ColorEditFlags::DISPLAY_RGB, value); + self + } + /// Enables/disables displaying the value as HSV. + #[inline] + pub fn display_hsv(mut self, value: bool) -> Self { + self.flags.set(ColorEditFlags::DISPLAY_HSV, value); + self + } + /// Enables/disables displaying the value as hex. + #[inline] + pub fn display_hex(mut self, value: bool) -> Self { + self.flags.set(ColorEditFlags::DISPLAY_HEX, value); + self + } + /// Sets the hue/saturation/value editor mode. + #[inline] + pub fn mode(mut self, mode: ColorPickerMode) -> Self { + self.flags.set( + ColorEditFlags::PICKER_HUE_BAR, + mode == ColorPickerMode::HueBar, + ); + self.flags.set( + ColorEditFlags::PICKER_HUE_WHEEL, + mode == ColorPickerMode::HueWheel, + ); + self + } + /// Sets the formatting style of color components. + #[inline] + pub fn format(mut self, format: ColorFormat) -> Self { + self.flags + .set(ColorEditFlags::UINT8, format == ColorFormat::U8); + self.flags + .set(ColorEditFlags::FLOAT, format == ColorFormat::Float); + self + } + + /// Builds the color picker. + /// + /// Returns true if the color value was changed. + pub fn build(mut self, ui: &Ui<'_>) -> bool { + self.flags.insert(ColorEditFlags::NO_ALPHA); + let mut value: [f32; 3] = MintVec3::from(*self.value).into(); + let changed = unsafe { + sys::igColorPicker3( + ui.scratch_txt(self.label), + value.as_mut_ptr(), + self.flags.bits() as _, + ) + }; + + if changed { + let as_vec3: MintVec3 = value.into(); + + *self.value = as_vec3.into(); + } + + changed + } +} + +// Builder for a color picker widget. +/// +/// # Examples +/// +/// ```no_run +/// # use imgui::*; +/// # let mut imgui = Context::create(); +/// # let ui = imgui.frame(); +/// # let mut color = [0.0, 0.0, 0.0, 1.0]; +/// let cp = ColorPicker::new(im_str!("color_picker"), &mut color); +/// if cp.build(&ui) { +/// println!("A color was picked"); +/// } +/// ``` +#[derive(Debug)] +#[must_use] +pub struct ColorPicker4<'a, Label, Color> { + label: Label, + value: &'a mut Color, + flags: ColorEditFlags, + ref_color: Option<[f32; 4]>, +} + +impl<'a, Label, Color> ColorPicker4<'a, Label, Color> +where + Label: AsRef, + MintVec4: From, + Color: From + Copy, +{ + /// Constructs a new color picker builder. + #[doc(alias = "ColorPicker4")] + pub fn new(label: Label, value: &'a mut Color) -> Self { + Self { + label, + value, flags: ColorEditFlags::empty(), ref_color: None, } @@ -499,26 +878,35 @@ impl<'a, T: AsRef> ColorPicker<'a, T> { } /// Sets the shown reference color. #[inline] - pub fn reference_color(mut self, ref_color: &'a [f32; 4]) -> Self { - self.ref_color = Some(ref_color); + pub fn reference_color(mut self, ref_color: impl Into) -> Self { + self.ref_color = Some(ref_color.into().into()); self } + /// Builds the color picker. /// /// Returns true if the color value was changed. pub fn build(mut self, ui: &Ui<'_>) -> bool { - if let EditableColor::Float3(_) = self.value { - self.flags.insert(ColorEditFlags::NO_ALPHA); - } + self.flags.insert(ColorEditFlags::NO_ALPHA); + let mut value: [f32; 4] = MintVec4::from(*self.value).into(); let ref_color = self.ref_color.map(|c| c.as_ptr()).unwrap_or(ptr::null()); - unsafe { + + let changed = unsafe { sys::igColorPicker4( ui.scratch_txt(self.label), - self.value.as_mut_ptr(), + value.as_mut_ptr(), self.flags.bits() as _, ref_color, ) + }; + + if changed { + let as_vec3: MintVec4 = value.into(); + + *self.value = as_vec3.into(); } + + changed } } @@ -544,10 +932,10 @@ pub struct ColorButton { impl> ColorButton { /// Constructs a new color button builder. - pub fn new(desc_id: T, color: [f32; 4]) -> Self { + pub fn new(desc_id: T, color: impl Into) -> Self { ColorButton { desc_id, - color, + color: color.into().into(), flags: ColorEditFlags::empty(), size: [0.0, 0.0], } @@ -614,8 +1002,8 @@ impl> ColorButton { /// /// Use 0.0 for width and/or height to use the default size. #[inline] - pub fn size(mut self, size: [f32; 2]) -> Self { - self.size = size; + pub fn size(mut self, size: impl Into) -> Self { + self.size = size.into().into(); self } /// Builds the color button. From 8b2285609003686c0b9daaf38cc4a98a6dc1e1e9 Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Fri, 24 Sep 2021 16:09:55 -0400 Subject: [PATCH 030/200] OKAY and this is mostly done --- imgui-sys/src/lib.rs | 11 ++ imgui/src/color.rs | 8 ++ imgui/src/draw_list.rs | 235 +++++++++++++++++++------------ imgui/src/input_widget.rs | 75 +++++++--- imgui/src/layout.rs | 13 +- imgui/src/lib.rs | 70 +++++---- imgui/src/math.rs | 4 + imgui/src/plothistogram.rs | 4 +- imgui/src/plotlines.rs | 4 +- imgui/src/stacks.rs | 5 +- imgui/src/utils.rs | 46 +++--- imgui/src/widget/image.rs | 53 +++---- imgui/src/widget/list_box.rs | 11 +- imgui/src/widget/misc.rs | 19 ++- imgui/src/widget/progress_bar.rs | 5 +- imgui/src/widget/selectable.rs | 5 +- imgui/src/widget/slider.rs | 5 +- imgui/src/widget/text.rs | 3 +- imgui/src/window/child_window.rs | 9 +- 19 files changed, 369 insertions(+), 216 deletions(-) diff --git a/imgui-sys/src/lib.rs b/imgui-sys/src/lib.rs index 066038129..89535ccee 100644 --- a/imgui-sys/src/lib.rs +++ b/imgui-sys/src/lib.rs @@ -77,6 +77,17 @@ impl From> for ImVec2 { } } +impl From> for ImVec4 { + fn from(o: mint::Vector4) -> Self { + Self { + x: o.x, + y: o.y, + z: o.z, + w: o.w, + } + } +} + impl ImVec4 { #[inline] pub const fn new(x: f32, y: f32, z: f32, w: f32) -> ImVec4 { diff --git a/imgui/src/color.rs b/imgui/src/color.rs index 5f7e07c42..1d2015711 100644 --- a/imgui/src/color.rs +++ b/imgui/src/color.rs @@ -1,3 +1,5 @@ +use crate::math::MintVec4; + /// Wraps u32 that represents a packed RGBA color. Mostly used by types in the /// low level custom drawing API, such as [`DrawListMut`](crate::DrawListMut). /// @@ -220,6 +222,12 @@ impl From for ImColor32 { } } +impl From for ImColor32 { + fn from(v: MintVec4) -> Self { + Self::from_rgba_f32s(v.x, v.y, v.z, v.w) + } +} + impl From<[f32; 4]> for ImColor32 { #[inline] fn from(v: [f32; 4]) -> Self { diff --git a/imgui/src/draw_list.rs b/imgui/src/draw_list.rs index e6882e56a..27323b043 100644 --- a/imgui/src/draw_list.rs +++ b/imgui/src/draw_list.rs @@ -15,7 +15,7 @@ use bitflags::bitflags; -use crate::ImColor32; +use crate::{math::MintVec2, ImColor32}; use sys::ImDrawList; use super::Ui; @@ -214,7 +214,12 @@ impl<'ui> ChannelsSplit<'ui> { impl<'ui> DrawListMut<'ui> { /// Returns a line from point `p1` to `p2` with color `c`. #[doc(alias = "AddLine")] - pub fn add_line(&'ui self, p1: [f32; 2], p2: [f32; 2], c: C) -> Line<'ui> + pub fn add_line( + &'ui self, + p1: impl Into, + p2: impl Into, + c: C, + ) -> Line<'ui> where C: Into, { @@ -224,7 +229,12 @@ impl<'ui> DrawListMut<'ui> { /// Returns a rectangle whose upper-left corner is at point `p1` /// and lower-right corner is at point `p2`, with color `c`. #[doc(alias = "AddRectFilled", alias = "AddRect")] - pub fn add_rect(&'ui self, p1: [f32; 2], p2: [f32; 2], c: C) -> Rect<'ui> + pub fn add_rect( + &'ui self, + p1: impl Into, + p2: impl Into, + c: C, + ) -> Rect<'ui> where C: Into, { @@ -239,8 +249,8 @@ impl<'ui> DrawListMut<'ui> { #[doc(alias = "AddRectFilledMultiColor")] pub fn add_rect_filled_multicolor( &self, - p1: [f32; 2], - p2: [f32; 2], + p1: impl Into, + p2: impl Into, col_upr_left: C1, col_upr_right: C2, col_bot_right: C3, @@ -254,8 +264,8 @@ impl<'ui> DrawListMut<'ui> { unsafe { sys::ImDrawList_AddRectFilledMultiColor( self.draw_list, - p1.into(), - p2.into(), + p1.into().into(), + p2.into().into(), col_upr_left.into().into(), col_upr_right.into().into(), col_bot_right.into().into(), @@ -269,9 +279,9 @@ impl<'ui> DrawListMut<'ui> { #[doc(alias = "AddTriangleFilled", alias = "AddTriangle")] pub fn add_triangle( &'ui self, - p1: [f32; 2], - p2: [f32; 2], - p3: [f32; 2], + p1: impl Into, + p2: impl Into, + p3: impl Into, c: C, ) -> Triangle<'ui> where @@ -282,7 +292,12 @@ impl<'ui> DrawListMut<'ui> { /// Returns a circle with the given `center`, `radius` and `color`. #[doc(alias = "AddCircleFilled", alias = "AddCircle")] - pub fn add_circle(&'ui self, center: [f32; 2], radius: f32, color: C) -> Circle<'ui> + pub fn add_circle( + &'ui self, + center: impl Into, + radius: f32, + color: C, + ) -> Circle<'ui> where C: Into, { @@ -291,35 +306,39 @@ impl<'ui> DrawListMut<'ui> { /// Draw a text whose upper-left corner is at point `pos`. #[doc(alias = "AddText")] - pub fn add_text(&self, pos: [f32; 2], col: C, text: T) - where - C: Into, - T: AsRef, - { + pub fn add_text( + &self, + pos: impl Into, + col: impl Into, + text: impl AsRef, + ) { use std::os::raw::c_char; let text = text.as_ref(); unsafe { let start = text.as_ptr() as *const c_char; let end = (start as usize + text.len()) as *const c_char; - sys::ImDrawList_AddText_Vec2(self.draw_list, pos.into(), col.into().into(), start, end) + sys::ImDrawList_AddText_Vec2( + self.draw_list, + pos.into().into(), + col.into().into(), + start, + end, + ) } } /// Returns a Bezier curve stretching from `pos0` to `pos1`, whose /// curvature is defined by `cp0` and `cp1`. #[doc(alias = "AddBezier", alias = "AddBezierCubic")] - pub fn add_bezier_curve( + pub fn add_bezier_curve( &'ui self, - pos0: [f32; 2], - cp0: [f32; 2], - cp1: [f32; 2], - pos1: [f32; 2], - color: C, - ) -> BezierCurve<'ui> - where - C: Into, - { + pos0: impl Into, + cp0: impl Into, + cp1: impl Into, + pos1: impl Into, + color: impl Into, + ) -> BezierCurve<'ui> { BezierCurve::new(self, pos0, cp0, cp1, pos1, color) } @@ -328,11 +347,18 @@ impl<'ui> DrawListMut<'ui> { /// Clip all drawings done within the closure `f` in the given /// rectangle. #[doc(alias = "PushClipRect", alias = "PopClipRect")] - pub fn with_clip_rect(&self, min: [f32; 2], max: [f32; 2], f: F) + pub fn with_clip_rect(&self, min: impl Into, max: impl Into, f: F) where F: FnOnce(), { - unsafe { sys::ImDrawList_PushClipRect(self.draw_list, min.into(), max.into(), false) } + unsafe { + sys::ImDrawList_PushClipRect( + self.draw_list, + min.into().into(), + max.into().into(), + false, + ) + } f(); unsafe { sys::ImDrawList_PopClipRect(self.draw_list) } } @@ -343,11 +369,17 @@ impl<'ui> DrawListMut<'ui> { /// rectangle. Intersect with all clipping rectangle previously on /// the stack. #[doc(alias = "PushClipRect", alias = "PopClipRect")] - pub fn with_clip_rect_intersect(&self, min: [f32; 2], max: [f32; 2], f: F) - where + pub fn with_clip_rect_intersect( + &self, + min: impl Into, + max: impl Into, + f: F, + ) where F: FnOnce(), { - unsafe { sys::ImDrawList_PushClipRect(self.draw_list, min.into(), max.into(), true) } + unsafe { + sys::ImDrawList_PushClipRect(self.draw_list, min.into().into(), max.into().into(), true) + } f(); unsafe { sys::ImDrawList_PopClipRect(self.draw_list) } } @@ -376,8 +408,8 @@ impl<'ui> DrawListMut<'ui> { pub fn add_image( &'ui self, texture_id: TextureId, - p_min: [f32; 2], - p_max: [f32; 2], + p_min: impl Into, + p_max: impl Into, ) -> Image<'_> { Image::new(self, texture_id, p_min, p_max) } @@ -388,10 +420,10 @@ impl<'ui> DrawListMut<'ui> { pub fn add_image_quad( &'ui self, texture_id: TextureId, - p1: [f32; 2], - p2: [f32; 2], - p3: [f32; 2], - p4: [f32; 2], + p1: impl Into, + p2: impl Into, + p3: impl Into, + p4: impl Into, ) -> ImageQuad<'_> { ImageQuad::new(self, texture_id, p1, p2, p3, p4) } @@ -400,8 +432,8 @@ impl<'ui> DrawListMut<'ui> { pub fn add_image_rounded( &'ui self, texture_id: TextureId, - p_min: [f32; 2], - p_max: [f32; 2], + p_min: impl Into, + p_max: impl Into, rounding: f32, ) -> ImageRounded<'_> { ImageRounded::new(self, texture_id, p_min, p_max, rounding) @@ -419,13 +451,18 @@ pub struct Line<'ui> { } impl<'ui> Line<'ui> { - fn new(draw_list: &'ui DrawListMut<'_>, p1: [f32; 2], p2: [f32; 2], c: C) -> Self + fn new( + draw_list: &'ui DrawListMut<'_>, + p1: impl Into, + p2: impl Into, + c: C, + ) -> Self where C: Into, { Self { - p1, - p2, + p1: p1.into().into(), + p2: p2.into().into(), color: c.into(), thickness: 1.0, draw_list, @@ -466,13 +503,18 @@ pub struct Rect<'ui> { } impl<'ui> Rect<'ui> { - fn new(draw_list: &'ui DrawListMut<'_>, p1: [f32; 2], p2: [f32; 2], c: C) -> Self + fn new( + draw_list: &'ui DrawListMut<'_>, + p1: impl Into, + p2: impl Into, + c: C, + ) -> Self where C: Into, { Self { - p1, - p2, + p1: p1.into().into(), + p2: p2.into().into(), color: c.into(), rounding: 0.0, flags: DrawFlags::ROUND_CORNERS_ALL, @@ -569,18 +611,18 @@ pub struct Triangle<'ui> { impl<'ui> Triangle<'ui> { fn new( draw_list: &'ui DrawListMut<'_>, - p1: [f32; 2], - p2: [f32; 2], - p3: [f32; 2], + p1: impl Into, + p2: impl Into, + p3: impl Into, c: C, ) -> Self where C: Into, { Self { - p1, - p2, - p3, + p1: p1.into().into(), + p2: p2.into().into(), + p3: p3.into().into(), color: c.into(), thickness: 1.0, filled: false, @@ -641,12 +683,17 @@ pub struct Circle<'ui> { impl<'ui> Circle<'ui> { /// Typically constructed by [`DrawListMut::add_circle`] - pub fn new(draw_list: &'ui DrawListMut<'_>, center: [f32; 2], radius: f32, color: C) -> Self + pub fn new( + draw_list: &'ui DrawListMut<'_>, + center: impl Into, + radius: f32, + color: C, + ) -> Self where C: Into, { Self { - center, + center: center.into().into(), radius, color: color.into(), num_segments: 0, @@ -720,20 +767,20 @@ impl<'ui> BezierCurve<'ui> { /// Typically constructed by [`DrawListMut::add_bezier_curve`] pub fn new( draw_list: &'ui DrawListMut<'_>, - pos0: [f32; 2], - cp0: [f32; 2], - cp1: [f32; 2], - pos1: [f32; 2], + pos0: impl Into, + cp0: impl Into, + cp1: impl Into, + pos1: impl Into, c: C, ) -> Self where C: Into, { Self { - pos0, - cp0, - cp1, - pos1, + pos0: pos0.into().into(), + cp0: cp0.into().into(), + cp1: cp1.into().into(), + pos1: pos1.into().into(), color: c.into(), thickness: 1.0, num_segments: None, @@ -789,13 +836,13 @@ impl<'ui> Image<'ui> { pub fn new( draw_list: &'ui DrawListMut<'_>, texture_id: TextureId, - p_min: [f32; 2], - p_max: [f32; 2], + p_min: impl Into, + p_max: impl Into, ) -> Self { Self { texture_id, - p_min, - p_max, + p_min: p_min.into().into(), + p_max: p_max.into().into(), uv_min: [0.0, 0.0], uv_max: [1.0, 1.0], col: [1.0, 1.0, 1.0, 1.0].into(), @@ -804,13 +851,13 @@ impl<'ui> Image<'ui> { } /// Set uv_min (default `[0.0, 0.0]`) - pub fn uv_min(mut self, uv_min: [f32; 2]) -> Self { - self.uv_min = uv_min; + pub fn uv_min(mut self, uv_min: impl Into) -> Self { + self.uv_min = uv_min.into().into(); self } /// Set uv_max (default `[1.0, 1.0]`) - pub fn uv_max(mut self, uv_max: [f32; 2]) -> Self { - self.uv_max = uv_max; + pub fn uv_max(mut self, uv_max: impl Into) -> Self { + self.uv_max = uv_max.into().into(); self } @@ -862,17 +909,17 @@ impl<'ui> ImageQuad<'ui> { pub fn new( draw_list: &'ui DrawListMut<'_>, texture_id: TextureId, - p1: [f32; 2], - p2: [f32; 2], - p3: [f32; 2], - p4: [f32; 2], + p1: impl Into, + p2: impl Into, + p3: impl Into, + p4: impl Into, ) -> Self { Self { texture_id, - p1, - p2, - p3, - p4, + p1: p1.into().into(), + p2: p2.into().into(), + p3: p3.into().into(), + p4: p4.into().into(), uv1: [0.0, 0.0], uv2: [1.0, 0.0], uv3: [1.0, 1.0], @@ -890,11 +937,17 @@ impl<'ui> ImageQuad<'ui> { /// uv3: [1, 1], /// uv4: [0, 1], /// ``` - pub fn uv(mut self, uv1: [f32; 2], uv2: [f32; 2], uv3: [f32; 2], uv4: [f32; 2]) -> Self { - self.uv1 = uv1; - self.uv2 = uv2; - self.uv3 = uv3; - self.uv4 = uv4; + pub fn uv( + mut self, + uv1: impl Into, + uv2: impl Into, + uv3: impl Into, + uv4: impl Into, + ) -> Self { + self.uv1 = uv1.into().into(); + self.uv2 = uv2.into().into(); + self.uv3 = uv3.into().into(); + self.uv4 = uv4.into().into(); self } @@ -949,14 +1002,14 @@ impl<'ui> ImageRounded<'ui> { pub fn new( draw_list: &'ui DrawListMut<'_>, texture_id: TextureId, - p_min: [f32; 2], - p_max: [f32; 2], + p_min: impl Into, + p_max: impl Into, rounding: f32, ) -> Self { Self { texture_id, - p_min, - p_max, + p_min: p_min.into().into(), + p_max: p_max.into().into(), uv_min: [0.0, 0.0], uv_max: [1.0, 1.0], col: [1.0, 1.0, 1.0, 1.0].into(), @@ -967,13 +1020,13 @@ impl<'ui> ImageRounded<'ui> { } /// Set uv_min (default `[0.0, 0.0]`) - pub fn uv_min(mut self, uv_min: [f32; 2]) -> Self { - self.uv_min = uv_min; + pub fn uv_min(mut self, uv_min: impl Into) -> Self { + self.uv_min = uv_min.into().into(); self } /// Set uv_max (default `[1.0, 1.0]`) - pub fn uv_max(mut self, uv_max: [f32; 2]) -> Self { - self.uv_max = uv_max; + pub fn uv_max(mut self, uv_max: impl Into) -> Self { + self.uv_max = uv_max.into().into(); self } diff --git a/imgui/src/input_widget.rs b/imgui/src/input_widget.rs index ae6b61866..6f0754440 100644 --- a/imgui/src/input_widget.rs +++ b/imgui/src/input_widget.rs @@ -2,6 +2,7 @@ use bitflags::bitflags; use std::ops::Range; use std::os::raw::{c_char, c_int, c_void}; +use crate::math::*; use crate::sys; use crate::Ui; @@ -360,12 +361,12 @@ impl<'ui, 'p, L: AsRef> InputTextMultiline<'ui, 'p, L, PassthroughCallback> /// your string. /// 3. Truncations by ImGui appear to be done primarily by insertions of `\0` to the truncation point. /// We will handle this for you and edit the string "properly" too, but this might show up in callbacks. - pub fn new(ui: &'ui Ui<'ui>, label: L, buf: &'p mut String, size: [f32; 2]) -> Self { + pub fn new(ui: &'ui Ui<'ui>, label: L, buf: &'p mut String, size: impl Into) -> Self { InputTextMultiline { label, buf, flags: InputTextFlags::CALLBACK_RESIZE, - size, + size: size.into().into(), callback_handler: PassthroughCallback, ui, } @@ -552,17 +553,22 @@ impl<'ui, 'p, L: AsRef> InputFloat<'ui, 'p, L> { } macro_rules! impl_input_floatn { - ($InputFloatN:ident, $N:expr, $igInputFloatN:ident) => { + ($InputFloatN:ident, $MINT_TARGET:ident, $N:expr, $igInputFloatN:ident) => { #[must_use] - pub struct $InputFloatN<'ui, 'p, L> { + pub struct $InputFloatN<'ui, 'p, L, T = [f32; $N]> { label: L, - value: &'p mut [f32; $N], + value: &'p mut T, flags: InputTextFlags, ui: &'ui Ui<'ui>, } - impl<'ui, 'p, L: AsRef> $InputFloatN<'ui, 'p, L> { - pub fn new(ui: &'ui Ui<'ui>, label: L, value: &'p mut [f32; $N]) -> Self { + impl<'ui, 'p, L, T> $InputFloatN<'ui, 'p, L, T> + where + L: AsRef, + T: From<$MINT_TARGET> + Copy, + $MINT_TARGET: From, + { + pub fn new(ui: &'ui Ui<'ui>, label: L, value: &'p mut T) -> Self { $InputFloatN { label, value, @@ -572,14 +578,24 @@ macro_rules! impl_input_floatn { } pub fn build(self) -> bool { - unsafe { + let value: $MINT_TARGET = $MINT_TARGET::from(*self.value); + let mut value: [f32; $N] = value.into(); + + let changed = unsafe { sys::$igInputFloatN( self.ui.scratch_txt(self.label), - self.value.as_mut_ptr(), + value.as_mut_ptr(), b"%.3f\0".as_ptr() as *const _, self.flags.bits() as i32, ) + }; + + if changed { + let value: $MINT_TARGET = value.into(); + *self.value = value.into(); } + + changed } impl_text_flags!($InputFloatN); @@ -587,22 +603,27 @@ macro_rules! impl_input_floatn { }; } -impl_input_floatn!(InputFloat2, 2, igInputFloat2); -impl_input_floatn!(InputFloat3, 3, igInputFloat3); -impl_input_floatn!(InputFloat4, 4, igInputFloat4); +impl_input_floatn!(InputFloat2, MintVec2, 2, igInputFloat2); +impl_input_floatn!(InputFloat3, MintVec3, 3, igInputFloat3); +impl_input_floatn!(InputFloat4, MintVec4, 4, igInputFloat4); macro_rules! impl_input_intn { - ($InputIntN:ident, $N:expr, $igInputIntN:ident) => { + ($InputIntN:ident, $MINT_TARGET:ident, $N:expr, $igInputIntN:ident) => { #[must_use] - pub struct $InputIntN<'ui, 'p, L> { + pub struct $InputIntN<'ui, 'p, L, T> { label: L, - value: &'p mut [i32; $N], + value: &'p mut T, flags: InputTextFlags, ui: &'ui Ui<'ui>, } - impl<'ui, 'p, L: AsRef> $InputIntN<'ui, 'p, L> { - pub fn new(ui: &'ui Ui<'ui>, label: L, value: &'p mut [i32; $N]) -> Self { + impl<'ui, 'p, L, T> $InputIntN<'ui, 'p, L, T> + where + L: AsRef, + T: From<$MINT_TARGET> + Copy, + $MINT_TARGET: From, + { + pub fn new(ui: &'ui Ui<'ui>, label: L, value: &'p mut T) -> Self { $InputIntN { label, value, @@ -612,13 +633,23 @@ macro_rules! impl_input_intn { } pub fn build(self) -> bool { - unsafe { + let value: $MINT_TARGET = $MINT_TARGET::from(*self.value); + let mut value: [i32; $N] = value.into(); + + let changed = unsafe { sys::$igInputIntN( self.ui.scratch_txt(self.label), - self.value.as_mut_ptr(), + value.as_mut_ptr(), self.flags.bits() as i32, ) + }; + + if changed { + let value: $MINT_TARGET = value.into(); + *self.value = value.into(); } + + changed } impl_text_flags!($InputIntN); @@ -626,9 +657,9 @@ macro_rules! impl_input_intn { }; } -impl_input_intn!(InputInt2, 2, igInputInt2); -impl_input_intn!(InputInt3, 3, igInputInt3); -impl_input_intn!(InputInt4, 4, igInputInt4); +impl_input_intn!(InputInt2, MintIVec2, 2, igInputInt2); +impl_input_intn!(InputInt3, MintIVec3, 3, igInputInt3); +impl_input_intn!(InputInt4, MintIVec4, 4, igInputInt4); bitflags!( /// Callback flags for an `InputText` widget. These correspond to diff --git a/imgui/src/layout.rs b/imgui/src/layout.rs index f039b17de..b0cdd1642 100644 --- a/imgui/src/layout.rs +++ b/imgui/src/layout.rs @@ -1,3 +1,4 @@ +use crate::math::MintVec2; use crate::sys; use crate::Ui; @@ -64,8 +65,8 @@ impl<'ui> Ui<'ui> { /// /// Can be used to move the cursor on the window. #[doc(alias = "Dummy")] - pub fn dummy(&self, size: [f32; 2]) { - unsafe { sys::igDummy(size.into()) } + pub fn dummy(&self, size: impl Into) { + unsafe { sys::igDummy(size.into().into()) } } /// Moves content position to the right by `Style::indent_spacing` @@ -126,8 +127,8 @@ impl<'ui> Ui<'ui> { /// /// This sets the point on which the next widget will be drawn. #[doc(alias = "SetCursorPos")] - pub fn set_cursor_pos(&self, pos: [f32; 2]) { - unsafe { sys::igSetCursorPos(pos.into()) }; + pub fn set_cursor_pos(&self, pos: impl Into) { + unsafe { sys::igSetCursorPos(pos.into().into()) }; } /// Returns the initial cursor position (in window coordinates) #[doc(alias = "GetCursorStartPos")] @@ -147,8 +148,8 @@ impl<'ui> Ui<'ui> { } /// Sets the cursor position (in absolute screen coordinates) #[doc(alias = "SetCursorScreenPos")] - pub fn set_cursor_screen_pos(&self, pos: [f32; 2]) { - unsafe { sys::igSetCursorScreenPos(pos.into()) } + pub fn set_cursor_screen_pos(&self, pos: impl Into) { + unsafe { sys::igSetCursorScreenPos(pos.into().into()) } } /// Vertically aligns text baseline so that it will align properly to regularly frame items. /// diff --git a/imgui/src/lib.rs b/imgui/src/lib.rs index 73a0187b9..336b5dad3 100644 --- a/imgui/src/lib.rs +++ b/imgui/src/lib.rs @@ -48,6 +48,7 @@ pub use self::widget::tree::*; pub use self::window::child_window::*; pub use self::window::*; use internal::RawCast; +use math::*; #[macro_use] mod string; @@ -68,6 +69,7 @@ pub mod internal; mod io; mod layout; mod list_clipper; +mod math; mod plothistogram; mod plotlines; mod popups; @@ -81,7 +83,6 @@ mod test; mod utils; mod widget; mod window; -mod math; // Used by macros. Underscores are just to make it clear it's not part of the // public API. @@ -388,27 +389,43 @@ impl<'ui> Ui<'ui> { ) -> InputFloat<'ui, 'p, L> { InputFloat::new(self, label, value) } - pub fn input_float2<'p, L: AsRef>( + #[doc(alias = "InputFloat2")] + pub fn input_float2<'p, L, T>( &'ui self, label: L, - value: &'p mut [f32; 2], - ) -> InputFloat2<'ui, 'p, L> { + value: &'p mut T, + ) -> InputFloat2<'ui, 'p, L, T> + where + L: AsRef, + T: From + Copy, + MintVec2: From, + { InputFloat2::new(self, label, value) } #[doc(alias = "InputFloat3")] - pub fn input_float3<'p, L: AsRef>( + pub fn input_float3<'p, L, T>( &'ui self, label: L, - value: &'p mut [f32; 3], - ) -> InputFloat3<'ui, 'p, L> { + value: &'p mut T, + ) -> InputFloat3<'ui, 'p, L, T> + where + L: AsRef, + T: From + Copy, + MintVec3: From, + { InputFloat3::new(self, label, value) } #[doc(alias = "InputFloat4")] - pub fn input_float4<'p, L: AsRef>( + pub fn input_float4<'p, L, T>( &'ui self, label: L, - value: &'p mut [f32; 4], - ) -> InputFloat4<'ui, 'p, L> { + value: &'p mut T, + ) -> InputFloat4<'ui, 'p, L, T> + where + L: AsRef, + T: From + Copy, + MintVec4: From, + { InputFloat4::new(self, label, value) } #[doc(alias = "InputInt")] @@ -420,27 +437,30 @@ impl<'ui> Ui<'ui> { InputInt::new(self, label, value) } #[doc(alias = "InputInt2")] - pub fn input_int2<'p, L: AsRef>( - &'ui self, - label: L, - value: &'p mut [i32; 2], - ) -> InputInt2<'ui, 'p, L> { + pub fn input_int2<'p, L, T>(&'ui self, label: L, value: &'p mut T) -> InputInt2<'ui, 'p, L, T> + where + L: AsRef, + T: From + Copy, + MintIVec2: From, + { InputInt2::new(self, label, value) } #[doc(alias = "InputInt3")] - pub fn input_int3<'p, L: AsRef>( - &'ui self, - label: L, - value: &'p mut [i32; 3], - ) -> InputInt3<'ui, 'p, L> { + pub fn input_int3<'p, L, T>(&'ui self, label: L, value: &'p mut T) -> InputInt3<'ui, 'p, L, T> + where + L: AsRef, + T: From + Copy, + MintIVec3: From, + { InputInt3::new(self, label, value) } #[doc(alias = "InputInt4")] - pub fn input_int4<'p, L: AsRef>( - &'ui self, - label: L, - value: &'p mut [i32; 4], - ) -> InputInt4<'ui, 'p, L> { + pub fn input_int4<'p, L, T>(&'ui self, label: L, value: &'p mut T) -> InputInt4<'ui, 'p, L, T> + where + L: AsRef, + T: From + Copy, + MintIVec4: From, + { InputInt4::new(self, label, value) } } diff --git a/imgui/src/math.rs b/imgui/src/math.rs index fe71d1a3e..7f8ab0de2 100644 --- a/imgui/src/math.rs +++ b/imgui/src/math.rs @@ -1,3 +1,7 @@ pub(crate) type MintVec2 = mint::Vector2; pub(crate) type MintVec3 = mint::Vector3; pub(crate) type MintVec4 = mint::Vector4; + +pub(crate) type MintIVec2 = mint::Vector2; +pub(crate) type MintIVec3 = mint::Vector3; +pub(crate) type MintIVec4 = mint::Vector4; diff --git a/imgui/src/plothistogram.rs b/imgui/src/plothistogram.rs index ef490a155..082297000 100644 --- a/imgui/src/plothistogram.rs +++ b/imgui/src/plothistogram.rs @@ -62,8 +62,8 @@ impl<'ui, 'p, Label: AsRef, Overlay: AsRef> PlotHistogram<'ui, 'p, Lab self } - pub fn graph_size(mut self, graph_size: [f32; 2]) -> Self { - self.graph_size = graph_size; + pub fn graph_size(mut self, graph_size: impl Into) -> Self { + self.graph_size = graph_size.into().into(); self } diff --git a/imgui/src/plotlines.rs b/imgui/src/plotlines.rs index 5c57e8e28..a4d844156 100644 --- a/imgui/src/plotlines.rs +++ b/imgui/src/plotlines.rs @@ -62,8 +62,8 @@ impl<'ui, 'p, Label: AsRef, Overlay: AsRef> PlotLines<'ui, 'p, Label, self } - pub fn graph_size(mut self, graph_size: [f32; 2]) -> Self { - self.graph_size = graph_size; + pub fn graph_size(mut self, graph_size: impl Into) -> Self { + self.graph_size = graph_size.into().into(); self } diff --git a/imgui/src/stacks.rs b/imgui/src/stacks.rs index c5964a7aa..94fad5859 100644 --- a/imgui/src/stacks.rs +++ b/imgui/src/stacks.rs @@ -5,6 +5,7 @@ use std::ptr; use crate::context::Context; use crate::fonts::atlas::FontId; use crate::internal::RawCast; +use crate::math::MintVec4; use crate::style::{StyleColor, StyleVar}; use crate::sys; use crate::{Id, Ui}; @@ -61,9 +62,9 @@ impl<'ui> Ui<'ui> { pub fn push_style_color( &self, style_color: StyleColor, - color: [f32; 4], + color: impl Into, ) -> ColorStackToken<'_> { - unsafe { sys::igPushStyleColor_Vec4(style_color as i32, color.into()) }; + unsafe { sys::igPushStyleColor_Vec4(style_color as i32, color.into().into()) }; ColorStackToken::new(self) } diff --git a/imgui/src/utils.rs b/imgui/src/utils.rs index a1f41e1f7..f26e87566 100644 --- a/imgui/src/utils.rs +++ b/imgui/src/utils.rs @@ -2,7 +2,8 @@ use bitflags::bitflags; use crate::input::mouse::MouseButton; -use crate::style::{Style, StyleColor}; +use crate::math::MintVec2; +use crate::style::StyleColor; use crate::sys; use crate::Ui; @@ -143,13 +144,17 @@ impl<'ui> Ui<'ui> { impl<'ui> Ui<'ui> { /// Returns `true` if the rectangle (of given size, starting from cursor position) is visible #[doc(alias = "IsRectVisibleNil")] - pub fn is_cursor_rect_visible(&self, size: [f32; 2]) -> bool { - unsafe { sys::igIsRectVisible_Nil(size.into()) } + pub fn is_cursor_rect_visible(&self, size: impl Into) -> bool { + unsafe { sys::igIsRectVisible_Nil(size.into().into()) } } /// Returns `true` if the rectangle (in screen coordinates) is visible #[doc(alias = "IsRectVisibleNilVec2")] - pub fn is_rect_visible(&self, rect_min: [f32; 2], rect_max: [f32; 2]) -> bool { - unsafe { sys::igIsRectVisible_Vec2(rect_min.into(), rect_max.into()) } + pub fn is_rect_visible( + &self, + rect_min: impl Into, + rect_max: impl Into, + ) -> bool { + unsafe { sys::igIsRectVisible_Vec2(rect_min.into().into(), rect_max.into().into()) } } /// Returns the global imgui-rs time. /// @@ -173,19 +178,20 @@ impl<'ui> Ui<'ui> { pub fn style_color(&self, style_color: StyleColor) -> [f32; 4] { self.ctx.style()[style_color] } - /// Returns a shared reference to the current [`Style`]. - /// - /// ## Safety - /// - /// This function is tagged as `unsafe` because pushing via - /// [`push_style_color`](crate::Ui::push_style_color) or - /// [`push_style_var`](crate::Ui::push_style_var) or popping via - /// [`ColorStackToken::pop`](crate::ColorStackToken::pop) or - /// [`StyleStackToken::pop`](crate::StyleStackToken::pop) will modify the values in the returned - /// shared reference. Therefore, you should not retain this reference across calls to push and - /// pop. The [`clone_style`](Ui::clone_style) version may instead be used to avoid `unsafe`. - #[doc(alias = "GetStyle")] - pub unsafe fn style(&self) -> &Style { - self.ctx.style() - } +} + +/// Returns a shared reference to the current [`Style`]. +/// +/// ## Safety +/// +/// This function is tagged as `unsafe` because pushing via +/// [`push_style_color`](crate::Ui::push_style_color) or +/// [`push_style_var`](crate::Ui::push_style_var) or popping via +/// [`ColorStackToken::pop`](crate::ColorStackToken::pop) or +/// [`StyleStackToken::pop`](crate::StyleStackToken::pop) will modify the values in the returned +/// shared reference. Therefore, you should not retain this reference across calls to push and +/// pop. The [`clone_style`](Ui::clone_style) version may instead be used to avoid `unsafe`. +#[doc(alias = "GetStyle")] +pub unsafe fn style(&self) -> &Style { + self.ctx.style() } diff --git a/imgui/src/widget/image.rs b/imgui/src/widget/image.rs index dd4c58bdb..4e2d11530 100644 --- a/imgui/src/widget/image.rs +++ b/imgui/src/widget/image.rs @@ -1,5 +1,7 @@ use std::os::raw::c_void; +use crate::math::MintVec2; +use crate::math::MintVec4; use crate::render::renderer::TextureId; use crate::sys; use crate::Ui; @@ -19,10 +21,10 @@ pub struct Image { impl Image { /// Creates a new image builder with the given texture and size #[doc(alias = "Image")] - pub const fn new(texture_id: TextureId, size: [f32; 2]) -> Image { + pub fn new(texture_id: TextureId, size: impl Into) -> Image { Image { texture_id, - size, + size: size.into().into(), uv0: [0.0, 0.0], uv1: [1.0, 1.0], tint_col: [1.0, 1.0, 1.0, 1.0], @@ -30,28 +32,29 @@ impl Image { } } /// Sets the image size - pub const fn size(mut self, size: [f32; 2]) -> Self { - self.size = size; + #[deprecated(note = "just set the size in the `new` constructor.")] + pub fn size(mut self, size: impl Into) -> Self { + self.size = size.into().into(); self } /// Sets uv0 (default `[0.0, 0.0]`) - pub const fn uv0(mut self, uv0: [f32; 2]) -> Self { - self.uv0 = uv0; + pub fn uv0(mut self, uv0: impl Into) -> Self { + self.uv0 = uv0.into().into(); self } /// Sets uv1 (default `[1.0, 1.0]`) - pub const fn uv1(mut self, uv1: [f32; 2]) -> Self { - self.uv1 = uv1; + pub fn uv1(mut self, uv1: impl Into) -> Self { + self.uv1 = uv1.into().into(); self } /// Sets the tint color (default: no tint color) - pub const fn tint_col(mut self, tint_col: [f32; 4]) -> Self { - self.tint_col = tint_col; + pub fn tint_col(mut self, tint_col: impl Into) -> Self { + self.tint_col = tint_col.into().into(); self } /// Sets the border color (default: no border) - pub const fn border_col(mut self, border_col: [f32; 4]) -> Self { - self.border_col = border_col; + pub fn border_col(mut self, border_col: impl Into) -> Self { + self.border_col = border_col.into().into(); self } /// Builds the image @@ -85,10 +88,10 @@ pub struct ImageButton { impl ImageButton { /// Creates a new image button builder with the given texture and size #[doc(alias = "ImageButton")] - pub fn new(texture_id: TextureId, size: [f32; 2]) -> ImageButton { + pub fn new(texture_id: TextureId, size: impl Into) -> ImageButton { ImageButton { texture_id, - size, + size: size.into().into(), uv0: [0.0, 0.0], uv1: [1.0, 1.0], frame_padding: -1, @@ -96,19 +99,21 @@ impl ImageButton { tint_col: [1.0, 1.0, 1.0, 1.0], } } + /// Sets the image button size - pub fn size(mut self, size: [f32; 2]) -> Self { - self.size = size; + #[deprecated(note = "just set the size in the `new` constructor.")] + pub fn size(mut self, size: impl Into) -> Self { + self.size = size.into().into(); self } /// Sets uv0 (default `[0.0, 0.0]`) - pub fn uv0(mut self, uv0: [f32; 2]) -> Self { - self.uv0 = uv0; + pub fn uv0(mut self, uv0: impl Into) -> Self { + self.uv0 = uv0.into().into(); self } /// Sets uv1 (default `[1.0, 1.0]`) - pub fn uv1(mut self, uv1: [f32; 2]) -> Self { - self.uv1 = uv1; + pub fn uv1(mut self, uv1: impl Into) -> Self { + self.uv1 = uv1.into().into(); self } /// Sets the frame padding (default: uses frame padding from style). @@ -121,13 +126,13 @@ impl ImageButton { self } /// Sets the background color (default: no background color) - pub fn background_col(mut self, bg_col: [f32; 4]) -> Self { - self.bg_col = bg_col; + pub fn background_col(mut self, bg_col: impl Into) -> Self { + self.bg_col = bg_col.into().into(); self } /// Sets the tint color (default: no tint color) - pub fn tint_col(mut self, tint_col: [f32; 4]) -> Self { - self.tint_col = tint_col; + pub fn tint_col(mut self, tint_col: impl Into) -> Self { + self.tint_col = tint_col.into().into(); self } /// Builds the image button diff --git a/imgui/src/widget/list_box.rs b/imgui/src/widget/list_box.rs index 0485e6d9d..922d8711c 100644 --- a/imgui/src/widget/list_box.rs +++ b/imgui/src/widget/list_box.rs @@ -8,7 +8,7 @@ use crate::Ui; #[must_use] pub struct ListBox { label: T, - size: sys::ImVec2, + size: [f32; 2], } impl> ListBox { @@ -17,7 +17,7 @@ impl> ListBox { pub fn new(label: T) -> ListBox { ListBox { label, - size: sys::ImVec2::zero(), + size: [0.0, 0.0], } } @@ -28,8 +28,8 @@ impl> ListBox { /// /// Default: [0.0, 0.0], in which case the combobox calculates a sensible width and height #[inline] - pub fn size(mut self, size: [f32; 2]) -> Self { - self.size = sys::ImVec2::new(size[0], size[1]); + pub fn size(mut self, size: impl Into) -> Self { + self.size = size.into().into(); self } /// Creates a list box and starts appending to it. @@ -40,7 +40,8 @@ impl> ListBox { /// Returns `None` if the list box is not open and no content should be rendered. #[must_use] pub fn begin<'ui>(self, ui: &Ui<'ui>) -> Option> { - let should_render = unsafe { sys::igBeginListBox(ui.scratch_txt(self.label), self.size) }; + let should_render = + unsafe { sys::igBeginListBox(ui.scratch_txt(self.label), self.size.into()) }; if should_render { Some(ListBoxToken::new(ui)) } else { diff --git a/imgui/src/widget/misc.rs b/imgui/src/widget/misc.rs index e54e67806..f79e12845 100644 --- a/imgui/src/widget/misc.rs +++ b/imgui/src/widget/misc.rs @@ -1,6 +1,7 @@ use bitflags::bitflags; use std::ops::{BitAnd, BitAndAssign, BitOrAssign, Not}; +use crate::math::MintVec2; use crate::sys; use crate::{Direction, Ui}; @@ -38,8 +39,8 @@ impl<'ui> Ui<'ui> { /// Setting `size` as `[0.0, 0.0]` will size the button to the label's width in /// the current style. #[doc(alias = "Button")] - pub fn button_with_size(&self, label: impl AsRef, size: [f32; 2]) -> bool { - unsafe { sys::igButton(self.scratch_txt(label), size.into()) } + pub fn button_with_size(&self, label: impl AsRef, size: impl Into) -> bool { + unsafe { sys::igButton(self.scratch_txt(label), size.into().into()) } } /// Renders a small clickable button that is easy to embed in text. /// @@ -52,8 +53,8 @@ impl<'ui> Ui<'ui> { /// /// Returns true if this button was clicked. #[doc(alias = "InvisibleButton")] - pub fn invisible_button(&self, id: impl AsRef, size: [f32; 2]) -> bool { - unsafe { sys::igInvisibleButton(self.scratch_txt(id), size.into(), 0) } + pub fn invisible_button(&self, id: impl AsRef, size: impl Into) -> bool { + unsafe { sys::igInvisibleButton(self.scratch_txt(id), size.into().into(), 0) } } /// Renders a widget with button behaviour without the visual look. /// @@ -62,10 +63,16 @@ impl<'ui> Ui<'ui> { pub fn invisible_button_flags( &self, id: impl AsRef, - size: [f32; 2], + size: impl Into, flags: ButtonFlags, ) -> bool { - unsafe { sys::igInvisibleButton(self.scratch_txt(id), size.into(), flags.bits() as i32) } + unsafe { + sys::igInvisibleButton( + self.scratch_txt(id), + size.into().into(), + flags.bits() as i32, + ) + } } /// Renders a square button with an arrow shape. /// diff --git a/imgui/src/widget/progress_bar.rs b/imgui/src/widget/progress_bar.rs index dd6cba29f..eb641efe5 100644 --- a/imgui/src/widget/progress_bar.rs +++ b/imgui/src/widget/progress_bar.rs @@ -1,3 +1,4 @@ +use crate::math::MintVec2; use crate::sys; // use crate::ImStr; use crate::Ui; @@ -55,8 +56,8 @@ impl> ProgressBar { /// Negative values will automatically align to the end of the axis, zero will let the progress /// bar choose a size, and positive values will use the given size. #[inline] - pub fn size(mut self, size: [f32; 2]) -> Self { - self.size = size; + pub fn size(mut self, size: impl Into) -> Self { + self.size = size.into().into(); self } diff --git a/imgui/src/widget/selectable.rs b/imgui/src/widget/selectable.rs index ef0c172a5..48eceaa2e 100644 --- a/imgui/src/widget/selectable.rs +++ b/imgui/src/widget/selectable.rs @@ -1,5 +1,6 @@ use bitflags::bitflags; +use crate::math::MintVec2; use crate::sys; use crate::Ui; @@ -100,8 +101,8 @@ impl> Selectable { /// - `> 0.0`: use given height /// - `= 0.0`: use label height #[inline] - pub fn size(mut self, size: [f32; 2]) -> Self { - self.size = size; + pub fn size(mut self, size: impl Into) -> Self { + self.size = size.into().into(); self } /// Builds the selectable. diff --git a/imgui/src/widget/slider.rs b/imgui/src/widget/slider.rs index 231dd6ba2..5b7d1c96f 100644 --- a/imgui/src/widget/slider.rs +++ b/imgui/src/widget/slider.rs @@ -2,6 +2,7 @@ use bitflags::bitflags; use std::os::raw::c_void; use crate::internal::DataTypeKind; +use crate::math::MintVec2; use crate::sys; use crate::Ui; @@ -161,10 +162,10 @@ where /// It is safe, though up to C++ Dear ImGui, on how to handle when /// `min > max`. #[doc(alias = "VSliderScalar")] - pub fn new(label: Label, size: [f32; 2], min: Data, max: Data) -> Self { + pub fn new(label: Label, size: impl Into, min: Data, max: Data) -> Self { VerticalSlider { label, - size, + size: size.into().into(), min, max, display_format: None, diff --git a/imgui/src/widget/text.rs b/imgui/src/widget/text.rs index 7273ec488..99bb0d442 100644 --- a/imgui/src/widget/text.rs +++ b/imgui/src/widget/text.rs @@ -1,5 +1,6 @@ use std::os::raw::c_char; +use crate::math::MintVec4; // use crate::string::ImStr; use crate::style::StyleColor; use crate::Ui; @@ -24,7 +25,7 @@ impl<'ui> Ui<'ui> { } } /// Renders simple text using the given text color - pub fn text_colored>(&self, color: [f32; 4], text: T) { + pub fn text_colored>(&self, color: impl Into, text: T) { let style = self.push_style_color(StyleColor::Text, color); self.text(text); style.end(); diff --git a/imgui/src/window/child_window.rs b/imgui/src/window/child_window.rs index 741c65749..8b83df4e8 100644 --- a/imgui/src/window/child_window.rs +++ b/imgui/src/window/child_window.rs @@ -1,5 +1,6 @@ use std::f32; +use crate::math::MintVec2; use crate::sys; use crate::window::WindowFlags; use crate::Ui; @@ -47,8 +48,8 @@ impl<'ui, Label: AsRef> ChildWindow<'ui, Label> { /// - `= 0.0`: use remaining host window size /// - `< 0.0`: use remaining host window size minus abs(size) #[inline] - pub fn size(mut self, size: [f32; 2]) -> Self { - self.size = size; + pub fn size(mut self, size: impl Into) -> Self { + self.size = size.into().into(); self } /// Sets the window content size, which can be used to enforce scrollbars. @@ -57,8 +58,8 @@ impl<'ui, Label: AsRef> ChildWindow<'ui, Label> { /// 0.0 to leave the size automatic. #[inline] #[doc(alias = "SetNextWindowContentSize")] - pub fn content_size(mut self, size: [f32; 2]) -> Self { - self.content_size = size; + pub fn content_size(mut self, size: impl Into) -> Self { + self.content_size = size.into().into(); self } /// Sets the window focused state, which can be used to bring the window to front From f743fefe791a63fd73a4170ff3bf2e40ce892053 Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Fri, 24 Sep 2021 17:17:27 -0400 Subject: [PATCH 031/200] aaand examples compile. complex trait bounds there... --- imgui-examples/examples/test_window_impl.rs | 18 ++++++++-------- imgui-sys/Cargo.toml | 2 +- imgui/src/input_widget.rs | 16 +++++++------- imgui/src/lib.rs | 24 ++++++++++----------- imgui/src/widget/color_editors.rs | 20 ++++++++--------- 5 files changed, 40 insertions(+), 40 deletions(-) diff --git a/imgui-examples/examples/test_window_impl.rs b/imgui-examples/examples/test_window_impl.rs index 8d0d483df..a43e95b27 100644 --- a/imgui-examples/examples/test_window_impl.rs +++ b/imgui-examples/examples/test_window_impl.rs @@ -545,7 +545,7 @@ fn show_test_window(ui: &Ui, state: &mut State, opened: &mut bool) { ui.input_float3("input float3", &mut state.vec3f) .build(); ColorEdit3::new("color 1", &mut state.col1).build(ui); - ColorEdit3::new("color 2", &mut state.col2).build(ui); + ColorEdit4::new("color 2", &mut state.col2).build(ui); TreeNode::new("Multi-component Widgets").build(ui, || { ui.input_float2("input float2", &mut state.vec2f) @@ -601,19 +601,19 @@ fn show_test_window(ui: &Ui, state: &mut State, opened: &mut bool) { "Click on the colored square to open a color picker. CTRL+click on individual component to input value.\n", ); - ColorEdit3::new("MyColor##1", &mut s.color) + ColorEdit4::new("MyColor##1", &mut s.color) .flags(misc_flags) .alpha(false) .build(ui); ui.text("Color widget HSV with Alpha:"); - ColorEdit3::new("MyColor##2", &mut s.color) + ColorEdit4::new("MyColor##2", &mut s.color) .flags(misc_flags) .input_mode(ColorEditInputMode::HSV) .build(ui); ui.text("Color widget with Float Display:"); - ColorEdit3::new("MyColor##2f", &mut s.color) + ColorEdit4::new("MyColor##2f", &mut s.color) .flags(misc_flags) .format(ColorFormat::Float) .build(ui); @@ -627,7 +627,7 @@ CTRL+click on individual component to input value.\n", With the label(false) function you can pass a non-empty label which \ will only be used for the tooltip and picker popup.", ); - ColorEdit3::new("MyColor##3", &mut s.color) + ColorEdit4::new("MyColor##3", &mut s.color) .flags(misc_flags) .inputs(false) .label(false) @@ -642,13 +642,13 @@ CTRL+click on individual component to input value.\n", ui.checkbox("With Ref Color", &mut s.ref_color); if s.ref_color { ui.same_line(); - ColorEdit3::new("##RefColor", &mut s.ref_color_v) + ColorEdit4::new("##RefColor", &mut s.ref_color_v) .flags(misc_flags) .inputs(false) .build(ui); } } - let mut b = ColorPicker3::new + let mut b = ColorPicker4::new ("MyColor##4", &mut s.color) .flags(misc_flags) .alpha(s.alpha) @@ -657,7 +657,7 @@ CTRL+click on individual component to input value.\n", .display_rgb(true); if s.ref_color { - b = b.reference_color(&s.ref_color_v) + b = b.reference_color(s.ref_color_v) } b.build(ui); }); @@ -806,7 +806,7 @@ CTRL+click on individual component to input value.\n", let items = &["aaaa", "bbbb", "cccc", "dddd", "eeee"]; ui.combo_simple_string("Combo", &mut state.stacked_modals_item, items); - ColorEdit3::new("color", &mut state.stacked_modals_color).build(ui); + ColorEdit4::new("color", &mut state.stacked_modals_color).build(ui); if ui.button("Add another modal..") { ui.open_popup("Stacked 2") ; diff --git a/imgui-sys/Cargo.toml b/imgui-sys/Cargo.toml index 1cbe6658f..2515d4167 100644 --- a/imgui-sys/Cargo.toml +++ b/imgui-sys/Cargo.toml @@ -15,7 +15,7 @@ exclude = ["third-party/*.json", "third-party/*.lua", "third-party/imgui/*/"] [dependencies] chlorine = "1.0.7" -mint = "0.5" +mint = "0.5.6" [build-dependencies] cc = "1.0" diff --git a/imgui/src/input_widget.rs b/imgui/src/input_widget.rs index 6f0754440..200df0f1c 100644 --- a/imgui/src/input_widget.rs +++ b/imgui/src/input_widget.rs @@ -553,9 +553,9 @@ impl<'ui, 'p, L: AsRef> InputFloat<'ui, 'p, L> { } macro_rules! impl_input_floatn { - ($InputFloatN:ident, $MINT_TARGET:ident, $N:expr, $igInputFloatN:ident) => { + ($InputFloatN:ident, $MINT_TARGET:ty, $N:expr, $igInputFloatN:ident) => { #[must_use] - pub struct $InputFloatN<'ui, 'p, L, T = [f32; $N]> { + pub struct $InputFloatN<'ui, 'p, L, T> { label: L, value: &'p mut T, flags: InputTextFlags, @@ -565,8 +565,8 @@ macro_rules! impl_input_floatn { impl<'ui, 'p, L, T> $InputFloatN<'ui, 'p, L, T> where L: AsRef, - T: From<$MINT_TARGET> + Copy, - $MINT_TARGET: From, + T: Copy + Into<$MINT_TARGET>, + $MINT_TARGET: Into + Into<[f32; $N]>, { pub fn new(ui: &'ui Ui<'ui>, label: L, value: &'p mut T) -> Self { $InputFloatN { @@ -578,7 +578,7 @@ macro_rules! impl_input_floatn { } pub fn build(self) -> bool { - let value: $MINT_TARGET = $MINT_TARGET::from(*self.value); + let value: $MINT_TARGET = (*self.value).into(); let mut value: [f32; $N] = value.into(); let changed = unsafe { @@ -620,8 +620,8 @@ macro_rules! impl_input_intn { impl<'ui, 'p, L, T> $InputIntN<'ui, 'p, L, T> where L: AsRef, - T: From<$MINT_TARGET> + Copy, - $MINT_TARGET: From, + T: Copy + Into<$MINT_TARGET>, + $MINT_TARGET: Into + Into<[i32; $N]>, { pub fn new(ui: &'ui Ui<'ui>, label: L, value: &'p mut T) -> Self { $InputIntN { @@ -633,7 +633,7 @@ macro_rules! impl_input_intn { } pub fn build(self) -> bool { - let value: $MINT_TARGET = $MINT_TARGET::from(*self.value); + let value: $MINT_TARGET = (*self.value).into(); let mut value: [i32; $N] = value.into(); let changed = unsafe { diff --git a/imgui/src/lib.rs b/imgui/src/lib.rs index 336b5dad3..7bfca42f4 100644 --- a/imgui/src/lib.rs +++ b/imgui/src/lib.rs @@ -397,8 +397,8 @@ impl<'ui> Ui<'ui> { ) -> InputFloat2<'ui, 'p, L, T> where L: AsRef, - T: From + Copy, - MintVec2: From, + T: Copy + Into, + MintVec2: Into + Into<[f32; 2]>, { InputFloat2::new(self, label, value) } @@ -410,8 +410,8 @@ impl<'ui> Ui<'ui> { ) -> InputFloat3<'ui, 'p, L, T> where L: AsRef, - T: From + Copy, - MintVec3: From, + T: Copy + Into, + MintVec3: Into + Into<[f32; 3]>, { InputFloat3::new(self, label, value) } @@ -423,8 +423,8 @@ impl<'ui> Ui<'ui> { ) -> InputFloat4<'ui, 'p, L, T> where L: AsRef, - T: From + Copy, - MintVec4: From, + T: Copy + Into, + MintVec4: Into + Into<[f32; 4]>, { InputFloat4::new(self, label, value) } @@ -440,8 +440,8 @@ impl<'ui> Ui<'ui> { pub fn input_int2<'p, L, T>(&'ui self, label: L, value: &'p mut T) -> InputInt2<'ui, 'p, L, T> where L: AsRef, - T: From + Copy, - MintIVec2: From, + T: Copy + Into, + MintIVec2: Into + Into<[i32; 2]>, { InputInt2::new(self, label, value) } @@ -449,8 +449,8 @@ impl<'ui> Ui<'ui> { pub fn input_int3<'p, L, T>(&'ui self, label: L, value: &'p mut T) -> InputInt3<'ui, 'p, L, T> where L: AsRef, - T: From + Copy, - MintIVec3: From, + T: Copy + Into, + MintIVec3: Into + Into<[i32; 3]>, { InputInt3::new(self, label, value) } @@ -458,8 +458,8 @@ impl<'ui> Ui<'ui> { pub fn input_int4<'p, L, T>(&'ui self, label: L, value: &'p mut T) -> InputInt4<'ui, 'p, L, T> where L: AsRef, - T: From + Copy, - MintIVec4: From, + T: Copy + Into, + MintIVec4: Into + Into<[i32; 4]>, { InputInt4::new(self, label, value) } diff --git a/imgui/src/widget/color_editors.rs b/imgui/src/widget/color_editors.rs index b04a6b44c..bec236356 100644 --- a/imgui/src/widget/color_editors.rs +++ b/imgui/src/widget/color_editors.rs @@ -195,8 +195,8 @@ pub struct ColorEdit3<'a, T, C> { impl<'a, T, C> ColorEdit3<'a, T, C> where T: AsRef, - MintVec3: From, - C: From + Copy, + C: Copy + Into, + MintVec3: Into + Into<[f32; 3]>, { /// Constructs a new color editor builder. #[doc(alias = "ColorEdit3")] @@ -377,8 +377,8 @@ pub struct ColorEdit4<'a, T, C> { impl<'a, T, C> ColorEdit4<'a, T, C> where T: AsRef, - MintVec4: From, - C: From + Copy, + C: Copy + Into, + MintVec4: Into + Into<[f32; 4]>, { /// Constructs a new color editor builder. #[doc(alias = "ColorEdit4")] @@ -556,8 +556,8 @@ pub struct ColorPicker3<'a, Label, Color> { impl<'a, Label, Color> ColorPicker3<'a, Label, Color> where Label: AsRef, - MintVec3: From, - Color: From + Copy, + Color: Copy + Into, + MintVec3: Into + Into<[f32; 3]>, { /// Constructs a new color picker builder. #[doc(alias = "ColorPicker3")] @@ -696,7 +696,7 @@ where /// Returns true if the color value was changed. pub fn build(mut self, ui: &Ui<'_>) -> bool { self.flags.insert(ColorEditFlags::NO_ALPHA); - let mut value: [f32; 3] = MintVec3::from(*self.value).into(); + let mut value: [f32; 3] = (*self.value).into().into(); let changed = unsafe { sys::igColorPicker3( ui.scratch_txt(self.label), @@ -741,8 +741,8 @@ pub struct ColorPicker4<'a, Label, Color> { impl<'a, Label, Color> ColorPicker4<'a, Label, Color> where Label: AsRef, - MintVec4: From, - Color: From + Copy, + Color: Copy + Into, + MintVec4: Into + Into<[f32; 4]>, { /// Constructs a new color picker builder. #[doc(alias = "ColorPicker4")] @@ -888,7 +888,7 @@ where /// Returns true if the color value was changed. pub fn build(mut self, ui: &Ui<'_>) -> bool { self.flags.insert(ColorEditFlags::NO_ALPHA); - let mut value: [f32; 4] = MintVec4::from(*self.value).into(); + let mut value: [f32; 4] = (*self.value).into().into(); let ref_color = self.ref_color.map(|c| c.as_ptr()).unwrap_or(ptr::null()); let changed = unsafe { From 83b6dc8d5f6471ff67efc483640c0b3c7e03cd1b Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Fri, 24 Sep 2021 17:21:08 -0400 Subject: [PATCH 032/200] slightly borked the rebase --- imgui/src/utils.rs | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/imgui/src/utils.rs b/imgui/src/utils.rs index f26e87566..b977c6db0 100644 --- a/imgui/src/utils.rs +++ b/imgui/src/utils.rs @@ -5,6 +5,7 @@ use crate::input::mouse::MouseButton; use crate::math::MintVec2; use crate::style::StyleColor; use crate::sys; +use crate::Style; use crate::Ui; bitflags! { @@ -178,20 +179,20 @@ impl<'ui> Ui<'ui> { pub fn style_color(&self, style_color: StyleColor) -> [f32; 4] { self.ctx.style()[style_color] } -} -/// Returns a shared reference to the current [`Style`]. -/// -/// ## Safety -/// -/// This function is tagged as `unsafe` because pushing via -/// [`push_style_color`](crate::Ui::push_style_color) or -/// [`push_style_var`](crate::Ui::push_style_var) or popping via -/// [`ColorStackToken::pop`](crate::ColorStackToken::pop) or -/// [`StyleStackToken::pop`](crate::StyleStackToken::pop) will modify the values in the returned -/// shared reference. Therefore, you should not retain this reference across calls to push and -/// pop. The [`clone_style`](Ui::clone_style) version may instead be used to avoid `unsafe`. -#[doc(alias = "GetStyle")] -pub unsafe fn style(&self) -> &Style { - self.ctx.style() + /// Returns a shared reference to the current [`Style`]. + /// + /// ## Safety + /// + /// This function is tagged as `unsafe` because pushing via + /// [`push_style_color`](crate::Ui::push_style_color) or + /// [`push_style_var`](crate::Ui::push_style_var) or popping via + /// [`ColorStackToken::pop`](crate::ColorStackToken::pop) or + /// [`StyleStackToken::pop`](crate::StyleStackToken::pop) will modify the values in the returned + /// shared reference. Therefore, you should not retain this reference across calls to push and + /// pop. The [`clone_style`](Ui::clone_style) version may instead be used to avoid `unsafe`. + #[doc(alias = "GetStyle")] + pub unsafe fn style(&self) -> &Style { + self.ctx.style() + } } From bda3319d213b9f269bdd3e297898b492d615f69a Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Thu, 30 Sep 2021 19:01:47 -0400 Subject: [PATCH 033/200] fixed examples --- imgui/src/widget/color_editors.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/imgui/src/widget/color_editors.rs b/imgui/src/widget/color_editors.rs index bec236356..e7157a558 100644 --- a/imgui/src/widget/color_editors.rs +++ b/imgui/src/widget/color_editors.rs @@ -179,7 +179,7 @@ bitflags! { /// # let mut imgui = Context::create(); /// # let ui = imgui.frame(); /// # let mut color = [0.0, 0.0, 0.0, 1.0]; -/// let ce = ColorEdit::new(im_str!("color_edit"), &mut color); +/// let ce = ColorEdit4::new("color_edit", &mut color); /// if ce.build(&ui) { /// println!("The color was changed"); /// } @@ -361,7 +361,7 @@ where /// # let mut imgui = Context::create(); /// # let ui = imgui.frame(); /// # let mut color = [0.0, 0.0, 0.0, 1.0]; -/// let ce = ColorEdit::new(im_str!("color_edit"), &mut color); +/// let ce = ColorEdit4::new("color_edit", &mut color); /// if ce.build(&ui) { /// println!("The color was changed"); /// } @@ -540,7 +540,7 @@ where /// # let mut imgui = Context::create(); /// # let ui = imgui.frame(); /// # let mut color = [0.0, 0.0, 0.0, 1.0]; -/// let cp = ColorPicker::new(im_str!("color_picker"), &mut color); +/// let cp = ColorPicker4::new("color_picker", &mut color); /// if cp.build(&ui) { /// println!("A color was picked"); /// } @@ -724,7 +724,7 @@ where /// # let mut imgui = Context::create(); /// # let ui = imgui.frame(); /// # let mut color = [0.0, 0.0, 0.0, 1.0]; -/// let cp = ColorPicker::new(im_str!("color_picker"), &mut color); +/// let cp = ColorPicker4::new("color_picker", &mut color); /// if cp.build(&ui) { /// println!("A color was picked"); /// } From 191a346545c76f944ac06dcf85d7ab15905a4f68 Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Sun, 26 Sep 2021 21:07:45 -0400 Subject: [PATCH 034/200] init significant changes --- imgui/src/context.rs | 23 +++--- imgui/src/input/mouse.rs | 54 ++++++------- imgui/src/lib.rs | 53 ++++++++----- imgui/src/stacks.rs | 164 ++++++++++++++++++++++++++------------- imgui/src/string.rs | 10 +-- imgui/src/utils.rs | 5 +- imgui/src/widget/drag.rs | 4 +- 7 files changed, 194 insertions(+), 119 deletions(-) diff --git a/imgui/src/context.rs b/imgui/src/context.rs index 592ed88d3..a42aed6fe 100644 --- a/imgui/src/context.rs +++ b/imgui/src/context.rs @@ -512,31 +512,36 @@ impl Context { }, } } + + /// Starts a new frame. + #[deprecated(since = "0.9.0", note = "use `new_frame` instead")] + pub fn frame(&mut self) -> Ui<'_> { + self.new_frame() + } + /// Starts a new frame and returns an `Ui` instance for constructing a user interface. /// /// # Panics /// - /// Panics if the context uses a shared font atlas that is already borrowed + /// Panics if the context uses a shared font atlas that is already borrowed. + /// Do not attempt to borrow the context afterwards, if you are using a shared font atlas. #[doc(alias = "NewFame")] - pub fn frame(&mut self) -> Ui<'_> { + pub fn new_frame(&mut self) -> Ui<'_> { // Clear default font if it no longer exists. This could be an error in the future let default_font = self.io().font_default; if !default_font.is_null() && self.fonts().get_font(FontId(default_font)).is_none() { self.io_mut().font_default = ptr::null_mut(); } // NewFrame/Render/EndFrame mutate the font atlas so we need exclusive access to it - let font_atlas = self - .shared_font_atlas - .as_ref() - .map(|font_atlas| font_atlas.borrow_mut()); + if let Some(font_atlas) = self.shared_font_atlas.as_ref() { + assert!(font_atlas.try_borrow_mut().is_ok()); + } // TODO: precondition checks unsafe { sys::igNewFrame(); } Ui { - ctx: self, - font_atlas, - buffer: crate::UiBuffer::new(1024).into(), + phantom_data: std::marker::PhantomData, } } } diff --git a/imgui/src/input/mouse.rs b/imgui/src/input/mouse.rs index 7aa66abf0..218b56cd8 100644 --- a/imgui/src/input/mouse.rs +++ b/imgui/src/input/mouse.rs @@ -237,7 +237,7 @@ fn test_mouse_down_clicked_released() { let (_guard, mut ctx) = crate::test::test_ctx_initialized(); { ctx.io_mut().mouse_down = [false; 5]; - let ui = ctx.frame(); + let ui = ctx.new_frame(); assert!(!ui.is_mouse_down(button)); assert!(!ui.is_any_mouse_down()); assert!(!ui.is_mouse_clicked(button)); @@ -245,14 +245,14 @@ fn test_mouse_down_clicked_released() { } { ctx.io_mut()[button] = true; - let ui = ctx.frame(); + let ui = ctx.new_frame(); assert!(ui.is_mouse_down(button)); assert!(ui.is_any_mouse_down()); assert!(ui.is_mouse_clicked(button)); assert!(!ui.is_mouse_released(button)); } { - let ui = ctx.frame(); + let ui = ctx.new_frame(); assert!(ui.is_mouse_down(button)); assert!(ui.is_any_mouse_down()); assert!(!ui.is_mouse_clicked(button)); @@ -260,14 +260,14 @@ fn test_mouse_down_clicked_released() { } { ctx.io_mut()[button] = false; - let ui = ctx.frame(); + let ui = ctx.new_frame(); assert!(!ui.is_mouse_down(button)); assert!(!ui.is_any_mouse_down()); assert!(!ui.is_mouse_clicked(button)); assert!(ui.is_mouse_released(button)); } { - let ui = ctx.frame(); + let ui = ctx.new_frame(); assert!(!ui.is_mouse_down(button)); assert!(!ui.is_any_mouse_down()); assert!(!ui.is_mouse_clicked(button)); @@ -287,42 +287,42 @@ fn test_mouse_double_click() { { // Pass one second of time ctx.io_mut().delta_time = 1.0; - let _ = ctx.frame(); + let _ = ctx.new_frame(); } // Fast clicks ctx.io_mut().delta_time = 1.0 / 60.0; for &button in MouseButton::VARIANTS.iter() { { ctx.io_mut().mouse_down = [false; 5]; - let ui = ctx.frame(); + let ui = ctx.new_frame(); assert!(!ui.is_mouse_clicked(button)); assert!(!ui.is_mouse_double_clicked(button)); } { ctx.io_mut()[button] = true; - let ui = ctx.frame(); + let ui = ctx.new_frame(); assert!(ui.is_mouse_clicked(button)); assert!(!ui.is_mouse_double_clicked(button)); } { - let ui = ctx.frame(); + let ui = ctx.new_frame(); assert!(!ui.is_mouse_clicked(button)); assert!(!ui.is_mouse_double_clicked(button)); } { ctx.io_mut()[button] = false; - let ui = ctx.frame(); + let ui = ctx.new_frame(); assert!(!ui.is_mouse_clicked(button)); assert!(!ui.is_mouse_double_clicked(button)); } { ctx.io_mut()[button] = true; - let ui = ctx.frame(); + let ui = ctx.new_frame(); assert!(ui.is_mouse_clicked(button)); assert!(ui.is_mouse_double_clicked(button)); } { - let ui = ctx.frame(); + let ui = ctx.new_frame(); assert!(!ui.is_mouse_clicked(button)); assert!(!ui.is_mouse_double_clicked(button)); } @@ -332,35 +332,35 @@ fn test_mouse_double_click() { for &button in MouseButton::VARIANTS.iter() { { ctx.io_mut().mouse_down = [false; 5]; - let ui = ctx.frame(); + let ui = ctx.new_frame(); assert!(!ui.is_mouse_clicked(button)); assert!(!ui.is_mouse_double_clicked(button)); } { ctx.io_mut()[button] = true; - let ui = ctx.frame(); + let ui = ctx.new_frame(); assert!(ui.is_mouse_clicked(button)); assert!(!ui.is_mouse_double_clicked(button)); } { - let ui = ctx.frame(); + let ui = ctx.new_frame(); assert!(!ui.is_mouse_clicked(button)); assert!(!ui.is_mouse_double_clicked(button)); } { ctx.io_mut()[button] = false; - let ui = ctx.frame(); + let ui = ctx.new_frame(); assert!(!ui.is_mouse_clicked(button)); assert!(!ui.is_mouse_double_clicked(button)); } { ctx.io_mut()[button] = true; - let ui = ctx.frame(); + let ui = ctx.new_frame(); assert!(ui.is_mouse_clicked(button)); assert!(!ui.is_mouse_double_clicked(button)); } { - let ui = ctx.frame(); + let ui = ctx.new_frame(); assert!(!ui.is_mouse_clicked(button)); assert!(!ui.is_mouse_double_clicked(button)); } @@ -370,7 +370,7 @@ fn test_mouse_double_click() { #[test] fn test_set_get_mouse_cursor() { let (_guard, mut ctx) = crate::test::test_ctx_initialized(); - let ui = ctx.frame(); + let ui = ctx.new_frame(); ui.set_mouse_cursor(None); assert_eq!(None, ui.mouse_cursor()); ui.set_mouse_cursor(Some(MouseCursor::Hand)); @@ -384,7 +384,7 @@ fn test_mouse_drags() { { ctx.io_mut().mouse_pos = [0.0, 0.0]; ctx.io_mut().mouse_down = [false; 5]; - let ui = ctx.frame(); + let ui = ctx.new_frame(); assert!(!ui.is_mouse_dragging(button)); assert!(!ui.is_mouse_dragging_with_threshold(button, 200.0)); assert_eq!(ui.mouse_drag_delta_with_button(button), [0.0, 0.0]); @@ -395,7 +395,7 @@ fn test_mouse_drags() { } { ctx.io_mut()[button] = true; - let ui = ctx.frame(); + let ui = ctx.new_frame(); assert!(!ui.is_mouse_dragging(button)); assert!(!ui.is_mouse_dragging_with_threshold(button, 200.0)); assert_eq!(ui.mouse_drag_delta_with_button(button), [0.0, 0.0]); @@ -406,7 +406,7 @@ fn test_mouse_drags() { } { ctx.io_mut().mouse_pos = [0.0, 100.0]; - let ui = ctx.frame(); + let ui = ctx.new_frame(); assert!(ui.is_mouse_dragging(button)); assert!(!ui.is_mouse_dragging_with_threshold(button, 200.0)); assert_eq!(ui.mouse_drag_delta_with_button(button), [0.0, 100.0]); @@ -417,7 +417,7 @@ fn test_mouse_drags() { } { ctx.io_mut().mouse_pos = [0.0, 200.0]; - let ui = ctx.frame(); + let ui = ctx.new_frame(); assert!(ui.is_mouse_dragging(button)); assert!(ui.is_mouse_dragging_with_threshold(button, 200.0)); assert_eq!(ui.mouse_drag_delta_with_button(button), [0.0, 200.0]); @@ -429,7 +429,7 @@ fn test_mouse_drags() { { ctx.io_mut().mouse_pos = [10.0, 10.0]; ctx.io_mut()[button] = false; - let ui = ctx.frame(); + let ui = ctx.new_frame(); assert!(!ui.is_mouse_dragging(button)); assert!(!ui.is_mouse_dragging_with_threshold(button, 200.0)); assert_eq!(ui.mouse_drag_delta_with_button(button), [10.0, 10.0]); @@ -440,7 +440,7 @@ fn test_mouse_drags() { } { ctx.io_mut()[button] = true; - let ui = ctx.frame(); + let ui = ctx.new_frame(); assert!(!ui.is_mouse_dragging(button)); assert!(!ui.is_mouse_dragging_with_threshold(button, 200.0)); assert_eq!(ui.mouse_drag_delta_with_button(button), [0.0, 0.0]); @@ -451,7 +451,7 @@ fn test_mouse_drags() { } { ctx.io_mut().mouse_pos = [180.0, 180.0]; - let ui = ctx.frame(); + let ui = ctx.new_frame(); assert!(ui.is_mouse_dragging(button)); assert!(ui.is_mouse_dragging_with_threshold(button, 200.0)); assert_eq!(ui.mouse_drag_delta_with_button(button), [170.0, 170.0]); @@ -470,7 +470,7 @@ fn test_mouse_drags() { } { ctx.io_mut().mouse_pos = [200.0, 200.0]; - let ui = ctx.frame(); + let ui = ctx.new_frame(); assert!(ui.is_mouse_dragging(button)); assert!(ui.is_mouse_dragging_with_threshold(button, 200.0)); assert_eq!(ui.mouse_drag_delta_with_button(button), [20.0, 20.0]); diff --git a/imgui/src/lib.rs b/imgui/src/lib.rs index 7bfca42f4..05fe3f29f 100644 --- a/imgui/src/lib.rs +++ b/imgui/src/lib.rs @@ -4,6 +4,7 @@ pub extern crate imgui_sys as sys; +use std::cell; use std::os::raw::{c_char, c_void}; pub use self::clipboard::*; @@ -118,17 +119,37 @@ impl Context { /// A temporary reference for building the user interface for one frame #[derive(Debug)] pub struct Ui<'ui> { - ctx: &'ui Context, - font_atlas: Option>, - // imgui isn't mutli-threaded -- so no one will ever access twice. - buffer: std::cell::UnsafeCell, + phantom_data: std::marker::PhantomData<&'ui Context>, } +/// This is our internal buffer that we use for the Ui object. +/// +/// We edit this buffer +static mut BUFFER: cell::UnsafeCell = + cell::UnsafeCell::new(string::UiBuffer::new(100)); + impl<'ui> Ui<'ui> { + /// This provides access to the backing scratch buffer that we use to write + /// strings, along with null-terminators, before we pass normal Rust strs to + /// Dear ImGui. + /// + /// This is given as a get-out-of-jail free card if you need to handle the buffer, + /// or, for example, resize it for some reason. Generally, you should never need this. + /// + /// ## Safety + /// + /// This uses a **static mut** and we assume it will *never* be passed between threads. + /// Do not pass the raw pointer you get between threads at all -- Dear ImGui is single-threaded. + /// We otherwise make no assumptions about the size or keep state in this buffer between calls, + /// so editing the `UiBuffer` is fine. + pub unsafe fn scratch_buffer(&self) -> &cell::UnsafeCell { + &BUFFER + } + /// Internal method to push a single text to our scratch buffer. fn scratch_txt(&self, txt: impl AsRef) -> *const sys::cty::c_char { unsafe { - let handle = &mut *self.buffer.get(); + let handle = &mut *BUFFER.get(); handle.scratch_txt(txt) } } @@ -136,7 +157,7 @@ impl<'ui> Ui<'ui> { /// Internal method to push an option text to our scratch buffer. fn scratch_txt_opt(&self, txt: Option>) -> *const sys::cty::c_char { unsafe { - let handle = &mut *self.buffer.get(); + let handle = &mut *BUFFER.get(); handle.scratch_txt_opt(txt) } } @@ -147,7 +168,7 @@ impl<'ui> Ui<'ui> { txt_1: impl AsRef, ) -> (*const sys::cty::c_char, *const sys::cty::c_char) { unsafe { - let handle = &mut *self.buffer.get(); + let handle = &mut *BUFFER.get(); handle.scratch_txt_two(txt_0, txt_1) } } @@ -158,7 +179,7 @@ impl<'ui> Ui<'ui> { txt_1: Option>, ) -> (*const sys::cty::c_char, *const sys::cty::c_char) { unsafe { - let handle = &mut *self.buffer.get(); + let handle = &mut *BUFFER.get(); handle.scratch_txt_with_opt(txt_0, txt_1) } } @@ -169,19 +190,13 @@ impl<'ui> Ui<'ui> { unsafe { &*(sys::igGetIO() as *const Io) } } - /// Returns an immutable reference to the font atlas - pub fn fonts(&self) -> FontAtlasRef<'_> { - match self.font_atlas { - Some(ref font_atlas) => FontAtlasRef::Shared(font_atlas), - None => unsafe { - let fonts = &*(self.io().fonts as *const FontAtlas); - FontAtlasRef::Owned(fonts) - }, - } + /// Returns an immutable reference to the font atlas. + pub fn fonts(&self) -> &FontAtlas { + unsafe { &*(self.io().fonts as *const FontAtlas) } } /// Returns a clone of the user interface style pub fn clone_style(&self) -> Style { - *self.ctx.style() + unsafe { *self.style() } } /// Renders the frame and returns a reference to the resulting draw data #[doc(alias = "Render", alias = "GetDrawData")] @@ -614,7 +629,7 @@ impl<'ui> Ui<'ui> { height_in_items: i32, ) -> bool { let (label_ptr, items_inner) = unsafe { - let handle = &mut *self.buffer.get(); + let handle = &mut *self.scratch_buffer().get(); handle.refresh_buffer(); let label_ptr = handle.push(label); diff --git a/imgui/src/stacks.rs b/imgui/src/stacks.rs index 94fad5859..44e963246 100644 --- a/imgui/src/stacks.rs +++ b/imgui/src/stacks.rs @@ -1,14 +1,11 @@ -use std::mem; -use std::os::raw::{c_char, c_void}; -use std::ptr; - -use crate::context::Context; use crate::fonts::atlas::FontId; use crate::internal::RawCast; use crate::math::MintVec4; use crate::style::{StyleColor, StyleVar}; use crate::sys; use crate::{Id, Ui}; +use std::mem; +use std::os::raw::{c_char, c_void}; /// # Parameter stacks (shared) impl<'ui> Ui<'ui> { @@ -190,9 +187,9 @@ impl<'ui> Ui<'ui> { /// - `< 0.0`: `item_width` pixels relative to the right of window (-1.0 always aligns width to /// the right side) #[doc(alias = "PushItemWith")] - pub fn push_item_width(&self, item_width: f32) -> ItemWidthStackToken { + pub fn push_item_width(&self, item_width: f32) -> ItemWidthStackToken<'_> { unsafe { sys::igPushItemWidth(item_width) }; - ItemWidthStackToken { _ctx: self.ctx } + ItemWidthStackToken::new(self) } /// Sets the width of the next item. /// @@ -220,7 +217,7 @@ impl<'ui> Ui<'ui> { /// /// Returns a `TextWrapPosStackToken` that may be popped by calling `.pop()` #[doc(alias = "PushTextWrapPos")] - pub fn push_text_wrap_pos(&self) -> TextWrapPosStackToken { + pub fn push_text_wrap_pos(&self) -> TextWrapPosStackToken<'_> { self.push_text_wrap_pos_with_pos(0.0) } @@ -232,25 +229,58 @@ impl<'ui> Ui<'ui> { /// - `= 0.0`: wrap to end of window (or column) /// - `< 0.0`: no wrapping #[doc(alias = "PushTextWrapPos")] - pub fn push_text_wrap_pos_with_pos(&self, wrap_pos_x: f32) -> TextWrapPosStackToken { + pub fn push_text_wrap_pos_with_pos(&self, wrap_pos_x: f32) -> TextWrapPosStackToken<'_> { unsafe { sys::igPushTextWrapPos(wrap_pos_x) }; - TextWrapPosStackToken { _ctx: self.ctx } + TextWrapPosStackToken::new(self) + } + + /// Tab stop enable. + /// Allow focusing using TAB/Shift-TAB, enabled by default but you can + /// disable it for certain widgets + /// + /// Returns a [PushAllowKeyboardFocusToken] that should be dropped. + #[doc(alias = "PushAllowKeyboardFocus")] + pub fn push_allow_keyboard_focus(&self, allow: bool) -> PushAllowKeyboardFocusToken<'_> { + unsafe { sys::igPushAllowKeyboardFocus(allow) }; + PushAllowKeyboardFocusToken::new(self) + } + + /// In 'repeat' mode, button_x functions return repeated true in a typematic + /// manner (using io.KeyRepeatDelay/io.KeyRepeatRate setting). + /// Note that you can call IsItemActive() after any Button() to tell if the + /// button is held in the current frame. + /// + /// Returns a [PushButtonRepeatToken] that should be dropped. + #[doc(alias = "PushAllowKeyboardFocus")] + pub fn push_button_repeat(&self, allow: bool) -> PushButtonRepeatToken<'_> { + unsafe { sys::igPushButtonRepeat(allow) }; + PushButtonRepeatToken::new(self) } /// Changes an item flag by pushing a change to the item flag stack. /// /// Returns a `ItemFlagsStackToken` that may be popped by calling `.pop()` - #[doc(alias = "PushItemFlag")] - pub fn push_item_flag(&self, item_flag: ItemFlag) -> ItemFlagsStackToken { + /// + /// ## Deprecated + /// + /// This was deprecated in `0.9.0` because it isn't part of the dear imgui design, + /// and supporting it required a manual implementation of its drop token. + /// + /// Instead, just use [`push_allow_keyboard_focus`] and [`push_button_repeat`]. + /// + /// [`push_allow_keyboard_focus`]: Self::push_allow_keyboard_focus + /// [`push_button_repeat`]: Self::push_button_repeat + #[deprecated( + since = "0.9.0", + note = "use `push_allow_keyboard_focus` or `push_button_repeat` instead" + )] + pub fn push_item_flag(&self, item_flag: ItemFlag) -> ItemFlagsStackToken<'_> { use self::ItemFlag::*; match item_flag { AllowKeyboardFocus(v) => unsafe { sys::igPushAllowKeyboardFocus(v) }, ButtonRepeat(v) => unsafe { sys::igPushButtonRepeat(v) }, } - ItemFlagsStackToken { - discriminant: mem::discriminant(&item_flag), - _ctx: self.ctx, - } + ItemFlagsStackToken::new(self, item_flag) } } @@ -261,54 +291,78 @@ pub enum ItemFlag { ButtonRepeat(bool), } -pub struct ItemWidthStackToken { - _ctx: *const Context, -} +create_token!( + /// Tracks a window that can be ended by calling `.end()` + /// or by dropping. + pub struct ItemWidthStackToken<'ui>; -impl ItemWidthStackToken { - /// Pops a change from the item width stack + /// Ends a window #[doc(alias = "PopItemWidth")] - pub fn pop(mut self, _: &Ui<'_>) { - self._ctx = ptr::null(); - unsafe { sys::igPopItemWidth() }; - } -} + drop { sys::igPopItemWidth() } +); -/// Tracks a change pushed to the text wrap position stack -pub struct TextWrapPosStackToken { - _ctx: *const Context, -} +create_token!( + /// Tracks a window that can be ended by calling `.end()` + /// or by dropping. + pub struct TextWrapPosStackToken<'ui>; -impl TextWrapPosStackToken { - /// Pops a change from the text wrap position stack + /// Ends a window #[doc(alias = "PopTextWrapPos")] - pub fn pop(mut self, _: &Ui<'_>) { - self._ctx = ptr::null(); - unsafe { sys::igPopTextWrapPos() }; + drop { sys::igPopTextWrapPos() } +); + +create_token!( + /// Tracks a window that can be ended by calling `.end()` + /// or by dropping. + pub struct PushAllowKeyboardFocusToken<'ui>; + + /// Ends a window + #[doc(alias = "PopAllowKeyboardFocus")] + drop { sys::igPopAllowKeyboardFocus() } +); + +create_token!( + /// Tracks a window that can be ended by calling `.end()` + /// or by dropping. + pub struct PushButtonRepeatToken<'ui>; + + /// Ends a window + #[doc(alias = "PopButtonRepeat")] + drop { sys::igPopButtonRepeat() } +); + +/// Tracks a change pushed to the item flags stack. +/// +/// The "item flags" stack was a concept invented in imgui-rs that doesn't have an +/// ImGui equivalent. We're phasing these out to make imgui-rs feel simpler to use. +#[must_use] +pub struct ItemFlagsStackToken<'a>( + std::marker::PhantomData>, + mem::Discriminant, +); + +impl<'a> ItemFlagsStackToken<'a> { + /// Creates a new token type. + pub(crate) fn new(_: &crate::Ui<'a>, kind: ItemFlag) -> Self { + Self(std::marker::PhantomData, mem::discriminant(&kind)) } -} -/// Tracks a change pushed to the item flags stack -pub struct ItemFlagsStackToken { - discriminant: mem::Discriminant, - _ctx: *const Context, + #[inline] + pub fn end(self) { + // left empty for drop + } } -impl ItemFlagsStackToken { - /// Pops a change from the item flags stack - - #[doc(alias = "PopAllowKeyboardFocus", alias = "PopButtonRepeat")] - pub fn pop(mut self, _: &Ui<'_>) { - self._ctx = ptr::null(); - const ALLOW_KEYBOARD_FOCUS: ItemFlag = ItemFlag::AllowKeyboardFocus(true); - const BUTTON_REPEAT: ItemFlag = ItemFlag::ButtonRepeat(true); - - if self.discriminant == mem::discriminant(&ALLOW_KEYBOARD_FOCUS) { - unsafe { sys::igPopAllowKeyboardFocus() }; - } else if self.discriminant == mem::discriminant(&BUTTON_REPEAT) { - unsafe { sys::igPopButtonRepeat() }; - } else { - unreachable!(); +impl Drop for ItemFlagsStackToken<'_> { + fn drop(&mut self) { + unsafe { + if self.1 == mem::discriminant(&ItemFlag::AllowKeyboardFocus(true)) { + sys::igPopAllowKeyboardFocus(); + } else if self.1 == mem::discriminant(&ItemFlag::ButtonRepeat(true)) { + sys::igPopButtonRepeat(); + } else { + unreachable!(); + } } } } diff --git a/imgui/src/string.rs b/imgui/src/string.rs index d124d8574..af6557b47 100644 --- a/imgui/src/string.rs +++ b/imgui/src/string.rs @@ -7,16 +7,16 @@ use std::{fmt, ptr}; /// this is the unsafe cell upon which we build our abstraction. #[derive(Debug)] -pub(crate) struct UiBuffer { - buffer: Vec, - max_len: usize, +pub struct UiBuffer { + pub buffer: Vec, + pub max_len: usize, } impl UiBuffer { /// Creates a new max buffer with the given length. - pub fn new(max_len: usize) -> Self { + pub const fn new(max_len: usize) -> Self { Self { - buffer: Vec::with_capacity(max_len), + buffer: Vec::new(), max_len, } } diff --git a/imgui/src/utils.rs b/imgui/src/utils.rs index b977c6db0..f819c2635 100644 --- a/imgui/src/utils.rs +++ b/imgui/src/utils.rs @@ -177,7 +177,7 @@ impl<'ui> Ui<'ui> { /// style object. #[doc(alias = "GetStyle")] pub fn style_color(&self, style_color: StyleColor) -> [f32; 4] { - self.ctx.style()[style_color] + unsafe { self.style() }.colors[style_color as usize] } /// Returns a shared reference to the current [`Style`]. @@ -193,6 +193,7 @@ impl<'ui> Ui<'ui> { /// pop. The [`clone_style`](Ui::clone_style) version may instead be used to avoid `unsafe`. #[doc(alias = "GetStyle")] pub unsafe fn style(&self) -> &Style { - self.ctx.style() + // safe because Style is a transparent wrapper around sys::ImGuiStyle + &*(sys::igGetStyle() as *const Style) } } diff --git a/imgui/src/widget/drag.rs b/imgui/src/widget/drag.rs index a8613659a..4b962bae1 100644 --- a/imgui/src/widget/drag.rs +++ b/imgui/src/widget/drag.rs @@ -215,7 +215,7 @@ where // we do this ourselves the long way... unsafe { - let buffer = &mut *ui.buffer.get(); + let buffer = &mut *ui.scratch_buffer().get(); buffer.refresh_buffer(); label = buffer.push(self.label); @@ -258,7 +258,7 @@ where let mut max_display_format = std::ptr::null(); // we do this ourselves the long way... - let buffer = &mut *ui.buffer.get(); + let buffer = &mut *ui.scratch_buffer().get(); buffer.refresh_buffer(); label = buffer.push(self.label); From 1d15196b5e6dbc933166c5fbb23c093844c0bcbc Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Sun, 26 Sep 2021 21:08:29 -0400 Subject: [PATCH 035/200] removed the lifetime from the majority of the library --- imgui/src/clipboard.rs | 2 +- imgui/src/columns.rs | 2 +- imgui/src/context.rs | 13 ++++-- imgui/src/drag_drop.rs | 12 ++--- imgui/src/draw_list.rs | 8 ++-- imgui/src/fonts/mod.rs | 2 +- imgui/src/input/keyboard.rs | 2 +- imgui/src/input/mouse.rs | 2 +- imgui/src/input_widget.rs | 24 +++++----- imgui/src/layout.rs | 2 +- imgui/src/lib.rs | 73 ++++++++++++++---------------- imgui/src/list_clipper.rs | 6 +-- imgui/src/plothistogram.rs | 4 +- imgui/src/plotlines.rs | 4 +- imgui/src/popups.rs | 6 +-- imgui/src/stacks.rs | 12 ++--- imgui/src/tables.rs | 16 +++---- imgui/src/tokens.rs | 4 +- imgui/src/utils.rs | 4 +- imgui/src/widget/color_editors.rs | 12 ++--- imgui/src/widget/combo_box.rs | 16 +++---- imgui/src/widget/drag.rs | 8 ++-- imgui/src/widget/image.rs | 4 +- imgui/src/widget/list_box.rs | 6 +-- imgui/src/widget/menu.rs | 8 ++-- imgui/src/widget/misc.rs | 2 +- imgui/src/widget/progress_bar.rs | 2 +- imgui/src/widget/selectable.rs | 4 +- imgui/src/widget/slider.rs | 8 ++-- imgui/src/widget/tab.rs | 10 ++-- imgui/src/widget/text.rs | 2 +- imgui/src/widget/tree.rs | 18 ++++---- imgui/src/window/child_window.rs | 4 +- imgui/src/window/content_region.rs | 2 +- imgui/src/window/mod.rs | 6 +-- imgui/src/window/scroll.rs | 2 +- 36 files changed, 155 insertions(+), 157 deletions(-) diff --git a/imgui/src/clipboard.rs b/imgui/src/clipboard.rs index 38ebc975e..f1abb0dae 100644 --- a/imgui/src/clipboard.rs +++ b/imgui/src/clipboard.rs @@ -93,7 +93,7 @@ pub(crate) unsafe extern "C" fn set_clipboard_text(user_data: *mut c_void, text: /// # Clipboard #[allow(clippy::fn_address_comparisons)] // This is allowed because although function addresses wont be unique, we just care if its OURS -impl<'ui> Ui<'ui> { +impl Ui { /// Returns the current clipboard contents as text, or None if the clipboard is empty or cannot /// be accessed pub fn clipboard_text(&self) -> Option { diff --git a/imgui/src/columns.rs b/imgui/src/columns.rs index b282e91e0..ea00f3a18 100644 --- a/imgui/src/columns.rs +++ b/imgui/src/columns.rs @@ -2,7 +2,7 @@ use crate::sys; use crate::Ui; /// # Columns -impl<'ui> Ui<'ui> { +impl Ui { #[doc(alias = "Columns")] pub fn columns(&self, count: i32, id: impl AsRef, border: bool) { unsafe { sys::igColumns(count, self.scratch_txt(id), border) } diff --git a/imgui/src/context.rs b/imgui/src/context.rs index a42aed6fe..e8f3e0975 100644 --- a/imgui/src/context.rs +++ b/imgui/src/context.rs @@ -60,6 +60,8 @@ pub struct Context { // we also put it in an unsafecell since we're going to give // imgui a mutable pointer to it. clipboard_ctx: Box>, + + ui: Ui, } // This mutex needs to be used to guard all public functions that can affect the underlying @@ -241,6 +243,7 @@ impl Context { platform_name: None, renderer_name: None, clipboard_ctx: Box::new(ClipboardContext::dummy().into()), + ui: Ui(()), } } fn is_current_context(&self) -> bool { @@ -322,6 +325,7 @@ impl SuspendedContext { platform_name: None, renderer_name: None, clipboard_ctx: Box::new(ClipboardContext::dummy().into()), + ui: Ui(()), }; if ctx.is_current_context() { // Oops, the context was activated -> deactivate @@ -515,7 +519,7 @@ impl Context { /// Starts a new frame. #[deprecated(since = "0.9.0", note = "use `new_frame` instead")] - pub fn frame(&mut self) -> Ui<'_> { + pub fn frame(&mut self) -> &mut Ui { self.new_frame() } @@ -526,7 +530,7 @@ impl Context { /// Panics if the context uses a shared font atlas that is already borrowed. /// Do not attempt to borrow the context afterwards, if you are using a shared font atlas. #[doc(alias = "NewFame")] - pub fn new_frame(&mut self) -> Ui<'_> { + pub fn new_frame(&mut self) -> &mut Ui { // Clear default font if it no longer exists. This could be an error in the future let default_font = self.io().font_default; if !default_font.is_null() && self.fonts().get_font(FontId(default_font)).is_none() { @@ -540,8 +544,7 @@ impl Context { unsafe { sys::igNewFrame(); } - Ui { - phantom_data: std::marker::PhantomData, - } + + &mut self.ui } } diff --git a/imgui/src/drag_drop.rs b/imgui/src/drag_drop.rs index 2fbf0b5cd..a6f97f1bb 100644 --- a/imgui/src/drag_drop.rs +++ b/imgui/src/drag_drop.rs @@ -175,7 +175,7 @@ impl> DragDropSource { /// If you want to pass a simple integer or other "plain old data", take a look at /// [begin_payload](Self::begin_payload). #[inline] - pub fn begin<'ui>(self, ui: &Ui<'ui>) -> Option> { + pub fn begin<'ui>(self, ui: &Ui) -> Option> { self.begin_payload(ui, ()) } @@ -224,7 +224,7 @@ impl> DragDropSource { #[inline] pub fn begin_payload<'ui, P: Copy + 'static>( self, - ui: &Ui<'ui>, + ui: &Ui, payload: P, ) -> Option> { unsafe { @@ -266,7 +266,7 @@ impl> DragDropSource { #[inline] pub unsafe fn begin_payload_unchecked<'ui>( &self, - ui: &Ui<'ui>, + ui: &Ui, ptr: *const ffi::c_void, size: usize, ) -> Option> { @@ -283,7 +283,7 @@ impl> DragDropSource { } /// A helper struct for RAII drap-drop support. -pub struct DragDropSourceToolTip<'ui>(PhantomData>); +pub struct DragDropSourceToolTip<'ui>(PhantomData<&'ui Ui>); impl DragDropSourceToolTip<'_> { /// Creates a new tooltip internally. @@ -339,14 +339,14 @@ impl Drop for DragDropSourceToolTip<'_> { /// on this struct. Each of these methods will spit out a _Payload struct with an increasing /// amount of information on the Payload. The absolute safest solution is [accept_payload_empty](Self::accept_payload_empty). #[derive(Debug)] -pub struct DragDropTarget<'ui>(&'ui Ui<'ui>); +pub struct DragDropTarget<'ui>(&'ui Ui); impl<'ui> DragDropTarget<'ui> { /// Creates a new DragDropTarget, holding the [Ui]'s lifetime for the duration /// of its existence. This is required since this struct runs some code on its Drop /// to end the DragDropTarget code. #[doc(alias = "BeginDragDropTarget")] - pub fn new(ui: &'ui Ui<'ui>) -> Option { + pub fn new(ui: &'ui Ui) -> Option { let should_begin = unsafe { sys::igBeginDragDropTarget() }; if should_begin { Some(Self(ui)) diff --git a/imgui/src/draw_list.rs b/imgui/src/draw_list.rs index 27323b043..d58ef6dd1 100644 --- a/imgui/src/draw_list.rs +++ b/imgui/src/draw_list.rs @@ -75,7 +75,7 @@ enum DrawListType { pub struct DrawListMut<'ui> { draw_list_type: DrawListType, draw_list: *mut ImDrawList, - _phantom: PhantomData<&'ui Ui<'ui>>, + _phantom: PhantomData<&'ui Ui>, } // Lock for each variant of draw list. See https://github.com/imgui-rs/imgui-rs/issues/488 @@ -124,7 +124,7 @@ impl<'ui> DrawListMut<'ui> { } #[doc(alias = "GetWindowDrawList")] - pub(crate) fn window(_: &Ui<'ui>) -> Self { + pub(crate) fn window(_: &Ui) -> Self { Self::lock_draw_list(DrawListType::Window); Self { @@ -135,7 +135,7 @@ impl<'ui> DrawListMut<'ui> { } #[doc(alias = "GetBackgroundDrawList")] - pub(crate) fn background(_: &Ui<'ui>) -> Self { + pub(crate) fn background(_: &Ui) -> Self { Self::lock_draw_list(DrawListType::Background); Self { draw_list: unsafe { sys::igGetBackgroundDrawList() }, @@ -145,7 +145,7 @@ impl<'ui> DrawListMut<'ui> { } #[doc(alias = "GetForegroundDrawList")] - pub(crate) fn foreground(_: &Ui<'ui>) -> Self { + pub(crate) fn foreground(_: &Ui) -> Self { Self::lock_draw_list(DrawListType::Foreground); Self { draw_list: unsafe { sys::igGetForegroundDrawList() }, diff --git a/imgui/src/fonts/mod.rs b/imgui/src/fonts/mod.rs index 3f69efe27..f1034a5a5 100644 --- a/imgui/src/fonts/mod.rs +++ b/imgui/src/fonts/mod.rs @@ -8,7 +8,7 @@ pub mod glyph; pub mod glyph_ranges; /// # Fonts -impl<'ui> Ui<'ui> { +impl Ui { /// Returns the current font #[doc(alias = "GetFont")] pub fn current_font(&self) -> &Font { diff --git a/imgui/src/input/keyboard.rs b/imgui/src/input/keyboard.rs index bab12f406..b425d9cb8 100644 --- a/imgui/src/input/keyboard.rs +++ b/imgui/src/input/keyboard.rs @@ -91,7 +91,7 @@ impl FocusedWidget { } /// # Input: Keyboard -impl<'ui> Ui<'ui> { +impl Ui { /// Returns the key index of the given key identifier. /// /// Equivalent to indexing the Io struct `key_map` field: `ui.io().key_map[key]` diff --git a/imgui/src/input/mouse.rs b/imgui/src/input/mouse.rs index 218b56cd8..269d4f2f0 100644 --- a/imgui/src/input/mouse.rs +++ b/imgui/src/input/mouse.rs @@ -89,7 +89,7 @@ fn test_mouse_cursor_variants() { } /// # Input: Mouse -impl<'ui> Ui<'ui> { +impl Ui { /// Returns true if the given mouse button is held down. /// /// Equivalent to indexing the Io struct with the button, e.g. `ui.io()[button]`. diff --git a/imgui/src/input_widget.rs b/imgui/src/input_widget.rs index 200df0f1c..6e3f073c7 100644 --- a/imgui/src/input_widget.rs +++ b/imgui/src/input_widget.rs @@ -166,7 +166,7 @@ pub struct InputText<'ui, 'p, L, H = &'static str, T = PassthroughCallback> { buf: &'p mut String, callback_handler: T, flags: InputTextFlags, - ui: &'ui Ui<'ui>, + ui: &'ui Ui, } impl<'ui, 'p, L: AsRef> InputText<'ui, 'p, L> { @@ -184,7 +184,7 @@ impl<'ui, 'p, L: AsRef> InputText<'ui, 'p, L> { /// your string. /// 3. Truncations by ImGui appear to be done primarily by insertions of `\0` to the truncation point. /// We will handle this for you and edit the string "properly" too, but this might show up in callbacks. - pub fn new(ui: &'ui Ui<'ui>, label: L, buf: &'p mut String) -> Self { + pub fn new(ui: &'ui Ui, label: L, buf: &'p mut String) -> Self { InputText { label, hint: None, @@ -343,7 +343,7 @@ pub struct InputTextMultiline<'ui, 'p, L, T = PassthroughCallback> { flags: InputTextFlags, size: [f32; 2], callback_handler: T, - ui: &'ui Ui<'ui>, + ui: &'ui Ui, } impl<'ui, 'p, L: AsRef> InputTextMultiline<'ui, 'p, L, PassthroughCallback> { @@ -361,7 +361,7 @@ impl<'ui, 'p, L: AsRef> InputTextMultiline<'ui, 'p, L, PassthroughCallback> /// your string. /// 3. Truncations by ImGui appear to be done primarily by insertions of `\0` to the truncation point. /// We will handle this for you and edit the string "properly" too, but this might show up in callbacks. - pub fn new(ui: &'ui Ui<'ui>, label: L, buf: &'p mut String, size: impl Into) -> Self { + pub fn new(ui: &'ui Ui, label: L, buf: &'p mut String, size: impl Into) -> Self { InputTextMultiline { label, buf, @@ -482,11 +482,11 @@ pub struct InputInt<'ui, 'p, L> { step: i32, step_fast: i32, flags: InputTextFlags, - ui: &'ui Ui<'ui>, + ui: &'ui Ui, } impl<'ui, 'p, L: AsRef> InputInt<'ui, 'p, L> { - pub fn new(ui: &'ui Ui<'ui>, label: L, value: &'p mut i32) -> Self { + pub fn new(ui: &'ui Ui, label: L, value: &'p mut i32) -> Self { InputInt { label, value, @@ -520,11 +520,11 @@ pub struct InputFloat<'ui, 'p, L> { step: f32, step_fast: f32, flags: InputTextFlags, - ui: &'ui Ui<'ui>, + ui: &'ui Ui, } impl<'ui, 'p, L: AsRef> InputFloat<'ui, 'p, L> { - pub fn new(ui: &'ui Ui<'ui>, label: L, value: &'p mut f32) -> Self { + pub fn new(ui: &'ui Ui, label: L, value: &'p mut f32) -> Self { InputFloat { label, value, @@ -559,7 +559,7 @@ macro_rules! impl_input_floatn { label: L, value: &'p mut T, flags: InputTextFlags, - ui: &'ui Ui<'ui>, + ui: &'ui Ui, } impl<'ui, 'p, L, T> $InputFloatN<'ui, 'p, L, T> @@ -568,7 +568,7 @@ macro_rules! impl_input_floatn { T: Copy + Into<$MINT_TARGET>, $MINT_TARGET: Into + Into<[f32; $N]>, { - pub fn new(ui: &'ui Ui<'ui>, label: L, value: &'p mut T) -> Self { + pub fn new(ui: &'ui Ui, label: L, value: &'p mut T) -> Self { $InputFloatN { label, value, @@ -614,7 +614,7 @@ macro_rules! impl_input_intn { label: L, value: &'p mut T, flags: InputTextFlags, - ui: &'ui Ui<'ui>, + ui: &'ui Ui, } impl<'ui, 'p, L, T> $InputIntN<'ui, 'p, L, T> @@ -623,7 +623,7 @@ macro_rules! impl_input_intn { T: Copy + Into<$MINT_TARGET>, $MINT_TARGET: Into + Into<[i32; $N]>, { - pub fn new(ui: &'ui Ui<'ui>, label: L, value: &'p mut T) -> Self { + pub fn new(ui: &'ui Ui, label: L, value: &'p mut T) -> Self { $InputIntN { label, value, diff --git a/imgui/src/layout.rs b/imgui/src/layout.rs index b0cdd1642..b385d914e 100644 --- a/imgui/src/layout.rs +++ b/imgui/src/layout.rs @@ -12,7 +12,7 @@ create_token!( ); /// # Cursor / Layout -impl<'ui> Ui<'ui> { +impl Ui { /// Renders a separator (generally horizontal). /// /// This becomes a vertical separator inside a menu bar or in horizontal layout mode. diff --git a/imgui/src/lib.rs b/imgui/src/lib.rs index 05fe3f29f..34a715497 100644 --- a/imgui/src/lib.rs +++ b/imgui/src/lib.rs @@ -118,9 +118,7 @@ impl Context { /// A temporary reference for building the user interface for one frame #[derive(Debug)] -pub struct Ui<'ui> { - phantom_data: std::marker::PhantomData<&'ui Context>, -} +pub struct Ui(pub(crate) ()); /// This is our internal buffer that we use for the Ui object. /// @@ -128,7 +126,7 @@ pub struct Ui<'ui> { static mut BUFFER: cell::UnsafeCell = cell::UnsafeCell::new(string::UiBuffer::new(100)); -impl<'ui> Ui<'ui> { +impl Ui { /// This provides access to the backing scratch buffer that we use to write /// strings, along with null-terminators, before we pass normal Rust strs to /// Dear ImGui. @@ -198,29 +196,30 @@ impl<'ui> Ui<'ui> { pub fn clone_style(&self) -> Style { unsafe { *self.style() } } - /// Renders the frame and returns a reference to the resulting draw data - #[doc(alias = "Render", alias = "GetDrawData")] - pub fn render(self) -> &'ui DrawData { - unsafe { - sys::igRender(); - &*(sys::igGetDrawData() as *mut DrawData) - } - } + // /// Renders the frame and returns a reference to the resulting draw data + // #[doc(alias = "Render", alias = "GetDrawData")] + // pub fn render(self) -> &DrawData { + // unsafe { + // sys::igRender(); + // &*(sys::igGetDrawData() as *mut DrawData) + // } + // } } -impl<'a> Drop for Ui<'a> { - #[doc(alias = "EndFrame")] - fn drop(&mut self) { - if !std::thread::panicking() { - unsafe { - sys::igEndFrame(); - } - } - } -} +// TODO JACK YOU NEED TO MOVE THIS! +// impl Drop for Ui { +// #[doc(alias = "EndFrame")] +// fn drop(&mut self) { +// if !std::thread::panicking() { +// unsafe { +// sys::igEndFrame(); +// } +// } +// } +// } /// # Demo, debug, information -impl<'ui> Ui<'ui> { +impl Ui { /// Renders a demo window (previously called a test window), which demonstrates most /// Dear Imgui features. #[doc(alias = "ShowDemoWindow")] @@ -331,7 +330,7 @@ impl<'a> Default for Id<'a> { } } -impl<'ui> Ui<'ui> { +impl Ui { /// # Windows /// Start constructing a window. /// @@ -353,7 +352,7 @@ impl<'ui> Ui<'ui> { /// ui.text("An example"); /// }); /// ``` - pub fn window>(&'ui self, name: Label) -> Window<'ui, '_, Label> { + pub fn window>(&self, name: Label) -> Window<'_, '_, Label> { Window::new(self, name) } @@ -372,13 +371,13 @@ impl<'ui> Ui<'ui> { /// wt.unwrap().end() /// } /// ``` - pub fn child_window>(&'ui self, name: Label) -> ChildWindow<'ui, Label> { + pub fn child_window>(&self, name: Label) -> ChildWindow<'_, Label> { ChildWindow::new(self, name) } } // Widgets: Input -impl<'ui> Ui<'ui> { +impl<'ui> Ui { #[doc(alias = "InputText", alias = "InputTextWithHint")] pub fn input_text<'p, L: AsRef>( &'ui self, @@ -490,7 +489,7 @@ create_token!( ); /// # Tooltips -impl<'ui> Ui<'ui> { +impl Ui { /// Construct a tooltip window that can have any kind of content. /// /// Typically used with `Ui::is_item_hovered()` or some other conditional check. @@ -557,7 +556,7 @@ create_token!( /// imgui can disable widgets so they don't react to mouse/keyboard /// inputs, and are displayed differently (currently dimmed by an /// amount set in [`Style::disabled_alpha`]) -impl<'ui> Ui<'ui> { +impl Ui { /// Creates a scope where interactions are disabled. /// /// Scope ends when returned token is dropped, or `.end()` is @@ -619,7 +618,7 @@ impl<'ui> Ui<'ui> { } // Widgets: ListBox -impl<'ui> Ui<'ui> { +impl Ui { #[doc(alias = "ListBox")] pub fn list_box<'p, StringType: AsRef + ?Sized>( &self, @@ -686,7 +685,7 @@ impl<'ui> Ui<'ui> { // } } -impl<'ui> Ui<'ui> { +impl<'ui> Ui { #[doc(alias = "PlotLines")] pub fn plot_lines<'p, Label: AsRef>( &'ui self, @@ -695,9 +694,7 @@ impl<'ui> Ui<'ui> { ) -> PlotLines<'ui, 'p, Label> { PlotLines::new(self, label, values) } -} -impl<'ui> Ui<'ui> { #[doc(alias = "PlotHistogram")] pub fn plot_histogram<'p, Label: AsRef>( &'ui self, @@ -706,9 +703,7 @@ impl<'ui> Ui<'ui> { ) -> PlotHistogram<'ui, 'p, Label> { PlotHistogram::new(self, label, values) } -} -impl<'ui> Ui<'ui> { /// Calculate the size required for a given text string. /// /// This is the same as [calc_text_size_with_opts](Self::calc_text_size_with_opts) @@ -751,7 +746,7 @@ impl<'ui> Ui<'ui> { } /// # Draw list for custom drawing -impl<'ui> Ui<'ui> { +impl Ui { /// Get access to drawing API /// /// # Examples @@ -783,19 +778,19 @@ impl<'ui> Ui<'ui> { /// ``` #[must_use] #[doc(alias = "GetWindowDrawList")] - pub fn get_window_draw_list(&'ui self) -> DrawListMut<'ui> { + pub fn get_window_draw_list(&self) -> DrawListMut<'_> { DrawListMut::window(self) } #[must_use] #[doc(alias = "GetBackgroundDrawList")] - pub fn get_background_draw_list(&'ui self) -> DrawListMut<'ui> { + pub fn get_background_draw_list(&self) -> DrawListMut<'_> { DrawListMut::background(self) } #[must_use] #[doc(alias = "GetForegroundDrawList")] - pub fn get_foreground_draw_list(&'ui self) -> DrawListMut<'ui> { + pub fn get_foreground_draw_list(&self) -> DrawListMut<'_> { DrawListMut::foreground(self) } } diff --git a/imgui/src/list_clipper.rs b/imgui/src/list_clipper.rs index d4ba021d6..64a852e1b 100644 --- a/imgui/src/list_clipper.rs +++ b/imgui/src/list_clipper.rs @@ -22,7 +22,7 @@ impl ListClipper { self } - pub fn begin<'ui>(self, ui: &Ui<'ui>) -> ListClipperToken<'ui> { + pub fn begin(self, ui: &Ui) -> ListClipperToken<'_> { let list_clipper = unsafe { let list_clipper = sys::ImGuiListClipper_ImGuiListClipper(); sys::ImGuiListClipper_Begin(list_clipper, self.items_count, self.items_height); @@ -34,11 +34,11 @@ impl ListClipper { pub struct ListClipperToken<'ui> { list_clipper: *mut sys::ImGuiListClipper, - _phantom: PhantomData<&'ui Ui<'ui>>, + _phantom: PhantomData<&'ui Ui>, } impl<'ui> ListClipperToken<'ui> { - fn new(_: &Ui<'ui>, list_clipper: *mut sys::ImGuiListClipper) -> Self { + fn new(_: &Ui, list_clipper: *mut sys::ImGuiListClipper) -> Self { Self { list_clipper, _phantom: PhantomData, diff --git a/imgui/src/plothistogram.rs b/imgui/src/plothistogram.rs index 082297000..8613ee2de 100644 --- a/imgui/src/plothistogram.rs +++ b/imgui/src/plothistogram.rs @@ -12,11 +12,11 @@ pub struct PlotHistogram<'ui, 'p, Label, Overlay = &'static str> { scale_min: f32, scale_max: f32, graph_size: [f32; 2], - ui: &'ui Ui<'ui>, + ui: &'ui Ui, } impl<'ui, 'p, Label: AsRef> PlotHistogram<'ui, 'p, Label> { - pub fn new(ui: &'ui Ui<'ui>, label: Label, values: &'p [f32]) -> Self { + pub fn new(ui: &'ui Ui, label: Label, values: &'p [f32]) -> Self { PlotHistogram { label, values, diff --git a/imgui/src/plotlines.rs b/imgui/src/plotlines.rs index a4d844156..ec9441bd3 100644 --- a/imgui/src/plotlines.rs +++ b/imgui/src/plotlines.rs @@ -12,11 +12,11 @@ pub struct PlotLines<'ui, 'p, Label, Overlay = &'static str> { scale_min: f32, scale_max: f32, graph_size: [f32; 2], - ui: &'ui Ui<'ui>, + ui: &'ui Ui, } impl<'ui, 'p, Label: AsRef> PlotLines<'ui, 'p, Label> { - pub fn new(ui: &'ui Ui<'ui>, label: Label, values: &'p [f32]) -> Self { + pub fn new(ui: &'ui Ui, label: Label, values: &'p [f32]) -> Self { PlotLines { label, values, diff --git a/imgui/src/popups.rs b/imgui/src/popups.rs index e0b428850..dba419042 100644 --- a/imgui/src/popups.rs +++ b/imgui/src/popups.rs @@ -118,7 +118,7 @@ impl<'p, Label: AsRef> PopupModal<'p, Label> { /// Consume and draw the PopupModal. /// Returns the result of the closure, if it is called. #[doc(alias = "BeginPopupModal")] - pub fn build T>(self, ui: &Ui<'_>, f: F) -> Option { + pub fn build T>(self, ui: &Ui, f: F) -> Option { self.begin_popup(ui).map(|_popup| f()) } @@ -128,7 +128,7 @@ impl<'p, Label: AsRef> PopupModal<'p, Label> { /// This should be called *per frame*, whereas [`Ui::open_popup`] /// should be called *once* when you want to actual create the popup. #[doc(alias = "BeginPopupModal")] - pub fn begin_popup<'ui>(self, ui: &Ui<'ui>) -> Option> { + pub fn begin_popup(self, ui: &Ui) -> Option> { let render = unsafe { sys::igBeginPopupModal( ui.scratch_txt(self.label), @@ -148,7 +148,7 @@ impl<'p, Label: AsRef> PopupModal<'p, Label> { } // Widgets: Popups -impl<'ui> Ui<'ui> { +impl Ui { /// Instructs ImGui to open a popup, which must be began with either [`begin_popup`](Self::begin_popup) /// or [`popup`](Self::popup). You also use this function to begin [PopupModal]. /// diff --git a/imgui/src/stacks.rs b/imgui/src/stacks.rs index 44e963246..0cc4b52b4 100644 --- a/imgui/src/stacks.rs +++ b/imgui/src/stacks.rs @@ -8,7 +8,7 @@ use std::mem; use std::os::raw::{c_char, c_void}; /// # Parameter stacks (shared) -impl<'ui> Ui<'ui> { +impl Ui { /// Switches to the given font by pushing it to the font stack. /// /// Returns a `FontStackToken` that must be popped by calling `.pop()` @@ -177,7 +177,7 @@ unsafe fn push_style_var(style_var: StyleVar) { } /// # Parameter stacks (current window) -impl<'ui> Ui<'ui> { +impl Ui { /// Changes the item width by pushing a change to the item width stack. /// /// Returns an `ItemWidthStackToken` that may be popped by calling `.pop()` @@ -337,13 +337,13 @@ create_token!( /// ImGui equivalent. We're phasing these out to make imgui-rs feel simpler to use. #[must_use] pub struct ItemFlagsStackToken<'a>( - std::marker::PhantomData>, + std::marker::PhantomData<&'a Ui>, mem::Discriminant, ); impl<'a> ItemFlagsStackToken<'a> { /// Creates a new token type. - pub(crate) fn new(_: &crate::Ui<'a>, kind: ItemFlag) -> Self { + pub(crate) fn new(_: &'a crate::Ui, kind: ItemFlag) -> Self { Self(std::marker::PhantomData, mem::discriminant(&kind)) } @@ -384,7 +384,7 @@ impl IdStackToken<'_> { } /// # ID stack -impl<'ui> Ui<'ui> { +impl<'ui> Ui { /// Pushes an identifier to the ID stack. /// This can be called with an integer, a string, or a pointer. /// @@ -462,7 +462,7 @@ impl<'ui> Ui<'ui> { /// }); /// ``` #[doc(alias = "PushId")] - pub fn push_id<'a, I: Into>>(&self, id: I) -> IdStackToken<'ui> { + pub fn push_id<'a, I: Into>>(&'ui self, id: I) -> IdStackToken<'ui> { let id = id.into(); unsafe { diff --git a/imgui/src/tables.rs b/imgui/src/tables.rs index ebd52dd63..a5a950330 100644 --- a/imgui/src/tables.rs +++ b/imgui/src/tables.rs @@ -249,7 +249,7 @@ pub enum TableSortDirection { Descending, } -impl<'ui> Ui<'ui> { +impl Ui { /// Begins a table with no flags and with standard sizing contraints. /// /// This does no work on styling the headers (the top row) -- see either @@ -263,7 +263,7 @@ impl<'ui> Ui<'ui> { &self, str_id: impl AsRef, column_count: usize, - ) -> Option> { + ) -> Option> { self.begin_table_with_flags(str_id, column_count, TableFlags::empty()) } @@ -281,7 +281,7 @@ impl<'ui> Ui<'ui> { str_id: impl AsRef, column_count: usize, flags: TableFlags, - ) -> Option> { + ) -> Option> { self.begin_table_with_sizing(str_id, column_count, flags, [0.0, 0.0], 0.0) } @@ -302,7 +302,7 @@ impl<'ui> Ui<'ui> { flags: TableFlags, outer_size: [f32; 2], inner_width: f32, - ) -> Option> { + ) -> Option> { unsafe { sys::igBeginTable( self.scratch_txt(str_id), @@ -324,7 +324,7 @@ impl<'ui> Ui<'ui> { &self, str_id: impl AsRef, column_data: [TableColumnSetup<'a, Name>; N], - ) -> Option> { + ) -> Option> { self.begin_table_header_with_flags(str_id, column_data, TableFlags::empty()) } @@ -338,7 +338,7 @@ impl<'ui> Ui<'ui> { str_id: impl AsRef, column_data: [TableColumnSetup<'a, Name>; N], flags: TableFlags, - ) -> Option> { + ) -> Option> { self.begin_table_header_with_sizing(str_id, column_data, flags, [0.0, 0.0], 0.0) } @@ -354,7 +354,7 @@ impl<'ui> Ui<'ui> { flags: TableFlags, outer_size: [f32; 2], inner_width: f32, - ) -> Option> { + ) -> Option> { self.begin_table_with_sizing(str_id, N, flags, outer_size, inner_width) .map(|data| { for value in column_data { @@ -769,7 +769,7 @@ impl<'a, Name: AsRef> TableColumnSetup<'a, Name> { /// [should_sort]: Self::should_sort /// [specs]: Self::specs /// [set_sorted]: Self::set_sorted -pub struct TableSortSpecsMut<'ui>(*mut sys::ImGuiTableSortSpecs, PhantomData>); +pub struct TableSortSpecsMut<'ui>(*mut sys::ImGuiTableSortSpecs, PhantomData<&'ui Ui>); impl TableSortSpecsMut<'_> { /// Gets the specs for a given sort. In most scenarios, this will be a slice of 1 entry. diff --git a/imgui/src/tokens.rs b/imgui/src/tokens.rs index 7cf20b40b..01adf849c 100644 --- a/imgui/src/tokens.rs +++ b/imgui/src/tokens.rs @@ -19,11 +19,11 @@ macro_rules! create_token { ) => { #[must_use] $(#[$struct_meta])* - pub struct $token_name<'a>($crate::__core::marker::PhantomData>); + pub struct $token_name<'a>($crate::__core::marker::PhantomData<&'a crate::Ui>); impl<'a> $token_name<'a> { /// Creates a new token type. - pub(crate) fn new(_: &crate::Ui<'a>) -> Self { + pub(crate) fn new(_: &'a crate::Ui) -> Self { Self(std::marker::PhantomData) } diff --git a/imgui/src/utils.rs b/imgui/src/utils.rs index f819c2635..144de1b08 100644 --- a/imgui/src/utils.rs +++ b/imgui/src/utils.rs @@ -25,7 +25,7 @@ bitflags! { } /// # Item/widget utilities -impl<'ui> Ui<'ui> { +impl Ui { /// Returns `true` if the last item is hovered #[doc(alias = "IsItemHovered")] pub fn is_item_hovered(&self) -> bool { @@ -142,7 +142,7 @@ impl<'ui> Ui<'ui> { } /// # Miscellaneous utilities -impl<'ui> Ui<'ui> { +impl Ui { /// Returns `true` if the rectangle (of given size, starting from cursor position) is visible #[doc(alias = "IsRectVisibleNil")] pub fn is_cursor_rect_visible(&self, size: impl Into) -> bool { diff --git a/imgui/src/widget/color_editors.rs b/imgui/src/widget/color_editors.rs index e7157a558..e02e811ec 100644 --- a/imgui/src/widget/color_editors.rs +++ b/imgui/src/widget/color_editors.rs @@ -326,7 +326,7 @@ where /// Builds the color editor. /// /// Returns true if the color value was changed. - pub fn build(mut self, ui: &Ui<'_>) -> bool { + pub fn build(mut self, ui: &Ui) -> bool { // if let EditableColor::Float3(_) = self.value { self.flags.insert(ColorEditFlags::NO_ALPHA); @@ -508,7 +508,7 @@ where /// Builds the color editor. /// /// Returns true if the color value was changed. - pub fn build(self, ui: &Ui<'_>) -> bool { + pub fn build(self, ui: &Ui) -> bool { let as_vec4: MintVec4 = (*self.value).into(); let mut as_vec4: [f32; 4] = as_vec4.into(); @@ -694,7 +694,7 @@ where /// Builds the color picker. /// /// Returns true if the color value was changed. - pub fn build(mut self, ui: &Ui<'_>) -> bool { + pub fn build(mut self, ui: &Ui) -> bool { self.flags.insert(ColorEditFlags::NO_ALPHA); let mut value: [f32; 3] = (*self.value).into().into(); let changed = unsafe { @@ -886,7 +886,7 @@ where /// Builds the color picker. /// /// Returns true if the color value was changed. - pub fn build(mut self, ui: &Ui<'_>) -> bool { + pub fn build(mut self, ui: &Ui) -> bool { self.flags.insert(ColorEditFlags::NO_ALPHA); let mut value: [f32; 4] = (*self.value).into().into(); let ref_color = self.ref_color.map(|c| c.as_ptr()).unwrap_or(ptr::null()); @@ -1009,7 +1009,7 @@ impl> ColorButton { /// Builds the color button. /// /// Returns true if this color button was clicked. - pub fn build(self, ui: &Ui<'_>) -> bool { + pub fn build(self, ui: &Ui) -> bool { unsafe { sys::igColorButton( ui.scratch_txt(self.desc_id), @@ -1022,7 +1022,7 @@ impl> ColorButton { } /// # Widgets: Color Editor/Picker -impl<'ui> Ui<'ui> { +impl Ui { /// Initializes current color editor/picker options (generally on application startup) if you /// want to select a default format, picker type, etc. Users will be able to change many /// settings, unless you use .options(false) in your widget builders. diff --git a/imgui/src/widget/combo_box.rs b/imgui/src/widget/combo_box.rs index 342ef69da..48cfdfe00 100644 --- a/imgui/src/widget/combo_box.rs +++ b/imgui/src/widget/combo_box.rs @@ -142,7 +142,7 @@ impl, Preview: AsRef> ComboBox { /// /// Returns `None` if the combo box is not open and no content should be rendered. #[must_use] - pub fn begin<'ui>(self, ui: &Ui<'ui>) -> Option> { + pub fn begin(self, ui: &Ui) -> Option> { let should_render = unsafe { if let Some(preview_value) = self.preview_value { let (ptr_one, ptr_two) = ui.scratch_txt_two(self.label, preview_value); @@ -162,7 +162,7 @@ impl, Preview: AsRef> ComboBox { /// Returns the result of the closure, if it is called. /// /// Note: the closure is not called if the combo box is not open. - pub fn build R>(self, ui: &Ui<'_>, f: F) -> Option { + pub fn build R>(self, ui: &Ui, f: F) -> Option { self.begin(ui).map(|_combo| f()) } } @@ -177,7 +177,7 @@ create_token!( ); /// # Convenience functions -impl<'ui> Ui<'ui> { +impl Ui { /// Creates a combo box which can be appended to with `Selectable::new`. /// /// If you do not want to provide a preview, use [`begin_combo_no_preview`]. If you want @@ -193,7 +193,7 @@ impl<'ui> Ui<'ui> { &self, label: impl AsRef, preview_value: impl AsRef, - ) -> Option> { + ) -> Option> { self.begin_combo_with_flags(label, preview_value, ComboBoxFlags::empty()) } @@ -213,7 +213,7 @@ impl<'ui> Ui<'ui> { label: impl AsRef, preview_value: impl AsRef, flags: ComboBoxFlags, - ) -> Option> { + ) -> Option> { self._begin_combo(label, Some(preview_value), flags) } @@ -231,7 +231,7 @@ impl<'ui> Ui<'ui> { /// [begin_combo_no_preview_with_flags]: Ui::begin_combo_no_preview_with_flags #[must_use] #[doc(alias = "BeginCombo")] - pub fn begin_combo_no_preview(&self, label: impl AsRef) -> Option> { + pub fn begin_combo_no_preview(&self, label: impl AsRef) -> Option> { self.begin_combo_no_preview_with_flags(label, ComboBoxFlags::empty()) } @@ -250,7 +250,7 @@ impl<'ui> Ui<'ui> { &self, label: impl AsRef, flags: ComboBoxFlags, - ) -> Option> { + ) -> Option> { self._begin_combo(label, Option::<&'static str>::None, flags) } @@ -260,7 +260,7 @@ impl<'ui> Ui<'ui> { label: impl AsRef, preview_value: Option>, flags: ComboBoxFlags, - ) -> Option> { + ) -> Option> { let should_render = unsafe { let (ptr_one, ptr_two) = self.scratch_txt_with_opt(label, preview_value); sys::igBeginCombo(ptr_one, ptr_two, flags.bits() as i32) diff --git a/imgui/src/widget/drag.rs b/imgui/src/widget/drag.rs index 4b962bae1..af25ca1dd 100644 --- a/imgui/src/widget/drag.rs +++ b/imgui/src/widget/drag.rs @@ -66,7 +66,7 @@ impl, T: DataTypeKind, F: AsRef> Drag { /// Builds a drag slider that is bound to the given value. /// /// Returns true if the slider value was changed. - pub fn build(self, ui: &Ui<'_>, value: &mut T) -> bool { + pub fn build(self, ui: &Ui, value: &mut T) -> bool { unsafe { let (one, two) = ui.scratch_txt_with_opt(self.label, self.display_format); @@ -91,7 +91,7 @@ impl, T: DataTypeKind, F: AsRef> Drag { /// Builds a horizontal array of multiple drag sliders attached to the given slice. /// /// Returns true if any slider value was changed. - pub fn build_array(self, ui: &Ui<'_>, values: &mut [T]) -> bool { + pub fn build_array(self, ui: &Ui, values: &mut [T]) -> bool { unsafe { let (one, two) = ui.scratch_txt_with_opt(self.label, self.display_format); @@ -208,7 +208,7 @@ where /// /// Returns true if the slider value was changed. #[doc(alias = "DragFloatRange2")] - pub fn build(self, ui: &Ui<'_>, min: &mut f32, max: &mut f32) -> bool { + pub fn build(self, ui: &Ui, min: &mut f32, max: &mut f32) -> bool { let label; let mut display_format = std::ptr::null(); let mut max_display_format = std::ptr::null(); @@ -251,7 +251,7 @@ where /// /// Returns true if the slider value was changed. #[doc(alias = "DragIntRange2")] - pub fn build(self, ui: &Ui<'_>, min: &mut i32, max: &mut i32) -> bool { + pub fn build(self, ui: &Ui, min: &mut i32, max: &mut i32) -> bool { unsafe { let label; let mut display_format = std::ptr::null(); diff --git a/imgui/src/widget/image.rs b/imgui/src/widget/image.rs index 4e2d11530..d5aa4b3ca 100644 --- a/imgui/src/widget/image.rs +++ b/imgui/src/widget/image.rs @@ -58,7 +58,7 @@ impl Image { self } /// Builds the image - pub fn build(self, _: &Ui<'_>) { + pub fn build(self, _: &Ui) { unsafe { sys::igImage( self.texture_id.id() as *mut c_void, @@ -136,7 +136,7 @@ impl ImageButton { self } /// Builds the image button - pub fn build(self, _: &Ui<'_>) -> bool { + pub fn build(self, _: &Ui) -> bool { unsafe { sys::igImageButton( self.texture_id.id() as *mut c_void, diff --git a/imgui/src/widget/list_box.rs b/imgui/src/widget/list_box.rs index 922d8711c..e01bdc2ed 100644 --- a/imgui/src/widget/list_box.rs +++ b/imgui/src/widget/list_box.rs @@ -39,7 +39,7 @@ impl> ListBox { /// /// Returns `None` if the list box is not open and no content should be rendered. #[must_use] - pub fn begin<'ui>(self, ui: &Ui<'ui>) -> Option> { + pub fn begin(self, ui: &Ui) -> Option> { let should_render = unsafe { sys::igBeginListBox(ui.scratch_txt(self.label), self.size.into()) }; if should_render { @@ -52,7 +52,7 @@ impl> ListBox { /// Returns the result of the closure, if it is called. /// /// Note: the closure is not called if the list box is not open. - pub fn build R>(self, ui: &Ui<'_>, f: F) -> Option { + pub fn build R>(self, ui: &Ui, f: F) -> Option { self.begin(ui).map(|_list| f()) } } @@ -71,7 +71,7 @@ impl> ListBox { /// Builds a simple list box for choosing from a slice of values pub fn build_simple( self, - ui: &Ui<'_>, + ui: &Ui, current_item: &mut usize, items: &[V], label_fn: &L, diff --git a/imgui/src/widget/menu.rs b/imgui/src/widget/menu.rs index 0ac02e5db..0b4a26378 100644 --- a/imgui/src/widget/menu.rs +++ b/imgui/src/widget/menu.rs @@ -3,7 +3,7 @@ use crate::sys; use crate::Ui; /// # Widgets: Menus -impl<'ui> Ui<'ui> { +impl Ui { /// Creates and starts appending to a full-screen menu bar. /// /// Returns `Some(MainMenuBarToken)` if the menu bar is visible. After content has been @@ -12,7 +12,7 @@ impl<'ui> Ui<'ui> { /// Returns `None` if the menu bar is not visible and no content should be rendered. #[must_use] #[doc(alias = "BeginMainMenuBar")] - pub fn begin_main_menu_bar(&self) -> Option> { + pub fn begin_main_menu_bar(&self) -> Option> { if unsafe { sys::igBeginMainMenuBar() } { Some(MainMenuBarToken::new(self)) } else { @@ -167,7 +167,7 @@ impl, Shortcut: AsRef> MenuItem { /// /// Returns true if the menu item is activated. #[doc(alias = "MenuItemBool")] - pub fn build(self, ui: &Ui<'_>) -> bool { + pub fn build(self, ui: &Ui) -> bool { unsafe { let (label, shortcut) = ui.scratch_txt_with_opt(self.label, self.shortcut); sys::igMenuItem_Bool(label, shortcut, self.selected, self.enabled) @@ -176,7 +176,7 @@ impl, Shortcut: AsRef> MenuItem { #[doc(alias = "MenuItemBool")] /// Builds the menu item using a mutable reference to selected state. - pub fn build_with_ref(self, ui: &Ui<'_>, selected: &mut bool) -> bool { + pub fn build_with_ref(self, ui: &Ui, selected: &mut bool) -> bool { if self.selected(*selected).build(ui) { *selected = !*selected; true diff --git a/imgui/src/widget/misc.rs b/imgui/src/widget/misc.rs index f79e12845..288c3419d 100644 --- a/imgui/src/widget/misc.rs +++ b/imgui/src/widget/misc.rs @@ -19,7 +19,7 @@ bitflags!( ); /// # Widgets: Miscellaneous -impl<'ui> Ui<'ui> { +impl Ui { /// Renders a clickable button. /// /// Returns true if this button was clicked. diff --git a/imgui/src/widget/progress_bar.rs b/imgui/src/widget/progress_bar.rs index eb641efe5..514127d2c 100644 --- a/imgui/src/widget/progress_bar.rs +++ b/imgui/src/widget/progress_bar.rs @@ -62,7 +62,7 @@ impl> ProgressBar { } /// Builds the progress bar - pub fn build(self, ui: &Ui<'_>) { + pub fn build(self, ui: &Ui) { unsafe { sys::igProgressBar( self.fraction, diff --git a/imgui/src/widget/selectable.rs b/imgui/src/widget/selectable.rs index 48eceaa2e..2bfe93b67 100644 --- a/imgui/src/widget/selectable.rs +++ b/imgui/src/widget/selectable.rs @@ -108,7 +108,7 @@ impl> Selectable { /// Builds the selectable. /// /// Returns true if the selectable was clicked. - pub fn build(self, ui: &Ui<'_>) -> bool { + pub fn build(self, ui: &Ui) -> bool { unsafe { sys::igSelectable_Bool( ui.scratch_txt(self.label), @@ -120,7 +120,7 @@ impl> Selectable { } /// Builds the selectable using a mutable reference to selected state. - pub fn build_with_ref(self, ui: &Ui<'_>, selected: &mut bool) -> bool { + pub fn build_with_ref(self, ui: &Ui, selected: &mut bool) -> bool { if self.selected(*selected).build(ui) { *selected = !*selected; true diff --git a/imgui/src/widget/slider.rs b/imgui/src/widget/slider.rs index 5b7d1c96f..c47373032 100644 --- a/imgui/src/widget/slider.rs +++ b/imgui/src/widget/slider.rs @@ -96,7 +96,7 @@ where /// Builds a slider that is bound to the given value. /// /// Returns true if the slider value was changed. - pub fn build(self, ui: &Ui<'_>, value: &mut Data) -> bool { + pub fn build(self, ui: &Ui, value: &mut Data) -> bool { unsafe { let (label, display_format) = ui.scratch_txt_with_opt(self.label, self.display_format); @@ -114,7 +114,7 @@ where /// Builds a horizontal array of multiple sliders attached to the given slice. /// /// Returns true if any slider value was changed. - pub fn build_array(self, ui: &Ui<'_>, values: &mut [Data]) -> bool { + pub fn build_array(self, ui: &Ui, values: &mut [Data]) -> bool { unsafe { let (label, display_format) = ui.scratch_txt_with_opt(self.label, self.display_format); @@ -222,7 +222,7 @@ where /// Builds a vertical slider that is bound to the given value. /// /// Returns true if the slider value was changed. - pub fn build(self, ui: &Ui<'_>, value: &mut Data) -> bool { + pub fn build(self, ui: &Ui, value: &mut Data) -> bool { unsafe { let (label, display_format) = ui.scratch_txt_with_opt(self.label, self.display_format); @@ -326,7 +326,7 @@ where /// Builds an angle slider that is bound to the given value (in radians). /// /// Returns true if the slider value was changed. - pub fn build(self, ui: &Ui<'_>, value_rad: &mut f32) -> bool { + pub fn build(self, ui: &Ui, value_rad: &mut f32) -> bool { unsafe { let (label, display_format) = ui.scratch_txt_two(self.label, self.display_format); diff --git a/imgui/src/widget/tab.rs b/imgui/src/widget/tab.rs index b1bedce34..54b43a0ad 100644 --- a/imgui/src/widget/tab.rs +++ b/imgui/src/widget/tab.rs @@ -87,7 +87,7 @@ impl> TabBar { } #[must_use] - pub fn begin<'ui>(self, ui: &'ui Ui<'_>) -> Option> { + pub fn begin(self, ui: &Ui) -> Option> { ui.tab_bar_with_flags(self.id, self.flags) } @@ -95,7 +95,7 @@ impl> TabBar { /// Returns the result of the closure, if it is called. /// /// Note: the closure is not called if no tabbar content is visible - pub fn build R>(self, ui: &Ui<'_>, f: F) -> Option { + pub fn build R>(self, ui: &Ui, f: F) -> Option { self.begin(ui).map(|_tab| f()) } } @@ -144,7 +144,7 @@ impl<'a, T: AsRef> TabItem<'a, T> { } #[must_use] - pub fn begin<'ui>(self, ui: &'ui Ui<'_>) -> Option> { + pub fn begin(self, ui: &Ui) -> Option> { ui.tab_item_with_flags(self.label, self.opened, self.flags) } @@ -152,7 +152,7 @@ impl<'a, T: AsRef> TabItem<'a, T> { /// Returns the result of the closure, if it is called. /// /// Note: the closure is not called if the tab item is not selected - pub fn build R>(self, ui: &Ui<'_>, f: F) -> Option { + pub fn build R>(self, ui: &Ui, f: F) -> Option { self.begin(ui).map(|_tab| f()) } } @@ -166,7 +166,7 @@ create_token!( drop { sys::igEndTabItem() } ); -impl Ui<'_> { +impl Ui { /// Creates a tab bar and returns a tab bar token, allowing you to append /// Tab items afterwards. This passes no flags. To pass flags explicitly, /// use [tab_bar_with_flags](Self::tab_bar_with_flags). diff --git a/imgui/src/widget/text.rs b/imgui/src/widget/text.rs index 99bb0d442..abe38be26 100644 --- a/imgui/src/widget/text.rs +++ b/imgui/src/widget/text.rs @@ -13,7 +13,7 @@ fn fmt_ptr() -> *const c_char { } /// # Widgets: Text -impl<'ui> Ui<'ui> { +impl Ui { /// Renders simple text #[doc(alias = "TextUnformatted")] pub fn text>(&self, text: T) { diff --git a/imgui/src/widget/tree.rs b/imgui/src/widget/tree.rs index 06abafcfc..4f18b16d1 100644 --- a/imgui/src/widget/tree.rs +++ b/imgui/src/widget/tree.rs @@ -241,7 +241,7 @@ impl, L: AsRef> TreeNode { /// rendered, the token can be popped by calling `.pop()`. /// /// Returns `None` if the tree node is not open and no content should be rendered. - pub fn push<'ui>(self, ui: &Ui<'ui>) -> Option> { + pub fn push(self, ui: &Ui) -> Option> { let open = unsafe { if self.opened_cond != Condition::Never { sys::igSetNextItemOpen(self.opened, self.opened_cond as i32); @@ -282,7 +282,7 @@ impl, L: AsRef> TreeNode { /// Returns the result of the closure, if it is called. /// /// Note: the closure is not called if the tree node is not open. - pub fn build R>(self, ui: &Ui<'_>, f: F) -> Option { + pub fn build R>(self, ui: &Ui, f: F) -> Option { self.push(ui).map(|_node| f()) } } @@ -292,11 +292,11 @@ impl, L: AsRef> TreeNode { /// If `TreeNodeFlags::NO_TREE_PUSH_ON_OPEN` was used when this token was created, calling `.pop()` /// is not mandatory and is a no-op. #[must_use] -pub struct TreeNodeToken<'a>(core::marker::PhantomData>, bool); +pub struct TreeNodeToken<'a>(core::marker::PhantomData<&'a crate::Ui>, bool); impl<'a> TreeNodeToken<'a> { /// Creates a new token type. This takes a bool for the no-op variant on NO_TREE_PUSH_ON_OPEN. - pub(crate) fn new(_: &crate::Ui<'a>, execute_drop: bool) -> Self { + pub(crate) fn new(_: &crate::Ui, execute_drop: bool) -> Self { Self(std::marker::PhantomData, execute_drop) } @@ -408,7 +408,7 @@ impl> CollapsingHeader { /// /// This is the same as [build](Self::build) but is provided for consistent naming. #[must_use] - pub fn begin(self, ui: &Ui<'_>) -> bool { + pub fn begin(self, ui: &Ui) -> bool { self.build(ui) } @@ -419,7 +419,7 @@ impl> CollapsingHeader { /// This is the same as [build_with_close_button](Self::build_with_close_button) /// but is provided for consistent naming. #[must_use] - pub fn begin_with_close_button(self, ui: &Ui<'_>, opened: &mut bool) -> bool { + pub fn begin_with_close_button(self, ui: &Ui, opened: &mut bool) -> bool { self.build_with_close_button(ui, opened) } @@ -428,7 +428,7 @@ impl> CollapsingHeader { /// Returns true if the collapsing header is open and content should be rendered. #[must_use] #[inline] - pub fn build(self, ui: &Ui<'_>) -> bool { + pub fn build(self, ui: &Ui) -> bool { unsafe { sys::igCollapsingHeader_TreeNodeFlags( ui.scratch_txt(self.label), @@ -442,7 +442,7 @@ impl> CollapsingHeader { /// Returns true if the collapsing header is open and content should be rendered. #[must_use] #[inline] - pub fn build_with_close_button(self, ui: &Ui<'_>, opened: &mut bool) -> bool { + pub fn build_with_close_button(self, ui: &Ui, opened: &mut bool) -> bool { unsafe { sys::igCollapsingHeader_BoolPtr( ui.scratch_txt(self.label), @@ -453,7 +453,7 @@ impl> CollapsingHeader { } } -impl Ui<'_> { +impl Ui { /// Constructs a new collapsing header #[doc(alias = "CollapsingHeader")] pub fn collapsing_header(&self, label: impl AsRef, flags: TreeNodeFlags) -> bool { diff --git a/imgui/src/window/child_window.rs b/imgui/src/window/child_window.rs index 8b83df4e8..5694305a3 100644 --- a/imgui/src/window/child_window.rs +++ b/imgui/src/window/child_window.rs @@ -9,7 +9,7 @@ use crate::Ui; #[derive(Copy, Clone, Debug)] #[must_use] pub struct ChildWindow<'ui, Label> { - ui: &'ui Ui<'ui>, + ui: &'ui Ui, name: Label, flags: WindowFlags, size: [f32; 2], @@ -22,7 +22,7 @@ pub struct ChildWindow<'ui, Label> { impl<'ui, Label: AsRef> ChildWindow<'ui, Label> { /// Creates a new child window builder with the given ID #[doc(alias = "BeginChildID")] - pub fn new(ui: &'ui Ui<'ui>, name: Label) -> ChildWindow<'ui, Label> { + pub fn new(ui: &'ui Ui, name: Label) -> ChildWindow<'ui, Label> { ChildWindow { ui, name, diff --git a/imgui/src/window/content_region.rs b/imgui/src/window/content_region.rs index 40c21907e..27270e2ce 100644 --- a/imgui/src/window/content_region.rs +++ b/imgui/src/window/content_region.rs @@ -2,7 +2,7 @@ use crate::sys; use crate::Ui; /// # Content region -impl<'ui> Ui<'ui> { +impl Ui { /// Returns the current content boundaries (in *window coordinates*) #[doc(alias = "GetContentRegionMax")] pub fn content_region_max(&self) -> [f32; 2] { diff --git a/imgui/src/window/mod.rs b/imgui/src/window/mod.rs index 6183ca844..00e7f6537 100644 --- a/imgui/src/window/mod.rs +++ b/imgui/src/window/mod.rs @@ -111,7 +111,7 @@ bitflags! { } /// # Window utilities -impl<'ui> Ui<'ui> { +impl Ui { /// Returns true if the current window appeared during this frame #[doc(alias = "IsWindowAppearing")] pub fn is_window_appearing(&self) -> bool { @@ -162,7 +162,7 @@ impl<'ui> Ui<'ui> { #[derive(Debug)] #[must_use] pub struct Window<'ui, 'a, Label> { - ui: &'ui Ui<'ui>, + ui: &'ui Ui, name: Label, opened: Option<&'a mut bool>, flags: WindowFlags, @@ -181,7 +181,7 @@ pub struct Window<'ui, 'a, Label> { impl<'ui, 'a, Label: AsRef> Window<'ui, 'a, Label> { /// Typically created via [`Ui::window`] - pub fn new(ui: &'ui Ui<'ui>, name: Label) -> Self { + pub fn new(ui: &'ui Ui, name: Label) -> Self { Window { ui, name, diff --git a/imgui/src/window/scroll.rs b/imgui/src/window/scroll.rs index 386002a21..cd9174ae0 100644 --- a/imgui/src/window/scroll.rs +++ b/imgui/src/window/scroll.rs @@ -2,7 +2,7 @@ use crate::sys; use crate::Ui; /// # Window scrolling -impl<'ui> Ui<'ui> { +impl Ui { /// Returns the horizontal scrolling position. /// /// Value is between 0.0 and self.scroll_max_x(). From 41ab3643840f46a512e5f80e8975b01deafbc1a8 Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Sun, 26 Sep 2021 21:11:39 -0400 Subject: [PATCH 036/200] and added the thorn in this method --- imgui/src/context.rs | 16 ++++++++++++++-- imgui/src/lib.rs | 20 -------------------- 2 files changed, 14 insertions(+), 22 deletions(-) diff --git a/imgui/src/context.rs b/imgui/src/context.rs index e8f3e0975..b9e97cc3a 100644 --- a/imgui/src/context.rs +++ b/imgui/src/context.rs @@ -10,8 +10,8 @@ use crate::clipboard::{ClipboardBackend, ClipboardContext}; use crate::fonts::atlas::{FontAtlas, FontAtlasRefMut, FontId, SharedFontAtlas}; use crate::io::Io; use crate::style::Style; -use crate::sys; use crate::Ui; +use crate::{sys, DrawData}; /// An imgui-rs context. /// @@ -518,7 +518,6 @@ impl Context { } /// Starts a new frame. - #[deprecated(since = "0.9.0", note = "use `new_frame` instead")] pub fn frame(&mut self) -> &mut Ui { self.new_frame() } @@ -547,4 +546,17 @@ impl Context { &mut self.ui } + + /// Renders the frame and returns a reference to the resulting draw data. + /// + /// This should only be called after calling [`new_frame`]. + /// + /// [`new_frame`]: Self::new_frame + #[doc(alias = "Render", alias = "GetDrawData")] + pub fn render(&mut self) -> &DrawData { + unsafe { + sys::igRender(); + &*(sys::igGetDrawData() as *mut DrawData) + } + } } diff --git a/imgui/src/lib.rs b/imgui/src/lib.rs index 34a715497..4c2d04045 100644 --- a/imgui/src/lib.rs +++ b/imgui/src/lib.rs @@ -196,28 +196,8 @@ impl Ui { pub fn clone_style(&self) -> Style { unsafe { *self.style() } } - // /// Renders the frame and returns a reference to the resulting draw data - // #[doc(alias = "Render", alias = "GetDrawData")] - // pub fn render(self) -> &DrawData { - // unsafe { - // sys::igRender(); - // &*(sys::igGetDrawData() as *mut DrawData) - // } - // } } -// TODO JACK YOU NEED TO MOVE THIS! -// impl Drop for Ui { -// #[doc(alias = "EndFrame")] -// fn drop(&mut self) { -// if !std::thread::panicking() { -// unsafe { -// sys::igEndFrame(); -// } -// } -// } -// } - /// # Demo, debug, information impl Ui { /// Renders a demo window (previously called a test window), which demonstrates most From b30cb740ba8b422d19cbc753f1aa42983008a80b Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Sun, 26 Sep 2021 21:15:02 -0400 Subject: [PATCH 037/200] aaaand fixed up the examples --- imgui-examples/examples/support/mod.rs | 2 +- imgui-examples/examples/test_window_impl.rs | 6 +++--- imgui-glow-renderer/examples/01_basic.rs | 4 ++-- imgui-glow-renderer/examples/02_triangle.rs | 2 +- imgui-glow-renderer/examples/03_triangle_gles.rs | 2 +- imgui-glow-renderer/examples/04_custom_textures.rs | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/imgui-examples/examples/support/mod.rs b/imgui-examples/examples/support/mod.rs index 2a5c9d59d..0b2dcbcc6 100644 --- a/imgui-examples/examples/support/mod.rs +++ b/imgui-examples/examples/support/mod.rs @@ -121,7 +121,7 @@ impl System { let mut target = display.draw(); target.clear_color_srgb(1.0, 1.0, 1.0, 1.0); platform.prepare_render(&ui, gl_window.window()); - let draw_data = ui.render(); + let draw_data = imgui.render(); renderer .render(&mut target, draw_data) .expect("Rendering failed"); diff --git a/imgui-examples/examples/test_window_impl.rs b/imgui-examples/examples/test_window_impl.rs index a43e95b27..f62eaa054 100644 --- a/imgui-examples/examples/test_window_impl.rs +++ b/imgui-examples/examples/test_window_impl.rs @@ -330,7 +330,7 @@ fn show_test_window(ui: &Ui, state: &mut State, opened: &mut bool) { window = window.opened(opened) } window.build(|| { - ui.push_item_width(-140.0); + let _w = ui.push_item_width(-140.0); ui.text(format!("dear imgui says hello. ({})", imgui::dear_imgui_version())); if let Some(menu_bar) = ui.begin_menu_bar() { if let Some(menu) = ui.begin_menu("Menu") { @@ -827,7 +827,7 @@ CTRL+click on individual component to input value.\n", }); } -fn show_example_app_main_menu_bar<'a>(ui: &Ui<'a>, state: &mut State) { +fn show_example_app_main_menu_bar(ui: &Ui, state: &mut State) { if let Some(menu_bar) = ui.begin_main_menu_bar() { if let Some(menu) = ui.begin_menu("File") { show_example_menu_file(ui, &mut state.file_menu); @@ -849,7 +849,7 @@ fn show_example_app_main_menu_bar<'a>(ui: &Ui<'a>, state: &mut State) { } } -fn show_example_menu_file<'a>(ui: &Ui<'a>, state: &mut FileMenuState) { +fn show_example_menu_file(ui: &Ui, state: &mut FileMenuState) { MenuItem::new("(dummy menu)").enabled(false).build(ui); MenuItem::new("New").build(ui); MenuItem::new("Open").shortcut("Ctrl+O").build(ui); diff --git a/imgui-glow-renderer/examples/01_basic.rs b/imgui-glow-renderer/examples/01_basic.rs index 0ca90914e..ffdd4c6b3 100644 --- a/imgui-glow-renderer/examples/01_basic.rs +++ b/imgui-glow-renderer/examples/01_basic.rs @@ -51,8 +51,8 @@ fn main() { let ui = imgui_context.frame(); ui.show_demo_window(&mut true); - winit_platform.prepare_render(&ui, window.window()); - let draw_data = ui.render(); + winit_platform.prepare_render(ui, window.window()); + let draw_data = imgui_context.render(); // This is the only extra render step to add ig_renderer diff --git a/imgui-glow-renderer/examples/02_triangle.rs b/imgui-glow-renderer/examples/02_triangle.rs index 55a2b4a29..6bc6c1c0d 100644 --- a/imgui-glow-renderer/examples/02_triangle.rs +++ b/imgui-glow-renderer/examples/02_triangle.rs @@ -42,7 +42,7 @@ fn main() { ui.show_demo_window(&mut true); winit_platform.prepare_render(&ui, window.window()); - let draw_data = ui.render(); + let draw_data = imgui_context.render(); // Render imgui on top of it ig_renderer diff --git a/imgui-glow-renderer/examples/03_triangle_gles.rs b/imgui-glow-renderer/examples/03_triangle_gles.rs index 989a788da..1d92da275 100644 --- a/imgui-glow-renderer/examples/03_triangle_gles.rs +++ b/imgui-glow-renderer/examples/03_triangle_gles.rs @@ -56,7 +56,7 @@ fn main() { ui.show_demo_window(&mut true); winit_platform.prepare_render(&ui, window.window()); - let draw_data = ui.render(); + let draw_data = imgui_context.render(); // Render imgui on top ig_renderer diff --git a/imgui-glow-renderer/examples/04_custom_textures.rs b/imgui-glow-renderer/examples/04_custom_textures.rs index 70e4d95f4..db56dc8f1 100644 --- a/imgui-glow-renderer/examples/04_custom_textures.rs +++ b/imgui-glow-renderer/examples/04_custom_textures.rs @@ -59,7 +59,7 @@ fn main() { textures_ui.show(&ui); winit_platform.prepare_render(&ui, window.window()); - let draw_data = ui.render(); + let draw_data = imgui_context.render(); ig_renderer .render(&gl, &textures, draw_data) .expect("error rendering imgui"); From 11b7e87c646294fa4a7a2f575dd3074c1a9a2574 Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Sun, 26 Sep 2021 21:18:58 -0400 Subject: [PATCH 038/200] clippy fixes --- imgui-examples/examples/support/mod.rs | 2 +- imgui-glow-renderer/examples/02_triangle.rs | 2 +- imgui-glow-renderer/examples/03_triangle_gles.rs | 2 +- imgui-glow-renderer/examples/04_custom_textures.rs | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/imgui-examples/examples/support/mod.rs b/imgui-examples/examples/support/mod.rs index 0b2dcbcc6..aea615a2e 100644 --- a/imgui-examples/examples/support/mod.rs +++ b/imgui-examples/examples/support/mod.rs @@ -120,7 +120,7 @@ impl System { let gl_window = display.gl_window(); let mut target = display.draw(); target.clear_color_srgb(1.0, 1.0, 1.0, 1.0); - platform.prepare_render(&ui, gl_window.window()); + platform.prepare_render(ui, gl_window.window()); let draw_data = imgui.render(); renderer .render(&mut target, draw_data) diff --git a/imgui-glow-renderer/examples/02_triangle.rs b/imgui-glow-renderer/examples/02_triangle.rs index 6bc6c1c0d..f1c1e9887 100644 --- a/imgui-glow-renderer/examples/02_triangle.rs +++ b/imgui-glow-renderer/examples/02_triangle.rs @@ -41,7 +41,7 @@ fn main() { let ui = imgui_context.frame(); ui.show_demo_window(&mut true); - winit_platform.prepare_render(&ui, window.window()); + winit_platform.prepare_render(ui, window.window()); let draw_data = imgui_context.render(); // Render imgui on top of it diff --git a/imgui-glow-renderer/examples/03_triangle_gles.rs b/imgui-glow-renderer/examples/03_triangle_gles.rs index 1d92da275..b20d25800 100644 --- a/imgui-glow-renderer/examples/03_triangle_gles.rs +++ b/imgui-glow-renderer/examples/03_triangle_gles.rs @@ -55,7 +55,7 @@ fn main() { let ui = imgui_context.frame(); ui.show_demo_window(&mut true); - winit_platform.prepare_render(&ui, window.window()); + winit_platform.prepare_render(ui, window.window()); let draw_data = imgui_context.render(); // Render imgui on top diff --git a/imgui-glow-renderer/examples/04_custom_textures.rs b/imgui-glow-renderer/examples/04_custom_textures.rs index db56dc8f1..5020386c5 100644 --- a/imgui-glow-renderer/examples/04_custom_textures.rs +++ b/imgui-glow-renderer/examples/04_custom_textures.rs @@ -56,9 +56,9 @@ fn main() { unsafe { gl.clear(glow::COLOR_BUFFER_BIT) }; let ui = imgui_context.frame(); - textures_ui.show(&ui); + textures_ui.show(ui); - winit_platform.prepare_render(&ui, window.window()); + winit_platform.prepare_render(ui, window.window()); let draw_data = imgui_context.render(); ig_renderer .render(&gl, &textures, draw_data) From 9b6f6c0fb84ac3abd67dbc16712a3137401b55d3 Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Sun, 26 Sep 2021 21:49:23 -0400 Subject: [PATCH 039/200] fix tests --- imgui/src/context.rs | 4 ++++ imgui/src/drag_drop.rs | 8 ++++---- imgui/src/input/mouse.rs | 27 +++++++++++++++++++++++++++ 3 files changed, 35 insertions(+), 4 deletions(-) diff --git a/imgui/src/context.rs b/imgui/src/context.rs index b9e97cc3a..f4f6392ca 100644 --- a/imgui/src/context.rs +++ b/imgui/src/context.rs @@ -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); } } diff --git a/imgui/src/drag_drop.rs b/imgui/src/drag_drop.rs index a6f97f1bb..1f209a5c0 100644 --- a/imgui/src/drag_drop.rs +++ b/imgui/src/drag_drop.rs @@ -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> DragDropSource { /// /// ```no_run /// # use imgui::*; - /// fn show_ui(ui: &Ui<'_>, drop_message: &mut Option) { + /// fn show_ui(ui: &Ui, drop_message: &mut Option) { /// ui.button("Drag me!"); /// /// let drag_drop_name = "Test Drag"; @@ -194,7 +194,7 @@ impl> DragDropSource { /// /// ```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!"); /// diff --git a/imgui/src/input/mouse.rs b/imgui/src/input/mouse.rs index 269d4f2f0..766445520 100644 --- a/imgui/src/input/mouse.rs +++ b/imgui/src/input/mouse.rs @@ -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(); } } } From 63267ddf563f660db5dfe33836d98a2ec3237bcd Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Sun, 26 Sep 2021 22:27:19 -0400 Subject: [PATCH 040/200] better support for non-send-sync --- imgui/src/context.rs | 4 ++-- imgui/src/lib.rs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/imgui/src/context.rs b/imgui/src/context.rs index f4f6392ca..29b7bc58c 100644 --- a/imgui/src/context.rs +++ b/imgui/src/context.rs @@ -243,7 +243,7 @@ impl Context { platform_name: None, renderer_name: None, clipboard_ctx: Box::new(ClipboardContext::dummy().into()), - ui: Ui(()), + ui: Ui(().into()), } } fn is_current_context(&self) -> bool { @@ -329,7 +329,7 @@ impl SuspendedContext { platform_name: None, renderer_name: None, clipboard_ctx: Box::new(ClipboardContext::dummy().into()), - ui: Ui(()), + ui: Ui(().into()), }; if ctx.is_current_context() { // Oops, the context was activated -> deactivate diff --git a/imgui/src/lib.rs b/imgui/src/lib.rs index 4c2d04045..f6338cfd5 100644 --- a/imgui/src/lib.rs +++ b/imgui/src/lib.rs @@ -118,7 +118,7 @@ impl Context { /// A temporary reference for building the user interface for one frame #[derive(Debug)] -pub struct Ui(pub(crate) ()); +pub struct Ui(pub(crate) cell::UnsafeCell<()>); /// This is our internal buffer that we use for the Ui object. /// From 2a8374a339ca5919865d7d4f6825fc4c28da281c Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Mon, 27 Sep 2021 14:42:15 -0400 Subject: [PATCH 041/200] removed ZST for `Ui` and changed shared font atlas to be based on UnsafeCell --- CHANGELOG.markdown | 4 +++ imgui/src/context.rs | 66 ++++++++++++++-------------------------- imgui/src/fonts/atlas.rs | 2 +- imgui/src/lib.rs | 23 ++++++-------- 4 files changed, 38 insertions(+), 57 deletions(-) diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown index c89367bcd..9ac6d8ec8 100644 --- a/CHANGELOG.markdown +++ b/CHANGELOG.markdown @@ -6,6 +6,10 @@ - BREAKING: Removed `push_style_colors` and `push_style_vars`. Instead, use `push_style_color` in a loop. This was deprecated in `0.7.0` and should have been removed in `0.8.0`. This also removes their associated tokens. +- BREAKING: Ui now does not have a lifetime associated with it, but is only ever given to users in the form of `&mut Ui`. Additionally, the `render` function has been moved to the `Context` instead of `Ui`. + +- BREAKING: `SharedFontAtlas` now uses `UnsafeCell` rather than `Rc` as its wrapper -- this simplifies the codebase and more accurately reflects how we expect `SharedFontAtlas` to be used (ie, you're probably going to set it up once, and then give it around, rather than constantly edit it). `SharedFontAtlas` users, if this change is very bad for you, please let us know with issues! + ## [0.8.0] - 2021-09-17 Welcome to the `0.8.0` update. This is one of the largest updates imgui-rs has ever seen; it will generate errors in a `0.7` project, but hopefully it should be both quick to fix, and enjoyable to update. See our [release page](https://github.com/imgui-rs/imgui-rs/releases/tag/v0.8.0) for more information and a list of contributors to this cycle. Thank you to everyone who uses `imgui-rs`, files issues, and spend their time and effort to PR new changes into the codebase. Because of all that effort, this is by far the best `imgui-rs` has looked! diff --git a/imgui/src/context.rs b/imgui/src/context.rs index 29b7bc58c..3acda719b 100644 --- a/imgui/src/context.rs +++ b/imgui/src/context.rs @@ -1,13 +1,12 @@ use parking_lot::ReentrantMutex; -use std::cell::{RefCell, UnsafeCell}; +use std::cell::UnsafeCell; use std::ffi::{CStr, CString}; use std::ops::Drop; use std::path::PathBuf; use std::ptr; -use std::rc::Rc; use crate::clipboard::{ClipboardBackend, ClipboardContext}; -use crate::fonts::atlas::{FontAtlas, FontAtlasRefMut, FontId, SharedFontAtlas}; +use crate::fonts::atlas::{FontAtlas, FontId, SharedFontAtlas}; use crate::io::Io; use crate::style::Style; use crate::Ui; @@ -50,7 +49,7 @@ use crate::{sys, DrawData}; #[derive(Debug)] pub struct Context { raw: *mut sys::ImGuiContext, - shared_font_atlas: Option>>, + shared_font_atlas: Option>, ini_filename: Option, log_filename: Option, platform_name: Option, @@ -94,7 +93,7 @@ impl Context { /// /// Panics if an active context already exists #[doc(alias = "CreateContext")] - pub fn create_with_shared_font_atlas(shared_font_atlas: Rc>) -> Self { + pub fn create_with_shared_font_atlas(shared_font_atlas: UnsafeCell) -> Self { Self::create_internal(Some(shared_font_atlas)) } /// Suspends this context so another context can be the active context. @@ -217,7 +216,7 @@ impl Context { io.clipboard_user_data = clipboard_ctx.get() as *mut _; self.clipboard_ctx = clipboard_ctx; } - fn create_internal(shared_font_atlas: Option>>) -> Self { + fn create_internal(shared_font_atlas: Option>) -> Self { let _guard = CTX_MUTEX.lock(); assert!( no_current_context(), @@ -226,8 +225,8 @@ impl Context { let shared_font_atlas_ptr = match &shared_font_atlas { Some(shared_font_atlas) => { - let borrowed_font_atlas = shared_font_atlas.borrow(); - borrowed_font_atlas.0 + let borrowed_font_atlas = shared_font_atlas.get(); + unsafe { &*borrowed_font_atlas }.0 } None => ptr::null_mut(), }; @@ -243,7 +242,9 @@ impl Context { platform_name: None, renderer_name: None, clipboard_ctx: Box::new(ClipboardContext::dummy().into()), - ui: Ui(().into()), + ui: Ui { + buffer: UnsafeCell::new(crate::string::UiBuffer::new(1024)), + }, } } fn is_current_context(&self) -> bool { @@ -297,7 +298,7 @@ impl SuspendedContext { Self::create_internal(None) } /// Creates a new suspended imgui-rs context with a shared font atlas. - pub fn create_with_shared_font_atlas(shared_font_atlas: Rc>) -> Self { + pub fn create_with_shared_font_atlas(shared_font_atlas: UnsafeCell) -> Self { Self::create_internal(Some(shared_font_atlas)) } /// Attempts to activate this suspended context. @@ -318,7 +319,7 @@ impl SuspendedContext { Err(self) } } - fn create_internal(shared_font_atlas: Option>>) -> Self { + fn create_internal(shared_font_atlas: Option>) -> Self { let _guard = CTX_MUTEX.lock(); let raw = unsafe { sys::igCreateContext(ptr::null_mut()) }; let ctx = Context { @@ -329,7 +330,9 @@ impl SuspendedContext { platform_name: None, renderer_name: None, clipboard_ctx: Box::new(ClipboardContext::dummy().into()), - ui: Ui(().into()), + ui: Ui { + buffer: UnsafeCell::new(crate::string::UiBuffer::new(1024)), + }, }; if ctx.is_current_context() { // Oops, the context was activated -> deactivate @@ -411,9 +414,9 @@ fn test_suspend_failure() { #[test] fn test_shared_font_atlas() { let _guard = crate::test::TEST_MUTEX.lock(); - let atlas = Rc::new(RefCell::new(SharedFontAtlas::create())); - let suspended1 = SuspendedContext::create_with_shared_font_atlas(atlas.clone()); - let mut ctx2 = Context::create_with_shared_font_atlas(atlas); + let atlas = SharedFontAtlas::create(); + let suspended1 = SuspendedContext::create_with_shared_font_atlas(atlas.clone().into()); + let mut ctx2 = Context::create_with_shared_font_atlas(atlas.into()); { let _borrow = ctx2.fonts(); } @@ -422,17 +425,6 @@ fn test_shared_font_atlas() { let _borrow = ctx.fonts(); } -#[test] -#[should_panic] -fn test_shared_font_atlas_borrow_panic() { - let _guard = crate::test::TEST_MUTEX.lock(); - let atlas = Rc::new(RefCell::new(SharedFontAtlas::create())); - let _suspended = SuspendedContext::create_with_shared_font_atlas(atlas.clone()); - let mut ctx = Context::create_with_shared_font_atlas(atlas.clone()); - let _borrow1 = atlas.borrow(); - let _borrow2 = ctx.fonts(); -} - #[test] fn test_ini_load_save() { let (_guard, mut ctx) = crate::test::test_ctx(); @@ -506,19 +498,11 @@ impl Context { } } /// Returns a mutable reference to the font atlas. - /// - /// # Panics - /// - /// Panics if the context uses a shared font atlas that is already borrowed - pub fn fonts(&mut self) -> FontAtlasRefMut<'_> { - match self.shared_font_atlas { - Some(ref font_atlas) => FontAtlasRefMut::Shared(font_atlas.borrow_mut()), - None => unsafe { - // safe because FontAtlas is a transparent wrapper around sys::ImFontAtlas - let fonts = &mut *(self.io_mut().fonts as *mut FontAtlas); - FontAtlasRefMut::Owned(fonts) - }, - } + pub fn fonts(&mut self) -> &mut FontAtlas { + // we take this with an `&mut Self` here, which means + // that we can't get the sharedfontatlas through safe code + // otherwise + unsafe { &mut *(self.io_mut().fonts as *mut FontAtlas) } } /// Starts a new frame. @@ -539,10 +523,6 @@ impl Context { if !default_font.is_null() && self.fonts().get_font(FontId(default_font)).is_none() { self.io_mut().font_default = ptr::null_mut(); } - // NewFrame/Render/EndFrame mutate the font atlas so we need exclusive access to it - if let Some(font_atlas) = self.shared_font_atlas.as_ref() { - assert!(font_atlas.try_borrow_mut().is_ok()); - } // TODO: precondition checks unsafe { sys::igNewFrame(); diff --git a/imgui/src/fonts/atlas.rs b/imgui/src/fonts/atlas.rs index 708b4945e..e1a815248 100644 --- a/imgui/src/fonts/atlas.rs +++ b/imgui/src/fonts/atlas.rs @@ -433,7 +433,7 @@ pub struct FontAtlasTexture<'a> { } /// A font atlas that can be shared between contexts -#[derive(Debug)] +#[derive(Debug, Clone)] pub struct SharedFontAtlas(pub(crate) *mut sys::ImFontAtlas); impl SharedFontAtlas { diff --git a/imgui/src/lib.rs b/imgui/src/lib.rs index f6338cfd5..ef2cb3b7a 100644 --- a/imgui/src/lib.rs +++ b/imgui/src/lib.rs @@ -116,15 +116,12 @@ impl Context { } } -/// A temporary reference for building the user interface for one frame +/// A reference for building the user interface for one frame #[derive(Debug)] -pub struct Ui(pub(crate) cell::UnsafeCell<()>); - -/// This is our internal buffer that we use for the Ui object. -/// -/// We edit this buffer -static mut BUFFER: cell::UnsafeCell = - cell::UnsafeCell::new(string::UiBuffer::new(100)); +pub struct Ui { + // our scratch sheet + buffer: cell::UnsafeCell, +} impl Ui { /// This provides access to the backing scratch buffer that we use to write @@ -141,13 +138,13 @@ impl Ui { /// We otherwise make no assumptions about the size or keep state in this buffer between calls, /// so editing the `UiBuffer` is fine. pub unsafe fn scratch_buffer(&self) -> &cell::UnsafeCell { - &BUFFER + &self.buffer } /// Internal method to push a single text to our scratch buffer. fn scratch_txt(&self, txt: impl AsRef) -> *const sys::cty::c_char { unsafe { - let handle = &mut *BUFFER.get(); + let handle = &mut *self.buffer.get(); handle.scratch_txt(txt) } } @@ -155,7 +152,7 @@ impl Ui { /// Internal method to push an option text to our scratch buffer. fn scratch_txt_opt(&self, txt: Option>) -> *const sys::cty::c_char { unsafe { - let handle = &mut *BUFFER.get(); + let handle = &mut *self.buffer.get(); handle.scratch_txt_opt(txt) } } @@ -166,7 +163,7 @@ impl Ui { txt_1: impl AsRef, ) -> (*const sys::cty::c_char, *const sys::cty::c_char) { unsafe { - let handle = &mut *BUFFER.get(); + let handle = &mut *self.buffer.get(); handle.scratch_txt_two(txt_0, txt_1) } } @@ -177,7 +174,7 @@ impl Ui { txt_1: Option>, ) -> (*const sys::cty::c_char, *const sys::cty::c_char) { unsafe { - let handle = &mut *BUFFER.get(); + let handle = &mut *self.buffer.get(); handle.scratch_txt_with_opt(txt_0, txt_1) } } From 5bdd4f819cfff86e714c1909f42f05e1f11df0e9 Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Tue, 28 Sep 2021 11:27:14 -0400 Subject: [PATCH 042/200] added end frame handle --- imgui/src/context.rs | 9 +++------ imgui/src/lib.rs | 28 +++++++++++++++++++++++++++- 2 files changed, 30 insertions(+), 7 deletions(-) diff --git a/imgui/src/context.rs b/imgui/src/context.rs index 3acda719b..c1a891e5a 100644 --- a/imgui/src/context.rs +++ b/imgui/src/context.rs @@ -505,17 +505,14 @@ impl Context { unsafe { &mut *(self.io_mut().fonts as *mut FontAtlas) } } - /// Starts a new frame. + /// Starts a new frame. Use [`new_frame`] instead. + /// + /// [`new_frame`]: Self::new_frame pub fn frame(&mut self) -> &mut Ui { self.new_frame() } /// Starts a new frame and returns an `Ui` instance for constructing a user interface. - /// - /// # Panics - /// - /// Panics if the context uses a shared font atlas that is already borrowed. - /// Do not attempt to borrow the context afterwards, if you are using a shared font atlas. #[doc(alias = "NewFame")] pub fn new_frame(&mut self) -> &mut Ui { // Clear default font if it no longer exists. This could be an error in the future diff --git a/imgui/src/lib.rs b/imgui/src/lib.rs index ef2cb3b7a..dc126d506 100644 --- a/imgui/src/lib.rs +++ b/imgui/src/lib.rs @@ -119,7 +119,7 @@ impl Context { /// A reference for building the user interface for one frame #[derive(Debug)] pub struct Ui { - // our scratch sheet + /// our scratch sheet buffer: cell::UnsafeCell, } @@ -189,10 +189,36 @@ impl Ui { pub fn fonts(&self) -> &FontAtlas { unsafe { &*(self.io().fonts as *const FontAtlas) } } + /// Returns a clone of the user interface style pub fn clone_style(&self) -> Style { unsafe { *self.style() } } + + /// This function, and the library's api, has been changed as of `0.9`! + /// Do not use this function! Instead, use [`Context::render`], + /// which does what this function in `0.8` used to do. + /// + /// This function right now simply **ends** the current frame, but does not + /// return draw data. If you want to end the frame without generated draw data, + /// and thus save some CPU time, use [`end_frame_early`]. + #[deprecated( + since = "0.9.0", + note = "use `Context::render` to render frames, or `end_frame_early` to not render at all" + )] + pub fn render(&mut self) { + self.end_frame_early(); + } + + /// Use this function to end the frame early. + /// After this call, you should **stop using the `Ui` object till `new_frame` has been called.** + /// + /// You probably *don't want this function.* If you want to render your data, use `Context::render` now. + pub fn end_frame_early(&mut self) { + unsafe { + sys::igEndFrame(); + } + } } /// # Demo, debug, information From 76c74fbfc5177326b65ef1a221daa04221147916 Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Thu, 30 Sep 2021 18:33:00 -0400 Subject: [PATCH 043/200] quick fix --- imgui-glium-renderer/src/lib.rs | 2 +- imgui-glow-renderer/src/lib.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/imgui-glium-renderer/src/lib.rs b/imgui-glium-renderer/src/lib.rs index 723fae9cc..eddc659ba 100644 --- a/imgui-glium-renderer/src/lib.rs +++ b/imgui-glium-renderer/src/lib.rs @@ -276,7 +276,7 @@ impl Renderer { } fn upload_font_texture( - mut fonts: imgui::FontAtlasRefMut, + fonts: &mut imgui::FontAtlas, ctx: &Rc, ) -> Result { let texture = fonts.build_rgba32_texture(); diff --git a/imgui-glow-renderer/src/lib.rs b/imgui-glow-renderer/src/lib.rs index eacdd902d..87fd21429 100644 --- a/imgui-glow-renderer/src/lib.rs +++ b/imgui-glow-renderer/src/lib.rs @@ -1042,7 +1042,7 @@ pub type RenderError = String; fn prepare_font_atlas( gl: &Context, - mut fonts: imgui::FontAtlasRefMut, + fonts: &mut imgui::FontAtlas, texture_map: &mut T, ) -> Result { #![allow(clippy::cast_possible_wrap)] From 1f65184deb0cca1c1cb160d20f3abf2598d1a919 Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Fri, 1 Oct 2021 12:33:36 -0400 Subject: [PATCH 044/200] borked the lifetime, simplified here --- imgui/src/context.rs | 22 +++---- imgui/src/fonts/atlas.rs | 128 ++++++++++++++++++++++----------------- 2 files changed, 83 insertions(+), 67 deletions(-) diff --git a/imgui/src/context.rs b/imgui/src/context.rs index c1a891e5a..95c971e3e 100644 --- a/imgui/src/context.rs +++ b/imgui/src/context.rs @@ -49,7 +49,7 @@ use crate::{sys, DrawData}; #[derive(Debug)] pub struct Context { raw: *mut sys::ImGuiContext, - shared_font_atlas: Option>, + shared_font_atlas: Option, ini_filename: Option, log_filename: Option, platform_name: Option, @@ -93,7 +93,7 @@ impl Context { /// /// Panics if an active context already exists #[doc(alias = "CreateContext")] - pub fn create_with_shared_font_atlas(shared_font_atlas: UnsafeCell) -> Self { + pub fn create_with_shared_font_atlas(shared_font_atlas: SharedFontAtlas) -> Self { Self::create_internal(Some(shared_font_atlas)) } /// Suspends this context so another context can be the active context. @@ -216,18 +216,15 @@ impl Context { io.clipboard_user_data = clipboard_ctx.get() as *mut _; self.clipboard_ctx = clipboard_ctx; } - fn create_internal(shared_font_atlas: Option>) -> Self { + fn create_internal(mut shared_font_atlas: Option) -> Self { let _guard = CTX_MUTEX.lock(); assert!( no_current_context(), "A new active context cannot be created, because another one already exists" ); - let shared_font_atlas_ptr = match &shared_font_atlas { - Some(shared_font_atlas) => { - let borrowed_font_atlas = shared_font_atlas.get(); - unsafe { &*borrowed_font_atlas }.0 - } + let shared_font_atlas_ptr = match &mut shared_font_atlas { + Some(shared_font_atlas) => shared_font_atlas.as_ptr_mut(), None => ptr::null_mut(), }; // Dear ImGui implicitly sets the current context during igCreateContext if the current @@ -297,8 +294,9 @@ impl SuspendedContext { pub fn create() -> Self { Self::create_internal(None) } + /// Creates a new suspended imgui-rs context with a shared font atlas. - pub fn create_with_shared_font_atlas(shared_font_atlas: UnsafeCell) -> Self { + pub fn create_with_shared_font_atlas(shared_font_atlas: SharedFontAtlas) -> Self { Self::create_internal(Some(shared_font_atlas)) } /// Attempts to activate this suspended context. @@ -319,7 +317,7 @@ impl SuspendedContext { Err(self) } } - fn create_internal(shared_font_atlas: Option>) -> Self { + fn create_internal(shared_font_atlas: Option) -> Self { let _guard = CTX_MUTEX.lock(); let raw = unsafe { sys::igCreateContext(ptr::null_mut()) }; let ctx = Context { @@ -415,8 +413,8 @@ fn test_suspend_failure() { fn test_shared_font_atlas() { let _guard = crate::test::TEST_MUTEX.lock(); let atlas = SharedFontAtlas::create(); - let suspended1 = SuspendedContext::create_with_shared_font_atlas(atlas.clone().into()); - let mut ctx2 = Context::create_with_shared_font_atlas(atlas.into()); + let suspended1 = SuspendedContext::create_with_shared_font_atlas(atlas.clone()); + let mut ctx2 = Context::create_with_shared_font_atlas(atlas); { let _borrow = ctx2.fonts(); } diff --git a/imgui/src/fonts/atlas.rs b/imgui/src/fonts/atlas.rs index e1a815248..a3f438b01 100644 --- a/imgui/src/fonts/atlas.rs +++ b/imgui/src/fonts/atlas.rs @@ -1,9 +1,8 @@ use bitflags::bitflags; -use std::cell; use std::f32; -use std::ops::{Deref, DerefMut}; use std::os::raw::{c_int, c_uchar, c_void}; use std::ptr; +use std::rc::Rc; use std::slice; use crate::fonts::font::Font; @@ -434,75 +433,94 @@ pub struct FontAtlasTexture<'a> { /// A font atlas that can be shared between contexts #[derive(Debug, Clone)] -pub struct SharedFontAtlas(pub(crate) *mut sys::ImFontAtlas); +pub struct SharedFontAtlas(pub(crate) Rc<*mut sys::ImFontAtlas>); -impl SharedFontAtlas { - #[doc(alias = "ImFontAtlas", alias = "ImFontAtlas::ImFontAtlas")] - pub fn create() -> SharedFontAtlas { - SharedFontAtlas(unsafe { sys::ImFontAtlas_ImFontAtlas() }) +impl std::ops::Deref for SharedFontAtlas { + type Target = Rc<*mut sys::ImFontAtlas>; + + fn deref(&self) -> &Self::Target { + &self.0 } } -impl Drop for SharedFontAtlas { - #[doc(alias = "ImFontAtlas::Destory")] - fn drop(&mut self) { - unsafe { sys::ImFontAtlas_destroy(self.0) }; +impl std::ops::DerefMut for SharedFontAtlas { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 } } -impl Deref for SharedFontAtlas { - type Target = FontAtlas; - fn deref(&self) -> &FontAtlas { - unsafe { &*(self.0 as *const FontAtlas) } +impl SharedFontAtlas { + #[doc(alias = "ImFontAtlas", alias = "ImFontAtlas::ImFontAtlas")] + pub fn create() -> SharedFontAtlas { + SharedFontAtlas(unsafe { Rc::new(sys::ImFontAtlas_ImFontAtlas()) }) } -} -impl DerefMut for SharedFontAtlas { - fn deref_mut(&mut self) -> &mut FontAtlas { - unsafe { &mut *(self.0 as *mut FontAtlas) } + /// Gets a raw pointer to the underlying `ImFontAtlas`. + pub fn as_ptr(&self) -> *const sys::ImFontAtlas { + *self.0 as *const _ } -} -/// An immutably borrowed reference to a (possibly shared) font atlas -pub enum FontAtlasRef<'a> { - Owned(&'a FontAtlas), - Shared(&'a cell::RefMut<'a, SharedFontAtlas>), + /// Gets a raw pointer to the underlying `ImFontAtlas`. + pub fn as_ptr_mut(&mut self) -> *mut sys::ImFontAtlas { + *self.0 + } } -impl<'a> Deref for FontAtlasRef<'a> { - type Target = FontAtlas; - fn deref(&self) -> &FontAtlas { - use self::FontAtlasRef::*; - match self { - Owned(atlas) => atlas, - Shared(cell) => cell, +impl Drop for SharedFontAtlas { + #[doc(alias = "ImFontAtlas::Destory")] + fn drop(&mut self) { + // if we're about to drop the last one... + if Rc::strong_count(&self.0) == 1 { + unsafe { sys::ImFontAtlas_destroy(*self.0) }; } } } -/// A mutably borrowed reference to a (possibly shared) font atlas -pub enum FontAtlasRefMut<'a> { - Owned(&'a mut FontAtlas), - Shared(cell::RefMut<'a, SharedFontAtlas>), -} +// /// An immutably borrowed reference to a (possibly shared) font atlas +// pub enum FontAtlasRef<'a> { +// Owned(&'a FontAtlas), +// Shared(&'a cell::RefMut<'a, SharedFontAtlas>), +// } -impl<'a> Deref for FontAtlasRefMut<'a> { - type Target = FontAtlas; - fn deref(&self) -> &FontAtlas { - use self::FontAtlasRefMut::*; - match self { - Owned(atlas) => atlas, - Shared(cell) => cell, - } - } -} +// impl<'a> Deref for FontAtlasRef<'a> { +// type Target = FontAtlas; +// fn deref(&self) -> &FontAtlas { +// use self::FontAtlasRef::*; +// match self { +// Owned(atlas) => atlas, +// Shared(cell) => { +// let font_atlas: &SharedFontAtlas = &cell; +// let font_atlas: &FontAtlas = &font_atlas; -impl<'a> DerefMut for FontAtlasRefMut<'a> { - fn deref_mut(&mut self) -> &mut FontAtlas { - use self::FontAtlasRefMut::*; - match self { - Owned(atlas) => atlas, - Shared(cell) => cell, - } - } -} +// todo!() +// } +// } +// } +// } + +// /// A mutably borrowed reference to a (possibly shared) font atlas +// pub enum FontAtlasRefMut<'a> { +// Owned(&'a mut FontAtlas), +// Shared(cell::RefMut<'a, SharedFontAtlas>), +// } + +// impl<'a> Deref for FontAtlasRefMut<'a> { +// type Target = FontAtlas; +// fn deref(&self) -> &FontAtlas { +// use self::FontAtlasRefMut::*; +// match self { +// Owned(atlas) => atlas, +// Shared(cell) => cell, +// } +// } +// } + +// impl<'a> DerefMut for FontAtlasRefMut<'a> { +// fn deref_mut(&mut self) -> &mut FontAtlas { +// use self::FontAtlasRefMut::*; +// match self { +// Owned(atlas) => atlas, +// Shared(cell) => cell, +// } +// } +// } From 5a9827094492a80202650cf4b1f5f02b5cf10cf5 Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Fri, 1 Oct 2021 12:35:22 -0400 Subject: [PATCH 045/200] added clone so i guess you can interact with it here... --- imgui/src/context.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/imgui/src/context.rs b/imgui/src/context.rs index 95c971e3e..19afb28d3 100644 --- a/imgui/src/context.rs +++ b/imgui/src/context.rs @@ -503,6 +503,11 @@ impl Context { unsafe { &mut *(self.io_mut().fonts as *mut FontAtlas) } } + /// Attempts to clone the interior shared font atlas **if it exists**. + pub fn clone_shared_font_atlas(&mut self) -> Option { + self.shared_font_atlas.clone() + } + /// Starts a new frame. Use [`new_frame`] instead. /// /// [`new_frame`]: Self::new_frame From f0782f4ea2d4d593d9ebb65fcf1bc83d7cedcfed Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Fri, 1 Oct 2021 13:45:49 -0400 Subject: [PATCH 046/200] restated the changelog shared atlas issue --- CHANGELOG.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown index 9ac6d8ec8..6523c748a 100644 --- a/CHANGELOG.markdown +++ b/CHANGELOG.markdown @@ -8,7 +8,7 @@ - BREAKING: Ui now does not have a lifetime associated with it, but is only ever given to users in the form of `&mut Ui`. Additionally, the `render` function has been moved to the `Context` instead of `Ui`. -- BREAKING: `SharedFontAtlas` now uses `UnsafeCell` rather than `Rc` as its wrapper -- this simplifies the codebase and more accurately reflects how we expect `SharedFontAtlas` to be used (ie, you're probably going to set it up once, and then give it around, rather than constantly edit it). `SharedFontAtlas` users, if this change is very bad for you, please let us know with issues! +- BREAKING: `SharedFontAtlas` now hides an `Rc` within its wrapper -- this simplifies the codebase and more accurately reflects how we expect `SharedFontAtlas` to be used (ie, you're probably going to set it up once, and then give it around, rather than constantly edit it). `SharedFontAtlas` users, if this change is very bad for you, please let us know with issues! ## [0.8.0] - 2021-09-17 From 203780c884632ac72eda13a2ff3aa9021198507e Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Fri, 1 Oct 2021 14:47:22 -0400 Subject: [PATCH 047/200] added id back to child window --- imgui/src/lib.rs | 46 +++++++++++++++++++++----------- imgui/src/window/child_window.rs | 28 ++++++++++++------- 2 files changed, 49 insertions(+), 25 deletions(-) diff --git a/imgui/src/lib.rs b/imgui/src/lib.rs index dc126d506..34a5ede22 100644 --- a/imgui/src/lib.rs +++ b/imgui/src/lib.rs @@ -340,7 +340,7 @@ impl Ui { /// This, like many objects in the library, uses the builder /// pattern to set optional arguments (like window size, flags, /// etc). Once all desired options are set, you must call either - /// [`Window::build`] or [`Window::begin`] must be called to + /// [`Window::build`] or [`Window::begin`] to /// actually create the window. /// /// # Examples @@ -355,28 +355,44 @@ impl Ui { /// ui.text("An example"); /// }); /// ``` - pub fn window>(&self, name: Label) -> Window<'_, '_, Label> { - Window::new(self, name) - } - + /// /// Same as [`Ui::window`] but using the "token based" `.begin()` approach. /// - /// ``` - /// fn example(ui: &imgui::Ui) { - /// let wt = ui.window("Example Window") - /// .size([100.0, 50.0], imgui::Condition::FirstUseEver) - /// .begin(); - /// if wt.is_some() { - /// ui.text("Window is visible"); - /// } + /// ```no_run + /// # let mut ctx = imgui::Context::create(); + /// # let ui = ctx.frame(); + /// if let Some(wt) = ui + /// .window("Example Window") + /// .size([100.0, 50.0], imgui::Condition::FirstUseEver) + /// .begin() + /// { + /// ui.text("Window is visible"); /// // Window ends where where wt is dropped, /// // or you could call - /// wt.unwrap().end() + /// // if you want to let it drop on its own, name it `_wt`. + /// // never name it `_`, as this will drop it *immediately*. + /// wt.unwrap().end(); /// } /// ``` - pub fn child_window>(&self, name: Label) -> ChildWindow<'_, Label> { + pub fn window>(&self, name: Label) -> Window<'_, '_, Label> { + Window::new(self, name) + } + + /// Begins constructing a child window with the given name. + /// + /// Use child windows to begin into a self-contained independent scrolling/clipping + /// regions within a host window. Child windows can embed their own child. + pub fn child_window>(&self, name: Label) -> ChildWindow<'_> { ChildWindow::new(self, name) } + + /// Begins constructing a child window with the given name. + /// + /// Use child windows to begin into a self-contained independent scrolling/clipping + /// regions within a host window. Child windows can embed their own child. + pub fn child_window_id(&self, id: Id<'_>) -> ChildWindow<'_> { + ChildWindow::new_id(self, id) + } } // Widgets: Input diff --git a/imgui/src/window/child_window.rs b/imgui/src/window/child_window.rs index 5694305a3..2f5b3786e 100644 --- a/imgui/src/window/child_window.rs +++ b/imgui/src/window/child_window.rs @@ -1,16 +1,16 @@ use std::f32; use crate::math::MintVec2; -use crate::sys; use crate::window::WindowFlags; use crate::Ui; +use crate::{sys, Id}; /// Builder for a child window #[derive(Copy, Clone, Debug)] #[must_use] -pub struct ChildWindow<'ui, Label> { +pub struct ChildWindow<'ui> { ui: &'ui Ui, - name: Label, + id: u32, flags: WindowFlags, size: [f32; 2], content_size: [f32; 2], @@ -19,13 +19,20 @@ pub struct ChildWindow<'ui, Label> { border: bool, } -impl<'ui, Label: AsRef> ChildWindow<'ui, Label> { - /// Creates a new child window builder with the given ID +impl<'ui> ChildWindow<'ui> { + /// Creates a new child window builder with the str. #[doc(alias = "BeginChildID")] - pub fn new(ui: &'ui Ui, name: Label) -> ChildWindow<'ui, Label> { - ChildWindow { + pub fn new(ui: &'ui Ui, name: impl AsRef) -> Self { + let id = Id::Str(name.as_ref()); + Self::new_id(ui, id) + } + + /// Creates a new child window builder with the given imgui id. + #[doc(alias = "BeginChildID")] + pub fn new_id(ui: &'ui Ui, id: Id<'_>) -> Self { + Self { ui, - name, + id: id.as_imgui_id(), flags: WindowFlags::empty(), size: [0.0, 0.0], content_size: [0.0, 0.0], @@ -34,6 +41,7 @@ impl<'ui, Label: AsRef> ChildWindow<'ui, Label> { border: false, } } + /// Replace current window flags with the given value #[inline] pub fn flags(mut self, flags: WindowFlags) -> Self { @@ -258,8 +266,8 @@ impl<'ui, Label: AsRef> ChildWindow<'ui, Label> { unsafe { sys::igSetNextWindowBgAlpha(self.bg_alpha) }; } let should_render = unsafe { - sys::igBeginChild_Str( - self.ui.scratch_txt(self.name), + sys::igBeginChild_ID( + self.id, self.size.into(), self.border, self.flags.bits() as i32, From 074c40e9279155d67af77d665c8ee33e7afcefe5 Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Fri, 1 Oct 2021 16:21:20 -0400 Subject: [PATCH 048/200] transmogrified the Id struct --- CHANGELOG.markdown | 2 + imgui-examples/examples/id_wrangling.rs | 2 +- imgui/src/lib.rs | 157 ++++++++++++++++-------- imgui/src/stacks.rs | 64 +++++++--- imgui/src/tables.rs | 24 ++-- imgui/src/window/child_window.rs | 6 +- 6 files changed, 173 insertions(+), 82 deletions(-) diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown index 6523c748a..93c840724 100644 --- a/CHANGELOG.markdown +++ b/CHANGELOG.markdown @@ -10,6 +10,8 @@ - BREAKING: `SharedFontAtlas` now hides an `Rc` within its wrapper -- this simplifies the codebase and more accurately reflects how we expect `SharedFontAtlas` to be used (ie, you're probably going to set it up once, and then give it around, rather than constantly edit it). `SharedFontAtlas` users, if this change is very bad for you, please let us know with issues! +- BREAKING: `Id` is now a simpler facade, but requires the `Ui` struct to generate. `push_id`, equally, has been split into multiple functions for simplicity. + ## [0.8.0] - 2021-09-17 Welcome to the `0.8.0` update. This is one of the largest updates imgui-rs has ever seen; it will generate errors in a `0.7` project, but hopefully it should be both quick to fix, and enjoyable to update. See our [release page](https://github.com/imgui-rs/imgui-rs/releases/tag/v0.8.0) for more information and a list of contributors to this cycle. Thank you to everyone who uses `imgui-rs`, files issues, and spend their time and effort to PR new changes into the codebase. Because of all that effort, this is by far the best `imgui-rs` has looked! diff --git a/imgui-examples/examples/id_wrangling.rs b/imgui-examples/examples/id_wrangling.rs index fbd0deda6..ee8eb7d04 100644 --- a/imgui-examples/examples/id_wrangling.rs +++ b/imgui-examples/examples/id_wrangling.rs @@ -33,7 +33,7 @@ fn main() { let _label_id = ui.push_id(it); ui.text(it); for num in 0..5 { - let _num_id = ui.push_id(num); + let _num_id = ui.push_id_usize(num); ui.same_line(); if ui.button("Example") { println!("{}: {}", it, num); diff --git a/imgui/src/lib.rs b/imgui/src/lib.rs index 34a5ede22..980bf99cf 100644 --- a/imgui/src/lib.rs +++ b/imgui/src/lib.rs @@ -5,7 +5,7 @@ pub extern crate imgui_sys as sys; use std::cell; -use std::os::raw::{c_char, c_void}; +use std::os::raw::c_char; pub use self::clipboard::*; pub use self::color::ImColor32; @@ -269,70 +269,125 @@ impl Ui { } } -/// Unique ID used by widgets -#[derive(Copy, Clone, Debug, Eq, PartialEq)] -pub enum Id<'a> { - Int(i32), - Str(&'a str), - Ptr(*const c_void), -} +/// Unique ID used by widgets. +/// +/// This represents a hash of the current stack of Ids used in ImGui + the +/// input provided. It is only used in a few places directly in the +/// codebase, but you can think of it as effectively allowing you to +/// run your Id hashing yourself. +/// +/// Previously, this was erroneously constructed with `From` implementations. +/// Now, however, it is made from the `Ui` object directly, with a few +/// deprecated helper methods here. +#[derive(Copy, Clone, Debug, Eq, PartialEq, Default)] +pub struct Id(pub(crate) u32); -impl From for Id<'static> { - #[inline] - fn from(i: i32) -> Self { - Id::Int(i) +impl Id { + #[allow(non_snake_case)] + pub fn Int(input: i32, ui: &Ui) -> Self { + ui.new_id_int(input) } -} -impl<'a, T: ?Sized + AsRef> From<&'a T> for Id<'a> { - #[inline] - fn from(s: &'a T) -> Self { - Id::Str(s.as_ref()) + #[allow(non_snake_case)] + pub fn Str(input: impl AsRef, ui: &Ui) -> Self { + ui.new_id_str(input) } -} -impl From<*const T> for Id<'static> { - #[inline] - fn from(p: *const T) -> Self { - Id::Ptr(p as *const c_void) + #[allow(non_snake_case)] + pub fn Ptr(input: &T, ui: &Ui) -> Self { + ui.new_id_ptr(input) } } -impl From<*mut T> for Id<'static> { - #[inline] - fn from(p: *mut T) -> Self { - Id::Ptr(p as *const T as *const c_void) +impl Ui { + pub fn new_id(&self, input: usize) -> Id { + let p = input as *const std::os::raw::c_void; + let value = unsafe { sys::igGetID_Ptr(p) }; + + Id(value) } -} -impl<'a> Id<'a> { - // this is used in the tables-api and possibly elsewhere, - // but not with just default features... - #[allow(dead_code)] - fn as_imgui_id(&self) -> sys::ImGuiID { - unsafe { - match self { - Id::Ptr(p) => sys::igGetID_Ptr(*p), - Id::Str(s) => { - let s1 = s.as_ptr() as *const std::os::raw::c_char; - let s2 = s1.add(s.len()); - sys::igGetID_StrStr(s1, s2) - } - Id::Int(i) => { - let p = *i as *const std::os::raw::c_void; - sys::igGetID_Ptr(p) - } // Id::ImGuiID(n) => *n, - } - } + pub fn new_id_int(&self, input: i32) -> Id { + let p = input as *const std::os::raw::c_void; + let value = unsafe { sys::igGetID_Ptr(p) }; + Id(value) } -} -impl<'a> Default for Id<'a> { - fn default() -> Self { - Self::Int(0) + pub fn new_id_ptr(&self, input: &T) -> Id { + let p = input as *const T as *const sys::cty::c_void; + let value = unsafe { sys::igGetID_Ptr(p) }; + Id(value) + } + + pub fn new_id_str(&self, s: impl AsRef) -> Id { + let s = s.as_ref(); + + let s1 = s.as_ptr() as *const std::os::raw::c_char; + let value = unsafe { + let s2 = s1.add(s.len()); + sys::igGetID_StrStr(s1, s2) + }; + Id(value) } } +// /// Unique ID used by widgets +// pub enum Id<'a> { +// Int(i32), +// Str(&'a str), +// Ptr(*const c_void), +// } + +// impl From for Id<'static> { +// #[inline] +// fn from(i: i32) -> Self { +// Id::Int(i) +// } +// } + +// impl<'a, T: ?Sized + AsRef> From<&'a T> for Id<'a> { +// #[inline] +// fn from(s: &'a T) -> Self { +// Id::Str(s.as_ref()) +// } +// } + +// impl From<*const T> for Id<'static> { +// #[inline] +// fn from(p: *const T) -> Self { +// Id::Ptr(p as *const c_void) +// } +// } + +// impl From<*mut T> for Id<'static> { +// #[inline] +// fn from(p: *mut T) -> Self { +// Id::Ptr(p as *const T as *const c_void) +// } +// } + +// impl<'a> Id<'a> { +// // this is used in the tables-api and possibly elsewhere, +// // but not with just default features... +// #[allow(dead_code)] +// fn as_imgui_id(&self) -> sys::ImGuiID { +// unsafe { +// match self { +// Id::Ptr(p) => sys::igGetID_Ptr(*p), +// Id::Str(s) => { +// let s1 = s.as_ptr() as *const std::os::raw::c_char; +// let s2 = s1.add(s.len()); +// sys::igGetID_StrStr(s1, s2) +// } +// Id::Int(i) => { +// let p = *i as *const std::os::raw::c_void; +// sys::igGetID_Ptr(p) +// } // Id::ImGuiID(n) => *n, +// } +// } +// } +// } + impl Ui { /// # Windows /// Start constructing a window. @@ -390,7 +445,7 @@ impl Ui { /// /// Use child windows to begin into a self-contained independent scrolling/clipping /// regions within a host window. Child windows can embed their own child. - pub fn child_window_id(&self, id: Id<'_>) -> ChildWindow<'_> { + pub fn child_window_id(&self, id: Id) -> ChildWindow<'_> { ChildWindow::new_id(self, id) } } diff --git a/imgui/src/stacks.rs b/imgui/src/stacks.rs index 0cc4b52b4..69c9eb718 100644 --- a/imgui/src/stacks.rs +++ b/imgui/src/stacks.rs @@ -3,9 +3,9 @@ use crate::internal::RawCast; use crate::math::MintVec4; use crate::style::{StyleColor, StyleVar}; use crate::sys; -use crate::{Id, Ui}; +use crate::Ui; use std::mem; -use std::os::raw::{c_char, c_void}; +use std::os::raw::c_char; /// # Parameter stacks (shared) impl Ui { @@ -386,7 +386,6 @@ impl IdStackToken<'_> { /// # ID stack impl<'ui> Ui { /// Pushes an identifier to the ID stack. - /// This can be called with an integer, a string, or a pointer. /// /// Returns an `IdStackToken` that can be popped by calling `.end()` /// or by dropping manually. @@ -462,20 +461,55 @@ impl<'ui> Ui { /// }); /// ``` #[doc(alias = "PushId")] - pub fn push_id<'a, I: Into>>(&'ui self, id: I) -> IdStackToken<'ui> { - let id = id.into(); - + pub fn push_id(&self, s: impl AsRef) -> IdStackToken<'_> { unsafe { - match id { - Id::Int(i) => sys::igPushID_Int(i), - Id::Str(s) => { - let start = s.as_ptr() as *const c_char; - let end = start.add(s.len()); - sys::igPushID_StrStr(start, end) - } - Id::Ptr(p) => sys::igPushID_Ptr(p as *const c_void), - } + let s = s.as_ref(); + let start = s.as_ptr() as *const c_char; + let end = start.add(s.len()); + sys::igPushID_StrStr(start, end) } IdStackToken::new(self) } + + /// Pushes a `usize` to the ID stack. + /// + /// Returns an `IdStackToken` that can be popped by calling `.end()` + /// or by dropping manually. + /// + /// See [push_id] for more information. + /// + /// [push_id]: Self::push_id + #[doc(alias = "PushId")] + pub fn push_id_usize(&self, id: usize) -> IdStackToken<'_> { + unsafe { sys::igPushID_Ptr(id as *const _) } + IdStackToken::new(self) + } + + /// Pushes an `i32` to the ID stack. + /// + /// Returns an `IdStackToken` that can be popped by calling `.end()` + /// or by dropping manually. + /// + /// See [push_id] for more information. + /// + /// [push_id]: Self::push_id + #[doc(alias = "PushId")] + pub fn push_id_int(&self, id: i32) -> IdStackToken<'_> { + unsafe { sys::igPushID_Int(id) } + IdStackToken::new(self) + } + + /// Pushes a `ptr` to the ID stack. + /// + /// Returns an `IdStackToken` that can be popped by calling `.end()` + /// or by dropping manually. + /// + /// See [push_id] for more information. + /// + /// [push_id]: Self::push_id + #[doc(alias = "PushId")] + pub fn push_id_ptr(&self, value: &T) -> IdStackToken<'_> { + unsafe { sys::igPushID_Ptr(value as *const T as *const _) } + IdStackToken::new(self) + } } diff --git a/imgui/src/tables.rs b/imgui/src/tables.rs index a5a950330..0d5209469 100644 --- a/imgui/src/tables.rs +++ b/imgui/src/tables.rs @@ -320,10 +320,10 @@ impl Ui { /// Takes an array of table header information, the length of which determines /// how many columns will be created. #[must_use = "if return is dropped immediately, table is ended immediately."] - pub fn begin_table_header<'a, Name: AsRef, const N: usize>( + pub fn begin_table_header, const N: usize>( &self, str_id: impl AsRef, - column_data: [TableColumnSetup<'a, Name>; N], + column_data: [TableColumnSetup; N], ) -> Option> { self.begin_table_header_with_flags(str_id, column_data, TableFlags::empty()) } @@ -333,10 +333,10 @@ impl Ui { /// Takes an array of table header information, the length of which determines /// how many columns will be created. #[must_use = "if return is dropped immediately, table is ended immediately."] - pub fn begin_table_header_with_flags<'a, Name: AsRef, const N: usize>( + pub fn begin_table_header_with_flags, const N: usize>( &self, str_id: impl AsRef, - column_data: [TableColumnSetup<'a, Name>; N], + column_data: [TableColumnSetup; N], flags: TableFlags, ) -> Option> { self.begin_table_header_with_sizing(str_id, column_data, flags, [0.0, 0.0], 0.0) @@ -347,10 +347,10 @@ impl Ui { /// Takes an array of table header information, the length of which determines /// how many columns will be created. #[must_use = "if return is dropped immediately, table is ended immediately."] - pub fn begin_table_header_with_sizing<'a, Name: AsRef, const N: usize>( + pub fn begin_table_header_with_sizing, const N: usize>( &self, str_id: impl AsRef, - column_data: [TableColumnSetup<'a, Name>; N], + column_data: [TableColumnSetup; N], flags: TableFlags, outer_size: [f32; 2], inner_width: f32, @@ -533,13 +533,13 @@ impl Ui { /// row and automatically submit a table header for each column. /// Headers are required to perform: reordering, sorting, and opening the context menu (though, /// the context menu can also be made available in columns body using [TableFlags::CONTEXT_MENU_IN_BODY]. - pub fn table_setup_column_with>(&self, data: TableColumnSetup<'_, N>) { + pub fn table_setup_column_with>(&self, data: TableColumnSetup) { unsafe { sys::igTableSetupColumn( self.scratch_txt(data.name), data.flags.bits() as i32, data.init_width_or_weight, - data.user_id.as_imgui_id(), + data.user_id.0, ) } } @@ -733,7 +733,7 @@ impl Ui { /// A struct containing all the data needed to setup a table column header /// via [begin_table_header](Ui::begin_table_header) or [table_setup_column](Ui::table_setup_column). #[derive(Debug, Default)] -pub struct TableColumnSetup<'a, Name> { +pub struct TableColumnSetup { /// The name of column to be displayed to users. pub name: Name, /// The flags this column will have. @@ -741,16 +741,16 @@ pub struct TableColumnSetup<'a, Name> { /// The width or weight of the given column. pub init_width_or_weight: f32, /// A user_id, primarily used in sorting operations. - pub user_id: Id<'a>, + pub user_id: Id, } -impl<'a, Name: AsRef> TableColumnSetup<'a, Name> { +impl<'a, Name: AsRef> TableColumnSetup { pub fn new(name: Name) -> Self { Self { name, flags: TableColumnFlags::empty(), init_width_or_weight: 0.0, - user_id: Id::Int(0), + user_id: Id::default(), } } } diff --git a/imgui/src/window/child_window.rs b/imgui/src/window/child_window.rs index 2f5b3786e..39d444ddb 100644 --- a/imgui/src/window/child_window.rs +++ b/imgui/src/window/child_window.rs @@ -23,16 +23,16 @@ impl<'ui> ChildWindow<'ui> { /// Creates a new child window builder with the str. #[doc(alias = "BeginChildID")] pub fn new(ui: &'ui Ui, name: impl AsRef) -> Self { - let id = Id::Str(name.as_ref()); + let id = ui.new_id_str(name); Self::new_id(ui, id) } /// Creates a new child window builder with the given imgui id. #[doc(alias = "BeginChildID")] - pub fn new_id(ui: &'ui Ui, id: Id<'_>) -> Self { + pub fn new_id(ui: &'ui Ui, id: Id) -> Self { Self { ui, - id: id.as_imgui_id(), + id: id.0, flags: WindowFlags::empty(), size: [0.0, 0.0], content_size: [0.0, 0.0], From cfb9a671eccb5da4878370d686dfb72c67a948d3 Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Fri, 1 Oct 2021 16:31:01 -0400 Subject: [PATCH 049/200] fixed up tests --- imgui/src/lib.rs | 4 ++-- imgui/src/stacks.rs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/imgui/src/lib.rs b/imgui/src/lib.rs index 980bf99cf..4de20f7ed 100644 --- a/imgui/src/lib.rs +++ b/imgui/src/lib.rs @@ -426,8 +426,8 @@ impl Ui { /// // or you could call /// // if you want to let it drop on its own, name it `_wt`. /// // never name it `_`, as this will drop it *immediately*. - /// wt.unwrap().end(); - /// } + /// wt.end(); + /// }; /// ``` pub fn window>(&self, name: Label) -> Window<'_, '_, Label> { Window::new(self, name) diff --git a/imgui/src/stacks.rs b/imgui/src/stacks.rs index 69c9eb718..d6ef1b0a2 100644 --- a/imgui/src/stacks.rs +++ b/imgui/src/stacks.rs @@ -418,7 +418,7 @@ impl<'ui> Ui { /// for num in 0..10 { /// // And now we add the loop number to the stack too, /// // to make our buttons unique within this window. - /// let _id = ui.push_id(num); + /// let _id = ui.push_id_usize(num); /// if ui.button("Click!") { /// println!("Button {} clicked", num); /// } From 6eb56529dac0ed49f43394b2b61de9b2c32a163c Mon Sep 17 00:00:00 2001 From: dbr Date: Sun, 3 Oct 2021 12:20:47 +1000 Subject: [PATCH 050/200] Use ControlFlow:Poll in event loop ControlFlow::Wait is more efficient but doesn't appear to currently work well on all platforms. Removed entirely from the earlier examples to keep them as simple as possible, but noted `ControlFlow::Wait` in the last example Closes #542 --- imgui-glow-renderer/examples/01_basic.rs | 1 - imgui-glow-renderer/examples/02_triangle.rs | 1 - imgui-glow-renderer/examples/03_triangle_gles.rs | 1 - imgui-glow-renderer/examples/04_custom_textures.rs | 6 +++++- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/imgui-glow-renderer/examples/01_basic.rs b/imgui-glow-renderer/examples/01_basic.rs index ffdd4c6b3..1a34b0149 100644 --- a/imgui-glow-renderer/examples/01_basic.rs +++ b/imgui-glow-renderer/examples/01_basic.rs @@ -29,7 +29,6 @@ fn main() { // Standard winit event loop event_loop.run(move |event, _, control_flow| { - *control_flow = glutin::event_loop::ControlFlow::Wait; match event { glutin::event::Event::NewEvents(_) => { let now = Instant::now(); diff --git a/imgui-glow-renderer/examples/02_triangle.rs b/imgui-glow-renderer/examples/02_triangle.rs index f1c1e9887..512b84f0f 100644 --- a/imgui-glow-renderer/examples/02_triangle.rs +++ b/imgui-glow-renderer/examples/02_triangle.rs @@ -17,7 +17,6 @@ fn main() { let mut last_frame = Instant::now(); event_loop.run(move |event, _, control_flow| { - *control_flow = glutin::event_loop::ControlFlow::Wait; match event { glutin::event::Event::NewEvents(_) => { let now = Instant::now(); diff --git a/imgui-glow-renderer/examples/03_triangle_gles.rs b/imgui-glow-renderer/examples/03_triangle_gles.rs index b20d25800..a63f1ee86 100644 --- a/imgui-glow-renderer/examples/03_triangle_gles.rs +++ b/imgui-glow-renderer/examples/03_triangle_gles.rs @@ -32,7 +32,6 @@ fn main() { let mut last_frame = Instant::now(); event_loop.run(move |event, _, control_flow| { - *control_flow = glutin::event_loop::ControlFlow::Wait; match event { glutin::event::Event::NewEvents(_) => { let now = Instant::now(); diff --git a/imgui-glow-renderer/examples/04_custom_textures.rs b/imgui-glow-renderer/examples/04_custom_textures.rs index 5020386c5..69866a0b4 100644 --- a/imgui-glow-renderer/examples/04_custom_textures.rs +++ b/imgui-glow-renderer/examples/04_custom_textures.rs @@ -36,7 +36,11 @@ fn main() { let mut last_frame = Instant::now(); event_loop.run(move |event, _, control_flow| { - *control_flow = glutin::event_loop::ControlFlow::Wait; + // Note we can potentially make the loop more efficient by + // changing the `Poll` (default) value to `ControlFlow::Poll` + // but be careful to test on all target platforms! + *control_flow = glutin::event_loop::ControlFlow::Poll; + match event { glutin::event::Event::NewEvents(_) => { let now = Instant::now(); From f00b5707c0e3a4916d15228f2e0b19301424ffc8 Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Sun, 3 Oct 2021 17:57:24 -0400 Subject: [PATCH 051/200] added mouse cursor state to the context --- imgui/src/context.rs | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/imgui/src/context.rs b/imgui/src/context.rs index 19afb28d3..c1c1176ce 100644 --- a/imgui/src/context.rs +++ b/imgui/src/context.rs @@ -9,8 +9,8 @@ use crate::clipboard::{ClipboardBackend, ClipboardContext}; use crate::fonts::atlas::{FontAtlas, FontId, SharedFontAtlas}; use crate::io::Io; use crate::style::Style; -use crate::Ui; use crate::{sys, DrawData}; +use crate::{MouseCursor, Ui}; /// An imgui-rs context. /// @@ -543,4 +543,28 @@ impl Context { &*(sys::igGetDrawData() as *mut DrawData) } } + + /// Returns the currently desired mouse cursor type. + /// + /// This was set *last frame* by the [Ui] object, and will be reset when + /// [new_frame] is called. + /// + /// Returns `None` if no cursor should be displayed + /// + /// [new_frame]: Self::new_frame + #[doc(alias = "GetMouseCursor")] + pub fn mouse_cursor(&self) -> Option { + match unsafe { sys::igGetMouseCursor() } { + sys::ImGuiMouseCursor_Arrow => Some(MouseCursor::Arrow), + sys::ImGuiMouseCursor_TextInput => Some(MouseCursor::TextInput), + sys::ImGuiMouseCursor_ResizeAll => Some(MouseCursor::ResizeAll), + sys::ImGuiMouseCursor_ResizeNS => Some(MouseCursor::ResizeNS), + sys::ImGuiMouseCursor_ResizeEW => Some(MouseCursor::ResizeEW), + sys::ImGuiMouseCursor_ResizeNESW => Some(MouseCursor::ResizeNESW), + sys::ImGuiMouseCursor_ResizeNWSE => Some(MouseCursor::ResizeNWSE), + sys::ImGuiMouseCursor_Hand => Some(MouseCursor::Hand), + sys::ImGuiMouseCursor_NotAllowed => Some(MouseCursor::NotAllowed), + _ => None, + } + } } From e650a02ced303421889b47820813f02d471ef9dd Mon Sep 17 00:00:00 2001 From: Anish Jewalikar Date: Wed, 29 Sep 2021 10:26:27 +0530 Subject: [PATCH 052/200] Implement the SDL 2 support crate --- Cargo.toml | 1 + imgui-sdl2-support/Cargo.toml | 19 ++ imgui-sdl2-support/LICENSE-APACHE | 202 ++++++++++++++++++ imgui-sdl2-support/LICENSE-MIT | 19 ++ imgui-sdl2-support/examples/basic.rs | 86 ++++++++ imgui-sdl2-support/src/lib.rs | 296 +++++++++++++++++++++++++++ 6 files changed, 623 insertions(+) create mode 100644 imgui-sdl2-support/Cargo.toml create mode 100644 imgui-sdl2-support/LICENSE-APACHE create mode 100644 imgui-sdl2-support/LICENSE-MIT create mode 100644 imgui-sdl2-support/examples/basic.rs create mode 100644 imgui-sdl2-support/src/lib.rs diff --git a/Cargo.toml b/Cargo.toml index bd21db58c..2ce437c6a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,6 +4,7 @@ members = [ "imgui-sys", "imgui-glium-renderer", "imgui-glow-renderer", + "imgui-sdl2-support", "imgui-winit-support", "imgui-examples", "xtask", diff --git a/imgui-sdl2-support/Cargo.toml b/imgui-sdl2-support/Cargo.toml new file mode 100644 index 000000000..dfbc76a81 --- /dev/null +++ b/imgui-sdl2-support/Cargo.toml @@ -0,0 +1,19 @@ +[package] +name = "imgui-sdl2-support" +version = "0.8.1-alpha.0" +edition = "2018" +authors = ["The imgui-rs Developers"] +description = "sdl2 support code for the imgui crate" +homepage = "https://github.com/imgui-rs/imgui-rs" +repository = "https://github.com/imgui-rs/imgui-rs" +license = "MIT/Apache-2.0" +categories = ["gui"] + +[dependencies] +imgui = { version = "0.8.1-alpha.0", path = "../imgui" } +sdl2 = "0.34.5" + +[dev-dependencies] +glow = "0.10.0" +imgui-glow-renderer = { version = "0.8.1-alpha.0", path = "../imgui-glow-renderer" } +sdl2 = { version = "0.34.5", features = ["bundled", "static-link"] } diff --git a/imgui-sdl2-support/LICENSE-APACHE b/imgui-sdl2-support/LICENSE-APACHE new file mode 100644 index 000000000..8f71f43fe --- /dev/null +++ b/imgui-sdl2-support/LICENSE-APACHE @@ -0,0 +1,202 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + diff --git a/imgui-sdl2-support/LICENSE-MIT b/imgui-sdl2-support/LICENSE-MIT new file mode 100644 index 000000000..4594ae3f3 --- /dev/null +++ b/imgui-sdl2-support/LICENSE-MIT @@ -0,0 +1,19 @@ +Copyright (c) 2015-2021 The imgui-rs Developers + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/imgui-sdl2-support/examples/basic.rs b/imgui-sdl2-support/examples/basic.rs new file mode 100644 index 000000000..361b4c5b0 --- /dev/null +++ b/imgui-sdl2-support/examples/basic.rs @@ -0,0 +1,86 @@ +use glow::HasContext; +use imgui::Context; +use imgui_glow_renderer::AutoRenderer; +use imgui_sdl2_support::SdlPlatform; +use sdl2::{ + event::Event, + video::{GLProfile, Window}, +}; + +// Create a new glow context. +fn glow_context(window: &Window) -> glow::Context { + unsafe { + glow::Context::from_loader_function(|s| window.subsystem().gl_get_proc_address(s) as _) + } +} + +fn main() { + /* initialize SDL and its video subsystem */ + let sdl = sdl2::init().unwrap(); + let video_subsystem = sdl.video().unwrap(); + + /* hint SDL to initialize an OpenGL 3.3 core profile context */ + let gl_attr = video_subsystem.gl_attr(); + + gl_attr.set_context_version(3, 3); + gl_attr.set_context_profile(GLProfile::Core); + + /* create a new window, be sure to call opengl method on the builder when using glow! */ + let window = video_subsystem + .window("Hello imgui-rs!", 1280, 720) + .allow_highdpi() + .opengl() + .position_centered() + .resizable() + .build() + .unwrap(); + + /* create a new OpenGL context and make it current */ + let gl_context = window.gl_create_context().unwrap(); + window.gl_make_current(&gl_context).unwrap(); + + /* enable vsync to cap framerate */ + window.subsystem().gl_set_swap_interval(1).unwrap(); + + /* create new glow and imgui contexts */ + let gl = glow_context(&window); + + let mut imgui = Context::create(); + imgui.set_ini_filename(None); + imgui.set_log_filename(None); + + /* setup platform and renderer, and fonts to imgui */ + imgui + .fonts() + .add_font(&[imgui::FontSource::DefaultFontData { config: None }]); + + let mut platform = SdlPlatform::init(&mut imgui); + let mut renderer = AutoRenderer::initialize(gl, &mut imgui).unwrap(); + let mut event_pump = sdl.event_pump().unwrap(); + + 'main: loop { + for event in event_pump.poll_iter() { + /* pass all events to imgui platfrom */ + platform.handle_event(&mut imgui, &event); + + match event { + Event::Quit { .. } => break 'main, + + _ => {} + } + } + + /* call prepare_frame before calling imgui.new_frame() */ + platform.prepare_frame(&mut imgui, &window, &event_pump); + + let ui = imgui.new_frame(); + ui.show_demo_window(&mut true); + + let draw_data = imgui.render(); + + unsafe { renderer.gl_context().clear(glow::COLOR_BUFFER_BIT) }; + renderer.render(draw_data).unwrap(); + + window.gl_swap_window(); + } +} diff --git a/imgui-sdl2-support/src/lib.rs b/imgui-sdl2-support/src/lib.rs new file mode 100644 index 000000000..a2e56ae64 --- /dev/null +++ b/imgui-sdl2-support/src/lib.rs @@ -0,0 +1,296 @@ +//! This crate provides a SDL 2 based backend platform for imgui-rs. +//! +//! A backend platform handles window/input device events and manages their +//! state. +//! +//! # Using the library +//! +//! There are three things you need to do to use this library correctly: +//! +//! 1. Initialize a `SdlPlatform` instance +//! 2. Pass events to the platform (every frame) +//! 3. Call frame preparation callback (every frame) +//! +//! For a complete example, take a look at the imgui-rs' GitHub repository. + +use std::time::Instant; + +use imgui::{BackendFlags, ConfigFlags, Context, Io, Key, MouseCursor}; +use sdl2::{ + event::Event, + keyboard::{Mod, Scancode}, + mouse::{Cursor, MouseButton, MouseState, SystemCursor}, + video::Window, + EventPump, +}; + +/// State of a single mouse button. Used so that we can detect cases where mouse +/// press and release occur on the same frame (seems surprisingly frequent on +/// macOS now...) +#[derive(Debug, Clone, Copy, Default)] +struct Button { + pressed_this_frame: bool, + state: bool, +} + +impl Button { + const fn new() -> Button { + Button { + pressed_this_frame: false, + state: false, + } + } + + fn get(&self) -> bool { + self.pressed_this_frame || self.state + } + + fn set(&mut self, pressed: bool) { + self.state = pressed; + + if pressed { + self.pressed_this_frame = true; + } + } +} + +/// Handle changes in the key modifier states. +fn handle_key_modifier(io: &mut Io, keymod: &Mod) { + io.key_shift = keymod.intersects(Mod::LSHIFTMOD | Mod::RSHIFTMOD); + io.key_ctrl = keymod.intersects(Mod::LCTRLMOD | Mod::RCTRLMOD); + io.key_alt = keymod.intersects(Mod::LALTMOD | Mod::RALTMOD); + io.key_super = keymod.intersects(Mod::LGUIMOD | Mod::RGUIMOD); +} + +/// Map an imgui::MouseCursor to an equivalent sdl2::mouse::SystemCursor. +fn to_sdl_cursor(cursor: MouseCursor) -> SystemCursor { + match cursor { + MouseCursor::Arrow => SystemCursor::Arrow, + MouseCursor::TextInput => SystemCursor::IBeam, + MouseCursor::ResizeAll => SystemCursor::SizeAll, + MouseCursor::ResizeNS => SystemCursor::SizeNS, + MouseCursor::ResizeEW => SystemCursor::SizeWE, + MouseCursor::ResizeNESW => SystemCursor::SizeNESW, + MouseCursor::ResizeNWSE => SystemCursor::SizeNWSE, + MouseCursor::Hand => SystemCursor::Hand, + MouseCursor::NotAllowed => SystemCursor::No, + } +} + +/// Returns `true` if the provided event is associated with the provided window. +/// +/// # Example +/// ```rust,no_run +/// // Assuming there are multiple windows, we only want to provide the events +/// // of the window where we are rendering to imgui-rs +/// for event in event_pump.poll_iter().filter(|event| filter_event(&window, event)) { +/// platform.handle_event(&mut imgui, &event); +/// } +/// ``` +pub fn filter_event(window: &Window, event: &Event) -> bool { + Some(window.id()) == event.get_window_id() +} + +/// SDL 2 backend platform state. +/// +/// A backend platform handles window/input device events and manages their +/// state. +/// +/// There are three things you need to do to use this library correctly: +/// +/// 1. Initialize a `SdlPlatform` instance +/// 2. Pass events to the platform (every frame) +/// 3. Call frame preparation callback (every frame) +pub struct SdlPlatform { + cursor_instance: Option, /* to avoid dropping cursor instances */ + last_frame: Instant, + mouse_buttons: [Button; 5], +} + +impl SdlPlatform { + /// Initializes a SDL platform instance and configures imgui. + /// + /// This function configures imgui-rs in the following ways: + /// + /// * backend flags are updated + /// * keys are configured + /// * platform name is set + pub fn init(imgui: &mut Context) -> SdlPlatform { + let io = imgui.io_mut(); + + io.backend_flags.insert(BackendFlags::HAS_MOUSE_CURSORS); + io.backend_flags.insert(BackendFlags::HAS_SET_MOUSE_POS); + + io[Key::Tab] = Scancode::Tab as _; + io[Key::LeftArrow] = Scancode::Left as _; + io[Key::RightArrow] = Scancode::Right as _; + io[Key::UpArrow] = Scancode::Up as _; + io[Key::DownArrow] = Scancode::Down as _; + io[Key::PageUp] = Scancode::PageUp as _; + io[Key::PageDown] = Scancode::PageDown as _; + io[Key::Home] = Scancode::Home as _; + io[Key::End] = Scancode::End as _; + io[Key::Insert] = Scancode::Insert as _; + io[Key::Delete] = Scancode::Delete as _; + io[Key::Backspace] = Scancode::Backspace as _; + io[Key::Space] = Scancode::Space as _; + io[Key::Enter] = Scancode::Return as _; + io[Key::Escape] = Scancode::Escape as _; + io[Key::KeyPadEnter] = Scancode::KpEnter as _; + io[Key::A] = Scancode::A as _; + io[Key::C] = Scancode::C as _; + io[Key::V] = Scancode::V as _; + io[Key::X] = Scancode::X as _; + io[Key::Y] = Scancode::Y as _; + io[Key::Z] = Scancode::Z as _; + + imgui.set_platform_name(Some(format!( + "imgui-sdl2-support {}", + env!("CARGO_PKG_VERSION") + ))); + + SdlPlatform { + cursor_instance: None, + last_frame: Instant::now(), + mouse_buttons: [Button::new(); 5], + } + } + + /// Handles a SDL event. + /// + /// This function performs the following actions (depends on the event): + /// + /// * keyboard state is updated + /// * mouse state is updated + pub fn handle_event(&mut self, context: &mut Context, event: &Event) { + let io = context.io_mut(); + + match *event { + Event::MouseWheel { x, y, .. } => { + io.mouse_wheel = y as f32; + io.mouse_wheel_h = x as f32; + } + + Event::MouseButtonDown { mouse_btn, .. } => { + self.handle_mouse_button(&mouse_btn, true); + } + + Event::MouseButtonUp { mouse_btn, .. } => { + self.handle_mouse_button(&mouse_btn, false); + } + + Event::TextInput { ref text, .. } => { + text.chars().for_each(|c| io.add_input_character(c)); + } + + Event::KeyDown { + scancode: Some(key), + keymod, + .. + } => { + io.keys_down[key as usize] = true; + handle_key_modifier(io, &keymod); + } + + Event::KeyUp { + scancode: Some(key), + keymod, + .. + } => { + io.keys_down[key as usize] = false; + handle_key_modifier(io, &keymod); + } + + _ => {} + } + } + + /// Frame preparation callback. + /// + /// Call this before calling the imgui-rs context `frame` function. + /// This function performs the following actions: + /// + /// * display size and the framebuffer scale is set + /// * mouse cursor is repositioned (if requested by imgui-rs) + /// * current mouse cursor position is passed to imgui-rs + /// * changes mouse cursor icon (if requested by imgui-rs) + pub fn prepare_frame( + &mut self, + context: &mut Context, + window: &Window, + event_pump: &EventPump, + ) { + let mouse_cursor = context.mouse_cursor(); + let io = context.io_mut(); + + // Update delta time + let now = Instant::now(); + io.update_delta_time(now.duration_since(self.last_frame)); + self.last_frame = now; + + let mouse_state = MouseState::new(event_pump); + let window_size = window.size(); + let window_drawable_size = window.drawable_size(); + + // Set display size and scale here, since SDL 2 doesn't have + // any easy way to get the scale factor, and changes in said + // scale factor + io.display_size = [window_size.0 as f32, window_size.1 as f32]; + io.display_framebuffer_scale = [ + (window_drawable_size.0 as f32) / (window_size.0 as f32), + (window_drawable_size.1 as f32) / (window_size.1 as f32), + ]; + + // Update mouse button state + for (io_down, button) in io.mouse_down.iter_mut().zip(&mut self.mouse_buttons) { + *io_down = button.get(); + *button = Button::new(); + } + + // Set mouse position if requested by imgui-rs + if io.want_set_mouse_pos { + let mouse_util = window.subsystem().sdl().mouse(); + mouse_util.warp_mouse_in_window(window, io.mouse_pos[0] as i32, io.mouse_pos[1] as i32); + } + + // Update mouse cursor position + io.mouse_pos = [mouse_state.x() as f32, mouse_state.y() as f32]; + + // Update mouse cursor icon if requested + if !io + .config_flags + .contains(ConfigFlags::NO_MOUSE_CURSOR_CHANGE) + { + let mouse_util = window.subsystem().sdl().mouse(); + + match mouse_cursor { + Some(mouse_cursor) if !io.mouse_draw_cursor => { + let cursor = Cursor::from_system(to_sdl_cursor(mouse_cursor)).unwrap(); + cursor.set(); + + mouse_util.show_cursor(true); + self.cursor_instance = Some(cursor); + } + + _ => { + mouse_util.show_cursor(false); + self.cursor_instance = None; + } + } + } + } +} + +impl SdlPlatform { + fn handle_mouse_button(&mut self, button: &MouseButton, pressed: bool) { + match button { + MouseButton::Left => self.mouse_buttons[0].set(pressed), + MouseButton::Right => self.mouse_buttons[1].set(pressed), + MouseButton::Middle => self.mouse_buttons[2].set(pressed), + MouseButton::X1 => self.mouse_buttons[3].set(pressed), + MouseButton::X2 => self.mouse_buttons[4].set(pressed), + + _ => {} + } + } +} From 4a2d847b3a76a6a06fdde9a2844e256658f199fb Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Wed, 6 Oct 2021 10:36:57 -0400 Subject: [PATCH 053/200] passing tests --- imgui-sdl2-support/examples/basic.rs | 6 ++---- imgui/src/context.rs | 4 ++-- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/imgui-sdl2-support/examples/basic.rs b/imgui-sdl2-support/examples/basic.rs index 361b4c5b0..4180f789e 100644 --- a/imgui-sdl2-support/examples/basic.rs +++ b/imgui-sdl2-support/examples/basic.rs @@ -63,10 +63,8 @@ fn main() { /* pass all events to imgui platfrom */ platform.handle_event(&mut imgui, &event); - match event { - Event::Quit { .. } => break 'main, - - _ => {} + if let Event::Quit { .. } = event { + break 'main; } } diff --git a/imgui/src/context.rs b/imgui/src/context.rs index c1c1176ce..de346a837 100644 --- a/imgui/src/context.rs +++ b/imgui/src/context.rs @@ -545,12 +545,12 @@ impl Context { } /// Returns the currently desired mouse cursor type. - /// + /// /// This was set *last frame* by the [Ui] object, and will be reset when /// [new_frame] is called. /// /// Returns `None` if no cursor should be displayed - /// + /// /// [new_frame]: Self::new_frame #[doc(alias = "GetMouseCursor")] pub fn mouse_cursor(&self) -> Option { From dc3cc8a46195f9971a234e68ef9decf819b8bb87 Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Wed, 6 Oct 2021 10:55:33 -0400 Subject: [PATCH 054/200] fixed up for tests --- imgui-sdl2-support/src/lib.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/imgui-sdl2-support/src/lib.rs b/imgui-sdl2-support/src/lib.rs index a2e56ae64..2c899bb1c 100644 --- a/imgui-sdl2-support/src/lib.rs +++ b/imgui-sdl2-support/src/lib.rs @@ -81,6 +81,11 @@ fn to_sdl_cursor(cursor: MouseCursor) -> SystemCursor { /// /// # Example /// ```rust,no_run +/// # let mut event_pump: sdl2::EventPump = unimplemented!(); +/// # let window: sdl2::video::Window = unimplemented!(); +/// # let mut imgui = imgui::Context::create(); +/// # let mut platform = SdlPlatform::init(&mut imgui); +/// use imgui_sdl2_support::{SdlPlatform, filter_event}; /// // Assuming there are multiple windows, we only want to provide the events /// // of the window where we are rendering to imgui-rs /// for event in event_pump.poll_iter().filter(|event| filter_event(&window, event)) { From 9a115a3d37cd9362d713773e1c90b0757d3d2182 Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Wed, 6 Oct 2021 10:56:56 -0400 Subject: [PATCH 055/200] adding changelog entry --- CHANGELOG.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown index 93c840724..304978cf2 100644 --- a/CHANGELOG.markdown +++ b/CHANGELOG.markdown @@ -12,6 +12,8 @@ - BREAKING: `Id` is now a simpler facade, but requires the `Ui` struct to generate. `push_id`, equally, has been split into multiple functions for simplicity. +- Added `imgui-sdl2-support` to provide a simple ImGui platform wrapper. Please give it a try! Thank you to @NightShade256 for [implementing this here](https://github.com/imgui-rs/imgui-rs/pull/541) + ## [0.8.0] - 2021-09-17 Welcome to the `0.8.0` update. This is one of the largest updates imgui-rs has ever seen; it will generate errors in a `0.7` project, but hopefully it should be both quick to fix, and enjoyable to update. See our [release page](https://github.com/imgui-rs/imgui-rs/releases/tag/v0.8.0) for more information and a list of contributors to this cycle. Thank you to everyone who uses `imgui-rs`, files issues, and spend their time and effort to PR new changes into the codebase. Because of all that effort, this is by far the best `imgui-rs` has looked! From 36aed0e4e1fd795ea474d696fe49ccb9cfc89604 Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Wed, 6 Oct 2021 11:35:07 -0400 Subject: [PATCH 056/200] reduced down to just glium 0.30 --- CHANGELOG.markdown | 2 ++ imgui-glium-renderer/Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown index 304978cf2..8177b1b02 100644 --- a/CHANGELOG.markdown +++ b/CHANGELOG.markdown @@ -14,6 +14,8 @@ - Added `imgui-sdl2-support` to provide a simple ImGui platform wrapper. Please give it a try! Thank you to @NightShade256 for [implementing this here](https://github.com/imgui-rs/imgui-rs/pull/541) +- BREAKING: We now only support `glium 0.30`. We're in a difficult position supporting arbitrary `glium` versions in our renderer, since `glium` is only in a semi-maintained state. `glium` users, please get in contact in issues to let us know what will work best for your needs! + ## [0.8.0] - 2021-09-17 Welcome to the `0.8.0` update. This is one of the largest updates imgui-rs has ever seen; it will generate errors in a `0.7` project, but hopefully it should be both quick to fix, and enjoyable to update. See our [release page](https://github.com/imgui-rs/imgui-rs/releases/tag/v0.8.0) for more information and a list of contributors to this cycle. Thank you to everyone who uses `imgui-rs`, files issues, and spend their time and effort to PR new changes into the codebase. Because of all that effort, this is by far the best `imgui-rs` has looked! diff --git a/imgui-glium-renderer/Cargo.toml b/imgui-glium-renderer/Cargo.toml index a04e9a918..68134f632 100644 --- a/imgui-glium-renderer/Cargo.toml +++ b/imgui-glium-renderer/Cargo.toml @@ -10,5 +10,5 @@ license = "MIT/Apache-2.0" categories = ["gui", "rendering"] [dependencies] -glium = { version = ">=0.28, < 0.31", default-features = false } +glium = { version = "0.30", default-features = false } imgui = { version = "0.8.1-alpha.0", path = "../imgui" } From bb66413a29f88c454fd6c946848e6e9bdd071550 Mon Sep 17 00:00:00 2001 From: Sven Niederberger Date: Sat, 2 Oct 2021 11:39:45 +0200 Subject: [PATCH 057/200] * add input_scalar * allow setting display format for input_float --- imgui-examples/examples/test_window_impl.rs | 17 +- imgui/src/input_widget.rs | 223 +++++++++++++++++++- imgui/src/lib.rs | 24 +++ 3 files changed, 250 insertions(+), 14 deletions(-) diff --git a/imgui-examples/examples/test_window_impl.rs b/imgui-examples/examples/test_window_impl.rs index f62eaa054..7eb86bd16 100644 --- a/imgui-examples/examples/test_window_impl.rs +++ b/imgui-examples/examples/test_window_impl.rs @@ -33,6 +33,8 @@ struct State { text_with_hint: String, text_multiline: String, i0: i32, + u0: u64, + d0: f64, f0: f32, vec2f: [f32; 2], vec3f: [f32; 3], @@ -95,7 +97,9 @@ impl Default for State { text_with_hint, text_multiline, i0: 123, + u0: 1234, f0: 0.001, + d0: 0.0001, vec2f: [0.10, 0.20], vec3f: [0.10, 0.20, 0.30], vec2i: [10, 20], @@ -538,15 +542,20 @@ fn show_test_window(ui: &Ui, state: &mut State, opened: &mut bool) { ui.input_int("input int", &mut state.i0).build(); // Drag::new("drag int").build(ui, &mut state.i0); ui.input_float("input float", &mut state.f0) - .step(0.01) - .step_fast(1.0) - .build(); + .step(0.01) + .step_fast(1.0) + .build(); Drag::new("drag float").range(-1.0, 1.0).speed(0.001).build(ui, &mut state.f0); ui.input_float3("input float3", &mut state.vec3f) - .build(); + .build(); ColorEdit3::new("color 1", &mut state.col1).build(ui); ColorEdit4::new("color 2", &mut state.col2).build(ui); + ui.input_scalar("input scalar i64", &mut state.u0).build(ui); + ui.input_scalar("input scalar f64", &mut state.d0).build(ui); + ui.input_scalar_n("input scalar int array", &mut state.vec3i).build(ui); + ui.input_scalar_n("input scalar float array", &mut state.vec3f).build(ui); + TreeNode::new("Multi-component Widgets").build(ui, || { ui.input_float2("input float2", &mut state.vec2f) .build(); diff --git a/imgui/src/input_widget.rs b/imgui/src/input_widget.rs index 6e3f073c7..a2e329df2 100644 --- a/imgui/src/input_widget.rs +++ b/imgui/src/input_widget.rs @@ -1,7 +1,9 @@ use bitflags::bitflags; use std::ops::Range; use std::os::raw::{c_char, c_int, c_void}; +use std::ptr; +use crate::internal::DataTypeKind; use crate::math::*; use crate::sys; use crate::Ui; @@ -514,11 +516,12 @@ impl<'ui, 'p, L: AsRef> InputInt<'ui, 'p, L> { } #[must_use] -pub struct InputFloat<'ui, 'p, L> { +pub struct InputFloat<'ui, 'p, L, F = &'static str> { label: L, value: &'p mut f32, step: f32, step_fast: f32, + display_format: Option, flags: InputTextFlags, ui: &'ui Ui, } @@ -530,19 +533,36 @@ impl<'ui, 'p, L: AsRef> InputFloat<'ui, 'p, L> { value, step: 0.0, step_fast: 0.0, + display_format: None, flags: InputTextFlags::empty(), ui, } } + pub fn display_format>(self, display_format: F2) -> InputFloat<'ui, 'p, L, F2> { + InputFloat { + value: self.value, + label: self.label, + step: self.step, + step_fast: self.step_fast, + display_format: Some(display_format), + flags: self.flags, + ui: self.ui, + } + } + pub fn build(self) -> bool { + let (one, two) = self + .ui + .scratch_txt_with_opt(self.label, self.display_format); + unsafe { sys::igInputFloat( - self.ui.scratch_txt(self.label), + one, self.value as *mut f32, self.step, self.step_fast, - b"%.3f\0".as_ptr() as *const _, + two, self.flags.bits() as i32, ) } @@ -555,9 +575,10 @@ impl<'ui, 'p, L: AsRef> InputFloat<'ui, 'p, L> { macro_rules! impl_input_floatn { ($InputFloatN:ident, $MINT_TARGET:ty, $N:expr, $igInputFloatN:ident) => { #[must_use] - pub struct $InputFloatN<'ui, 'p, L, T> { + pub struct $InputFloatN<'ui, 'p, L, T, F = &'static str> { label: L, value: &'p mut T, + display_format: Option, flags: InputTextFlags, ui: &'ui Ui, } @@ -572,22 +593,35 @@ macro_rules! impl_input_floatn { $InputFloatN { label, value, + display_format: None, flags: InputTextFlags::empty(), ui, } } + pub fn display_format>( + self, + display_format: F2, + ) -> $InputFloatN<'ui, 'p, L, T, F2> { + $InputFloatN { + label: self.label, + value: self.value, + display_format: Some(display_format), + flags: self.flags, + ui: self.ui, + } + } + pub fn build(self) -> bool { let value: $MINT_TARGET = (*self.value).into(); let mut value: [f32; $N] = value.into(); + let (one, two) = self + .ui + .scratch_txt_with_opt(self.label, self.display_format); + let changed = unsafe { - sys::$igInputFloatN( - self.ui.scratch_txt(self.label), - value.as_mut_ptr(), - b"%.3f\0".as_ptr() as *const _, - self.flags.bits() as i32, - ) + sys::$igInputFloatN(one, value.as_mut_ptr(), two, self.flags.bits() as i32) }; if changed { @@ -661,6 +695,175 @@ impl_input_intn!(InputInt2, MintIVec2, 2, igInputInt2); impl_input_intn!(InputInt3, MintIVec3, 3, igInputInt3); impl_input_intn!(InputInt4, MintIVec4, 4, igInputInt4); +/// Builder for an input scalar widget. +#[must_use] +pub struct InputScalar<'ui, 'p, T, L, F = &'static str> { + value: &'p mut T, + label: L, + step: Option, + step_fast: Option, + display_format: Option, + flags: InputTextFlags, + ui: &'ui Ui, +} + +impl<'ui, 'p, L: AsRef, T: DataTypeKind> InputScalar<'ui, 'p, T, L> { + /// Constructs a new input scalar builder. + #[doc(alias = "InputScalar", alias = "InputScalarN")] + pub fn new(ui: &'ui Ui, label: L, value: &'p mut T) -> Self { + InputScalar { + value, + label, + step: None, + step_fast: None, + display_format: None, + flags: InputTextFlags::empty(), + ui, + } + } +} + +impl<'ui, 'p, L: AsRef, T: DataTypeKind, F: AsRef> InputScalar<'ui, 'p, T, L, F> { + /// Sets the display format using *a C-style printf string* + pub fn display_format>( + self, + display_format: F2, + ) -> InputScalar<'ui, 'p, T, L, F2> { + InputScalar { + value: self.value, + label: self.label, + step: self.step, + step_fast: self.step_fast, + display_format: Some(display_format), + flags: self.flags, + ui: self.ui, + } + } + /// Builds an input scalar that is bound to the given value. + /// + /// Returns true if the value was changed. + pub fn build(self, ui: &Ui) -> bool { + unsafe { + let (one, two) = ui.scratch_txt_with_opt(self.label, self.display_format); + + sys::igInputScalar( + one, + T::KIND as i32, + self.value as *mut T as *mut c_void, + self.step + .as_ref() + .map(|step| step as *const T) + .unwrap_or(ptr::null()) as *const c_void, + self.step_fast + .as_ref() + .map(|step| step as *const T) + .unwrap_or(ptr::null()) as *const c_void, + two, + self.flags.bits() as i32, + ) + } + } + + #[inline] + pub fn step(mut self, value: T) -> Self { + self.step = Some(value); + self + } + + #[inline] + pub fn step_fast(mut self, value: T) -> Self { + self.step_fast = Some(value); + self + } + + impl_text_flags!(InputScalar); +} + +/// Builder for an input scalar widget. +#[must_use] +pub struct InputScalarN<'ui, 'p, T, L, F = &'static str> { + values: &'p mut [T], + label: L, + step: Option, + step_fast: Option, + display_format: Option, + flags: InputTextFlags, + ui: &'ui Ui, +} + +impl<'ui, 'p, L: AsRef, T: DataTypeKind> InputScalarN<'ui, 'p, T, L> { + /// Constructs a new input scalar builder. + #[doc(alias = "InputScalarN")] + pub fn new(ui: &'ui Ui, label: L, values: &'p mut [T]) -> Self { + InputScalarN { + values, + label, + step: None, + step_fast: None, + display_format: None, + flags: InputTextFlags::empty(), + ui, + } + } +} + +impl<'ui, 'p, L: AsRef, T: DataTypeKind, F: AsRef> InputScalarN<'ui, 'p, T, L, F> { + /// Sets the display format using *a C-style printf string* + pub fn display_format>( + self, + display_format: F2, + ) -> InputScalarN<'ui, 'p, T, L, F2> { + InputScalarN { + values: self.values, + label: self.label, + step: self.step, + step_fast: self.step_fast, + display_format: Some(display_format), + flags: self.flags, + ui: self.ui, + } + } + /// Builds a horizontal array of multiple input scalars attached to the given slice. + /// + /// Returns true if any value was changed. + pub fn build(self, ui: &Ui) -> bool { + unsafe { + let (one, two) = ui.scratch_txt_with_opt(self.label, self.display_format); + + sys::igInputScalarN( + one, + T::KIND as i32, + self.values.as_mut_ptr() as *mut c_void, + self.values.len() as i32, + self.step + .as_ref() + .map(|step| step as *const T) + .unwrap_or(ptr::null()) as *const c_void, + self.step_fast + .as_ref() + .map(|step| step as *const T) + .unwrap_or(ptr::null()) as *const c_void, + two, + self.flags.bits() as i32, + ) + } + } + + #[inline] + pub fn step(mut self, value: T) -> Self { + self.step = Some(value); + self + } + + #[inline] + pub fn step_fast(mut self, value: T) -> Self { + self.step_fast = Some(value); + self + } + + impl_text_flags!(InputScalar); +} + bitflags!( /// Callback flags for an `InputText` widget. These correspond to /// the general textflags. diff --git a/imgui/src/lib.rs b/imgui/src/lib.rs index 4de20f7ed..90e94a516 100644 --- a/imgui/src/lib.rs +++ b/imgui/src/lib.rs @@ -551,6 +551,30 @@ impl<'ui> Ui { { InputInt4::new(self, label, value) } + #[doc(alias = "InputScalar")] + pub fn input_scalar<'p, L, T>( + &'ui self, + label: L, + value: &'p mut T, + ) -> InputScalar<'ui, 'p, T, L> + where + L: AsRef, + T: internal::DataTypeKind, + { + InputScalar::new(self, label, value) + } + #[doc(alias = "InputScalarN")] + pub fn input_scalar_n<'p, L, T>( + &'ui self, + label: L, + values: &'p mut [T], + ) -> InputScalarN<'ui, 'p, T, L> + where + L: AsRef, + T: internal::DataTypeKind, + { + InputScalarN::new(self, label, values) + } } create_token!( From f11cb33961a7243761d8cd73d1aa816ce503890c Mon Sep 17 00:00:00 2001 From: Sven Niederberger Date: Sat, 2 Oct 2021 11:42:52 +0200 Subject: [PATCH 058/200] formatting --- imgui-examples/examples/test_window_impl.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/imgui-examples/examples/test_window_impl.rs b/imgui-examples/examples/test_window_impl.rs index 7eb86bd16..97b26c9af 100644 --- a/imgui-examples/examples/test_window_impl.rs +++ b/imgui-examples/examples/test_window_impl.rs @@ -542,12 +542,12 @@ fn show_test_window(ui: &Ui, state: &mut State, opened: &mut bool) { ui.input_int("input int", &mut state.i0).build(); // Drag::new("drag int").build(ui, &mut state.i0); ui.input_float("input float", &mut state.f0) - .step(0.01) - .step_fast(1.0) - .build(); + .step(0.01) + .step_fast(1.0) + .build(); Drag::new("drag float").range(-1.0, 1.0).speed(0.001).build(ui, &mut state.f0); ui.input_float3("input float3", &mut state.vec3f) - .build(); + .build(); ColorEdit3::new("color 1", &mut state.col1).build(ui); ColorEdit4::new("color 2", &mut state.col2).build(ui); From fe4cc59fafeadc2597bf904b94bd87c85fb6fa8d Mon Sep 17 00:00:00 2001 From: Sven Niederberger Date: Tue, 5 Oct 2021 18:17:49 +0200 Subject: [PATCH 059/200] cargo fmt --- imgui-examples/examples/test_window_impl.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/imgui-examples/examples/test_window_impl.rs b/imgui-examples/examples/test_window_impl.rs index 97b26c9af..2ba4daf51 100644 --- a/imgui-examples/examples/test_window_impl.rs +++ b/imgui-examples/examples/test_window_impl.rs @@ -555,7 +555,7 @@ fn show_test_window(ui: &Ui, state: &mut State, opened: &mut bool) { ui.input_scalar("input scalar f64", &mut state.d0).build(ui); ui.input_scalar_n("input scalar int array", &mut state.vec3i).build(ui); ui.input_scalar_n("input scalar float array", &mut state.vec3f).build(ui); - + TreeNode::new("Multi-component Widgets").build(ui, || { ui.input_float2("input float2", &mut state.vec2f) .build(); From dccbdc4f01cc70052217279fea80bcc105a6174e Mon Sep 17 00:00:00 2001 From: Sven Niederberger Date: Tue, 5 Oct 2021 18:30:29 +0200 Subject: [PATCH 060/200] add doc comments --- imgui/src/lib.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/imgui/src/lib.rs b/imgui/src/lib.rs index 90e94a516..82447d14b 100644 --- a/imgui/src/lib.rs +++ b/imgui/src/lib.rs @@ -551,6 +551,8 @@ impl<'ui> Ui { { InputInt4::new(self, label, value) } + /// Shows an input field for a scalar value. This is not limited to `f32` and `i32` and can be used with + /// any primitive scalar type e.g. `u8` and `f64`. #[doc(alias = "InputScalar")] pub fn input_scalar<'p, L, T>( &'ui self, @@ -563,6 +565,7 @@ impl<'ui> Ui { { InputScalar::new(self, label, value) } + /// Shows a horizontal array of scalar value input fields. See [`input_scalar`]. #[doc(alias = "InputScalarN")] pub fn input_scalar_n<'p, L, T>( &'ui self, From 1d78d18d82eb2a9c38a5a934ed4e494f16c08b5d Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Wed, 6 Oct 2021 12:06:09 -0400 Subject: [PATCH 061/200] updating license copyright data --- LICENSE-APACHE | 2 +- LICENSE-MIT | 2 +- imgui-glium-renderer/LICENSE-APACHE | 2 +- imgui-glium-renderer/LICENSE-MIT | 2 +- imgui-glow-renderer/LICENSE-APACHE | 2 +- imgui-glow-renderer/LICENSE-MIT | 2 +- imgui-sdl2-support/LICENSE-APACHE | 2 +- imgui-sdl2-support/LICENSE-MIT | 2 +- imgui-sys/LICENSE-APACHE | 2 +- imgui-sys/LICENSE-MIT | 2 +- imgui-winit-support/LICENSE-APACHE | 2 +- imgui-winit-support/LICENSE-MIT | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/LICENSE-APACHE b/LICENSE-APACHE index d3d7a05f9..ee1b93643 100644 --- a/LICENSE-APACHE +++ b/LICENSE-APACHE @@ -175,7 +175,7 @@ END OF TERMS AND CONDITIONS - Copyright {2021} the imgui-rs developers + Copyright 2021 the imgui-rs developers Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/LICENSE-MIT b/LICENSE-MIT index 4594ae3f3..230b8c494 100644 --- a/LICENSE-MIT +++ b/LICENSE-MIT @@ -1,4 +1,4 @@ -Copyright (c) 2015-2021 The imgui-rs Developers +Copyright (c) 2021 The imgui-rs Developers Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/imgui-glium-renderer/LICENSE-APACHE b/imgui-glium-renderer/LICENSE-APACHE index 8f71f43fe..3b7a7f903 100644 --- a/imgui-glium-renderer/LICENSE-APACHE +++ b/imgui-glium-renderer/LICENSE-APACHE @@ -186,7 +186,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright {yyyy} {name of copyright owner} + Copyright 2021 the imgui-rs developers Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/imgui-glium-renderer/LICENSE-MIT b/imgui-glium-renderer/LICENSE-MIT index ea896c1f8..230b8c494 100644 --- a/imgui-glium-renderer/LICENSE-MIT +++ b/imgui-glium-renderer/LICENSE-MIT @@ -1,4 +1,4 @@ -Copyright (c) 2015-2020 The imgui-rs Developers +Copyright (c) 2021 The imgui-rs Developers Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/imgui-glow-renderer/LICENSE-APACHE b/imgui-glow-renderer/LICENSE-APACHE index 8f71f43fe..3b7a7f903 100644 --- a/imgui-glow-renderer/LICENSE-APACHE +++ b/imgui-glow-renderer/LICENSE-APACHE @@ -186,7 +186,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright {yyyy} {name of copyright owner} + Copyright 2021 the imgui-rs developers Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/imgui-glow-renderer/LICENSE-MIT b/imgui-glow-renderer/LICENSE-MIT index ea896c1f8..230b8c494 100644 --- a/imgui-glow-renderer/LICENSE-MIT +++ b/imgui-glow-renderer/LICENSE-MIT @@ -1,4 +1,4 @@ -Copyright (c) 2015-2020 The imgui-rs Developers +Copyright (c) 2021 The imgui-rs Developers Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/imgui-sdl2-support/LICENSE-APACHE b/imgui-sdl2-support/LICENSE-APACHE index 8f71f43fe..3b7a7f903 100644 --- a/imgui-sdl2-support/LICENSE-APACHE +++ b/imgui-sdl2-support/LICENSE-APACHE @@ -186,7 +186,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright {yyyy} {name of copyright owner} + Copyright 2021 the imgui-rs developers Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/imgui-sdl2-support/LICENSE-MIT b/imgui-sdl2-support/LICENSE-MIT index 4594ae3f3..230b8c494 100644 --- a/imgui-sdl2-support/LICENSE-MIT +++ b/imgui-sdl2-support/LICENSE-MIT @@ -1,4 +1,4 @@ -Copyright (c) 2015-2021 The imgui-rs Developers +Copyright (c) 2021 The imgui-rs Developers Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/imgui-sys/LICENSE-APACHE b/imgui-sys/LICENSE-APACHE index 8f71f43fe..3b7a7f903 100644 --- a/imgui-sys/LICENSE-APACHE +++ b/imgui-sys/LICENSE-APACHE @@ -186,7 +186,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright {yyyy} {name of copyright owner} + Copyright 2021 the imgui-rs developers Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/imgui-sys/LICENSE-MIT b/imgui-sys/LICENSE-MIT index ea896c1f8..230b8c494 100644 --- a/imgui-sys/LICENSE-MIT +++ b/imgui-sys/LICENSE-MIT @@ -1,4 +1,4 @@ -Copyright (c) 2015-2020 The imgui-rs Developers +Copyright (c) 2021 The imgui-rs Developers Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/imgui-winit-support/LICENSE-APACHE b/imgui-winit-support/LICENSE-APACHE index 8f71f43fe..3b7a7f903 100644 --- a/imgui-winit-support/LICENSE-APACHE +++ b/imgui-winit-support/LICENSE-APACHE @@ -186,7 +186,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright {yyyy} {name of copyright owner} + Copyright 2021 the imgui-rs developers Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/imgui-winit-support/LICENSE-MIT b/imgui-winit-support/LICENSE-MIT index ea896c1f8..230b8c494 100644 --- a/imgui-winit-support/LICENSE-MIT +++ b/imgui-winit-support/LICENSE-MIT @@ -1,4 +1,4 @@ -Copyright (c) 2015-2020 The imgui-rs Developers +Copyright (c) 2021 The imgui-rs Developers Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal From de69a0c103759d380bccca4557b5a2071f1e16ab Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Wed, 6 Oct 2021 13:09:34 -0400 Subject: [PATCH 062/200] deprecated `InputInt` and `InputFloat`, switched to using `InputScalar` --- CHANGELOG.markdown | 6 ++++++ imgui-examples/examples/test_window_impl.rs | 8 ++++---- imgui/src/input_widget.rs | 20 ++++++++++++++++---- imgui/src/lib.rs | 8 ++++---- 4 files changed, 30 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown index 8177b1b02..925861c78 100644 --- a/CHANGELOG.markdown +++ b/CHANGELOG.markdown @@ -16,6 +16,12 @@ - BREAKING: We now only support `glium 0.30`. We're in a difficult position supporting arbitrary `glium` versions in our renderer, since `glium` is only in a semi-maintained state. `glium` users, please get in contact in issues to let us know what will work best for your needs! +- Added `InputScalar` and `InputScalarN`. These are the core Input modules that Dear ImGui uses, and ultimately what `InputFloat` and `InputInt` turn into. See deprecation of `InputFloat` and `InputInt` as a result. Thank you to @EmbersArc for [implementing this here](https://github.com/imgui-rs/imgui-rs/pull/544). + +- BREAKING: `ui.input_int` and `ui.input_float` now return `InputScalar<'ui, 'l, f32/i32>`, instead of `InputFloat`/`InputInt`. This struct has all of the same flags as `InputFloat` and `InputInt` did. + +- DEPRECATED: `InputFloat` and `InputInt` have been deprecated. `ui.input_float` and `ui.input_int` are _not_, however, and instead will just call `input_scalar` as appropriate. Therefore, please switch your code to `ui.input_float` or `ui.input_int`. + ## [0.8.0] - 2021-09-17 Welcome to the `0.8.0` update. This is one of the largest updates imgui-rs has ever seen; it will generate errors in a `0.7` project, but hopefully it should be both quick to fix, and enjoyable to update. See our [release page](https://github.com/imgui-rs/imgui-rs/releases/tag/v0.8.0) for more information and a list of contributors to this cycle. Thank you to everyone who uses `imgui-rs`, files issues, and spend their time and effort to PR new changes into the codebase. Because of all that effort, this is by far the best `imgui-rs` has looked! diff --git a/imgui-examples/examples/test_window_impl.rs b/imgui-examples/examples/test_window_impl.rs index 2ba4daf51..f58c100a4 100644 --- a/imgui-examples/examples/test_window_impl.rs +++ b/imgui-examples/examples/test_window_impl.rs @@ -551,10 +551,10 @@ fn show_test_window(ui: &Ui, state: &mut State, opened: &mut bool) { ColorEdit3::new("color 1", &mut state.col1).build(ui); ColorEdit4::new("color 2", &mut state.col2).build(ui); - ui.input_scalar("input scalar i64", &mut state.u0).build(ui); - ui.input_scalar("input scalar f64", &mut state.d0).build(ui); - ui.input_scalar_n("input scalar int array", &mut state.vec3i).build(ui); - ui.input_scalar_n("input scalar float array", &mut state.vec3f).build(ui); + ui.input_scalar("input scalar i64", &mut state.u0).build(); + ui.input_scalar("input scalar f64", &mut state.d0).build(); + ui.input_scalar_n("input scalar int array", &mut state.vec3i).build(); + ui.input_scalar_n("input scalar float array", &mut state.vec3f).build(); TreeNode::new("Multi-component Widgets").build(ui, || { ui.input_float2("input float2", &mut state.vec2f) diff --git a/imgui/src/input_widget.rs b/imgui/src/input_widget.rs index a2e329df2..5b4af1304 100644 --- a/imgui/src/input_widget.rs +++ b/imgui/src/input_widget.rs @@ -488,6 +488,10 @@ pub struct InputInt<'ui, 'p, L> { } impl<'ui, 'p, L: AsRef> InputInt<'ui, 'p, L> { + #[deprecated( + since = "0.9.0", + note = "use `ui.input_int` or `ui.input_scalar` instead" + )] pub fn new(ui: &'ui Ui, label: L, value: &'p mut i32) -> Self { InputInt { label, @@ -527,6 +531,10 @@ pub struct InputFloat<'ui, 'p, L, F = &'static str> { } impl<'ui, 'p, L: AsRef> InputFloat<'ui, 'p, L> { + #[deprecated( + since = "0.9.0", + note = "use `ui.input_float` or `ui.input_scalar` instead" + )] pub fn new(ui: &'ui Ui, label: L, value: &'p mut f32) -> Self { InputFloat { label, @@ -742,9 +750,11 @@ impl<'ui, 'p, L: AsRef, T: DataTypeKind, F: AsRef> InputScalar<'ui, 'p /// Builds an input scalar that is bound to the given value. /// /// Returns true if the value was changed. - pub fn build(self, ui: &Ui) -> bool { + pub fn build(self) -> bool { unsafe { - let (one, two) = ui.scratch_txt_with_opt(self.label, self.display_format); + let (one, two) = self + .ui + .scratch_txt_with_opt(self.label, self.display_format); sys::igInputScalar( one, @@ -826,9 +836,11 @@ impl<'ui, 'p, L: AsRef, T: DataTypeKind, F: AsRef> InputScalarN<'ui, ' /// Builds a horizontal array of multiple input scalars attached to the given slice. /// /// Returns true if any value was changed. - pub fn build(self, ui: &Ui) -> bool { + pub fn build(self) -> bool { unsafe { - let (one, two) = ui.scratch_txt_with_opt(self.label, self.display_format); + let (one, two) = self + .ui + .scratch_txt_with_opt(self.label, self.display_format); sys::igInputScalarN( one, diff --git a/imgui/src/lib.rs b/imgui/src/lib.rs index 82447d14b..36a173b01 100644 --- a/imgui/src/lib.rs +++ b/imgui/src/lib.rs @@ -474,8 +474,8 @@ impl<'ui> Ui { &'ui self, label: L, value: &'p mut f32, - ) -> InputFloat<'ui, 'p, L> { - InputFloat::new(self, label, value) + ) -> InputScalar<'ui, 'p, f32, L> { + self.input_scalar(label, value) } #[doc(alias = "InputFloat2")] pub fn input_float2<'p, L, T>( @@ -521,8 +521,8 @@ impl<'ui> Ui { &'ui self, label: L, value: &'p mut i32, - ) -> InputInt<'ui, 'p, L> { - InputInt::new(self, label, value) + ) -> InputScalar<'ui, 'p, i32, L> { + self.input_scalar(label, value).step(1) } #[doc(alias = "InputInt2")] pub fn input_int2<'p, L, T>(&'ui self, label: L, value: &'p mut T) -> InputInt2<'ui, 'p, L, T> From eb1bd01179c4c5cb5016a65e189cc0e5b1f33276 Mon Sep 17 00:00:00 2001 From: dbr Date: Tue, 12 Oct 2021 13:24:50 +1100 Subject: [PATCH 063/200] Add basic polyline methods to draw list --- imgui-examples/examples/draw_list.rs | 40 +++++++++++++ imgui/src/draw_list.rs | 85 ++++++++++++++++++++++++++++ 2 files changed, 125 insertions(+) diff --git a/imgui-examples/examples/draw_list.rs b/imgui-examples/examples/draw_list.rs index f575e7768..3294114a2 100644 --- a/imgui-examples/examples/draw_list.rs +++ b/imgui-examples/examples/draw_list.rs @@ -93,5 +93,45 @@ fn main() { [1.0, 1.0, 1.0], ); }); + + ui.window("Polygons") + .size([300.0, 150.0], Condition::FirstUseEver) + .position([400.0, 110.0], Condition::FirstUseEver) + .scroll_bar(false) + .build(|| { + let draw_list = ui.get_window_draw_list(); + + // Origin + let o = ui.cursor_screen_pos(); + + draw_list + .add_polyline( + vec![ + [o[0] + 0.0, o[1] + 0.0], + [o[0] + 100.0, o[1] + 25.0], + [o[0] + 50.0, o[1] + 50.0], + [o[0] + 100.0, o[1] + 75.0], + [o[0] + 0.0, o[1] + 100.0], + [o[0] + 0.0, o[1] + 0.0], + ], + [1.0, 0.0, 1.0] + ) + .build(); + + draw_list + .add_polyline( + vec![ + [o[0] + 120.0 + 0.0, o[1] + 0.0], + [o[0] + 120.0 + 100.0, o[1] + 25.0], + [o[0] + 120.0 + 50.0, o[1] + 50.0], + [o[0] + 120.0 + 100.0, o[1] + 75.0], + [o[0] + 120.0 + 0.0, o[1] + 100.0], + [o[0] + 120.0 + 0.0, o[1] + 0.0], + ], + [0.0, 1.0, 1.0] + ) + .filled(true) + .build(); + }); }); } diff --git a/imgui/src/draw_list.rs b/imgui/src/draw_list.rs index d58ef6dd1..d810f5798 100644 --- a/imgui/src/draw_list.rs +++ b/imgui/src/draw_list.rs @@ -226,6 +226,22 @@ impl<'ui> DrawListMut<'ui> { Line::new(self, p1, p2, c) } + /// Returns a polygonal line. If filled is rendered as a convex + /// polygon, if not filled is drawn as a line specified by + /// [`PolyLine::thickness`] (default 1.0) + #[doc(alias = "AddPolyline", alias = "AddConvexPolyFilled")] + pub fn add_polyline( + &'ui self, + points: Vec

, + c: C, + ) -> Polyline<'ui> + where + C: Into, + P: Into, + { + Polyline::new(self, points, c) + } + /// Returns a rectangle whose upper-left corner is at point `p1` /// and lower-right corner is at point `p2`, with color `c`. #[doc(alias = "AddRectFilled", alias = "AddRect")] @@ -489,6 +505,75 @@ impl<'ui> Line<'ui> { } } +/// Represents a poly line about to be drawn +#[must_use = "should call .build() to draw the object"] +pub struct Polyline<'ui> { + points: Vec<[f32; 2]>, + thickness: f32, + filled: bool, + color: ImColor32, + draw_list: &'ui DrawListMut<'ui>, +} + +impl<'ui> Polyline<'ui> { + fn new( + draw_list: &'ui DrawListMut<'_>, + points: Vec

, + c: C, + ) -> Self + where + C: Into, + P: Into, + { + Self { + points: points.into_iter().map(|p| p.into().into()).collect(), + color: c.into(), + thickness: 1.0, + filled: false, + draw_list, + } + } + + /// Set line's thickness (default to 1.0 pixel). Has no effect if + /// shape is filled + pub fn thickness(mut self, thickness: f32) -> Self { + self.thickness = thickness; + self + } + + /// Draw shape as filled convex polygon + pub fn filled(mut self, filled: bool) -> Self { + self.filled = filled; + self + } + + /// Draw the line on the window + pub fn build(self) { + if self.filled { + unsafe { + sys::ImDrawList_AddConvexPolyFilled( + self.draw_list.draw_list, + self.points.as_slice().as_ptr() as *const sys::ImVec2, + self.points.len() as i32, + self.color.into(), + ) + } + } else { + unsafe { + sys::ImDrawList_AddPolyline( + self.draw_list.draw_list, + self.points.as_slice().as_ptr() as *const sys::ImVec2, + self.points.len() as i32, + self.color.into(), + sys::ImDrawFlags::default(), + self.thickness, + ) + } + } + } +} + + /// Represents a rectangle about to be drawn #[must_use = "should call .build() to draw the object"] pub struct Rect<'ui> { From 416272a48a40c97516185a9eccc8f83cae5ed7d4 Mon Sep 17 00:00:00 2001 From: dbr Date: Tue, 12 Oct 2021 13:26:33 +1100 Subject: [PATCH 064/200] fmt --- imgui-examples/examples/draw_list.rs | 4 ++-- imgui/src/draw_list.rs | 13 ++----------- 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/imgui-examples/examples/draw_list.rs b/imgui-examples/examples/draw_list.rs index 3294114a2..bbf02e0a5 100644 --- a/imgui-examples/examples/draw_list.rs +++ b/imgui-examples/examples/draw_list.rs @@ -114,7 +114,7 @@ fn main() { [o[0] + 0.0, o[1] + 100.0], [o[0] + 0.0, o[1] + 0.0], ], - [1.0, 0.0, 1.0] + [1.0, 0.0, 1.0], ) .build(); @@ -128,7 +128,7 @@ fn main() { [o[0] + 120.0 + 0.0, o[1] + 100.0], [o[0] + 120.0 + 0.0, o[1] + 0.0], ], - [0.0, 1.0, 1.0] + [0.0, 1.0, 1.0], ) .filled(true) .build(); diff --git a/imgui/src/draw_list.rs b/imgui/src/draw_list.rs index d810f5798..19b1b2685 100644 --- a/imgui/src/draw_list.rs +++ b/imgui/src/draw_list.rs @@ -230,11 +230,7 @@ impl<'ui> DrawListMut<'ui> { /// polygon, if not filled is drawn as a line specified by /// [`PolyLine::thickness`] (default 1.0) #[doc(alias = "AddPolyline", alias = "AddConvexPolyFilled")] - pub fn add_polyline( - &'ui self, - points: Vec

, - c: C, - ) -> Polyline<'ui> + pub fn add_polyline(&'ui self, points: Vec

, c: C) -> Polyline<'ui> where C: Into, P: Into, @@ -516,11 +512,7 @@ pub struct Polyline<'ui> { } impl<'ui> Polyline<'ui> { - fn new( - draw_list: &'ui DrawListMut<'_>, - points: Vec

, - c: C, - ) -> Self + fn new(draw_list: &'ui DrawListMut<'_>, points: Vec

, c: C) -> Self where C: Into, P: Into, @@ -573,7 +565,6 @@ impl<'ui> Polyline<'ui> { } } - /// Represents a rectangle about to be drawn #[must_use = "should call .build() to draw the object"] pub struct Rect<'ui> { From dd86066ed0a36e80e3ccac46b7ff157f9fb74bf1 Mon Sep 17 00:00:00 2001 From: dbr Date: Tue, 12 Oct 2021 14:33:48 +1100 Subject: [PATCH 065/200] Minor typo in example string --- imgui-examples/examples/test_window_impl.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/imgui-examples/examples/test_window_impl.rs b/imgui-examples/examples/test_window_impl.rs index f58c100a4..4883fee5d 100644 --- a/imgui-examples/examples/test_window_impl.rs +++ b/imgui-examples/examples/test_window_impl.rs @@ -444,7 +444,7 @@ fn show_test_window(ui: &Ui, state: &mut State, opened: &mut bool) { ui.text_wrapped( "This text should automatically wrap on the edge of \ the window.The current implementation for text \ - wrapping follows simple rulessuitable for English \ + wrapping follows simple rules suitable for English \ and possibly other languages." ); ui.spacing(); From e25e51d3fc0004c3d7065f6d8e7571a545daca0d Mon Sep 17 00:00:00 2001 From: dbr Date: Wed, 13 Oct 2021 15:42:30 +1100 Subject: [PATCH 066/200] Remove redundant as_slice call per PR feedback --- imgui/src/draw_list.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/imgui/src/draw_list.rs b/imgui/src/draw_list.rs index 19b1b2685..01d22709f 100644 --- a/imgui/src/draw_list.rs +++ b/imgui/src/draw_list.rs @@ -545,7 +545,7 @@ impl<'ui> Polyline<'ui> { unsafe { sys::ImDrawList_AddConvexPolyFilled( self.draw_list.draw_list, - self.points.as_slice().as_ptr() as *const sys::ImVec2, + self.points.as_ptr() as *const sys::ImVec2, self.points.len() as i32, self.color.into(), ) @@ -554,7 +554,7 @@ impl<'ui> Polyline<'ui> { unsafe { sys::ImDrawList_AddPolyline( self.draw_list.draw_list, - self.points.as_slice().as_ptr() as *const sys::ImVec2, + self.points.as_ptr() as *const sys::ImVec2, self.points.len() as i32, self.color.into(), sys::ImDrawFlags::default(), From 4b9b6098174c64c204b784702476cbd81659f2fb Mon Sep 17 00:00:00 2001 From: dbr Date: Wed, 13 Oct 2021 16:21:40 +1100 Subject: [PATCH 067/200] Update changelog for add_poyline --- CHANGELOG.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown index 925861c78..d6bef9c56 100644 --- a/CHANGELOG.markdown +++ b/CHANGELOG.markdown @@ -22,6 +22,8 @@ - DEPRECATED: `InputFloat` and `InputInt` have been deprecated. `ui.input_float` and `ui.input_int` are _not_, however, and instead will just call `input_scalar` as appropriate. Therefore, please switch your code to `ui.input_float` or `ui.input_int`. +- Added `add_polyline` method to `DrawListMut`, which binds to Dear ImGui's `AddPolyline` and `AddConvexPolyFilled` + ## [0.8.0] - 2021-09-17 Welcome to the `0.8.0` update. This is one of the largest updates imgui-rs has ever seen; it will generate errors in a `0.7` project, but hopefully it should be both quick to fix, and enjoyable to update. See our [release page](https://github.com/imgui-rs/imgui-rs/releases/tag/v0.8.0) for more information and a list of contributors to this cycle. Thank you to everyone who uses `imgui-rs`, files issues, and spend their time and effort to PR new changes into the codebase. Because of all that effort, this is by far the best `imgui-rs` has looked! From bcc951a8fcadd72af327022215baa287c2065951 Mon Sep 17 00:00:00 2001 From: Anish Jewalikar Date: Wed, 13 Oct 2021 11:38:19 +0530 Subject: [PATCH 068/200] Fix a bug in SDL 2 support crate (#549). --- imgui-sdl2-support/src/lib.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/imgui-sdl2-support/src/lib.rs b/imgui-sdl2-support/src/lib.rs index 2c899bb1c..edf8c6bfc 100644 --- a/imgui-sdl2-support/src/lib.rs +++ b/imgui-sdl2-support/src/lib.rs @@ -29,7 +29,7 @@ use sdl2::{ /// macOS now...) #[derive(Debug, Clone, Copy, Default)] struct Button { - pressed_this_frame: bool, + pub pressed_this_frame: bool, state: bool, } @@ -249,7 +249,11 @@ impl SdlPlatform { // Update mouse button state for (io_down, button) in io.mouse_down.iter_mut().zip(&mut self.mouse_buttons) { *io_down = button.get(); - *button = Button::new(); + + // this frame is now "over" and we can set pressed_this_frame to false, but + // the state cannot be set to false due to actions that require multi-frame inputs + // ie: dragging, resizing and this is handled by the `MouseButtonDown` event. + button.pressed_this_frame = false; } // Set mouse position if requested by imgui-rs From 311a31d74c50e836eaf7640e741166da3caa8a2c Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Tue, 12 Oct 2021 11:26:34 -0400 Subject: [PATCH 069/200] menu rewrite --- CHANGELOG.markdown | 2 + imgui-examples/examples/test_window_impl.rs | 105 ++++++++------------ imgui/src/widget/menu.rs | 71 +++++++++++-- 3 files changed, 107 insertions(+), 71 deletions(-) diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown index d6bef9c56..34d4f86ad 100644 --- a/CHANGELOG.markdown +++ b/CHANGELOG.markdown @@ -24,6 +24,8 @@ - Added `add_polyline` method to `DrawListMut`, which binds to Dear ImGui's `AddPolyline` and `AddConvexPolyFilled` +- BREAKING: `MenuItem::new` now takes `&ui`, but has been deprecated. Instead, use `ui.menu_item`. + ## [0.8.0] - 2021-09-17 Welcome to the `0.8.0` update. This is one of the largest updates imgui-rs has ever seen; it will generate errors in a `0.7` project, but hopefully it should be both quick to fix, and enjoyable to update. See our [release page](https://github.com/imgui-rs/imgui-rs/releases/tag/v0.8.0) for more information and a list of contributors to this cycle. Thank you to everyone who uses `imgui-rs`, files issues, and spend their time and effort to PR new changes into the codebase. Because of all that effort, this is by far the best `imgui-rs` has looked! diff --git a/imgui-examples/examples/test_window_impl.rs b/imgui-examples/examples/test_window_impl.rs index 4883fee5d..ad5ce7ff3 100644 --- a/imgui-examples/examples/test_window_impl.rs +++ b/imgui-examples/examples/test_window_impl.rs @@ -336,46 +336,29 @@ fn show_test_window(ui: &Ui, state: &mut State, opened: &mut bool) { window.build(|| { let _w = ui.push_item_width(-140.0); ui.text(format!("dear imgui says hello. ({})", imgui::dear_imgui_version())); - if let Some(menu_bar) = ui.begin_menu_bar() { + if let Some(_menu_bar) = ui.begin_menu_bar() { if let Some(menu) = ui.begin_menu("Menu") { show_example_menu_file(ui, &mut state.file_menu); menu.end(); } - if let Some(menu) = ui.begin_menu("Examples") { - MenuItem::new("Main menu bar") - .build_with_ref(ui, &mut state.show_app_main_menu_bar); - MenuItem::new("Console") - .build_with_ref(ui, &mut state.show_app_console); - MenuItem::new("Log") - .build_with_ref(ui, &mut state.show_app_log); - MenuItem::new("Simple layout") - .build_with_ref(ui, &mut state.show_app_layout); - MenuItem::new("Property editor") - .build_with_ref(ui, &mut state.show_app_property_editor); - MenuItem::new("Long text display") - .build_with_ref(ui, &mut state.show_app_long_text); - MenuItem::new("Auto-resizing window") - .build_with_ref(ui, &mut state.show_app_auto_resize); - MenuItem::new("Constrained-resizing window") - .build_with_ref(ui, &mut state.show_app_constrained_resize); - MenuItem::new("Simple overlay") - .build_with_ref(ui, &mut state.show_app_fixed_overlay); - MenuItem::new("Manipulating window title") - .build_with_ref(ui, &mut state.show_app_manipulating_window_title); - MenuItem::new("Custom rendering") - .build_with_ref(ui, &mut state.show_app_custom_rendering); - menu.end(); + if let Some(_t) = ui.begin_menu("Examples") { + ui.menu_item_selected_ref("Main menu bar", &mut state.show_app_main_menu_bar); + ui.menu_item_selected_ref("Console", &mut state.show_app_console); + ui.menu_item_selected_ref("Log", &mut state.show_app_log); + ui.menu_item_selected_ref("Simple layout", &mut state.show_app_layout); + ui.menu_item_selected_ref("Property editor", &mut state.show_app_property_editor); + ui.menu_item_selected_ref("Long text display", &mut state.show_app_long_text); + ui.menu_item_selected_ref("Auto-resizing window", &mut state.show_app_auto_resize); + ui.menu_item_selected_ref("Constrained-resizing window", &mut state.show_app_constrained_resize); + ui.menu_item_selected_ref("Simple overlay", &mut state.show_app_fixed_overlay); + ui.menu_item_selected_ref("Manipulating window title", &mut state.show_app_manipulating_window_title); + ui.menu_item_selected_ref("Custom Rendering", &mut state.show_app_custom_rendering); } - if let Some(menu) = ui.begin_menu("Help") { - MenuItem::new("Metrics") - .build_with_ref(ui, &mut state.show_app_metrics); - MenuItem::new("Style Editor") - .build_with_ref(ui, &mut state.show_app_style_editor); - MenuItem::new("About ImGui") - .build_with_ref(ui, &mut state.show_app_about); - menu.end(); + if let Some(_menu) = ui.begin_menu("Help") { + ui.menu_item_selected_ref("Metrics", &mut state.show_app_metrics); + ui.menu_item_selected_ref("Style Editor", &mut state.show_app_style_editor); + ui.menu_item_selected_ref("About ImGui", &mut state.show_app_about); } - menu_bar.end(); } ui.spacing(); if CollapsingHeader::new("Help").build(ui) { @@ -843,15 +826,15 @@ fn show_example_app_main_menu_bar(ui: &Ui, state: &mut State) { menu.end(); } if let Some(menu) = ui.begin_menu("Edit") { - MenuItem::new("Undo").shortcut("CTRL+Z").build(ui); - MenuItem::new("Redo") + ui.menu_item_shortcut("Undo", "CTRL+Z"); + ui.menu_item_config("Redo") .shortcut("CTRL+Y") .enabled(false) - .build(ui); + .build(); ui.separator(); - MenuItem::new("Cut").shortcut("CTRL+X").build(ui); - MenuItem::new("Copy").shortcut("CTRL+C").build(ui); - MenuItem::new("Paste").shortcut("CTRL+V").build(ui); + ui.menu_item_shortcut("Cut", "CTRL+X"); + ui.menu_item_shortcut("Copy", "CTRL+C"); + ui.menu_item_shortcut("Paste", "CTRL+V"); menu.end(); } menu_bar.end(); @@ -859,29 +842,29 @@ fn show_example_app_main_menu_bar(ui: &Ui, state: &mut State) { } fn show_example_menu_file(ui: &Ui, state: &mut FileMenuState) { - MenuItem::new("(dummy menu)").enabled(false).build(ui); - MenuItem::new("New").build(ui); - MenuItem::new("Open").shortcut("Ctrl+O").build(ui); - if let Some(menu) = ui.begin_menu("Open Recent") { - MenuItem::new("fish_hat.c").build(ui); - MenuItem::new("fish_hat.inl").build(ui); - MenuItem::new("fish_hat.h").build(ui); + ui.menu_item_enabled("(dummy_menu)", false); + ui.menu_item("New"); + ui.menu_item_shortcut("Open", "Ctrl+O"); + if let Some(_menu) = ui.begin_menu("Open Recent") { + ui.menu_item("fish_hat.c"); + ui.menu_item("fish_hat.inl"); + ui.menu_item("fish_hat.h"); if let Some(menu) = ui.begin_menu("More..") { - MenuItem::new("Hello").build(ui); - MenuItem::new("Sailor").build(ui); - if let Some(menu) = ui.begin_menu("Recurse..") { + ui.menu_item("Hello"); + ui.menu_item("Sailor"); + + if let Some(_menu) = ui.begin_menu("Recurse..") { show_example_menu_file(ui, state); menu.end(); } - menu.end(); } - menu.end(); } - MenuItem::new("Save").shortcut("Ctrl+S").build(ui); - MenuItem::new("Save As..").build(ui); + ui.menu_item_shortcut("Save", "Ctrl+S"); + ui.menu_item("Save As.."); ui.separator(); - if let Some(menu) = ui.begin_menu("Options") { - MenuItem::new("Enabled").build_with_ref(ui, &mut state.enabled); + if let Some(_menu) = ui.begin_menu("Options") { + ui.menu_item_selected_ref("Enabled", &mut state.enabled); + ui.child_window("child") .size([0.0, 60.0]) .border(true) @@ -896,17 +879,15 @@ fn show_example_menu_file(ui: &Ui, state: &mut FileMenuState) { let items = ["Yes", "No", "Maybe"]; ui.combo_simple_string("Combo", &mut state.n, &items); ui.checkbox("Check", &mut state.b); - menu.end(); } - if let Some(menu) = ui.begin_menu("Colors") { + if let Some(_menu) = ui.begin_menu("Colors") { for &col in StyleColor::VARIANTS.iter() { - MenuItem::new(format!("{:?}", col)).build(ui); + ui.menu_item(format!("{:?}", col)); } - menu.end(); } assert!(ui.begin_menu_with_enabled("Disabled", false).is_none()); - MenuItem::new("Checked").selected(true).build(ui); - MenuItem::new("Quit").shortcut("Alt+F4").build(ui); + ui.menu_item_selected("Checked", true); + ui.menu_item_shortcut("Quit", "Alt+F4"); } fn show_example_app_auto_resize(ui: &Ui, state: &mut AutoResizeState, opened: &mut bool) { diff --git a/imgui/src/widget/menu.rs b/imgui/src/widget/menu.rs index 0b4a26378..92676468c 100644 --- a/imgui/src/widget/menu.rs +++ b/imgui/src/widget/menu.rs @@ -107,31 +107,83 @@ impl Ui { f(); } } + + /// Creates a menu item with the given label, returning `true` if it was pressed. + /// + /// Note: a `menu_item` is the actual button/selectable within a Menu. + pub fn menu_item(&self, label: impl AsRef) -> bool { + self.menu_item_config(label).build() + } + + /// Creates a menu item with the given label and enablement, returning `true` if it was pressed. + /// + /// Note: a `menu_item` is the actual button/selectable within a Menu. + pub fn menu_item_enabled(&self, label: impl AsRef, enabled: bool) -> bool { + self.menu_item_config(label).enabled(enabled).build() + } + + /// Creates a menu item with the given label and selection, returning `true` if it was pressed. + /// + /// Note: a `menu_item` is the actual button/selectable within a Menu. + pub fn menu_item_selected(&self, label: impl AsRef, selected: bool) -> bool { + self.menu_item_config(label).selected(selected).build() + } + + /// Creates a menu item with the given label and selection, returning `true` if it was pressed, + /// while mutating `selected` to the correct state. + /// + /// Note: a `menu_item` is the actual button/selectable within a Menu. + pub fn menu_item_selected_ref(&self, label: impl AsRef, selected: &mut bool) -> bool { + self.menu_item_config(label).build_with_ref(selected) + } + + /// Creates a menu item with the given label and shortcut, returning `true` if it was pressed. + /// + /// Note: a `menu_item` is the actual button/selectable within a Menu. + pub fn menu_item_shortcut(&self, label: impl AsRef, shortcut: impl AsRef) -> bool { + self.menu_item_config(label).shortcut(shortcut).build() + } + + // Creates a menu item builder, with further methods on it as needed. + // + // Note: a `menu_item` is the actual button/selectable within a Menu. + pub fn menu_item_config>(&self, label: L) -> MenuItem<'_, L> { + MenuItem { + label, + shortcut: None, + selected: false, + enabled: false, + ui: self, + } + } } /// Builder for a menu item. #[derive(Copy, Clone, Debug)] #[must_use] -pub struct MenuItem { +pub struct MenuItem<'ui, Label, Shortcut = &'static str> { label: Label, shortcut: Option, selected: bool, enabled: bool, + ui: &'ui Ui, } -impl> MenuItem

, c: C) -> Polyline<'ui> where diff --git a/imgui/src/lib.rs b/imgui/src/lib.rs index 08576fc79..94872384b 100644 --- a/imgui/src/lib.rs +++ b/imgui/src/lib.rs @@ -202,6 +202,8 @@ impl Ui { /// This function right now simply **ends** the current frame, but does not /// return draw data. If you want to end the frame without generated draw data, /// and thus save some CPU time, use [`end_frame_early`]. + /// + /// [`end_frame_early`]: Self::end_frame_early #[deprecated( since = "0.9.0", note = "use `Context::render` to render frames, or `end_frame_early` to not render at all" @@ -568,6 +570,8 @@ impl<'ui> Ui { InputScalar::new(self, label, value) } /// Shows a horizontal array of scalar value input fields. See [`input_scalar`]. + /// + /// [`input_scalar`]: Self::input_scalar #[doc(alias = "InputScalarN")] pub fn input_scalar_n<'p, L, T>( &'ui self, diff --git a/imgui/src/widget/menu.rs b/imgui/src/widget/menu.rs index e20cfab5e..61c70ffeb 100644 --- a/imgui/src/widget/menu.rs +++ b/imgui/src/widget/menu.rs @@ -125,6 +125,8 @@ impl Ui { /// for simple Menu Items with no features on them. /// /// Note: a `menu_item` is the actual button/selectable within a Menu. + /// + /// [`menu_item`]: Self::menu_item #[doc(alias = "MenuItem")] pub fn menu_item_config>(&self, label: L) -> MenuItem<'_, L> { MenuItem { From 92f94510c6092d242c722f697469d098222c42e5 Mon Sep 17 00:00:00 2001 From: Jack OntheGoMac Date: Thu, 23 Dec 2021 13:09:31 -0800 Subject: [PATCH 113/200] Fix cargofmt --- imgui/src/lib.rs | 4 ++-- imgui/src/widget/menu.rs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/imgui/src/lib.rs b/imgui/src/lib.rs index 94872384b..7eb289f20 100644 --- a/imgui/src/lib.rs +++ b/imgui/src/lib.rs @@ -202,7 +202,7 @@ impl Ui { /// This function right now simply **ends** the current frame, but does not /// return draw data. If you want to end the frame without generated draw data, /// and thus save some CPU time, use [`end_frame_early`]. - /// + /// /// [`end_frame_early`]: Self::end_frame_early #[deprecated( since = "0.9.0", @@ -570,7 +570,7 @@ impl<'ui> Ui { InputScalar::new(self, label, value) } /// Shows a horizontal array of scalar value input fields. See [`input_scalar`]. - /// + /// /// [`input_scalar`]: Self::input_scalar #[doc(alias = "InputScalarN")] pub fn input_scalar_n<'p, L, T>( diff --git a/imgui/src/widget/menu.rs b/imgui/src/widget/menu.rs index 61c70ffeb..b273c865f 100644 --- a/imgui/src/widget/menu.rs +++ b/imgui/src/widget/menu.rs @@ -125,7 +125,7 @@ impl Ui { /// for simple Menu Items with no features on them. /// /// Note: a `menu_item` is the actual button/selectable within a Menu. - /// + /// /// [`menu_item`]: Self::menu_item #[doc(alias = "MenuItem")] pub fn menu_item_config>(&self, label: L) -> MenuItem<'_, L> { From cb65a3921711b20febc3d2036345e411f1f53e45 Mon Sep 17 00:00:00 2001 From: LoipesMas <46327403+LoipesMas@users.noreply.github.com> Date: Tue, 28 Dec 2021 12:23:09 +0000 Subject: [PATCH 114/200] Minor fixes to README --- README.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.markdown b/README.markdown index 9b3eece9f..0960ea15e 100644 --- a/README.markdown +++ b/README.markdown @@ -30,7 +30,7 @@ ui.window("Hello world") - imgui: High-level safe API - imgui-winit-support: Backend platform implementation that uses the `winit` crate (latest by default, but earlier versions are supported via feature flags) -- imgui-glow-renderer: Renderer implementation that uses the `imgui` crate +- imgui-glow-renderer: Renderer implementation that uses the `glow` crate - imgui-glium-renderer: Renderer implementation that uses the `glium` crate - imgui-sys: Low-level unsafe API (automatically generated) @@ -85,7 +85,7 @@ The most tested platform/renderer combination is `imgui-glium-renderer` + combination. There's also `imgui-glow-renderer`, which will increasingly replace `glium`. -Additionally, there are other libraries which provide other kind sof renderers, which may be out of date with `imgui-rs` releases, but might work well for your use case: +Additionally, there are other libraries which provide other kinds of renderers, which may be out of date with `imgui-rs` releases, but might work well for your use case: 1. [`imgui-wgpu`](https://github.com/Yatekii/imgui-wgpu-rs) 2. [`imgui-d3d12-renderer`](https://github.com/curldivergence/imgui-d3d12-renderer) From 9128066f01a36803c04609f288fc04dd2c04641b Mon Sep 17 00:00:00 2001 From: dbr Date: Wed, 5 Jan 2022 14:47:41 +1100 Subject: [PATCH 115/200] Fix up glob patterns in imgui-sys Were set based on old pre-docking-branch-support paths Closes #596 --- imgui-sys/Cargo.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/imgui-sys/Cargo.toml b/imgui-sys/Cargo.toml index ff5b2acb9..1a7605fd4 100644 --- a/imgui-sys/Cargo.toml +++ b/imgui-sys/Cargo.toml @@ -10,8 +10,8 @@ license = "MIT/Apache-2.0" categories = ["gui", "external-ffi-bindings"] build = "build.rs" links = "imgui" -# exclude json, lua, and the imgui subdirs (imgui/examples, imgui/docs, etc) -exclude = ["third-party/*.json", "third-party/*.lua", "third-party/imgui/*/"] +# exclude .json, .lua from imgui dirs - they are intermediate artifacts from cimgui generator +exclude = ["third-party/imgui-*/*.json", "third-party/imgui-*/*.lua"] [dependencies] chlorine = "1.0.7" From f03a0c3449328c8cbc93eaf3310bf1642af9067c Mon Sep 17 00:00:00 2001 From: David M Date: Thu, 6 Jan 2022 16:50:29 -0500 Subject: [PATCH 116/200] Fix glow renderer for minor version zero --- imgui-glow-renderer/src/lib.rs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/imgui-glow-renderer/src/lib.rs b/imgui-glow-renderer/src/lib.rs index 87fd21429..a6be20d6f 100644 --- a/imgui-glow-renderer/src/lib.rs +++ b/imgui-glow-renderer/src/lib.rs @@ -932,9 +932,8 @@ void main() { } let vertex_source = format!( - "#version {major}{minor}{es_extras}\n{body}", - major = major, - minor = minor * 10, + "#version {version}{es_extras}\n{body}", + version = major * 100 + minor * 10, es_extras = if is_gles { " es\nprecision mediump float;" } else { @@ -943,9 +942,8 @@ void main() { body = VERTEX_BODY, ); let fragment_source = format!( - "#version {major}{minor}{es_extras}{defines}\n{body}", - major = major, - minor = minor * 10, + "#version {version}{es_extras}{defines}\n{body}", + version = major * 100 + minor * 10, es_extras = if is_gles { " es\nprecision mediump float;" } else { From 6dd4517359775f85a408150a9a43e72a9c7c63c6 Mon Sep 17 00:00:00 2001 From: dbr Date: Tue, 11 Jan 2022 15:15:31 +1100 Subject: [PATCH 117/200] Update imgui to 1.86 Also script file-copy procedure --- imgui-sys/third-party/_update-imgui.sh | 36 + .../imgui-docking/imgui/imconfig.h | 2 +- .../third-party/imgui-docking/imgui/imgui.cpp | 2699 +++++++++++------ .../third-party/imgui-docking/imgui/imgui.h | 106 +- .../imgui-docking/imgui/imgui_demo.cpp | 311 +- .../imgui-docking/imgui/imgui_draw.cpp | 90 +- .../imgui-docking/imgui/imgui_internal.h | 374 ++- .../imgui-docking/imgui/imgui_tables.cpp | 22 +- .../imgui-docking/imgui/imgui_widgets.cpp | 486 +-- .../imgui/misc/freetype/imgui_freetype.cpp | 6 + .../third-party/imgui-master/imgui/imconfig.h | 2 +- .../third-party/imgui-master/imgui/imgui.cpp | 2642 ++++++++++------ .../third-party/imgui-master/imgui/imgui.h | 117 +- .../imgui-master/imgui/imgui_demo.cpp | 287 +- .../imgui-master/imgui/imgui_draw.cpp | 79 +- .../imgui-master/imgui/imgui_internal.h | 480 +-- .../imgui-master/imgui/imgui_tables.cpp | 22 +- .../imgui-master/imgui/imgui_widgets.cpp | 510 ++-- .../imgui/misc/freetype/imgui_freetype.cpp | 10 +- imgui-sys/third-party/update-imgui.sh | 8 + 20 files changed, 5494 insertions(+), 2795 deletions(-) create mode 100755 imgui-sys/third-party/_update-imgui.sh create mode 100755 imgui-sys/third-party/update-imgui.sh diff --git a/imgui-sys/third-party/_update-imgui.sh b/imgui-sys/third-party/_update-imgui.sh new file mode 100755 index 000000000..544fbf673 --- /dev/null +++ b/imgui-sys/third-party/_update-imgui.sh @@ -0,0 +1,36 @@ +#!/bin/bash +set -euo pipefail + +SCRIPT_DIR=$(dirname ${0} | python3 -c 'import os, sys; print(os.path.abspath(sys.stdin.read().strip()))' ) +IMGUI_DIR=${1:?} +COMMITISH=${2:?} +OUT_DIR=${3:?} + +# Location of temporary checkout of imgui at specified commit (or branch) +CHECKOUT="${SCRIPT_DIR}"/_temp_imgui_worktree + +# Make checkout + +pushd "${IMGUI_DIR}" > /dev/null + +# Sanity check the supplied imgui path +git rev-parse HEAD +ls imgui.h + +# Get files from specified rev +mkdir "${CHECKOUT}" +git archive "${COMMITISH}" | tar xC "${CHECKOUT}" + +popd > /dev/null + +# Copy required files +mkdir -p ${OUT_DIR}/ +mkdir -p ${OUT_DIR}/misc/freetype/ + +cp "${CHECKOUT}"/LICENSE.txt "${OUT_DIR}"/ +cp "${CHECKOUT}"/*.{h,cpp} "${OUT_DIR}"/ +cp -r "${CHECKOUT}"/misc/freetype/ "${OUT_DIR}"/misc/ + +# Clean up + +rm -r "${CHECKOUT}" diff --git a/imgui-sys/third-party/imgui-docking/imgui/imconfig.h b/imgui-sys/third-party/imgui-docking/imgui/imconfig.h index a0c86caad..7082c5507 100644 --- a/imgui-sys/third-party/imgui-docking/imgui/imconfig.h +++ b/imgui-sys/third-party/imgui-docking/imgui/imconfig.h @@ -33,7 +33,7 @@ // It is very strongly recommended to NOT disable the demo windows during development. Please read comments in imgui_demo.cpp. //#define IMGUI_DISABLE // Disable everything: all headers and source files will be empty. //#define IMGUI_DISABLE_DEMO_WINDOWS // Disable demo windows: ShowDemoWindow()/ShowStyleEditor() will be empty. Not recommended. -//#define IMGUI_DISABLE_METRICS_WINDOW // Disable metrics/debugger window: ShowMetricsWindow() will be empty. +//#define IMGUI_DISABLE_METRICS_WINDOW // Disable metrics/debugger and other debug tools: ShowMetricsWindow() and ShowStackToolWindow() will be empty. //---- Don't implement some functions to reduce linkage requirements. //#define IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCTIONS // [Win32] Don't implement default clipboard handler. Won't use and link with OpenClipboard/GetClipboardData/CloseClipboard etc. (user32.lib/.a, kernel32.lib/.a) diff --git a/imgui-sys/third-party/imgui-docking/imgui/imgui.cpp b/imgui-sys/third-party/imgui-docking/imgui/imgui.cpp index 5e86bc1d4..eb5c71011 100644 --- a/imgui-sys/third-party/imgui-docking/imgui/imgui.cpp +++ b/imgui-sys/third-party/imgui-docking/imgui/imgui.cpp @@ -1,4 +1,4 @@ -// dear imgui, v1.85 WIP +// dear imgui, v1.86 // (main code and documentation) // Help: @@ -83,6 +83,7 @@ CODE // [SECTION] DOCKING // [SECTION] PLATFORM DEPENDENT HELPERS // [SECTION] METRICS/DEBUGGER WINDOW +// [SECTION] OTHER DEBUG TOOLS (ITEM PICKER, STACK TOOL) */ @@ -389,7 +390,9 @@ CODE - 2021/XX/XX (1.XX) - Moved IME support functions from io.ImeSetInputScreenPosFn, io.ImeWindowHandle to the PlatformIO api. - - 2021/08/23 (1.85) - removed GetWindowContentRegionWidth() function. keep inline redirection helper. can use 'GetWindowContentRegionMax().x - GetWindowContentRegionMin().x' instead. + - 2021/12/20 (1.86) - backends: removed obsolete Marmalade backend (imgui_impl_marmalade.cpp) + example. Find last supported version at https://github.com/ocornut/imgui/wiki/Bindings + - 2021/11/04 (1.86) - removed CalcListClipping() function. Prefer using ImGuiListClipper which can return non-contiguous ranges. Please open an issue if you think you really need this function. + - 2021/08/23 (1.85) - removed GetWindowContentRegionWidth() function. keep inline redirection helper. can use 'GetWindowContentRegionMax().x - GetWindowContentRegionMin().x' instead for generally 'GetContentRegionAvail().x' is more useful. - 2021/07/26 (1.84) - commented out redirecting functions/enums names that were marked obsolete in 1.67 and 1.69 (March 2019): - ImGui::GetOverlayDrawList() -> use ImGui::GetForegroundDrawList() - ImFont::GlyphRangesBuilder -> use ImFontGlyphRangesBuilder @@ -732,9 +735,11 @@ CODE Q&A: Usage ---------- - Q: Why is my widget not reacting when I click on it? - Q: How can I have widgets with an empty label? - Q: How can I have multiple widgets with the same label? + Q: About the ID Stack system.. + - Why is my widget not reacting when I click on it? + - How can I have widgets with an empty label? + - How can I have multiple widgets with the same label? + - How can I have multiple windows with the same label? Q: How can I display an image? What is ImTextureID, how does it works? Q: How can I use my own math types instead of ImVec2/ImVec4? Q: How can I interact with standard C++ types (such as std::string and std::vector)? @@ -923,40 +928,46 @@ namespace ImGui static void NavUpdate(); static void NavUpdateWindowing(); static void NavUpdateWindowingOverlay(); -static void NavUpdateInitResult(); static void NavUpdateCancelRequest(); static void NavUpdateCreateMoveRequest(); +static void NavUpdateCreateTabbingRequest(); static float NavUpdatePageUpPageDown(); static inline void NavUpdateAnyRequestFlag(); +static void NavUpdateCreateWrappingRequest(); static void NavEndFrame(); -static bool NavScoreItem(ImGuiNavItemData* result, ImRect cand); -static void NavApplyItemToResult(ImGuiNavItemData* result, ImGuiWindow* window, ImGuiID id, const ImRect& nav_bb_rel); -static void NavProcessItem(ImGuiWindow* window, const ImRect& nav_bb, ImGuiID id); +static bool NavScoreItem(ImGuiNavItemData* result); +static void NavApplyItemToResult(ImGuiNavItemData* result); +static void NavProcessItem(); +static void NavProcessItemForTabbingRequest(ImGuiID id); static ImVec2 NavCalcPreferredRefPos(); static void NavSaveLastChildNavWindowIntoParent(ImGuiWindow* nav_window); static ImGuiWindow* NavRestoreLastChildNavWindow(ImGuiWindow* window); static void NavRestoreLayer(ImGuiNavLayer layer); +static void NavRestoreHighlightAfterMove(); static int FindWindowFocusIndex(ImGuiWindow* window); -// Error Checking +// Error Checking and Debug Tools static void ErrorCheckNewFrameSanityChecks(); static void ErrorCheckEndFrameSanityChecks(); +static void UpdateDebugToolItemPicker(); +static void UpdateDebugToolStackQueries(); // Misc static void UpdateSettings(); static void UpdateMouseInputs(); static void UpdateMouseWheel(); -static void UpdateTabFocus(); -static void UpdateDebugToolItemPicker(); static bool UpdateWindowManualResize(ImGuiWindow* window, const ImVec2& size_auto_fit, int* border_held, int resize_grip_count, ImU32 resize_grip_col[4], const ImRect& visibility_rect); static void RenderWindowOuterBorders(ImGuiWindow* window); static void RenderWindowDecorations(ImGuiWindow* window, const ImRect& title_bar_rect, bool title_bar_is_highlight, bool handle_borders_and_resize_grips, int resize_grip_count, const ImU32 resize_grip_col[4], float resize_grip_draw_size); static void RenderWindowTitleBarContents(ImGuiWindow* window, const ImRect& title_bar_rect, const char* name, bool* p_open); -static void EndFrameDrawDimmedBackgrounds(); +static void RenderDimmedBackgroundBehindWindow(ImGuiWindow* window, ImU32 col); +static void RenderDimmedBackgrounds(); +static ImGuiWindow* FindBlockingModal(ImGuiWindow* window); // Viewports const ImGuiID IMGUI_VIEWPORT_DEFAULT_ID = 0x11111111; // Using an arbitrary constant instead of e.g. ImHashStr("ViewportDefault", 0); so it's easier to spot in the debugger. The exact value doesn't matter. static ImGuiViewportP* AddUpdateViewport(ImGuiWindow* window, ImGuiID id, const ImVec2& platform_pos, const ImVec2& size, ImGuiViewportFlags flags); +static void DestroyViewport(ImGuiViewportP* viewport); static void UpdateViewportsNewFrame(); static void UpdateViewportsEndFrame(); static void WindowSelectViewport(ImGuiWindow* window); @@ -1122,6 +1133,7 @@ ImGuiIO::ImGuiIO() // Docking options (when ImGuiConfigFlags_DockingEnable is set) ConfigDockingNoSplit = false; + ConfigDockingWithShift = false; ConfigDockingAlwaysTabBar = false; ConfigDockingTransparentPayload = false; @@ -1973,7 +1985,7 @@ void ImGuiStorage::BuildSortByKey() { struct StaticFunc { - static int IMGUI_CDECL PairCompareByID(const void* lhs, const void* rhs) + static int IMGUI_CDECL PairComparerByID(const void* lhs, const void* rhs) { // We can't just do a subtraction because qsort uses signed integers and subtracting our ID doesn't play well with that. if (((const ImGuiStoragePair*)lhs)->key > ((const ImGuiStoragePair*)rhs)->key) return +1; @@ -1981,8 +1993,7 @@ void ImGuiStorage::BuildSortByKey() return 0; } }; - if (Data.Size > 1) - ImQsort(Data.Data, (size_t)Data.Size, sizeof(ImGuiStoragePair), StaticFunc::PairCompareByID); + ImQsort(Data.Data, (size_t)Data.Size, sizeof(ImGuiStoragePair), StaticFunc::PairComparerByID); } int ImGuiStorage::GetInt(ImGuiID key, int default_val) const @@ -2274,9 +2285,10 @@ static bool GetSkipItemForListClipping() return (g.CurrentTable ? g.CurrentTable->HostSkipItems : g.CurrentWindow->SkipItems); } -// Helper to calculate coarse clipping of large list of evenly sized items. -// NB: Prefer using the ImGuiListClipper higher-level helper if you can! Read comments and instructions there on how those use this sort of pattern. -// NB: 'items_count' is only used to clamp the result, if you don't know your count you can use INT_MAX +#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS +// Legacy helper to calculate coarse clipping of large list of evenly sized items. +// This legacy API is not ideal because it assume we will return a single contiguous rectangle. +// Prefer using ImGuiListClipper which can returns non-contiguous ranges. void ImGui::CalcListClipping(int items_count, float items_height, int* out_items_display_start, int* out_items_display_end) { ImGuiContext& g = *GImGui; @@ -2294,21 +2306,24 @@ void ImGui::CalcListClipping(int items_count, float items_height, int* out_items return; } - // We create the union of the ClipRect and the NavScoringRect which at worst should be 1 page away from ClipRect - ImRect unclipped_rect = window->ClipRect; - if (g.NavMoveRequest) - unclipped_rect.Add(g.NavScoringRect); + // We create the union of the ClipRect and the scoring rect which at worst should be 1 page away from ClipRect + // We don't include g.NavId's rectangle in there (unless g.NavJustMovedToId is set) because the rectangle enlargement can get costly. + ImRect rect = window->ClipRect; + if (g.NavMoveScoringItems) + rect.Add(g.NavScoringNoClipRect); if (g.NavJustMovedToId && window->NavLastIds[0] == g.NavJustMovedToId) - unclipped_rect.Add(ImRect(window->Pos + window->NavRectRel[0].Min, window->Pos + window->NavRectRel[0].Max)); + rect.Add(WindowRectRelToAbs(window, window->NavRectRel[0])); // Could store and use NavJustMovedToRectRel const ImVec2 pos = window->DC.CursorPos; - int start = (int)((unclipped_rect.Min.y - pos.y) / items_height); - int end = (int)((unclipped_rect.Max.y - pos.y) / items_height); + int start = (int)((rect.Min.y - pos.y) / items_height); + int end = (int)((rect.Max.y - pos.y) / items_height); // When performing a navigation request, ensure we have one item extra in the direction we are moving to - if (g.NavMoveRequest && g.NavMoveClipDir == ImGuiDir_Up) + // FIXME: Verify this works with tabbing + const bool is_nav_request = (g.NavMoveScoringItems && g.NavWindow && g.NavWindow->RootWindowForNav == window->RootWindowForNav); + if (is_nav_request && g.NavMoveClipDir == ImGuiDir_Up) start--; - if (g.NavMoveRequest && g.NavMoveClipDir == ImGuiDir_Down) + if (is_nav_request && g.NavMoveClipDir == ImGuiDir_Down) end++; start = ImClamp(start, 0, items_count); @@ -2316,17 +2331,42 @@ void ImGui::CalcListClipping(int items_count, float items_height, int* out_items *out_items_display_start = start; *out_items_display_end = end; } +#endif + +static void ImGuiListClipper_SortAndFuseRanges(ImVector& ranges, int offset = 0) +{ + if (ranges.Size - offset <= 1) + return; + + // Helper to order ranges and fuse them together if possible (bubble sort is fine as we are only sorting 2-3 entries) + for (int sort_end = ranges.Size - offset - 1; sort_end > 0; --sort_end) + for (int i = offset; i < sort_end + offset; ++i) + if (ranges[i].Min > ranges[i + 1].Min) + ImSwap(ranges[i], ranges[i + 1]); + + // Now fuse ranges together as much as possible. + for (int i = 1 + offset; i < ranges.Size; i++) + { + IM_ASSERT(!ranges[i].PosToIndexConvert && !ranges[i - 1].PosToIndexConvert); + if (ranges[i - 1].Max < ranges[i].Min) + continue; + ranges[i - 1].Min = ImMin(ranges[i - 1].Min, ranges[i].Min); + ranges[i - 1].Max = ImMax(ranges[i - 1].Max, ranges[i].Max); + ranges.erase(ranges.Data + i); + i--; + } +} -static void SetCursorPosYAndSetupForPrevLine(float pos_y, float line_height) +static void ImGuiListClipper_SeekCursorAndSetupPrevLine(float pos_y, float line_height) { // Set cursor position and a few other things so that SetScrollHereY() and Columns() can work when seeking cursor. // FIXME: It is problematic that we have to do that here, because custom/equivalent end-user code would stumble on the same issue. - // The clipper should probably have a 4th step to display the last item in a regular manner. + // The clipper should probably have a final step to display the last item in a regular manner, maybe with an opt-out flag for data sets which may have costly seek? ImGuiContext& g = *GImGui; ImGuiWindow* window = g.CurrentWindow; float off_y = pos_y - window->DC.CursorPos.y; window->DC.CursorPos.y = pos_y; - window->DC.CursorMaxPos.y = ImMax(window->DC.CursorMaxPos.y, pos_y); + window->DC.CursorMaxPos.y = ImMax(window->DC.CursorMaxPos.y, pos_y - g.Style.ItemSpacing.y); window->DC.CursorPosPrevLine.y = window->DC.CursorPos.y - line_height; // Setting those fields so that SetScrollHereY() can properly function after the end of our clipper usage. window->DC.PrevLineSize.y = (line_height - g.Style.ItemSpacing.y); // If we end up needing more accurate data (to e.g. use SameLine) we may as well make the clipper have a fourth step to let user process and display the last item in their list. if (ImGuiOldColumns* columns = window->DC.CurrentColumns) @@ -2342,6 +2382,15 @@ static void SetCursorPosYAndSetupForPrevLine(float pos_y, float line_height) } } +static void ImGuiListClipper_SeekCursorForItem(ImGuiListClipper* clipper, int item_n) +{ + // StartPosY starts from ItemsFrozen hence the subtraction + // Perform the add and multiply with double to allow seeking through larger ranges + ImGuiListClipperData* data = (ImGuiListClipperData*)clipper->TempData; + float pos_y = (float)((double)clipper->StartPosY + data->LossynessOffset + (double)(item_n - data->ItemsFrozen) * clipper->ItemsHeight); + ImGuiListClipper_SeekCursorAndSetupPrevLine(pos_y, clipper->ItemsHeight); +} + ImGuiListClipper::ImGuiListClipper() { memset(this, 0, sizeof(*this)); @@ -2350,7 +2399,7 @@ ImGuiListClipper::ImGuiListClipper() ImGuiListClipper::~ImGuiListClipper() { - IM_ASSERT(ItemsCount == -1 && "Forgot to call End(), or to Step() until false?"); + End(); } // Use case A: Begin() called from constructor with items_height<0, then called again from Step() in StepNo 1 @@ -2368,28 +2417,54 @@ void ImGuiListClipper::Begin(int items_count, float items_height) StartPosY = window->DC.CursorPos.y; ItemsHeight = items_height; ItemsCount = items_count; - ItemsFrozen = 0; - StepNo = 0; DisplayStart = -1; DisplayEnd = 0; + + // Acquire temporary buffer + if (++g.ClipperTempDataStacked > g.ClipperTempData.Size) + g.ClipperTempData.resize(g.ClipperTempDataStacked, ImGuiListClipperData()); + ImGuiListClipperData* data = &g.ClipperTempData[g.ClipperTempDataStacked - 1]; + data->Reset(this); + data->LossynessOffset = window->DC.CursorStartPosLossyness.y; + TempData = data; } void ImGuiListClipper::End() { - if (ItemsCount < 0) // Already ended - return; - - // In theory here we should assert that ImGui::GetCursorPosY() == StartPosY + DisplayEnd * ItemsHeight, but it feels saner to just seek at the end and not assert/crash the user. - if (ItemsCount < INT_MAX && DisplayStart >= 0) - SetCursorPosYAndSetupForPrevLine(StartPosY + (ItemsCount - ItemsFrozen) * ItemsHeight, ItemsHeight); + // In theory here we should assert that we are already at the right position, but it seems saner to just seek at the end and not assert/crash the user. + ImGuiContext& g = *GImGui; + if (ItemsCount >= 0 && ItemsCount < INT_MAX && DisplayStart >= 0) + ImGuiListClipper_SeekCursorForItem(this, ItemsCount); ItemsCount = -1; - StepNo = 3; + + // Restore temporary buffer and fix back pointers which may be invalidated when nesting + if (ImGuiListClipperData* data = (ImGuiListClipperData*)TempData) + { + IM_ASSERT(data->ListClipper == this); + data->StepNo = data->Ranges.Size; + if (--g.ClipperTempDataStacked > 0) + { + data = &g.ClipperTempData[g.ClipperTempDataStacked - 1]; + data->ListClipper->TempData = data; + } + TempData = NULL; + } +} + +void ImGuiListClipper::ForceDisplayRangeByIndices(int item_min, int item_max) +{ + ImGuiListClipperData* data = (ImGuiListClipperData*)TempData; + IM_ASSERT(DisplayStart < 0); // Only allowed after Begin() and if there has not been a specified range yet. + IM_ASSERT(item_min <= item_max); + if (item_min < item_max) + data->Ranges.push_back(ImGuiListClipperRange::FromIndices(item_min, item_max)); } bool ImGuiListClipper::Step() { ImGuiContext& g = *GImGui; ImGuiWindow* window = g.CurrentWindow; + ImGuiListClipperData* data = (ImGuiListClipperData*)TempData; ImGuiTable* table = g.CurrentTable; if (table && table->IsInsideRow) @@ -2397,95 +2472,117 @@ bool ImGuiListClipper::Step() // No items if (ItemsCount == 0 || GetSkipItemForListClipping()) + return (void)End(), false; + + // While we are in frozen row state, keep displaying items one by one, unclipped + // FIXME: Could be stored as a table-agnostic state. + if (data->StepNo == 0 && table != NULL && !table->IsUnfrozenRows) { - End(); - return false; + DisplayStart = data->ItemsFrozen; + DisplayEnd = data->ItemsFrozen + 1; + if (DisplayStart >= ItemsCount) + return (void)End(), false; + data->ItemsFrozen++; + return true; } // Step 0: Let you process the first element (regardless of it being visible or not, so we can measure the element height) - if (StepNo == 0) + bool calc_clipping = false; + if (data->StepNo == 0) { - // While we are in frozen row state, keep displaying items one by one, unclipped - // FIXME: Could be stored as a table-agnostic state. - if (table != NULL && !table->IsUnfrozenRows) - { - DisplayStart = ItemsFrozen; - DisplayEnd = ItemsFrozen + 1; - ItemsFrozen++; - return true; - } - StartPosY = window->DC.CursorPos.y; if (ItemsHeight <= 0.0f) { - // Submit the first item so we can measure its height (generally it is 0..1) - DisplayStart = ItemsFrozen; - DisplayEnd = ItemsFrozen + 1; - StepNo = 1; + // Submit the first item (or range) so we can measure its height (generally the first range is 0..1) + data->Ranges.push_front(ImGuiListClipperRange::FromIndices(data->ItemsFrozen, data->ItemsFrozen + 1)); + DisplayStart = ImMax(data->Ranges[0].Min, data->ItemsFrozen); + DisplayEnd = ImMin(data->Ranges[0].Max, ItemsCount); + if (DisplayStart == DisplayEnd) + return (void)End(), false; + data->StepNo = 1; return true; } - - // Already has item height (given by user in Begin): skip to calculating step - DisplayStart = DisplayEnd; - StepNo = 2; + calc_clipping = true; // If on the first step with known item height, calculate clipping. } - // Step 1: the clipper infer height from first element - if (StepNo == 1) + // Step 1: Let the clipper infer height from first range + if (ItemsHeight <= 0.0f) { - IM_ASSERT(ItemsHeight <= 0.0f); + IM_ASSERT(data->StepNo == 1); if (table) + IM_ASSERT(table->RowPosY1 == StartPosY && table->RowPosY2 == window->DC.CursorPos.y); + + ItemsHeight = (window->DC.CursorPos.y - StartPosY) / (float)(DisplayEnd - DisplayStart); + bool affected_by_floating_point_precision = ImIsFloatAboveGuaranteedIntegerPrecision(StartPosY) || ImIsFloatAboveGuaranteedIntegerPrecision(window->DC.CursorPos.y); + if (affected_by_floating_point_precision) + ItemsHeight = window->DC.PrevLineSize.y + g.Style.ItemSpacing.y; // FIXME: Technically wouldn't allow multi-line entries. + + IM_ASSERT(ItemsHeight > 0.0f && "Unable to calculate item height! First item hasn't moved the cursor vertically!"); + calc_clipping = true; // If item height had to be calculated, calculate clipping afterwards. + } + + // Step 0 or 1: Calculate the actual ranges of visible elements. + const int already_submitted = DisplayEnd; + if (calc_clipping) + { + if (g.LogEnabled) { - const float pos_y1 = table->RowPosY1; // Using this instead of StartPosY to handle clipper straddling the frozen row - const float pos_y2 = table->RowPosY2; // Using this instead of CursorPos.y to take account of tallest cell. - ItemsHeight = pos_y2 - pos_y1; - window->DC.CursorPos.y = pos_y2; + // If logging is active, do not perform any clipping + data->Ranges.push_back(ImGuiListClipperRange::FromIndices(0, ItemsCount)); } else { - ItemsHeight = window->DC.CursorPos.y - StartPosY; + // Add range selected to be included for navigation + const bool is_nav_request = (g.NavMoveScoringItems && g.NavWindow && g.NavWindow->RootWindowForNav == window->RootWindowForNav); + if (is_nav_request) + data->Ranges.push_back(ImGuiListClipperRange::FromPositions(g.NavScoringNoClipRect.Min.y, g.NavScoringNoClipRect.Max.y, 0, 0)); + if (is_nav_request && (g.NavMoveFlags & ImGuiNavMoveFlags_Tabbing) && g.NavTabbingDir == -1) + data->Ranges.push_back(ImGuiListClipperRange::FromIndices(ItemsCount - 1, ItemsCount)); + + // Add focused/active item + ImRect nav_rect_abs = ImGui::WindowRectRelToAbs(window, window->NavRectRel[0]); + if (g.NavId != 0 && window->NavLastIds[0] == g.NavId) + data->Ranges.push_back(ImGuiListClipperRange::FromPositions(nav_rect_abs.Min.y, nav_rect_abs.Max.y, 0, 0)); + + // Add visible range + const int off_min = (is_nav_request && g.NavMoveClipDir == ImGuiDir_Up) ? -1 : 0; + const int off_max = (is_nav_request && g.NavMoveClipDir == ImGuiDir_Down) ? 1 : 0; + data->Ranges.push_back(ImGuiListClipperRange::FromPositions(window->ClipRect.Min.y, window->ClipRect.Max.y, off_min, off_max)); } - IM_ASSERT(ItemsHeight > 0.0f && "Unable to calculate item height! First item hasn't moved the cursor vertically!"); - StepNo = 2; - } - // Reached end of list - if (DisplayEnd >= ItemsCount) - { - End(); - return false; + // Convert position ranges to item index ranges + // - Very important: when a starting position is after our maximum item, we set Min to (ItemsCount - 1). This allows us to handle most forms of wrapping. + // - Due to how Selectable extra padding they tend to be "unaligned" with exact unit in the item list, + // which with the flooring/ceiling tend to lead to 2 items instead of one being submitted. + for (int i = 0; i < data->Ranges.Size; i++) + if (data->Ranges[i].PosToIndexConvert) + { + int m1 = (int)(((double)data->Ranges[i].Min - window->DC.CursorPos.y - data->LossynessOffset) / ItemsHeight); + int m2 = (int)((((double)data->Ranges[i].Max - window->DC.CursorPos.y - data->LossynessOffset) / ItemsHeight) + 0.999999f); + data->Ranges[i].Min = ImClamp(already_submitted + m1 + data->Ranges[i].PosToIndexOffsetMin, already_submitted, ItemsCount - 1); + data->Ranges[i].Max = ImClamp(already_submitted + m2 + data->Ranges[i].PosToIndexOffsetMax, data->Ranges[i].Min + 1, ItemsCount); + data->Ranges[i].PosToIndexConvert = false; + } + ImGuiListClipper_SortAndFuseRanges(data->Ranges, data->StepNo); } - // Step 2: calculate the actual range of elements to display, and position the cursor before the first element - if (StepNo == 2) + // Step 0+ (if item height is given in advance) or 1+: Display the next range in line. + if (data->StepNo < data->Ranges.Size) { - IM_ASSERT(ItemsHeight > 0.0f); - - int already_submitted = DisplayEnd; - ImGui::CalcListClipping(ItemsCount - already_submitted, ItemsHeight, &DisplayStart, &DisplayEnd); - DisplayStart += already_submitted; - DisplayEnd += already_submitted; - - // Seek cursor - if (DisplayStart > already_submitted) - SetCursorPosYAndSetupForPrevLine(StartPosY + (DisplayStart - ItemsFrozen) * ItemsHeight, ItemsHeight); - - StepNo = 3; + DisplayStart = ImMax(data->Ranges[data->StepNo].Min, already_submitted); + DisplayEnd = ImMin(data->Ranges[data->StepNo].Max, ItemsCount); + if (DisplayStart > already_submitted) //-V1051 + ImGuiListClipper_SeekCursorForItem(this, DisplayStart); + data->StepNo++; return true; } - // Step 3: the clipper validate that we have reached the expected Y position (corresponding to element DisplayEnd), + // After the last step: Let the clipper validate that we have reached the expected Y position (corresponding to element DisplayEnd), // Advance the cursor to the end of the list and then returns 'false' to end the loop. - if (StepNo == 3) - { - // Seek cursor - if (ItemsCount < INT_MAX) - SetCursorPosYAndSetupForPrevLine(StartPosY + (ItemsCount - ItemsFrozen) * ItemsHeight, ItemsHeight); // advance cursor - ItemsCount = -1; - return false; - } + if (ItemsCount < INT_MAX) + ImGuiListClipper_SeekCursorForItem(this, ItemsCount); + ItemsCount = -1; - IM_ASSERT(0); return false; } @@ -2999,6 +3096,7 @@ ImGuiWindow::ImGuiWindow(ImGuiContext* context, const char* name) : DrawListInst DrawList = &DrawListInst; DrawList->_Data = &context->DrawListSharedData; DrawList->_OwnerName = Name; + IM_PLACEMENT_NEW(&WindowClass) ImGuiWindowClass(); } ImGuiWindow::~ImGuiWindow() @@ -3013,10 +3111,9 @@ ImGuiID ImGuiWindow::GetID(const char* str, const char* str_end) ImGuiID seed = IDStack.back(); ImGuiID id = ImHashStr(str, str_end ? (str_end - str) : 0, seed); ImGui::KeepAliveID(id); -#ifdef IMGUI_ENABLE_TEST_ENGINE ImGuiContext& g = *GImGui; - IMGUI_TEST_ENGINE_ID_INFO2(id, ImGuiDataType_String, str, str_end); -#endif + if (g.DebugHookIdInfo == id) + ImGui::DebugHookIdInfo(id, ImGuiDataType_String, str, str_end); return id; } @@ -3025,10 +3122,9 @@ ImGuiID ImGuiWindow::GetID(const void* ptr) ImGuiID seed = IDStack.back(); ImGuiID id = ImHashData(&ptr, sizeof(void*), seed); ImGui::KeepAliveID(id); -#ifdef IMGUI_ENABLE_TEST_ENGINE ImGuiContext& g = *GImGui; - IMGUI_TEST_ENGINE_ID_INFO(id, ImGuiDataType_Pointer, ptr); -#endif + if (g.DebugHookIdInfo == id) + ImGui::DebugHookIdInfo(id, ImGuiDataType_Pointer, ptr, NULL); return id; } @@ -3037,10 +3133,9 @@ ImGuiID ImGuiWindow::GetID(int n) ImGuiID seed = IDStack.back(); ImGuiID id = ImHashData(&n, sizeof(n), seed); ImGui::KeepAliveID(id); -#ifdef IMGUI_ENABLE_TEST_ENGINE ImGuiContext& g = *GImGui; - IMGUI_TEST_ENGINE_ID_INFO(id, ImGuiDataType_S32, (intptr_t)n); -#endif + if (g.DebugHookIdInfo == id) + ImGui::DebugHookIdInfo(id, ImGuiDataType_S32, (void*)(intptr_t)n, NULL); return id; } @@ -3048,10 +3143,9 @@ ImGuiID ImGuiWindow::GetIDNoKeepAlive(const char* str, const char* str_end) { ImGuiID seed = IDStack.back(); ImGuiID id = ImHashStr(str, str_end ? (str_end - str) : 0, seed); -#ifdef IMGUI_ENABLE_TEST_ENGINE ImGuiContext& g = *GImGui; - IMGUI_TEST_ENGINE_ID_INFO2(id, ImGuiDataType_String, str, str_end); -#endif + if (g.DebugHookIdInfo == id) + ImGui::DebugHookIdInfo(id, ImGuiDataType_String, str, str_end); return id; } @@ -3059,10 +3153,9 @@ ImGuiID ImGuiWindow::GetIDNoKeepAlive(const void* ptr) { ImGuiID seed = IDStack.back(); ImGuiID id = ImHashData(&ptr, sizeof(void*), seed); -#ifdef IMGUI_ENABLE_TEST_ENGINE ImGuiContext& g = *GImGui; - IMGUI_TEST_ENGINE_ID_INFO(id, ImGuiDataType_Pointer, ptr); -#endif + if (g.DebugHookIdInfo == id) + ImGui::DebugHookIdInfo(id, ImGuiDataType_Pointer, ptr, NULL); return id; } @@ -3070,10 +3163,9 @@ ImGuiID ImGuiWindow::GetIDNoKeepAlive(int n) { ImGuiID seed = IDStack.back(); ImGuiID id = ImHashData(&n, sizeof(n), seed); -#ifdef IMGUI_ENABLE_TEST_ENGINE ImGuiContext& g = *GImGui; - IMGUI_TEST_ENGINE_ID_INFO(id, ImGuiDataType_S32, (intptr_t)n); -#endif + if (g.DebugHookIdInfo == id) + ImGui::DebugHookIdInfo(id, ImGuiDataType_S32, (void*)(intptr_t)n, NULL); return id; } @@ -3081,7 +3173,7 @@ ImGuiID ImGuiWindow::GetIDNoKeepAlive(int n) ImGuiID ImGuiWindow::GetIDFromRectangle(const ImRect& r_abs) { ImGuiID seed = IDStack.back(); - const int r_rel[4] = { (int)(r_abs.Min.x - Pos.x), (int)(r_abs.Min.y - Pos.y), (int)(r_abs.Max.x - Pos.x), (int)(r_abs.Max.y - Pos.y) }; + ImRect r_rel = ImGui::WindowRectAbsToRel(this, r_abs); ImGuiID id = ImHashData(&r_rel, sizeof(r_rel), seed); ImGui::KeepAliveID(id); return id; @@ -3154,7 +3246,7 @@ void ImGui::SetActiveID(ImGuiID id, ImGuiWindow* window) if (id) { g.ActiveIdIsAlive = id; - g.ActiveIdSource = (g.NavActivateId == id || g.NavInputId == id || g.NavJustTabbedId == id || g.NavJustMovedToId == id) ? ImGuiInputSource_Nav : ImGuiInputSource_Mouse; + g.ActiveIdSource = (g.NavActivateId == id || g.NavActivateInputId == id || g.NavJustMovedToId == id) ? ImGuiInputSource_Nav : ImGuiInputSource_Mouse; } // Clear declaration of inputs claimed by the widget @@ -3244,42 +3336,46 @@ bool ImGui::IsItemHovered(ImGuiHoveredFlags flags) { if ((g.LastItemData.InFlags & ImGuiItemFlags_Disabled) && !(flags & ImGuiHoveredFlags_AllowWhenDisabled)) return false; - return IsItemFocused(); + if (!IsItemFocused()) + return false; } - - // Test for bounding box overlap, as updated as ItemAdd() - ImGuiItemStatusFlags status_flags = g.LastItemData.StatusFlags; - if (!(status_flags & ImGuiItemStatusFlags_HoveredRect)) - return false; - IM_ASSERT((flags & (ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_ChildWindows)) == 0); // Flags not supported by this function - - // Test if we are hovering the right window (our window could be behind another window) - // [2021/03/02] Reworked / reverted the revert, finally. Note we want e.g. BeginGroup/ItemAdd/EndGroup to work as well. (#3851) - // [2017/10/16] Reverted commit 344d48be3 and testing RootWindow instead. I believe it is correct to NOT test for RootWindow but this leaves us unable - // to use IsItemHovered() after EndChild() itself. Until a solution is found I believe reverting to the test from 2017/09/27 is safe since this was - // the test that has been running for a long while. - if (g.HoveredWindow != window && (status_flags & ImGuiItemStatusFlags_HoveredWindow) == 0) - if ((flags & ImGuiHoveredFlags_AllowWhenOverlapped) == 0) + else + { + // Test for bounding box overlap, as updated as ItemAdd() + ImGuiItemStatusFlags status_flags = g.LastItemData.StatusFlags; + if (!(status_flags & ImGuiItemStatusFlags_HoveredRect)) return false; + IM_ASSERT((flags & (ImGuiHoveredFlags_AnyWindow | ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_ChildWindows | ImGuiHoveredFlags_NoPopupHierarchy | ImGuiHoveredFlags_DockHierarchy)) == 0); // Flags not supported by this function + + // Test if we are hovering the right window (our window could be behind another window) + // [2021/03/02] Reworked / reverted the revert, finally. Note we want e.g. BeginGroup/ItemAdd/EndGroup to work as well. (#3851) + // [2017/10/16] Reverted commit 344d48be3 and testing RootWindow instead. I believe it is correct to NOT test for RootWindow but this leaves us unable + // to use IsItemHovered() after EndChild() itself. Until a solution is found I believe reverting to the test from 2017/09/27 is safe since this was + // the test that has been running for a long while. + if (g.HoveredWindow != window && (status_flags & ImGuiItemStatusFlags_HoveredWindow) == 0) + if ((flags & ImGuiHoveredFlags_AllowWhenOverlapped) == 0) + return false; + + // Test if another item is active (e.g. being dragged) + if ((flags & ImGuiHoveredFlags_AllowWhenBlockedByActiveItem) == 0) + if (g.ActiveId != 0 && g.ActiveId != g.LastItemData.ID && !g.ActiveIdAllowOverlap && g.ActiveId != window->MoveId) + return false; - // Test if another item is active (e.g. being dragged) - if ((flags & ImGuiHoveredFlags_AllowWhenBlockedByActiveItem) == 0) - if (g.ActiveId != 0 && g.ActiveId != g.LastItemData.ID && !g.ActiveIdAllowOverlap && g.ActiveId != window->MoveId) + // Test if interactions on this window are blocked by an active popup or modal. + // The ImGuiHoveredFlags_AllowWhenBlockedByPopup flag will be tested here. + if (!IsWindowContentHoverable(window, flags)) return false; - // Test if interactions on this window are blocked by an active popup or modal. - // The ImGuiHoveredFlags_AllowWhenBlockedByPopup flag will be tested here. - if (!IsWindowContentHoverable(window, flags)) - return false; + // Test if the item is disabled + if ((g.LastItemData.InFlags & ImGuiItemFlags_Disabled) && !(flags & ImGuiHoveredFlags_AllowWhenDisabled)) + return false; - // Test if the item is disabled - if ((g.LastItemData.InFlags & ImGuiItemFlags_Disabled) && !(flags & ImGuiHoveredFlags_AllowWhenDisabled)) - return false; + // Special handling for calling after Begin() which represent the title bar or tab. + // When the window is collapsed (SkipItems==true) that last item will never be overwritten so we need to detect the case. + if ((g.LastItemData.ID == window->ID || g.LastItemData.ID == window->MoveId) && window->WriteAccessed) + return false; + } - // Special handling for calling after Begin() which represent the title bar or tab. - // When the window is collapsed (SkipItems==true) that last item will never be overwritten so we need to detect the case. - if ((g.LastItemData.ID == window->ID || g.LastItemData.ID == window->MoveId) && window->WriteAccessed) - return false; return true; } @@ -3337,13 +3433,13 @@ bool ImGui::ItemHoverable(const ImRect& bb, ImGuiID id) return true; } -bool ImGui::IsClippedEx(const ImRect& bb, ImGuiID id, bool clip_even_when_logged) +bool ImGui::IsClippedEx(const ImRect& bb, ImGuiID id) { ImGuiContext& g = *GImGui; ImGuiWindow* window = g.CurrentWindow; if (!bb.Overlaps(window->ClipRect)) if (id == 0 || (id != g.ActiveId && id != g.NavId)) - if (clip_even_when_logged || !g.LogEnabled) + if (!g.LogEnabled) return true; return false; } @@ -3359,53 +3455,6 @@ void ImGui::SetLastItemData(ImGuiID item_id, ImGuiItemFlags in_flags, ImGuiItemS g.LastItemData.Rect = item_rect; } -// Called by ItemAdd() -// Process TAB/Shift+TAB. Be mindful that this function may _clear_ the ActiveID when tabbing out. -void ImGui::ItemFocusable(ImGuiWindow* window, ImGuiID id) -{ - ImGuiContext& g = *GImGui; - IM_ASSERT(id != 0 && id == g.LastItemData.ID); - - // Increment counters - // FIXME: ImGuiItemFlags_Disabled should disable more. - const bool is_tab_stop = (g.LastItemData.InFlags & (ImGuiItemFlags_NoTabStop | ImGuiItemFlags_Disabled)) == 0; - window->DC.FocusCounterRegular++; - if (is_tab_stop) - { - window->DC.FocusCounterTabStop++; - if (g.NavId == id) - g.NavIdTabCounter = window->DC.FocusCounterTabStop; - } - - // Process TAB/Shift-TAB to tab *OUT* of the currently focused item. - // (Note that we can always TAB out of a widget that doesn't allow tabbing in) - if (g.ActiveId == id && g.TabFocusPressed && !IsActiveIdUsingKey(ImGuiKey_Tab) && g.TabFocusRequestNextWindow == NULL) - { - g.TabFocusRequestNextWindow = window; - g.TabFocusRequestNextCounterTabStop = window->DC.FocusCounterTabStop + (g.IO.KeyShift ? (is_tab_stop ? -1 : 0) : +1); // Modulo on index will be applied at the end of frame once we've got the total counter of items. - } - - // Handle focus requests - if (g.TabFocusRequestCurrWindow == window) - { - if (window->DC.FocusCounterRegular == g.TabFocusRequestCurrCounterRegular) - { - g.LastItemData.StatusFlags |= ImGuiItemStatusFlags_FocusedByCode; - return; - } - if (is_tab_stop && window->DC.FocusCounterTabStop == g.TabFocusRequestCurrCounterTabStop) - { - g.NavJustTabbedId = id; - g.LastItemData.StatusFlags |= ImGuiItemStatusFlags_FocusedByTabbing; - return; - } - - // If another item is about to be focused, we clear our own active id - if (g.ActiveId == id) - ClearActiveID(); - } -} - float ImGui::CalcWrapWidthForPos(const ImVec2& pos, float wrap_pos_x) { if (wrap_pos_x < 0.0f) @@ -3690,7 +3739,10 @@ void ImGui::UpdateMouseMovingWindowNewFrame() KeepAliveID(g.ActiveId); IM_ASSERT(g.MovingWindow && g.MovingWindow->RootWindowDockTree); ImGuiWindow* moving_window = g.MovingWindow->RootWindowDockTree; - if (g.IO.MouseDown[0] && IsMousePosValid(&g.IO.MousePos)) + + // When a window stop being submitted while being dragged, it may will its viewport until next Begin() + const bool window_disappared = (!moving_window->WasActive || moving_window->Viewport == NULL); + if (g.IO.MouseDown[0] && IsMousePosValid(&g.IO.MousePos) && !window_disappared) { ImVec2 pos = g.IO.MousePos - g.ActiveIdClickOffset; if (moving_window->Pos.x != pos.x || moving_window->Pos.y != pos.y) @@ -3707,17 +3759,20 @@ void ImGui::UpdateMouseMovingWindowNewFrame() } else { - // Try to merge the window back into the main viewport. - // This works because MouseViewport should be != MovingWindow->Viewport on release (as per code in UpdateViewports) - if (g.ConfigFlagsCurrFrame & ImGuiConfigFlags_ViewportsEnable) - UpdateTryMergeWindowIntoHostViewport(moving_window, g.MouseViewport); + if (!window_disappared) + { + // Try to merge the window back into the main viewport. + // This works because MouseViewport should be != MovingWindow->Viewport on release (as per code in UpdateViewports) + if (g.ConfigFlagsCurrFrame & ImGuiConfigFlags_ViewportsEnable) + UpdateTryMergeWindowIntoHostViewport(moving_window, g.MouseViewport); - // Restore the mouse viewport so that we don't hover the viewport _under_ the moved window during the frame we released the mouse button. - if (!IsDragDropPayloadBeingAccepted()) - g.MouseViewport = moving_window->Viewport; + // Restore the mouse viewport so that we don't hover the viewport _under_ the moved window during the frame we released the mouse button. + if (!IsDragDropPayloadBeingAccepted()) + g.MouseViewport = moving_window->Viewport; - // Clear the NoInput window flag set by the Viewport system - moving_window->Viewport->Flags &= ~ImGuiViewportFlags_NoInputs; // FIXME-VIEWPORT: Test engine managed to crash here because Viewport was NULL. + // Clear the NoInput window flag set by the Viewport system + moving_window->Viewport->Flags &= ~ImGuiViewportFlags_NoInputs; // FIXME-VIEWPORT: Test engine managed to crash here because Viewport was NULL. + } g.MovingWindow = NULL; ClearActiveID(); @@ -3785,7 +3840,7 @@ void ImGui::UpdateMouseMovingWindowEndFrame() // Find the top-most window between HoveredWindow and the top-most Modal Window. // This is where we can trim the popup stack. ImGuiWindow* modal = GetTopMostPopupModal(); - bool hovered_window_above_modal = g.HoveredWindow && IsWindowAbove(g.HoveredWindow, modal); + bool hovered_window_above_modal = g.HoveredWindow && (modal == NULL || IsWindowAbove(g.HoveredWindow, modal)); ClosePopupsOverWindow(hovered_window_above_modal ? g.HoveredWindow : modal, true); } } @@ -3821,13 +3876,15 @@ static void ImGui::UpdateMouseInputs() // Round mouse position to avoid spreading non-rounded position (e.g. UpdateManualResize doesn't support them well) if (IsMousePosValid(&g.IO.MousePos)) - g.IO.MousePos = g.LastValidMousePos = ImFloor(g.IO.MousePos); + g.IO.MousePos = g.MouseLastValidPos = ImFloor(g.IO.MousePos); // If mouse just appeared or disappeared (usually denoted by -FLT_MAX components) we cancel out movement in MouseDelta if (IsMousePosValid(&g.IO.MousePos) && IsMousePosValid(&g.IO.MousePosPrev)) g.IO.MouseDelta = g.IO.MousePos - g.IO.MousePosPrev; else g.IO.MouseDelta = ImVec2(0.0f, 0.0f); + + // If mouse moved we re-enable mouse hovering in case it was disabled by gamepad/keyboard. In theory should use a >0.0f threshold but would need to reset in everywhere we set this to true. if (g.IO.MouseDelta.x != 0.0f || g.IO.MouseDelta.y != 0.0f) g.NavDisableMouseHover = false; @@ -3835,25 +3892,26 @@ static void ImGui::UpdateMouseInputs() for (int i = 0; i < IM_ARRAYSIZE(g.IO.MouseDown); i++) { g.IO.MouseClicked[i] = g.IO.MouseDown[i] && g.IO.MouseDownDuration[i] < 0.0f; + g.IO.MouseClickedCount[i] = 0; // Will be filled below g.IO.MouseReleased[i] = !g.IO.MouseDown[i] && g.IO.MouseDownDuration[i] >= 0.0f; g.IO.MouseDownDurationPrev[i] = g.IO.MouseDownDuration[i]; g.IO.MouseDownDuration[i] = g.IO.MouseDown[i] ? (g.IO.MouseDownDuration[i] < 0.0f ? 0.0f : g.IO.MouseDownDuration[i] + g.IO.DeltaTime) : -1.0f; - g.IO.MouseDoubleClicked[i] = false; if (g.IO.MouseClicked[i]) { + bool is_repeated_click = false; if ((float)(g.Time - g.IO.MouseClickedTime[i]) < g.IO.MouseDoubleClickTime) { ImVec2 delta_from_click_pos = IsMousePosValid(&g.IO.MousePos) ? (g.IO.MousePos - g.IO.MouseClickedPos[i]) : ImVec2(0.0f, 0.0f); if (ImLengthSqr(delta_from_click_pos) < g.IO.MouseDoubleClickMaxDist * g.IO.MouseDoubleClickMaxDist) - g.IO.MouseDoubleClicked[i] = true; - g.IO.MouseClickedTime[i] = -g.IO.MouseDoubleClickTime * 2.0f; // Mark as "old enough" so the third click isn't turned into a double-click + is_repeated_click = true; } + if (is_repeated_click) + g.IO.MouseClickedLastCount[i]++; else - { - g.IO.MouseClickedTime[i] = g.Time; - } + g.IO.MouseClickedLastCount[i] = 1; + g.IO.MouseClickedTime[i] = g.Time; g.IO.MouseClickedPos[i] = g.IO.MousePos; - g.IO.MouseDownWasDoubleClick[i] = g.IO.MouseDoubleClicked[i]; + g.IO.MouseClickedCount[i] = g.IO.MouseClickedLastCount[i]; g.IO.MouseDragMaxDistanceAbs[i] = ImVec2(0.0f, 0.0f); g.IO.MouseDragMaxDistanceSqr[i] = 0.0f; } @@ -3865,9 +3923,12 @@ static void ImGui::UpdateMouseInputs() g.IO.MouseDragMaxDistanceAbs[i].x = ImMax(g.IO.MouseDragMaxDistanceAbs[i].x, delta_from_click_pos.x < 0.0f ? -delta_from_click_pos.x : delta_from_click_pos.x); g.IO.MouseDragMaxDistanceAbs[i].y = ImMax(g.IO.MouseDragMaxDistanceAbs[i].y, delta_from_click_pos.y < 0.0f ? -delta_from_click_pos.y : delta_from_click_pos.y); } - if (!g.IO.MouseDown[i] && !g.IO.MouseReleased[i]) - g.IO.MouseDownWasDoubleClick[i] = false; - if (g.IO.MouseClicked[i]) // Clicking any mouse button reactivate mouse hovering which may have been deactivated by gamepad/keyboard navigation + + // We provide io.MouseDoubleClicked[] as a legacy service + g.IO.MouseDoubleClicked[i] = (g.IO.MouseClickedCount[i] == 2); + + // Clicking any mouse button reactivate mouse hovering which may have been deactivated by gamepad/keyboard navigation + if (g.IO.MouseClicked[i]) g.NavDisableMouseHover = false; } } @@ -3967,44 +4028,6 @@ void ImGui::UpdateMouseWheel() } } -void ImGui::UpdateTabFocus() -{ - ImGuiContext& g = *GImGui; - - // Pressing TAB activate widget focus - g.TabFocusPressed = (g.NavWindow && g.NavWindow->Active && !(g.NavWindow->Flags & ImGuiWindowFlags_NoNavInputs) && !g.IO.KeyCtrl && IsKeyPressedMap(ImGuiKey_Tab)); - if (g.ActiveId == 0 && g.TabFocusPressed) - { - // - This path is only taken when no widget are active/tabbed-into yet. - // Subsequent tabbing will be processed by FocusableItemRegister() - // - Note that SetKeyboardFocusHere() sets the Next fields mid-frame. To be consistent we also - // manipulate the Next fields here even though they will be turned into Curr fields below. - g.TabFocusRequestNextWindow = g.NavWindow; - g.TabFocusRequestNextCounterRegular = INT_MAX; - if (g.NavId != 0 && g.NavIdTabCounter != INT_MAX) - g.TabFocusRequestNextCounterTabStop = g.NavIdTabCounter + (g.IO.KeyShift ? -1 : 0); - else - g.TabFocusRequestNextCounterTabStop = g.IO.KeyShift ? -1 : 0; - } - - // Turn queued focus request into current one - g.TabFocusRequestCurrWindow = NULL; - g.TabFocusRequestCurrCounterRegular = g.TabFocusRequestCurrCounterTabStop = INT_MAX; - if (g.TabFocusRequestNextWindow != NULL) - { - ImGuiWindow* window = g.TabFocusRequestNextWindow; - g.TabFocusRequestCurrWindow = window; - if (g.TabFocusRequestNextCounterRegular != INT_MAX && window->DC.FocusCounterRegular != -1) - g.TabFocusRequestCurrCounterRegular = ImModPositive(g.TabFocusRequestNextCounterRegular, window->DC.FocusCounterRegular + 1); - if (g.TabFocusRequestNextCounterTabStop != INT_MAX && window->DC.FocusCounterTabStop != -1) - g.TabFocusRequestCurrCounterTabStop = ImModPositive(g.TabFocusRequestNextCounterTabStop, window->DC.FocusCounterTabStop + 1); - g.TabFocusRequestNextWindow = NULL; - g.TabFocusRequestNextCounterRegular = g.TabFocusRequestNextCounterTabStop = INT_MAX; - } - - g.NavIdTabCounter = INT_MAX; -} - // The reason this is exposed in imgui_internal.h is: on touch-based system that don't have hovering, we want to dispatch inputs to the right target (imgui vs imgui+app) void ImGui::UpdateHoveredWindowAndCaptureFlags() { @@ -4022,7 +4045,7 @@ void ImGui::UpdateHoveredWindowAndCaptureFlags() // Modal windows prevents mouse from hovering behind them. ImGuiWindow* modal_window = GetTopMostPopupModal(); - if (modal_window && g.HoveredWindow && !IsWindowChildOf(g.HoveredWindow->RootWindowDockTree, modal_window)) + if (modal_window && g.HoveredWindow && !IsWindowWithinBeginStackOf(g.HoveredWindow->RootWindow, modal_window)) // FIXME-MERGE: RootWindowDockTree ? clear_hovered_windows = true; // Disabled mouse? @@ -4210,6 +4233,10 @@ void ImGui::NewFrame() g.DragDropWithinTarget = false; g.DragDropHoldJustPressedId = 0; + // Close popups on focus lost (currently wip/opt-in) + //if (g.IO.AppFocusLost) + // ClosePopupsExceptModals(); + // Clear buttons state when focus is lost // (this is useful so e.g. releasing Alt after focus loss on Alt-Tab doesn't trigger the Alt menu toggle) if (g.IO.AppFocusLost) @@ -4256,9 +4283,6 @@ void ImGui::NewFrame() // Mouse wheel scrolling, scale UpdateMouseWheel(); - // Update legacy TAB focus - UpdateTabFocus(); - // Mark all windows as not visible and compact unused memory. IM_ASSERT(g.WindowsFocusOrder.Size <= g.Windows.Size); const float memory_compact_start_time = (g.GcCompactAll || g.IO.ConfigMemoryCompactTimer < 0.0f) ? FLT_MAX : (float)g.Time - g.IO.ConfigMemoryCompactTimer; @@ -4279,9 +4303,9 @@ void ImGui::NewFrame() for (int i = 0; i < g.TablesLastTimeActive.Size; i++) if (g.TablesLastTimeActive[i] >= 0.0f && g.TablesLastTimeActive[i] < memory_compact_start_time) TableGcCompactTransientBuffers(g.Tables.GetByIndex(i)); - for (int i = 0; i < g.TablesTempDataStack.Size; i++) - if (g.TablesTempDataStack[i].LastTimeActive >= 0.0f && g.TablesTempDataStack[i].LastTimeActive < memory_compact_start_time) - TableGcCompactTransientBuffers(&g.TablesTempDataStack[i]); + for (int i = 0; i < g.TablesTempData.Size; i++) + if (g.TablesTempData[i].LastTimeActive >= 0.0f && g.TablesTempData[i].LastTimeActive < memory_compact_start_time) + TableGcCompactTransientBuffers(&g.TablesTempData[i]); if (g.GcCompactAll) GcCompactTransientMiscBuffers(); g.GcCompactAll = false; @@ -4301,8 +4325,9 @@ void ImGui::NewFrame() // Docking DockContextNewFrameUpdateDocking(&g); - // [DEBUG] Item picker tool - start with DebugStartItemPicker() - useful to visually select an item and break into its call-stack. + // [DEBUG] Update debug features UpdateDebugToolItemPicker(); + UpdateDebugToolStackQueries(); // Create implicit/fallback window - which we will only render it if the user has added something to it. // We don't use "Debug" to avoid colliding with user trying to create a "Debug" window with custom flags. @@ -4315,31 +4340,6 @@ void ImGui::NewFrame() CallContextHooks(&g, ImGuiContextHookType_NewFramePost); } -// [DEBUG] Item picker tool - start with DebugStartItemPicker() - useful to visually select an item and break into its call-stack. -void ImGui::UpdateDebugToolItemPicker() -{ - ImGuiContext& g = *GImGui; - g.DebugItemPickerBreakId = 0; - if (g.DebugItemPickerActive) - { - const ImGuiID hovered_id = g.HoveredIdPreviousFrame; - SetMouseCursor(ImGuiMouseCursor_Hand); - if (IsKeyPressedMap(ImGuiKey_Escape)) - g.DebugItemPickerActive = false; - if (IsMouseClicked(0) && hovered_id) - { - g.DebugItemPickerBreakId = hovered_id; - g.DebugItemPickerActive = false; - } - SetNextWindowBgAlpha(0.60f); - BeginTooltip(); - Text("HoveredId: 0x%08X", hovered_id); - Text("Press ESC to abort picking."); - TextColored(GetStyleColorVec4(hovered_id ? ImGuiCol_Text : ImGuiCol_TextDisabled), "Click to break in debugger!"); - EndTooltip(); - } -} - void ImGui::Initialize(ImGuiContext* context) { ImGuiContext& g = *context; @@ -4438,8 +4438,10 @@ void ImGui::Shutdown(ImGuiContext* context) g.CurrentTabBarStack.clear(); g.ShrinkWidthBuffer.clear(); + g.ClipperTempData.clear_destruct(); + g.Tables.Clear(); - g.TablesTempDataStack.clear_destruct(); + g.TablesTempData.clear_destruct(); g.DrawChannelsTempMergeBuffer.clear(); g.ClipboardHandlerData.clear(); @@ -4480,8 +4482,7 @@ static void AddWindowToSortBuffer(ImVector* out_sorted_windows, Im if (window->Active) { int count = window->DC.ChildWindows.Size; - if (count > 1) - ImQsort(window->DC.ChildWindows.Data, (size_t)count, sizeof(ImGuiWindow*), ChildWindowComparer); + ImQsort(window->DC.ChildWindows.Data, (size_t)count, sizeof(ImGuiWindow*), ChildWindowComparer); for (int i = 0; i < count; i++) { ImGuiWindow* child = window->DC.ChildWindows[i]; @@ -4532,6 +4533,8 @@ static void AddWindowToDrawData(ImGuiWindow* window, int layer) ImGuiContext& g = *GImGui; ImGuiViewportP* viewport = window->Viewport; g.IO.MetricsRenderWindows++; + if (window->Flags & ImGuiWindowFlags_DockNodeHost) + window->DrawList->ChannelsMerge(); AddDrawListToDrawData(&viewport->DrawDataBuilder.Layers[layer], window->DrawList); for (int i = 0; i < window->DC.ChildWindows.Size; i++) { @@ -4541,11 +4544,15 @@ static void AddWindowToDrawData(ImGuiWindow* window, int layer) } } +static inline int GetWindowDisplayLayer(ImGuiWindow* window) +{ + return (window->Flags & ImGuiWindowFlags_Tooltip) ? 1 : 0; +} + // Layer is locked for the root window, however child windows may use a different viewport (e.g. extruding menu) -static void AddRootWindowToDrawData(ImGuiWindow* window) +static inline void AddRootWindowToDrawData(ImGuiWindow* window) { - int layer = (window->Flags & ImGuiWindowFlags_Tooltip) ? 1 : 0; - AddWindowToDrawData(window, layer); + AddWindowToDrawData(window, GetWindowDisplayLayer(window)); } void ImDrawDataBuilder::FlattenIntoSingleLayer() @@ -4621,58 +4628,109 @@ static ImGuiWindow* FindFrontMostVisibleChildWindow(ImGuiWindow* window) return window; } -static void ImGui::EndFrameDrawDimmedBackgrounds() +static void ImGui::RenderDimmedBackgroundBehindWindow(ImGuiWindow* window, ImU32 col) { - ImGuiContext& g = *GImGui; + if ((col & IM_COL32_A_MASK) == 0) + return; - // Draw modal whitening background on _other_ viewports than the one the modal is one - ImGuiWindow* modal_window = GetTopMostPopupModal(); - const bool dim_bg_for_modal = (modal_window != NULL); - const bool dim_bg_for_window_list = (g.NavWindowingTargetAnim != NULL); - if (dim_bg_for_modal || dim_bg_for_window_list) - for (int viewport_n = 0; viewport_n < g.Viewports.Size; viewport_n++) - { - ImGuiViewportP* viewport = g.Viewports[viewport_n]; - if (modal_window && viewport == modal_window->Viewport) - continue; - if (g.NavWindowingListWindow && viewport == g.NavWindowingListWindow->Viewport) - continue; - if (g.NavWindowingTargetAnim && viewport == g.NavWindowingTargetAnim->Viewport) - continue; - if (viewport->Window && modal_window && IsWindowAbove(viewport->Window, modal_window)) - continue; - ImDrawList* draw_list = GetForegroundDrawList(viewport); - const ImU32 dim_bg_col = GetColorU32(dim_bg_for_modal ? ImGuiCol_ModalWindowDimBg : ImGuiCol_NavWindowingDimBg, g.DimBgRatio); - draw_list->AddRectFilled(viewport->Pos, viewport->Pos + viewport->Size, dim_bg_col); - } + ImGuiViewportP* viewport = window->Viewport; + ImRect viewport_rect = viewport->GetMainRect(); + + // Draw behind window by moving the draw command at the FRONT of the draw list + { + // We've already called AddWindowToDrawData() which called DrawList->ChannelsMerge() on DockNodeHost windows, + // and draw list have been trimmed already, hence the explicit recreation of a draw command if missing. + ImDrawList* draw_list = window->RootWindowDockTree->DrawList; + if (draw_list->CmdBuffer.Size == 0) + draw_list->AddDrawCmd(); + draw_list->PushClipRect(viewport_rect.Min - ImVec2(1, 1), viewport_rect.Max + ImVec2(1, 1), false); // Ensure ImDrawCmd are not merged + draw_list->AddRectFilled(viewport_rect.Min, viewport_rect.Max, col); + ImDrawCmd cmd = draw_list->CmdBuffer.back(); + IM_ASSERT(cmd.ElemCount == 6); + draw_list->CmdBuffer.pop_back(); + draw_list->CmdBuffer.push_front(cmd); + draw_list->PopClipRect(); + } - // Draw modal whitening background between CTRL-TAB list - if (dim_bg_for_window_list && g.NavWindowingTargetAnim->Active) + // Draw over sibling docking nodes in a same docking tree + if (window->RootWindow->DockIsActive) { - // Choose a draw list that will be front-most across all our children - // In the unlikely case that the window wasn't made active we can't rely on its drawlist and skip rendering all-together. - ImGuiWindow* window = g.NavWindowingTargetAnim; ImDrawList* draw_list = FindFrontMostVisibleChildWindow(window->RootWindowDockTree)->DrawList; - draw_list->PushClipRectFullScreen(); + draw_list->PushClipRect(viewport_rect.Min, viewport_rect.Max, false); + RenderRectFilledWithHole(draw_list, window->RootWindowDockTree->Rect(), window->RootWindow->Rect(), col, 0.0f);// window->RootWindowDockTree->WindowRounding); + draw_list->PopClipRect(); + } +} + +ImGuiWindow* ImGui::FindBottomMostVisibleWindowWithinBeginStack(ImGuiWindow* parent_window) +{ + ImGuiContext& g = *GImGui; + ImGuiWindow* bottom_most_visible_window = parent_window; + for (int i = FindWindowDisplayIndex(parent_window); i >= 0; i--) + { + ImGuiWindow* window = g.Windows[i]; + if (window->Flags & ImGuiWindowFlags_ChildWindow) + continue; + if (!IsWindowWithinBeginStackOf(window, parent_window)) + break; + if (IsWindowActiveAndVisible(window) && GetWindowDisplayLayer(window) <= GetWindowDisplayLayer(parent_window)) + bottom_most_visible_window = window; + } + return bottom_most_visible_window; +} - // Docking: draw modal whitening background on other nodes of a same dock tree - // For CTRL+TAB within a docking node we need to render the dimming background in 8 steps - // (Because the root node renders the background in one shot, in order to avoid flickering when a child dock node is not submitted) - if (window->RootWindow->DockIsActive) - if (window->RootWindowDockTree != window->RootWindow) - RenderRectFilledWithHole(draw_list, window->RootWindowDockTree->Rect(), window->RootWindow->Rect(), GetColorU32(ImGuiCol_NavWindowingDimBg, g.DimBgRatio), g.Style.WindowRounding); +static void ImGui::RenderDimmedBackgrounds() +{ + ImGuiContext& g = *GImGui; + ImGuiWindow* modal_window = GetTopMostAndVisiblePopupModal(); + const bool dim_bg_for_modal = (modal_window != NULL); + const bool dim_bg_for_window_list = (g.NavWindowingTargetAnim != NULL && g.NavWindowingTargetAnim->Active); + if (!dim_bg_for_modal && !dim_bg_for_window_list) + return; + + ImGuiViewport* viewports_already_dimmed[2] = { NULL, NULL }; + if (dim_bg_for_modal) + { + // Draw dimming behind modal or a begin stack child, whichever comes first in draw order. + ImGuiWindow* dim_behind_window = FindBottomMostVisibleWindowWithinBeginStack(modal_window); + RenderDimmedBackgroundBehindWindow(dim_behind_window, GetColorU32(ImGuiCol_ModalWindowDimBg, g.DimBgRatio)); + viewports_already_dimmed[0] = modal_window->Viewport; + } + else if (dim_bg_for_window_list) + { + // Draw dimming behind CTRL+Tab target window and behind CTRL+Tab UI window + RenderDimmedBackgroundBehindWindow(g.NavWindowingTargetAnim, GetColorU32(ImGuiCol_NavWindowingDimBg, g.DimBgRatio)); + if (g.NavWindowingListWindow != NULL && g.NavWindowingListWindow->Viewport != g.NavWindowingTargetAnim->Viewport) + RenderDimmedBackgroundBehindWindow(g.NavWindowingListWindow, GetColorU32(ImGuiCol_NavWindowingDimBg, g.DimBgRatio)); + viewports_already_dimmed[0] = g.NavWindowingTargetAnim->Viewport; + viewports_already_dimmed[1] = g.NavWindowingListWindow ? g.NavWindowingListWindow->Viewport : NULL; - // Draw navigation selection/windowing rectangle border - float rounding = ImMax(window->WindowRounding, g.Style.WindowRounding); + // Draw border around CTRL+Tab target window + ImGuiWindow* window = g.NavWindowingTargetAnim; + ImGuiViewport* viewport = window->Viewport; + float distance = g.FontSize; ImRect bb = window->Rect(); - bb.Expand(g.FontSize); - if (bb.Contains(window->Viewport->GetMainRect())) // If a window fits the entire viewport, adjust its highlight inward - { - bb.Expand(-g.FontSize - 1.0f); - rounding = window->WindowRounding; - } - draw_list->AddRect(bb.Min, bb.Max, GetColorU32(ImGuiCol_NavWindowingHighlight, g.NavWindowingHighlightAlpha), rounding, 0, 3.0f); - draw_list->PopClipRect(); + bb.Expand(distance); + if (bb.GetWidth() >= viewport->Size.x && bb.GetHeight() >= viewport->Size.y) + bb.Expand(-distance - 1.0f); // If a window fits the entire viewport, adjust its highlight inward + if (window->DrawList->CmdBuffer.Size == 0) + window->DrawList->AddDrawCmd(); + window->DrawList->PushClipRect(viewport->Pos, viewport->Pos + viewport->Size); + window->DrawList->AddRect(bb.Min, bb.Max, GetColorU32(ImGuiCol_NavWindowingHighlight, g.NavWindowingHighlightAlpha), window->WindowRounding, 0, 3.0f); + window->DrawList->PopClipRect(); + } + + // Draw dimming background on _other_ viewports than the ones our windows are in + for (int viewport_n = 0; viewport_n < g.Viewports.Size; viewport_n++) + { + ImGuiViewportP* viewport = g.Viewports[viewport_n]; + if (viewport == viewports_already_dimmed[0] || viewport == viewports_already_dimmed[1]) + continue; + if (modal_window && viewport->Window && IsWindowAbove(viewport->Window, modal_window)) + continue; + ImDrawList* draw_list = GetForegroundDrawList(viewport); + const ImU32 dim_bg_col = GetColorU32(dim_bg_for_modal ? ImGuiCol_ModalWindowDimBg : ImGuiCol_NavWindowingDimBg, g.DimBgRatio); + draw_list->AddRectFilled(viewport->Pos, viewport->Pos + viewport->Size, dim_bg_col); } } @@ -4706,12 +4764,12 @@ void ImGui::EndFrame() g.CurrentWindow->Active = false; End(); - // Draw modal whitening background on _other_ viewports than the one the modal is one - EndFrameDrawDimmedBackgrounds(); - // Update navigation: CTRL+Tab, wrap-around requests NavEndFrame(); + // Update docking + DockContextEndFrame(&g); + SetCurrentViewport(NULL, NULL); // Drag and Drop: Elapse payload (if delivered, or if source stops being submitted) @@ -4780,6 +4838,7 @@ void ImGui::Render() if (g.FrameCountEnded != g.FrameCount) EndFrame(); + const bool first_render_of_frame = (g.FrameCountRendered != g.FrameCount); g.FrameCountRendered = g.FrameCount; g.IO.MetricsRenderWindows = 0; @@ -4809,6 +4868,10 @@ void ImGui::Render() if (windows_to_render_top_most[n] && IsWindowActiveAndVisible(windows_to_render_top_most[n])) // NavWindowingTarget is always temporarily displayed as the top-most window AddRootWindowToDrawData(windows_to_render_top_most[n]); + // Draw modal/window whitening backgrounds + if (first_render_of_frame) + RenderDimmedBackgrounds(); + ImVec2 mouse_cursor_offset, mouse_cursor_size, mouse_cursor_uv[4]; if (g.IO.MouseDrawCursor && g.MouseCursor != ImGuiMouseCursor_None) g.IO.Fonts->GetMouseCursorTexData(g.MouseCursor, &mouse_cursor_offset, &mouse_cursor_size, &mouse_cursor_uv[0], &mouse_cursor_uv[2]); @@ -4822,7 +4885,7 @@ void ImGui::Render() // Draw software mouse cursor if requested by io.MouseDrawCursor flag // (note we scale cursor by current viewport/monitor, however Windows 10 for its own hardware cursor seems to be using a different scale factor) - if (mouse_cursor_size.x > 0.0f && mouse_cursor_size.y > 0.0f) + if (mouse_cursor_size.x > 0.0f && mouse_cursor_size.y > 0.0f && first_render_of_frame) { float scale = g.Style.MouseCursorScale * viewport->DpiScale; if (viewport->GetMainRect().Overlaps(ImRect(g.IO.MousePos, g.IO.MousePos + ImVec2(mouse_cursor_size.x + 2, mouse_cursor_size.y + 2) * scale))) @@ -5062,7 +5125,14 @@ bool ImGui::IsMouseDoubleClicked(ImGuiMouseButton button) { ImGuiContext& g = *GImGui; IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown)); - return g.IO.MouseDoubleClicked[button]; + return g.IO.MouseClickedCount[button] == 2; +} + +int ImGui::GetMouseClickedCount(ImGuiMouseButton button) +{ + ImGuiContext& g = *GImGui; + IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown)); + return g.IO.MouseClickedCount[button]; } // Return if a mouse click/drag went past the given threshold. Valid to call during the MouseReleased frame. @@ -5402,7 +5472,7 @@ void ImGui::EndChild() ItemAdd(bb, window->ChildId); RenderNavHighlight(bb, window->ChildId); - // When browsing a window that has no activable items (scroll only) we keep a highlight on the child + // When browsing a window that has no activable items (scroll only) we keep a highlight on the child (pass g.NavId to trick into always displaying) if (window->DC.NavLayersActiveMask == 0 && window == g.NavWindow) RenderNavHighlight(ImRect(bb.Min - ImVec2(2, 2), bb.Max + ImVec2(2, 2)), g.NavId, ImGuiNavHighlightFlags_TypeThin); } @@ -5475,6 +5545,29 @@ static void ApplyWindowSettings(ImGuiWindow* window, ImGuiWindowSettings* settin window->DockOrder = settings->DockOrder; } +static void UpdateWindowInFocusOrderList(ImGuiWindow* window, bool just_created, ImGuiWindowFlags new_flags) +{ + ImGuiContext& g = *GImGui; + + const bool new_is_explicit_child = (new_flags & ImGuiWindowFlags_ChildWindow) != 0; + const bool child_flag_changed = new_is_explicit_child != window->IsExplicitChild; + if ((just_created || child_flag_changed) && !new_is_explicit_child) + { + IM_ASSERT(!g.WindowsFocusOrder.contains(window)); + g.WindowsFocusOrder.push_back(window); + window->FocusOrder = (short)(g.WindowsFocusOrder.Size - 1); + } + else if (!just_created && child_flag_changed && new_is_explicit_child) + { + IM_ASSERT(g.WindowsFocusOrder[window->FocusOrder] == window); + for (int n = window->FocusOrder + 1; n < g.WindowsFocusOrder.Size; n++) + g.WindowsFocusOrder[n]->FocusOrder--; + g.WindowsFocusOrder.erase(g.WindowsFocusOrder.Data + window->FocusOrder); + window->FocusOrder = -1; + } + window->IsExplicitChild = new_is_explicit_child; +} + static ImGuiWindow* CreateNewWindow(const char* name, ImGuiWindowFlags flags) { ImGuiContext& g = *GImGui; @@ -5515,16 +5608,12 @@ static ImGuiWindow* CreateNewWindow(const char* name, ImGuiWindowFlags flags) window->AutoFitOnlyGrows = (window->AutoFitFramesX > 0) || (window->AutoFitFramesY > 0); } - if (!(flags & ImGuiWindowFlags_ChildWindow)) - { - g.WindowsFocusOrder.push_back(window); - window->FocusOrder = (short)(g.WindowsFocusOrder.Size - 1); - } - if (flags & ImGuiWindowFlags_NoBringToFrontOnFocus) g.Windows.push_front(window); // Quite slow but rare and only once else g.Windows.push_back(window); + UpdateWindowInFocusOrderList(window, true, window->Flags); + return window; } @@ -5646,11 +5735,11 @@ ImVec2 ImGui::CalcWindowNextAutoFitSize(ImGuiWindow* window) return size_final; } -static ImGuiCol GetWindowBgColorIdxFromFlags(ImGuiWindowFlags flags) +static ImGuiCol GetWindowBgColorIdx(ImGuiWindow* window) { - if (flags & (ImGuiWindowFlags_Tooltip | ImGuiWindowFlags_Popup)) + if (window->Flags & (ImGuiWindowFlags_Tooltip | ImGuiWindowFlags_Popup)) return ImGuiCol_PopupBg; - if (flags & ImGuiWindowFlags_ChildWindow) + if ((window->Flags & ImGuiWindowFlags_ChildWindow) && !window->DockIsActive) return ImGuiCol_ChildBg; return ImGuiCol_WindowBg; } @@ -5785,7 +5874,7 @@ static bool ImGui::UpdateWindowManualResize(ImGuiWindow* window, const ImVec2& s if (hovered || held) g.MouseCursor = (resize_grip_n & 1) ? ImGuiMouseCursor_ResizeNESW : ImGuiMouseCursor_ResizeNWSE; - if (held && g.IO.MouseDoubleClicked[0] && resize_grip_n == 0) + if (held && g.IO.MouseClickedCount[0] == 2 && resize_grip_n == 0) { // Manual auto-fit when double-clicking size_target = CalcWindowSizeAfterConstraint(window, size_auto_fit); @@ -5815,7 +5904,7 @@ static bool ImGui::UpdateWindowManualResize(ImGuiWindow* window, const ImVec2& s bool hovered, held; ImRect border_rect = GetResizeBorderRect(window, border_n, grip_hover_inner_size, WINDOWS_HOVER_PADDING); ImGuiID border_id = window->GetID(border_n + 4); // == GetWindowResizeBorderID() - ButtonBehavior(border_rect, border_id, &hovered, &held, ImGuiButtonFlags_FlattenChildren); + ButtonBehavior(border_rect, border_id, &hovered, &held, ImGuiButtonFlags_FlattenChildren | ImGuiButtonFlags_NoNavFocus); //GetForegroundDrawLists(window)->AddRect(border_rect.Min, border_rect.Max, IM_COL32(255, 255, 0, 255)); if ((hovered && g.HoveredIdTimer > WINDOWS_RESIZE_FROM_EDGES_FEEDBACK_TIMER) || held) { @@ -5843,7 +5932,7 @@ static bool ImGui::UpdateWindowManualResize(ImGuiWindow* window, const ImVec2& s { ImVec2 nav_resize_delta; if (g.NavInputSource == ImGuiInputSource_Keyboard && g.IO.KeyShift) - nav_resize_delta = GetNavInputAmount2d(ImGuiNavDirSourceFlags_Keyboard, ImGuiInputReadMode_Down); + nav_resize_delta = GetNavInputAmount2d(ImGuiNavDirSourceFlags_RawKeyboard, ImGuiInputReadMode_Down); if (g.NavInputSource == ImGuiInputSource_Gamepad) nav_resize_delta = GetNavInputAmount2d(ImGuiNavDirSourceFlags_PadDPad, ImGuiInputReadMode_Down); if (nav_resize_delta.x != 0.0f || nav_resize_delta.y != 0.0f) @@ -5943,7 +6032,7 @@ void ImGui::RenderWindowDecorations(ImGuiWindow* window, const ImRect& title_bar if (g.DragDropPayload.IsDataType(IMGUI_PAYLOAD_TYPE_WINDOW) && *(ImGuiWindow**)g.DragDropPayload.Data == window) is_docking_transparent_payload = true; - ImU32 bg_col = GetColorU32(GetWindowBgColorIdxFromFlags(flags)); + ImU32 bg_col = GetColorU32(GetWindowBgColorIdx(window)); if (window->ViewportOwned) { // No alpha @@ -5969,8 +6058,21 @@ void ImGui::RenderWindowDecorations(ImGuiWindow* window, const ImRect& title_bar if (override_alpha) bg_col = (bg_col & ~IM_COL32_A_MASK) | (IM_F32_TO_INT8_SAT(alpha) << IM_COL32_A_SHIFT); } - window->DrawList->AddRectFilled(window->Pos + ImVec2(0, window->TitleBarHeight()), window->Pos + window->Size, bg_col, window_rounding, (flags & ImGuiWindowFlags_NoTitleBar) ? 0 : ImDrawFlags_RoundCornersBottom); + + // Render, for docked windows and host windows we ensure bg goes before decorations + ImDrawList* bg_draw_list = window->DockIsActive ? window->DockNode->HostWindow->DrawList : window->DrawList; + if (window->DockIsActive || (flags & ImGuiWindowFlags_DockNodeHost)) + bg_draw_list->ChannelsSetCurrent(0); + if (window->DockIsActive) + window->DockNode->LastBgColor = bg_col; + + bg_draw_list->AddRectFilled(window->Pos + ImVec2(0, window->TitleBarHeight()), window->Pos + window->Size, bg_col, window_rounding, (flags & ImGuiWindowFlags_NoTitleBar) ? 0 : ImDrawFlags_RoundCornersBottom); + + if (window->DockIsActive || (flags & ImGuiWindowFlags_DockNodeHost)) + bg_draw_list->ChannelsSetCurrent(1); } + if (window->DockIsActive) + window->DockNode->IsBgDrawnThisFrame = true; // Title bar // (when docked, DockNode are drawing their own title bar. Individual windows however do NOT set the _NoTitleBar flag, @@ -6048,6 +6150,7 @@ void ImGui::RenderWindowTitleBarContents(ImGuiWindow* window, const ImRect& titl const bool has_collapse_button = !(flags & ImGuiWindowFlags_NoCollapse) && (style.WindowMenuButtonPosition != ImGuiDir_None); // Close & Collapse button are on the Menu NavLayer and don't default focus (unless there's nothing else on that layer) + // FIXME-NAV: Might want (or not?) to set the equivalent of ImGuiButtonFlags_NoNavFocus so that mouse clicks on standard title bar items don't necessarily set nav/keyboard ref? const ImGuiItemFlags item_flags_backup = g.CurrentItemFlags; g.CurrentItemFlags |= ImGuiItemFlags_NoNavDefaultFocus; window->DC.NavLayerCurrent = ImGuiNavLayer_Menu; @@ -6128,13 +6231,15 @@ void ImGui::RenderWindowTitleBarContents(ImGuiWindow* window, const ImRect& titl void ImGui::UpdateWindowParentAndRootLinks(ImGuiWindow* window, ImGuiWindowFlags flags, ImGuiWindow* parent_window) { window->ParentWindow = parent_window; - window->RootWindow = window->RootWindowDockTree = window->RootWindowForTitleBarHighlight = window->RootWindowForNav = window; + window->RootWindow = window->RootWindowPopupTree = window->RootWindowDockTree = window->RootWindowForTitleBarHighlight = window->RootWindowForNav = window; if (parent_window && (flags & ImGuiWindowFlags_ChildWindow) && !(flags & ImGuiWindowFlags_Tooltip)) { window->RootWindowDockTree = parent_window->RootWindowDockTree; if (!window->DockIsActive && !(parent_window->Flags & ImGuiWindowFlags_DockNodeHost)) window->RootWindow = parent_window->RootWindow; } + if (parent_window && (flags & ImGuiWindowFlags_Popup)) + window->RootWindowPopupTree = parent_window->RootWindowPopupTree; if (parent_window && !(flags & ImGuiWindowFlags_Modal) && (flags & (ImGuiWindowFlags_ChildWindow | ImGuiWindowFlags_Popup))) window->RootWindowForTitleBarHighlight = parent_window->RootWindowForTitleBarHighlight; while (window->RootWindowForNav->Flags & ImGuiWindowFlags_NavFlattened) @@ -6144,6 +6249,36 @@ void ImGui::UpdateWindowParentAndRootLinks(ImGuiWindow* window, ImGuiWindowFlags } } +// When a modal popup is open, newly created windows that want focus (i.e. are not popups and do not specify ImGuiWindowFlags_NoFocusOnAppearing) +// should be positioned behind that modal window, unless the window was created inside the modal begin-stack. +// In case of multiple stacked modals newly created window honors begin stack order and does not go below its own modal parent. +// - Window // FindBlockingModal() returns Modal1 +// - Window // .. returns Modal1 +// - Modal1 // .. returns Modal2 +// - Window // .. returns Modal2 +// - Window // .. returns Modal2 +// - Modal2 // .. returns Modal2 +static ImGuiWindow* ImGui::FindBlockingModal(ImGuiWindow* window) +{ + ImGuiContext& g = *GImGui; + if (g.OpenPopupStack.Size <= 0) + return NULL; + + // Find a modal that has common parent with specified window. Specified window should be positioned behind that modal. + for (int i = g.OpenPopupStack.Size - 1; i >= 0; i--) + { + ImGuiWindow* popup_window = g.OpenPopupStack.Data[i].Window; + if (popup_window == NULL || !popup_window->WasActive || !(popup_window->Flags & ImGuiWindowFlags_Modal)) // Check WasActive, because this code may run before popup renders on current frame. + continue; + if (IsWindowWithinBeginStackOf(window, popup_window)) // Window is rendered over last modal, no render order change needed. + break; + for (ImGuiWindow* parent = popup_window->ParentWindowInBeginStack->RootWindow; parent != NULL; parent = parent->ParentWindowInBeginStack->RootWindow) + if (IsWindowWithinBeginStackOf(window, parent)) + return popup_window; // Place window above its begin stack parent. + } + return NULL; +} + // Push a new Dear ImGui window to add widgets to. // - A default window called "Debug" is automatically stacked at the beginning of every frame so you can use widgets without explicitly calling a Begin/End pair. // - Begin/End can be called multiple times during the frame with the same window name to append content. @@ -6164,6 +6299,8 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) const bool window_just_created = (window == NULL); if (window_just_created) window = CreateNewWindow(name, flags); + else + UpdateWindowInFocusOrderList(window, window_just_created, flags); // Automatically disable manual moving/resizing when NoInputs is set if ((flags & ImGuiWindowFlags_NoInputs) == ImGuiWindowFlags_NoInputs) @@ -6250,13 +6387,15 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) // Add to stack // We intentionally set g.CurrentWindow to NULL to prevent usage until when the viewport is set, then will call SetCurrentWindow() + g.CurrentWindow = window; ImGuiWindowStackData window_stack_data; window_stack_data.Window = window; window_stack_data.ParentLastItemDataBackup = g.LastItemData; + window_stack_data.StackSizesOnBegin.SetToCurrentState(); g.CurrentWindowStack.push_back(window_stack_data); - g.CurrentWindow = window; - window->DC.StackSizesOnBegin.SetToCurrentState(); g.CurrentWindow = NULL; + if (flags & ImGuiWindowFlags_ChildMenu) + g.BeginMenuCount++; if (flags & ImGuiWindowFlags_Popup) { @@ -6268,7 +6407,10 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) // Update ->RootWindow and others pointers (before any possible call to FocusWindow) if (first_begin_of_the_frame) + { UpdateWindowParentAndRootLinks(window, flags, parent_window); + window->ParentWindowInBeginStack = parent_window_in_stack; + } // Process SetNextWindow***() calls // (FIXME: Consider splitting the HasXXX flags into X/Y components @@ -6333,6 +6475,11 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) window->IDStack.resize(1); window->DrawList->_ResetForNewFrame(); window->DC.CurrentTableIdx = -1; + if (flags & ImGuiWindowFlags_DockNodeHost) + { + window->DrawList->ChannelsSplit(2); + window->DrawList->ChannelsSetCurrent(1); // Render decorations on channel 1 as we will render the backgrounds manually later + } // Restore buffer capacity when woken from a compacted state, to avoid if (window->MemoryCompacted) @@ -6418,7 +6565,7 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) { // We don't use a regular button+id to test for double-click on title bar (mostly due to legacy reason, could be fixed), so verify that we don't have items over the title bar. ImRect title_bar_rect = window->TitleBarRect(); - if (g.HoveredWindow == window && g.HoveredId == 0 && g.HoveredIdPreviousFrame == 0 && IsMouseHoveringRect(title_bar_rect.Min, title_bar_rect.Max) && g.IO.MouseDoubleClicked[0]) + if (g.HoveredWindow == window && g.HoveredId == 0 && g.HoveredIdPreviousFrame == 0 && IsMouseHoveringRect(title_bar_rect.Min, title_bar_rect.Max) && g.IO.MouseClickedCount[0] == 2) window->WantCollapseToggle = true; if (window->WantCollapseToggle) { @@ -6571,6 +6718,22 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) want_focus = true; else if ((window->DockIsActive || (flags & ImGuiWindowFlags_ChildWindow) == 0) && !(flags & ImGuiWindowFlags_Tooltip)) want_focus = true; + + ImGuiWindow* modal = GetTopMostPopupModal(); + if (modal != NULL && !IsWindowWithinBeginStackOf(window, modal)) + { + // Avoid focusing a window that is created outside of active modal. This will prevent active modal from being closed. + // Since window is not focused it would reappear at the same display position like the last time it was visible. + // In case of completely new windows it would go to the top (over current modal), but input to such window would still be blocked by modal. + // Position window behind a modal that is not a begin-parent of this window. + want_focus = false; + if (window == window->RootWindow) + { + ImGuiWindow* blocking_modal = FindBlockingModal(window); + IM_ASSERT(blocking_modal != NULL); + BringWindowToDisplayBehind(window, blocking_modal); + } + } } // Decide if we are going to handle borders and resize grips @@ -6640,7 +6803,7 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) // Inner rectangle // Not affected by window border size. Used by: // - InnerClipRect - // - ScrollToBringRectIntoView() + // - ScrollToRectEx() // - NavUpdatePageUpPageDown() // - Scrollbar() window->InnerRect.Min.x = window->Pos.x; @@ -6687,25 +6850,6 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) window->DrawList->PushTextureID(g.Font->ContainerAtlas->TexID); PushClipRect(host_rect.Min, host_rect.Max, false); - // Draw modal or window list full viewport dimming background (for other viewports we'll render them in EndFrame) - ImGuiWindow* window_window_list = g.NavWindowingListWindow; - const bool dim_bg_for_modal = (flags & ImGuiWindowFlags_Modal) && window == GetTopMostPopupModal() && window->HiddenFramesCannotSkipItems <= 0; - const bool dim_bg_for_window_list = g.NavWindowingTargetAnim && ((window == g.NavWindowingTargetAnim->RootWindowDockTree) || (window == window_window_list && window_window_list->Viewport != g.NavWindowingTargetAnim->Viewport)); - if (dim_bg_for_modal || dim_bg_for_window_list) - { - const ImU32 dim_bg_col = GetColorU32(dim_bg_for_modal ? ImGuiCol_ModalWindowDimBg : ImGuiCol_NavWindowingDimBg, g.DimBgRatio); - window->DrawList->AddRectFilled(viewport_rect.Min, viewport_rect.Max, dim_bg_col); - } - - // Draw navigation selection/windowing rectangle background - if (dim_bg_for_window_list && window == g.NavWindowingTargetAnim) - { - ImRect bb = window->Rect(); - bb.Expand(g.FontSize); - if (!bb.Contains(viewport_rect)) // Avoid drawing if the window covers all the viewport anyway - window->DrawList->AddRectFilled(bb.Min, bb.Max, GetColorU32(ImGuiCol_NavWindowingHighlight, g.NavWindowingHighlightAlpha * 0.25f), g.Style.WindowRounding); - } - // Child windows can render their decoration (bg color, border, scrollbars, etc.) within their parent to save a draw call (since 1.71) // When using overlapping child windows, this will break the assumption that child z-order is mapped to submission order. // FIXME: User code may rely on explicit sorting of overlapping child window and would need to disable this somehow. Please get in contact if you are affected (github #4493) @@ -6735,20 +6879,6 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) window->DrawList = &window->DrawListInst; } - // Draw navigation selection/windowing rectangle border - if (g.NavWindowingTargetAnim == window) - { - float rounding = ImMax(window->WindowRounding, g.Style.WindowRounding); - ImRect bb = window->Rect(); - bb.Expand(g.FontSize); - if (bb.Contains(viewport_rect)) // If a window fits the entire viewport, adjust its highlight inward - { - bb.Expand(-g.FontSize - 1.0f); - rounding = window->WindowRounding; - } - window->DrawList->AddRect(bb.Min, bb.Max, GetColorU32(ImGuiCol_NavWindowingHighlight, g.NavWindowingHighlightAlpha), rounding, 0, 3.0f); - } - // UPDATE RECTANGLES (2- THOSE AFFECTED BY SCROLLING) // Work rectangle. @@ -6780,7 +6910,13 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) window->DC.Indent.x = 0.0f + window->WindowPadding.x - window->Scroll.x; window->DC.GroupOffset.x = 0.0f; window->DC.ColumnsOffset.x = 0.0f; - window->DC.CursorStartPos = window->Pos + ImVec2(window->DC.Indent.x + window->DC.ColumnsOffset.x, decoration_up_height + window->WindowPadding.y - window->Scroll.y); + + // Record the loss of precision of CursorStartPos which can happen due to really large scrolling amount. + // This is used by clipper to compensate and fix the most common use case of large scroll area. Easy and cheap, next best thing compared to switching everything to double or ImU64. + double start_pos_highp_x = (double)window->Pos.x + window->WindowPadding.x - (double)window->Scroll.x + window->DC.ColumnsOffset.x; + double start_pos_highp_y = (double)window->Pos.y + window->WindowPadding.y - (double)window->Scroll.y + decoration_up_height; + window->DC.CursorStartPos = ImVec2((float)start_pos_highp_x, (float)start_pos_highp_y); + window->DC.CursorStartPosLossyness = ImVec2((float)(start_pos_highp_x - window->DC.CursorStartPos.x), (float)(start_pos_highp_y - window->DC.CursorStartPos.y)); window->DC.CursorPos = window->DC.CursorStartPos; window->DC.CursorPosPrevLine = window->DC.CursorPos; window->DC.CursorMaxPos = window->DC.CursorStartPos; @@ -6803,7 +6939,6 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) window->DC.CurrentColumns = NULL; window->DC.LayoutType = ImGuiLayoutType_Vertical; window->DC.ParentLayoutType = parent_window ? parent_window->DC.LayoutType : ImGuiLayoutType_Vertical; - window->DC.FocusCounterRegular = window->DC.FocusCounterTabStop = -1; window->DC.ItemWidth = window->ItemWidthDefault; window->DC.TextWrapPos = -1.0f; // disabled @@ -6855,7 +6990,7 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) { // Docking: Dragging a dockable window (or any of its child) turns it into a drag and drop source. // We need to do this _before_ we overwrite window->DC.LastItemId below because BeginDockableDragDropSource() also overwrites it. - if (g.MovingWindow == window && g.IO.KeyShift == false) + if ((g.MovingWindow == window) && (g.IO.ConfigDockingWithShift == g.IO.KeyShift)) if ((window->RootWindowDockTree->Flags & ImGuiWindowFlags_NoDocking) == 0) BeginDockableDragDropSource(window); @@ -6917,9 +7052,12 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) // Mark them as collapsed so commands are skipped earlier (we can't manually collapse them because they have no title bar). IM_ASSERT((flags& ImGuiWindowFlags_NoTitleBar) != 0 || (window->DockIsActive)); if (!(flags & ImGuiWindowFlags_AlwaysAutoResize) && window->AutoFitFramesX <= 0 && window->AutoFitFramesY <= 0) // FIXME: Doesn't make sense for ChildWindow?? - if (!g.LogEnabled) + { + const bool nav_request = (flags & ImGuiWindowFlags_NavFlattened) && (g.NavAnyRequest && g.NavWindow && g.NavWindow->RootWindowForNav == window->RootWindowForNav); + if (!g.LogEnabled && !nav_request) if (window->OuterRectClipped.Min.x >= window->OuterRectClipped.Max.x || window->OuterRectClipped.Min.y >= window->OuterRectClipped.Max.y) window->HiddenFramesCanSkipItems = 1; + } // Hide along with parent or if parent is collapsed if (parent_window && (parent_window->Collapsed || parent_window->HiddenFramesCanSkipItems > 0)) @@ -6933,7 +7071,8 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) window->HiddenFramesCanSkipItems = 1; // Update the Hidden flag - window->Hidden = (window->HiddenFramesCanSkipItems > 0) || (window->HiddenFramesCannotSkipItems > 0) || (window->HiddenFramesForRenderOnly > 0); + bool hidden_regular = (window->HiddenFramesCanSkipItems > 0) || (window->HiddenFramesCannotSkipItems > 0); + window->Hidden = hidden_regular || (window->HiddenFramesForRenderOnly > 0); // Disable inputs for requested number of frames if (window->DisableInputsFrames > 0) @@ -6944,7 +7083,7 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) // Update the SkipItems flag, used to early out of all items functions (no layout required) bool skip_items = false; - if (window->Collapsed || !window->Active || window->Hidden) + if (window->Collapsed || !window->Active || hidden_regular) if (window->AutoFitFramesX <= 0 && window->AutoFitFramesY <= 0 && window->HiddenFramesCannotSkipItems <= 0) skip_items = true; window->SkipItems = skip_items; @@ -6993,10 +7132,12 @@ void ImGui::End() // Pop from window stack g.LastItemData = g.CurrentWindowStack.back().ParentLastItemDataBackup; - g.CurrentWindowStack.pop_back(); + if (window->Flags & ImGuiWindowFlags_ChildMenu) + g.BeginMenuCount--; if (window->Flags & ImGuiWindowFlags_Popup) g.BeginPopupStack.pop_back(); - window->DC.StackSizesOnBegin.CompareWithCurrentState(); + g.CurrentWindowStack.back().StackSizesOnBegin.CompareWithCurrentState(); + g.CurrentWindowStack.pop_back(); SetCurrentWindow(g.CurrentWindowStack.Size == 0 ? NULL : g.CurrentWindowStack.back().Window); if (g.CurrentWindow) SetCurrentViewport(g.CurrentWindow, g.CurrentWindow->Viewport); @@ -7052,6 +7193,34 @@ void ImGui::BringWindowToDisplayBack(ImGuiWindow* window) } } +void ImGui::BringWindowToDisplayBehind(ImGuiWindow* window, ImGuiWindow* behind_window) +{ + IM_ASSERT(window != NULL && behind_window != NULL); + ImGuiContext& g = *GImGui; + window = window->RootWindow; + behind_window = behind_window->RootWindow; + int pos_wnd = FindWindowDisplayIndex(window); + int pos_beh = FindWindowDisplayIndex(behind_window); + if (pos_wnd < pos_beh) + { + size_t copy_bytes = (pos_beh - pos_wnd - 1) * sizeof(ImGuiWindow*); + memmove(&g.Windows.Data[pos_wnd], &g.Windows.Data[pos_wnd + 1], copy_bytes); + g.Windows[pos_beh - 1] = window; + } + else + { + size_t copy_bytes = (pos_wnd - pos_beh) * sizeof(ImGuiWindow*); + memmove(&g.Windows.Data[pos_beh + 1], &g.Windows.Data[pos_beh], copy_bytes); + g.Windows[pos_beh] = window; + } +} + +int ImGui::FindWindowDisplayIndex(ImGuiWindow* window) +{ + ImGuiContext& g = *GImGui; + return g.Windows.index_from_ptr(g.Windows.find(window)); +} + // Moving window to front of display and set focus (which happens to be back of our sorted list) void ImGui::FocusWindow(ImGuiWindow* window) { @@ -7066,7 +7235,7 @@ void ImGui::FocusWindow(ImGuiWindow* window) g.NavFocusScopeId = 0; g.NavIdIsAlive = false; g.NavLayer = ImGuiNavLayer_Main; - g.NavInitRequest = g.NavMoveRequest = false; + g.NavInitRequest = g.NavMoveSubmitted = g.NavMoveScoringItems = false; NavUpdateAnyRequestFlag(); //IMGUI_DEBUG_LOG("FocusWindow(\"%s\")\n", window ? window->Name : NULL); } @@ -7107,8 +7276,18 @@ void ImGui::FocusWindow(ImGuiWindow* window) void ImGui::FocusTopMostWindowUnderOne(ImGuiWindow* under_this_window, ImGuiWindow* ignore_window) { ImGuiContext& g = *GImGui; - - const int start_idx = ((under_this_window != NULL) ? FindWindowFocusIndex(under_this_window) : g.WindowsFocusOrder.Size) - 1; + int start_idx = g.WindowsFocusOrder.Size - 1; + if (under_this_window != NULL) + { + // Aim at root window behind us, if we are in a child window that's our own root (see #4640) + int offset = -1; + while (under_this_window->Flags & ImGuiWindowFlags_ChildWindow) + { + under_this_window = under_this_window->ParentWindow; + offset = 0; + } + start_idx = FindWindowFocusIndex(under_this_window) + offset; + } for (int i = start_idx; i >= 0; i--) { // We may later decide to test for different NoXXXInputs based on the active navigation input (mouse vs nav) but that may feel more confusing to the user. @@ -7195,7 +7374,6 @@ void ImGui::BeginDisabled(bool disabled) { ImGuiContext& g = *GImGui; bool was_disabled = (g.CurrentItemFlags & ImGuiItemFlags_Disabled) != 0; - g.DisabledAlphaBackup = g.Style.Alpha; if (!was_disabled && disabled) { g.DisabledAlphaBackup = g.Style.Alpha; @@ -7204,11 +7382,14 @@ void ImGui::BeginDisabled(bool disabled) if (was_disabled || disabled) g.CurrentItemFlags |= ImGuiItemFlags_Disabled; g.ItemFlagsStack.push_back(g.CurrentItemFlags); + g.DisabledStackSize++; } void ImGui::EndDisabled() { ImGuiContext& g = *GImGui; + IM_ASSERT(g.DisabledStackSize > 0); + g.DisabledStackSize--; bool was_disabled = (g.CurrentItemFlags & ImGuiItemFlags_Disabled) != 0; //PopItemFlag(); g.ItemFlagsStack.pop_back(); @@ -7252,23 +7433,59 @@ void ImGui::PopTextWrapPos() window->DC.TextWrapPosStack.pop_back(); } -// FIXME: We are exposing the docking hierarchy to end-user here (via IsWindowHovered, IsWindowFocused) which is unusual. -bool ImGui::IsWindowChildOf(ImGuiWindow* window, ImGuiWindow* potential_parent) +static ImGuiWindow* GetCombinedRootWindow(ImGuiWindow* window, bool popup_hierarchy, bool dock_hierarchy) +{ + ImGuiWindow* last_window = NULL; + while (last_window != window) + { + last_window = window; + window = window->RootWindow; + if (popup_hierarchy) + window = window->RootWindowPopupTree; + if (dock_hierarchy) + window = window->RootWindowDockTree; + } + return window; +} + +bool ImGui::IsWindowChildOf(ImGuiWindow* window, ImGuiWindow* potential_parent, bool popup_hierarchy, bool dock_hierarchy) { - if (window->RootWindowDockTree == potential_parent) + ImGuiWindow* window_root = GetCombinedRootWindow(window, popup_hierarchy, dock_hierarchy); + if (window_root == potential_parent) return true; while (window != NULL) { if (window == potential_parent) return true; + if (window == window_root) // end of chain + return false; window = window->ParentWindow; } return false; } +bool ImGui::IsWindowWithinBeginStackOf(ImGuiWindow* window, ImGuiWindow* potential_parent) +{ + if (window->RootWindow == potential_parent) + return true; + while (window != NULL) + { + if (window == potential_parent) + return true; + window = window->ParentWindowInBeginStack; + } + return false; +} + bool ImGui::IsWindowAbove(ImGuiWindow* potential_above, ImGuiWindow* potential_below) { ImGuiContext& g = *GImGui; + + // It would be saner to ensure that display layer is always reflected in the g.Windows[] order, which would likely requires altering all manipulations of that array + const int display_layer_delta = GetWindowDisplayLayer(potential_above) - GetWindowDisplayLayer(potential_below); + if (display_layer_delta != 0) + return display_layer_delta > 0; + for (int i = g.Windows.Size - 1; i >= 0; i--) { ImGuiWindow* candidate_window = g.Windows[i]; @@ -7282,39 +7499,34 @@ bool ImGui::IsWindowAbove(ImGuiWindow* potential_above, ImGuiWindow* potential_b bool ImGui::IsWindowHovered(ImGuiHoveredFlags flags) { - IM_ASSERT((flags & ImGuiHoveredFlags_AllowWhenOverlapped) == 0); // Flags not supported by this function + IM_ASSERT((flags & (ImGuiHoveredFlags_AllowWhenOverlapped | ImGuiHoveredFlags_AllowWhenDisabled)) == 0); // Flags not supported by this function ImGuiContext& g = *GImGui; - if (g.HoveredWindow == NULL) + ImGuiWindow* ref_window = g.HoveredWindow; + ImGuiWindow* cur_window = g.CurrentWindow; + if (ref_window == NULL) return false; if ((flags & ImGuiHoveredFlags_AnyWindow) == 0) { - ImGuiWindow* window = g.CurrentWindow; - switch (flags & (ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_ChildWindows)) - { - case ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_ChildWindows: - if (g.HoveredWindow->RootWindow != window->RootWindow) - return false; - break; - case ImGuiHoveredFlags_RootWindow: - if (g.HoveredWindow != window->RootWindow) - return false; - break; - case ImGuiHoveredFlags_ChildWindows: - if (!IsWindowChildOf(g.HoveredWindow, window)) - return false; - break; - default: - if (g.HoveredWindow != window) - return false; - break; - } + IM_ASSERT(cur_window); // Not inside a Begin()/End() + const bool popup_hierarchy = (flags & ImGuiHoveredFlags_NoPopupHierarchy) == 0; + const bool dock_hierarchy = (flags & ImGuiHoveredFlags_DockHierarchy) != 0; + if (flags & ImGuiHoveredFlags_RootWindow) + cur_window = GetCombinedRootWindow(cur_window, popup_hierarchy, dock_hierarchy); + + bool result; + if (flags & ImGuiHoveredFlags_ChildWindows) + result = IsWindowChildOf(ref_window, cur_window, popup_hierarchy, dock_hierarchy); + else + result = (ref_window == cur_window); + if (!result) + return false; } - if (!IsWindowContentHoverable(g.HoveredWindow, flags)) + if (!IsWindowContentHoverable(ref_window, flags)) return false; if (!(flags & ImGuiHoveredFlags_AllowWhenBlockedByActiveItem)) - if (g.ActiveId != 0 && !g.ActiveIdAllowOverlap && g.ActiveId != g.HoveredWindow->MoveId) + if (g.ActiveId != 0 && !g.ActiveIdAllowOverlap && g.ActiveId != ref_window->MoveId) return false; return true; } @@ -7322,22 +7534,24 @@ bool ImGui::IsWindowHovered(ImGuiHoveredFlags flags) bool ImGui::IsWindowFocused(ImGuiFocusedFlags flags) { ImGuiContext& g = *GImGui; + ImGuiWindow* ref_window = g.NavWindow; + ImGuiWindow* cur_window = g.CurrentWindow; + if (ref_window == NULL) + return false; if (flags & ImGuiFocusedFlags_AnyWindow) - return g.NavWindow != NULL; + return true; - IM_ASSERT(g.CurrentWindow); // Not inside a Begin()/End() - switch (flags & (ImGuiFocusedFlags_RootWindow | ImGuiFocusedFlags_ChildWindows)) - { - case ImGuiFocusedFlags_RootWindow | ImGuiFocusedFlags_ChildWindows: - return g.NavWindow && g.NavWindow->RootWindow == g.CurrentWindow->RootWindow; - case ImGuiFocusedFlags_RootWindow: - return g.NavWindow == g.CurrentWindow->RootWindow; - case ImGuiFocusedFlags_ChildWindows: - return g.NavWindow && IsWindowChildOf(g.NavWindow, g.CurrentWindow); - default: - return g.NavWindow == g.CurrentWindow; - } + IM_ASSERT(cur_window); // Not inside a Begin()/End() + const bool popup_hierarchy = (flags & ImGuiFocusedFlags_NoPopupHierarchy) == 0; + const bool dock_hierarchy = (flags & ImGuiFocusedFlags_DockHierarchy) != 0; + if (flags & ImGuiHoveredFlags_RootWindow) + cur_window = GetCombinedRootWindow(cur_window, popup_hierarchy, dock_hierarchy); + + if (flags & ImGuiHoveredFlags_ChildWindows) + return IsWindowChildOf(ref_window, cur_window, popup_hierarchy, dock_hierarchy); + else + return (ref_window == cur_window); } ImGuiID ImGui::GetWindowDockID() @@ -7656,6 +7870,7 @@ void ImGui::ActivateItem(ImGuiID id) { ImGuiContext& g = *GImGui; g.NavNextActivateId = id; + g.NavNextActivateFlags = ImGuiActivateFlags_None; } void ImGui::PushFocusScope(ImGuiID id) @@ -7677,12 +7892,21 @@ void ImGui::PopFocusScope() void ImGui::SetKeyboardFocusHere(int offset) { - IM_ASSERT(offset >= -1); // -1 is allowed but not below ImGuiContext& g = *GImGui; ImGuiWindow* window = g.CurrentWindow; - g.TabFocusRequestNextWindow = window; - g.TabFocusRequestNextCounterRegular = window->DC.FocusCounterRegular + 1 + offset; - g.TabFocusRequestNextCounterTabStop = INT_MAX; + IM_ASSERT(offset >= -1); // -1 is allowed but not below + g.NavWindow = window; + ImGuiScrollFlags scroll_flags = window->Appearing ? ImGuiScrollFlags_KeepVisibleEdgeX | ImGuiScrollFlags_AlwaysCenterY : ImGuiScrollFlags_KeepVisibleEdgeX | ImGuiScrollFlags_KeepVisibleEdgeY; + NavMoveRequestSubmit(ImGuiDir_None, offset < 0 ? ImGuiDir_Up : ImGuiDir_Down, ImGuiNavMoveFlags_Tabbing | ImGuiNavMoveFlags_FocusApi, scroll_flags); // FIXME-NAV: Once we refactor tabbing, add LegacyApi flag to not activate non-inputable. + if (offset == -1) + { + NavMoveRequestResolveWithLastItem(&g.NavMoveResultLocal); + } + else + { + g.NavTabbingDir = 1; + g.NavTabbingCounter = offset + 1; + } } void ImGui::SetItemDefaultFocus() @@ -7691,15 +7915,17 @@ void ImGui::SetItemDefaultFocus() ImGuiWindow* window = g.CurrentWindow; if (!window->Appearing) return; - if (g.NavWindow == window->RootWindowForNav && (g.NavInitRequest || g.NavInitResultId != 0) && g.NavLayer == window->DC.NavLayerCurrent) - { - g.NavInitRequest = false; - g.NavInitResultId = g.LastItemData.ID; - g.NavInitResultRectRel = ImRect(g.LastItemData.Rect.Min - window->Pos, g.LastItemData.Rect.Max - window->Pos); - NavUpdateAnyRequestFlag(); - if (!IsItemVisible()) - SetScrollHereY(); - } + if (g.NavWindow != window->RootWindowForNav || (!g.NavInitRequest && g.NavInitResultId == 0) || g.NavLayer != window->DC.NavLayerCurrent) + return; + + g.NavInitRequest = false; + g.NavInitResultId = g.LastItemData.ID; + g.NavInitResultRectRel = WindowRectAbsToRel(window, g.LastItemData.Rect); + NavUpdateAnyRequestFlag(); + + // Scroll could be done in NavInitRequestApplyResult() via a opt-in flag (we however don't want regular init requests to scroll) + if (!IsItemVisible()) + ScrollToRectEx(window, g.LastItemData.Rect, ImGuiScrollFlags_None); } void ImGui::SetStateStorage(ImGuiStorage* tree) @@ -7751,6 +7977,8 @@ void ImGui::PushOverrideID(ImGuiID id) { ImGuiContext& g = *GImGui; ImGuiWindow* window = g.CurrentWindow; + if (g.DebugHookIdInfo == id) + DebugHookIdInfo(id, ImGuiDataType_ID, NULL, NULL); window->IDStack.push_back(id); } @@ -7760,11 +7988,10 @@ void ImGui::PushOverrideID(ImGuiID id) ImGuiID ImGui::GetIDWithSeed(const char* str, const char* str_end, ImGuiID seed) { ImGuiID id = ImHashStr(str, str_end ? (str_end - str) : 0, seed); - ImGui::KeepAliveID(id); -#ifdef IMGUI_ENABLE_TEST_ENGINE + KeepAliveID(id); ImGuiContext& g = *GImGui; - IMGUI_TEST_ENGINE_ID_INFO2(id, ImGuiDataType_String, str, str_end); -#endif + if (g.DebugHookIdInfo == id) + DebugHookIdInfo(id, ImGuiDataType_String, str, str_end); return id; } @@ -7949,53 +8176,13 @@ void ImGui::ErrorCheckEndFrameRecover(ImGuiErrorLogCallback log_callback, voi { // PVS-Studio V1044 is "Loop break conditions do not depend on the number of iterations" ImGuiContext& g = *GImGui; - while (g.CurrentWindowStack.Size > 0) + while (g.CurrentWindowStack.Size > 0) //-V1044 { - while (g.CurrentTable && (g.CurrentTable->OuterWindow == g.CurrentWindow || g.CurrentTable->InnerWindow == g.CurrentWindow)) - { - if (log_callback) log_callback(user_data, "Recovered from missing EndTable() in '%s'", g.CurrentTable->OuterWindow->Name); - EndTable(); - } + ErrorCheckEndWindowRecover(log_callback, user_data); ImGuiWindow* window = g.CurrentWindow; - IM_ASSERT(window != NULL); - while (g.CurrentTabBar != NULL) //-V1044 - { - if (log_callback) log_callback(user_data, "Recovered from missing EndTabBar() in '%s'", window->Name); - EndTabBar(); - } - while (window->DC.TreeDepth > 0) - { - if (log_callback) log_callback(user_data, "Recovered from missing TreePop() in '%s'", window->Name); - TreePop(); - } - while (g.GroupStack.Size > window->DC.StackSizesOnBegin.SizeOfGroupStack) - { - if (log_callback) log_callback(user_data, "Recovered from missing EndGroup() in '%s'", window->Name); - EndGroup(); - } - while (window->IDStack.Size > 1) - { - if (log_callback) log_callback(user_data, "Recovered from missing PopID() in '%s'", window->Name); - PopID(); - } - while (g.ColorStack.Size > window->DC.StackSizesOnBegin.SizeOfColorStack) - { - if (log_callback) log_callback(user_data, "Recovered from missing PopStyleColor() in '%s' for ImGuiCol_%s", window->Name, GetStyleColorName(g.ColorStack.back().Col)); - PopStyleColor(); - } - while (g.StyleVarStack.Size > window->DC.StackSizesOnBegin.SizeOfStyleVarStack) - { - if (log_callback) log_callback(user_data, "Recovered from missing PopStyleVar() in '%s'", window->Name); - PopStyleVar(); - } - while (g.FocusScopeStack.Size > window->DC.StackSizesOnBegin.SizeOfFocusScopeStack) - { - if (log_callback) log_callback(user_data, "Recovered from missing PopFocusScope() in '%s'", window->Name); - PopFocusScope(); - } if (g.CurrentWindowStack.Size == 1) { - IM_ASSERT(g.CurrentWindow->IsFallbackWindow); + IM_ASSERT(window->IsFallbackWindow); break; } IM_ASSERT(window == g.CurrentWindow); @@ -8012,6 +8199,66 @@ void ImGui::ErrorCheckEndFrameRecover(ImGuiErrorLogCallback log_callback, voi } } +// Must be called before End()/EndChild() +void ImGui::ErrorCheckEndWindowRecover(ImGuiErrorLogCallback log_callback, void* user_data) +{ + ImGuiContext& g = *GImGui; + while (g.CurrentTable && (g.CurrentTable->OuterWindow == g.CurrentWindow || g.CurrentTable->InnerWindow == g.CurrentWindow)) + { + if (log_callback) log_callback(user_data, "Recovered from missing EndTable() in '%s'", g.CurrentTable->OuterWindow->Name); + EndTable(); + } + + ImGuiWindow* window = g.CurrentWindow; + ImGuiStackSizes* stack_sizes = &g.CurrentWindowStack.back().StackSizesOnBegin; + IM_ASSERT(window != NULL); + while (g.CurrentTabBar != NULL) //-V1044 + { + if (log_callback) log_callback(user_data, "Recovered from missing EndTabBar() in '%s'", window->Name); + EndTabBar(); + } + while (window->DC.TreeDepth > 0) + { + if (log_callback) log_callback(user_data, "Recovered from missing TreePop() in '%s'", window->Name); + TreePop(); + } + while (g.GroupStack.Size > stack_sizes->SizeOfGroupStack) //-V1044 + { + if (log_callback) log_callback(user_data, "Recovered from missing EndGroup() in '%s'", window->Name); + EndGroup(); + } + while (window->IDStack.Size > 1) + { + if (log_callback) log_callback(user_data, "Recovered from missing PopID() in '%s'", window->Name); + PopID(); + } + while (g.DisabledStackSize > stack_sizes->SizeOfDisabledStack) //-V1044 + { + if (log_callback) log_callback(user_data, "Recovered from missing EndDisabled() in '%s'", window->Name); + EndDisabled(); + } + while (g.ColorStack.Size > stack_sizes->SizeOfColorStack) + { + if (log_callback) log_callback(user_data, "Recovered from missing PopStyleColor() in '%s' for ImGuiCol_%s", window->Name, GetStyleColorName(g.ColorStack.back().Col)); + PopStyleColor(); + } + while (g.ItemFlagsStack.Size > stack_sizes->SizeOfItemFlagsStack) //-V1044 + { + if (log_callback) log_callback(user_data, "Recovered from missing PopItemFlag() in '%s'", window->Name); + PopItemFlag(); + } + while (g.StyleVarStack.Size > stack_sizes->SizeOfStyleVarStack) //-V1044 + { + if (log_callback) log_callback(user_data, "Recovered from missing PopStyleVar() in '%s'", window->Name); + PopStyleVar(); + } + while (g.FocusScopeStack.Size > stack_sizes->SizeOfFocusScopeStack) //-V1044 + { + if (log_callback) log_callback(user_data, "Recovered from missing PopFocusScope() in '%s'", window->Name); + PopFocusScope(); + } +} + // Save current stack sizes for later compare void ImGuiStackSizes::SetToCurrentState() { @@ -8023,7 +8270,9 @@ void ImGuiStackSizes::SetToCurrentState() SizeOfFontStack = (short)g.FontStack.Size; SizeOfFocusScopeStack = (short)g.FocusScopeStack.Size; SizeOfGroupStack = (short)g.GroupStack.Size; + SizeOfItemFlagsStack = (short)g.ItemFlagsStack.Size; SizeOfBeginPopupStack = (short)g.BeginPopupStack.Size; + SizeOfDisabledStack = (short)g.DisabledStackSize; } // Compare to detect usage errors @@ -8041,6 +8290,8 @@ void ImGuiStackSizes::CompareWithCurrentState() // For color, style and font stacks there is an incentive to use Push/Begin/Pop/.../End patterns, so we relax our checks a little to allow them. IM_ASSERT(SizeOfGroupStack == g.GroupStack.Size && "BeginGroup/EndGroup Mismatch!"); IM_ASSERT(SizeOfBeginPopupStack == g.BeginPopupStack.Size && "BeginPopup/EndPopup or BeginMenu/EndMenu Mismatch!"); + IM_ASSERT(SizeOfDisabledStack == g.DisabledStackSize && "BeginDisabled/EndDisabled Mismatch!"); + IM_ASSERT(SizeOfItemFlagsStack >= g.ItemFlagsStack.Size && "PushItemFlag/PopItemFlag Mismatch!"); IM_ASSERT(SizeOfColorStack >= g.ColorStack.Size && "PushStyleColor/PopStyleColor Mismatch!"); IM_ASSERT(SizeOfStyleVarStack >= g.StyleVarStack.Size && "PushStyleVar/PopStyleVar Mismatch!"); IM_ASSERT(SizeOfFontStack >= g.FontStack.Size && "PushFont/PopFont Mismatch!"); @@ -8124,15 +8375,17 @@ void ImGui::ItemSize(const ImRect& bb, float text_baseline_y) // Declare item bounding box for clipping and interaction. // Note that the size can be different than the one provided to ItemSize(). Typically, widgets that spread over available surface // declare their minimum size requirement to ItemSize() and provide a larger region to ItemAdd() which is used drawing/interaction. -bool ImGui::ItemAdd(const ImRect& bb, ImGuiID id, const ImRect* nav_bb_arg, ImGuiItemAddFlags flags) +bool ImGui::ItemAdd(const ImRect& bb, ImGuiID id, const ImRect* nav_bb_arg, ImGuiItemFlags extra_flags) { ImGuiContext& g = *GImGui; ImGuiWindow* window = g.CurrentWindow; // Set item data + // (DisplayRect is left untouched, made valid when ImGuiItemStatusFlags_HasDisplayRect is set) g.LastItemData.ID = id; g.LastItemData.Rect = bb; - g.LastItemData.InFlags = g.CurrentItemFlags; + g.LastItemData.NavRect = nav_bb_arg ? *nav_bb_arg : bb; + g.LastItemData.InFlags = g.CurrentItemFlags | extra_flags; g.LastItemData.StatusFlags = ImGuiItemStatusFlags_None; // Directional navigation processing @@ -8151,7 +8404,12 @@ bool ImGui::ItemAdd(const ImRect& bb, ImGuiID id, const ImRect* nav_bb_arg, ImGu if (g.NavId == id || g.NavAnyRequest) if (g.NavWindow->RootWindowForNav == window->RootWindowForNav) if (window == g.NavWindow || ((window->Flags | g.NavWindow->Flags) & ImGuiWindowFlags_NavFlattened)) - NavProcessItem(window, nav_bb_arg ? *nav_bb_arg : bb, id); + NavProcessItem(); + + // [DEBUG] People keep stumbling on this problem and using "" as identifier in the root of a window instead of "##something". + // Empty identifier are valid and useful in a small amount of cases, but 99.9% of the time you want to use "##something". + // READ THE FAQ: https://dearimgui.org/faq + IM_ASSERT(id != window->ID && "Cannot have an empty ID at the root of a window. If you need an empty label, use ## and read the FAQ about how the ID Stack works!"); // [DEBUG] Item Picker tool, when enabling the "extended" version we perform the check in ItemAdd() #ifdef IMGUI_DEBUG_TOOL_ITEM_PICKER_EX @@ -8170,16 +8428,11 @@ bool ImGui::ItemAdd(const ImRect& bb, ImGuiID id, const ImRect* nav_bb_arg, ImGu #endif // Clipping test - const bool is_clipped = IsClippedEx(bb, id, false); + const bool is_clipped = IsClippedEx(bb, id); if (is_clipped) return false; //if (g.IO.KeyAlt) window->DrawList->AddRect(bb.Min, bb.Max, IM_COL32(255,255,0,120)); // [DEBUG] - // Tab stop handling (previously was using internal ItemFocusable() api) - // FIXME-NAV: We would now want to move this above the clipping test, but this would require being able to scroll and currently this would mean an extra frame. (#4079, #343) - if (flags & ImGuiItemAddFlags_Focusable) - ItemFocusable(window, id); - // We need to calculate this now to take account of the current clipping rectangle (as items like Selectable may change them) if (IsMouseHoveringRect(bb.Min, bb.Max)) g.LastItemData.StatusFlags |= ImGuiItemStatusFlags_HoveredRect; @@ -8444,6 +8697,7 @@ ImVec2 ImGui::GetWindowContentRegionMax() // Lock horizontal starting position + capture group bounding box into one "item" (so you can use IsItemHovered() or layout primitives such as SameLine() on whole group, etc.) // Groups are currently a mishmash of functionalities which should perhaps be clarified and separated. +// FIXME-OPT: Could we safely early out on ->SkipItems? void ImGui::BeginGroup() { ImGuiContext& g = *GImGui; @@ -8499,7 +8753,7 @@ void ImGui::EndGroup() window->DC.CurrLineTextBaseOffset = ImMax(window->DC.PrevLineTextBaseOffset, group_data.BackupCurrLineTextBaseOffset); // FIXME: Incorrect, we should grab the base offset from the *first line* of the group but it is hard to obtain now. ItemSize(group_bb.GetSize()); - ItemAdd(group_bb, 0); + ItemAdd(group_bb, 0, NULL, ImGuiItemFlags_NoTabStop); // If the current ActiveId was declared within the boundary of our group, we copy it to LastItemId so IsItemActive(), IsItemDeactivated() etc. will be functional on the entire group. // It would be be neater if we replaced window.DC.LastItemId by e.g. 'bool LastItemIsActive', but would put a little more burden on individual widgets. @@ -8588,32 +8842,80 @@ static ImVec2 CalcNextScrollFromScrollTargetAndClamp(ImGuiWindow* window) return scroll; } +void ImGui::ScrollToItem(ImGuiScrollFlags flags) +{ + ImGuiContext& g = *GImGui; + ImGuiWindow* window = g.CurrentWindow; + ScrollToRectEx(window, g.LastItemData.NavRect, flags); +} + +void ImGui::ScrollToRect(ImGuiWindow* window, const ImRect& item_rect, ImGuiScrollFlags flags) +{ + ScrollToRectEx(window, item_rect, flags); +} + // Scroll to keep newly navigated item fully into view -ImVec2 ImGui::ScrollToBringRectIntoView(ImGuiWindow* window, const ImRect& item_rect) +ImVec2 ImGui::ScrollToRectEx(ImGuiWindow* window, const ImRect& item_rect, ImGuiScrollFlags flags) { ImGuiContext& g = *GImGui; ImRect window_rect(window->InnerRect.Min - ImVec2(1, 1), window->InnerRect.Max + ImVec2(1, 1)); //GetForegroundDrawList(window)->AddRect(window_rect.Min, window_rect.Max, IM_COL32_WHITE); // [DEBUG] - ImVec2 delta_scroll; - if (!window_rect.Contains(item_rect)) + // Check that only one behavior is selected per axis + IM_ASSERT((flags & ImGuiScrollFlags_MaskX_) == 0 || ImIsPowerOfTwo(flags & ImGuiScrollFlags_MaskX_)); + IM_ASSERT((flags & ImGuiScrollFlags_MaskY_) == 0 || ImIsPowerOfTwo(flags & ImGuiScrollFlags_MaskY_)); + + // Defaults + ImGuiScrollFlags in_flags = flags; + if ((flags & ImGuiScrollFlags_MaskX_) == 0 && window->ScrollbarX) + flags |= ImGuiScrollFlags_KeepVisibleEdgeX; + if ((flags & ImGuiScrollFlags_MaskY_) == 0) + flags |= window->Appearing ? ImGuiScrollFlags_AlwaysCenterY : ImGuiScrollFlags_KeepVisibleEdgeY; + + const bool fully_visible_x = item_rect.Min.x >= window_rect.Min.x && item_rect.Max.x <= window_rect.Max.x; + const bool fully_visible_y = item_rect.Min.y >= window_rect.Min.y && item_rect.Max.y <= window_rect.Max.y; + const bool can_be_fully_visible_x = (item_rect.GetWidth() + g.Style.ItemSpacing.x * 2.0f) <= window_rect.GetWidth(); + const bool can_be_fully_visible_y = (item_rect.GetHeight() + g.Style.ItemSpacing.y * 2.0f) <= window_rect.GetHeight(); + + if ((flags & ImGuiScrollFlags_KeepVisibleEdgeX) && !fully_visible_x) { - if (window->ScrollbarX && item_rect.Min.x < window_rect.Min.x) - SetScrollFromPosX(window, item_rect.Min.x - window->Pos.x - g.Style.ItemSpacing.x, 0.0f); - else if (window->ScrollbarX && item_rect.Max.x >= window_rect.Max.x) - SetScrollFromPosX(window, item_rect.Max.x - window->Pos.x + g.Style.ItemSpacing.x, 1.0f); - if (item_rect.Min.y < window_rect.Min.y) - SetScrollFromPosY(window, item_rect.Min.y - window->Pos.y - g.Style.ItemSpacing.y, 0.0f); - else if (item_rect.Max.y >= window_rect.Max.y) - SetScrollFromPosY(window, item_rect.Max.y - window->Pos.y + g.Style.ItemSpacing.y, 1.0f); + if (item_rect.Min.x < window_rect.Min.x || !can_be_fully_visible_x) + SetScrollFromPosX(window, item_rect.Min.x - g.Style.ItemSpacing.x - window->Pos.x, 0.0f); + else if (item_rect.Max.x >= window_rect.Max.x) + SetScrollFromPosX(window, item_rect.Max.x + g.Style.ItemSpacing.x - window->Pos.x, 1.0f); + } + else if (((flags & ImGuiScrollFlags_KeepVisibleCenterX) && !fully_visible_x) || (flags & ImGuiScrollFlags_AlwaysCenterX)) + { + float target_x = can_be_fully_visible_x ? ImFloor((item_rect.Min.x + item_rect.Max.x - window->InnerRect.GetWidth()) * 0.5f) : item_rect.Min.x; + SetScrollFromPosX(window, target_x - window->Pos.x, 0.0f); + } - ImVec2 next_scroll = CalcNextScrollFromScrollTargetAndClamp(window); - delta_scroll = next_scroll - window->Scroll; + if ((flags & ImGuiScrollFlags_KeepVisibleEdgeY) && !fully_visible_y) + { + if (item_rect.Min.y < window_rect.Min.y || !can_be_fully_visible_y) + SetScrollFromPosY(window, item_rect.Min.y - g.Style.ItemSpacing.y - window->Pos.y, 0.0f); + else if (item_rect.Max.y >= window_rect.Max.y) + SetScrollFromPosY(window, item_rect.Max.y + g.Style.ItemSpacing.y - window->Pos.y, 1.0f); } + else if (((flags & ImGuiScrollFlags_KeepVisibleCenterY) && !fully_visible_y) || (flags & ImGuiScrollFlags_AlwaysCenterY)) + { + float target_y = can_be_fully_visible_y ? ImFloor((item_rect.Min.y + item_rect.Max.y - window->InnerRect.GetHeight()) * 0.5f) : item_rect.Min.y; + SetScrollFromPosY(window, target_y - window->Pos.y, 0.0f); + } + + ImVec2 next_scroll = CalcNextScrollFromScrollTargetAndClamp(window); + ImVec2 delta_scroll = next_scroll - window->Scroll; // Also scroll parent window to keep us into view if necessary - if (window->Flags & ImGuiWindowFlags_ChildWindow) - delta_scroll += ScrollToBringRectIntoView(window->ParentWindow, ImRect(item_rect.Min - delta_scroll, item_rect.Max - delta_scroll)); + if (!(flags & ImGuiScrollFlags_NoScrollParent) && (window->Flags & ImGuiWindowFlags_ChildWindow)) + { + // FIXME-SCROLL: May be an option? + if ((in_flags & (ImGuiScrollFlags_AlwaysCenterX | ImGuiScrollFlags_KeepVisibleCenterX)) != 0) + in_flags = (in_flags & ~ImGuiScrollFlags_MaskX_) | ImGuiScrollFlags_KeepVisibleEdgeX; + if ((in_flags & (ImGuiScrollFlags_AlwaysCenterY | ImGuiScrollFlags_KeepVisibleCenterY)) != 0) + in_flags = (in_flags & ~ImGuiScrollFlags_MaskY_) | ImGuiScrollFlags_KeepVisibleEdgeY; + delta_scroll += ScrollToRectEx(window->ParentWindow, ImRect(item_rect.Min - delta_scroll, item_rect.Max - delta_scroll), in_flags); + } return delta_scroll; } @@ -8740,10 +9042,10 @@ void ImGui::SetScrollHereY(float center_y_ratio) void ImGui::BeginTooltip() { - BeginTooltipEx(ImGuiWindowFlags_None, ImGuiTooltipFlags_None); + BeginTooltipEx(ImGuiTooltipFlags_None, ImGuiWindowFlags_None); } -void ImGui::BeginTooltipEx(ImGuiWindowFlags extra_flags, ImGuiTooltipFlags tooltip_flags) +void ImGui::BeginTooltipEx(ImGuiTooltipFlags tooltip_flags, ImGuiWindowFlags extra_window_flags) { ImGuiContext& g = *GImGui; @@ -8772,7 +9074,7 @@ void ImGui::BeginTooltipEx(ImGuiWindowFlags extra_flags, ImGuiTooltipFlags toolt ImFormatString(window_name, IM_ARRAYSIZE(window_name), "##Tooltip_%02d", ++g.TooltipOverrideCount); } ImGuiWindowFlags flags = ImGuiWindowFlags_Tooltip | ImGuiWindowFlags_NoInputs | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoSavedSettings | ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoDocking; - Begin(window_name, NULL, flags | extra_flags); + Begin(window_name, NULL, flags | extra_window_flags); } void ImGui::EndTooltip() @@ -8783,7 +9085,7 @@ void ImGui::EndTooltip() void ImGui::SetTooltipV(const char* fmt, va_list args) { - BeginTooltipEx(0, ImGuiTooltipFlags_OverridePreviousTooltip); + BeginTooltipEx(ImGuiTooltipFlags_OverridePreviousTooltip, ImGuiWindowFlags_None); TextV(fmt, args); EndTooltip(); } @@ -8851,6 +9153,16 @@ ImGuiWindow* ImGui::GetTopMostPopupModal() return NULL; } +ImGuiWindow* ImGui::GetTopMostAndVisiblePopupModal() +{ + ImGuiContext& g = *GImGui; + for (int n = g.OpenPopupStack.Size - 1; n >= 0; n--) + if (ImGuiWindow* popup = g.OpenPopupStack.Data[n].Window) + if ((popup->Flags & ImGuiWindowFlags_Modal) && IsWindowActiveAndVisible(popup)) + return popup; + return NULL; +} + void ImGui::OpenPopup(const char* str_id, ImGuiPopupFlags popup_flags) { ImGuiContext& g = *GImGui; @@ -8943,7 +9255,8 @@ void ImGui::ClosePopupsOverWindow(ImGuiWindow* ref_window, bool restore_focus_to bool ref_window_is_descendent_of_popup = false; for (int n = popup_count_to_keep; n < g.OpenPopupStack.Size; n++) if (ImGuiWindow* popup_window = g.OpenPopupStack[n].Window) - if (popup_window->RootWindowDockTree == ref_window->RootWindowDockTree) + //if (popup_window->RootWindowDockTree == ref_window->RootWindowDockTree) // FIXME-MERGE + if (IsWindowWithinBeginStackOf(ref_window, popup_window)) { ref_window_is_descendent_of_popup = true; break; @@ -8959,6 +9272,21 @@ void ImGui::ClosePopupsOverWindow(ImGuiWindow* ref_window, bool restore_focus_to } } +void ImGui::ClosePopupsExceptModals() +{ + ImGuiContext& g = *GImGui; + + int popup_count_to_keep; + for (popup_count_to_keep = g.OpenPopupStack.Size; popup_count_to_keep > 0; popup_count_to_keep--) + { + ImGuiWindow* window = g.OpenPopupStack[popup_count_to_keep - 1].Window; + if (!window || window->Flags & ImGuiWindowFlags_Modal) + break; + } + if (popup_count_to_keep < g.OpenPopupStack.Size) // This test is not required but it allows to set a convenient breakpoint on the statement below + ClosePopupToLevel(popup_count_to_keep, true); +} + void ImGui::ClosePopupToLevel(int remaining, bool restore_focus_to_window_under_popup) { ImGuiContext& g = *GImGui; @@ -9001,7 +9329,7 @@ void ImGui::CloseCurrentPopup() ImGuiWindow* parent_popup_window = g.OpenPopupStack[popup_idx - 1].Window; bool close_parent = false; if (popup_window && (popup_window->Flags & ImGuiWindowFlags_ChildMenu)) - if (parent_popup_window == NULL || !(parent_popup_window->Flags & ImGuiWindowFlags_Modal)) + if (parent_popup_window && !(parent_popup_window->Flags & ImGuiWindowFlags_MenuBar)) close_parent = true; if (!close_parent) break; @@ -9029,7 +9357,7 @@ bool ImGui::BeginPopupEx(ImGuiID id, ImGuiWindowFlags flags) char name[20]; if (flags & ImGuiWindowFlags_ChildMenu) - ImFormatString(name, IM_ARRAYSIZE(name), "##Menu_%02d", g.BeginPopupStack.Size); // Recycle windows based on depth + ImFormatString(name, IM_ARRAYSIZE(name), "##Menu_%02d", g.BeginMenuCount); // Recycle windows based on depth else ImFormatString(name, IM_ARRAYSIZE(name), "##Popup_%08x", id); // Not recycling, so we can close/open during the same frame @@ -9324,6 +9652,7 @@ ImVec2 ImGui::FindBestWindowPosForPopup(ImGuiWindow* window) //----------------------------------------------------------------------------- // FIXME-NAV: The existence of SetNavID vs SetFocusID properly needs to be clarified/reworked. +// In our terminology those should be interchangeable. Those two functions are merely a legacy artifact, so at minimum naming should be clarified. void ImGui::SetNavID(ImGuiID id, ImGuiNavLayer nav_layer, ImGuiID focus_scope_id, const ImRect& rect_rel) { ImGuiContext& g = *GImGui; @@ -9334,8 +9663,6 @@ void ImGui::SetNavID(ImGuiID id, ImGuiNavLayer nav_layer, ImGuiID focus_scope_id g.NavFocusScopeId = focus_scope_id; g.NavWindow->NavLastIds[nav_layer] = id; g.NavWindow->NavRectRel[nav_layer] = rect_rel; - //g.NavDisableHighlight = false; - //g.NavDisableMouseHover = g.NavMousePosDirty = true; } void ImGui::SetFocusID(ImGuiID id, ImGuiWindow* window) @@ -9354,7 +9681,7 @@ void ImGui::SetFocusID(ImGuiID id, ImGuiWindow* window) g.NavFocusScopeId = window->DC.NavFocusScopeIdCurrent; window->NavLastIds[nav_layer] = id; if (g.LastItemData.ID == id) - window->NavRectRel[nav_layer] = ImRect(g.LastItemData.Rect.Min - window->Pos, g.LastItemData.Rect.Max - window->Pos); + window->NavRectRel[nav_layer] = WindowRectAbsToRel(window, g.LastItemData.NavRect); if (g.ActiveIdSource == ImGuiInputSource_Nav) g.NavDisableMouseHover = true; @@ -9385,7 +9712,7 @@ static void inline NavClampRectToVisibleAreaForMoveDir(ImGuiDir move_dir, ImRect r.Min.y = ImClamp(r.Min.y, clip_rect.Min.y, clip_rect.Max.y); r.Max.y = ImClamp(r.Max.y, clip_rect.Min.y, clip_rect.Max.y); } - else + else // FIXME: PageUp/PageDown are leaving move_dir == None { r.Min.x = ImClamp(r.Min.x, clip_rect.Min.x, clip_rect.Max.x); r.Max.x = ImClamp(r.Max.x, clip_rect.Min.x, clip_rect.Max.x); @@ -9393,15 +9720,17 @@ static void inline NavClampRectToVisibleAreaForMoveDir(ImGuiDir move_dir, ImRect } // Scoring function for gamepad/keyboard directional navigation. Based on https://gist.github.com/rygorous/6981057 -static bool ImGui::NavScoreItem(ImGuiNavItemData* result, ImRect cand) +static bool ImGui::NavScoreItem(ImGuiNavItemData* result) { ImGuiContext& g = *GImGui; ImGuiWindow* window = g.CurrentWindow; if (g.NavLayer != window->DC.NavLayerCurrent) return false; - const ImRect& curr = g.NavScoringRect; // Current modified source rect (NB: we've applied Max.x = Min.x in NavUpdate() to inhibit the effect of having varied item width) - g.NavScoringCount++; + // FIXME: Those are not good variables names + ImRect cand = g.LastItemData.NavRect; // Current item nav rectangle + const ImRect curr = g.NavScoringRect; // Current modified source rect (NB: we've applied Max.x = Min.x in NavUpdate() to inhibit the effect of having varied item width) + g.NavScoringDebugCount++; // When entering through a NavFlattened border, we consider child window items as fully clipped for scoring if (window->ParentWindow == g.NavWindow) @@ -9463,24 +9792,24 @@ static bool ImGui::NavScoreItem(ImGuiNavItemData* result, ImRect cand) draw_list->AddRect(curr.Min, curr.Max, IM_COL32(255,200,0,100)); draw_list->AddRect(cand.Min, cand.Max, IM_COL32(255,255,0,200)); draw_list->AddRectFilled(cand.Max - ImVec2(4, 4), cand.Max + CalcTextSize(buf) + ImVec2(4, 4), IM_COL32(40,0,0,150)); - draw_list->AddText(g.IO.FontDefault, 13.0f, cand.Max, ~0U, buf); + draw_list->AddText(cand.Max, ~0U, buf); } else if (g.IO.KeyCtrl) // Hold to preview score in matching quadrant. Press C to rotate. { - if (IsKeyPressedMap(ImGuiKey_C)) { g.NavMoveDirLast = (ImGuiDir)((g.NavMoveDirLast + 1) & 3); g.IO.KeysDownDuration[g.IO.KeyMap[ImGuiKey_C]] = 0.01f; } if (quadrant == g.NavMoveDir) { ImFormatString(buf, IM_ARRAYSIZE(buf), "%.0f/%.0f", dist_box, dist_center); ImDrawList* draw_list = GetForegroundDrawList(window); draw_list->AddRectFilled(cand.Min, cand.Max, IM_COL32(255, 0, 0, 200)); - draw_list->AddText(g.IO.FontDefault, 13.0f, cand.Min, IM_COL32(255, 255, 255, 255), buf); + draw_list->AddText(cand.Min, IM_COL32(255, 255, 255, 255), buf); } } #endif // Is it in the quadrant we're interesting in moving to? bool new_best = false; - if (quadrant == g.NavMoveDir) + const ImGuiDir move_dir = g.NavMoveDir; + if (quadrant == move_dir) { // Does it beat the current best candidate? if (dist_box < result->DistBox) @@ -9502,7 +9831,7 @@ static bool ImGui::NavScoreItem(ImGuiNavItemData* result, ImRect cand) // Still tied! we need to be extra-careful to make sure everything gets linked properly. We consistently break ties by symbolically moving "later" items // (with higher index) to the right/downwards by an infinitesimal amount since we the current "best" button already (so it must have a lower index), // this is fairly easy. This rule ensures that all buttons with dx==dy==0 will end up being linked in order of appearance along the x axis. - if (((g.NavMoveDir == ImGuiDir_Up || g.NavMoveDir == ImGuiDir_Down) ? dby : dbx) < 0.0f) // moving bj to the right/down decreases distance + if (((move_dir == ImGuiDir_Up || move_dir == ImGuiDir_Down) ? dby : dbx) < 0.0f) // moving bj to the right/down decreases distance new_best = true; } } @@ -9515,7 +9844,7 @@ static bool ImGui::NavScoreItem(ImGuiNavItemData* result, ImRect cand) // Disabling it may lead to disconnected graphs when nodes are very spaced out on different axis. Perhaps consider offering this as an option? if (result->DistBox == FLT_MAX && dist_axial < result->DistAxial) // Check axial match if (g.NavLayer == ImGuiNavLayer_Menu && !(g.NavWindow->Flags & ImGuiWindowFlags_ChildMenu)) - if ((g.NavMoveDir == ImGuiDir_Left && dax < 0.0f) || (g.NavMoveDir == ImGuiDir_Right && dax > 0.0f) || (g.NavMoveDir == ImGuiDir_Up && day < 0.0f) || (g.NavMoveDir == ImGuiDir_Down && day > 0.0f)) + if ((move_dir == ImGuiDir_Left && dax < 0.0f) || (move_dir == ImGuiDir_Right && dax > 0.0f) || (move_dir == ImGuiDir_Up && day < 0.0f) || (move_dir == ImGuiDir_Down && day > 0.0f)) { result->DistAxial = dist_axial; new_best = true; @@ -9524,23 +9853,26 @@ static bool ImGui::NavScoreItem(ImGuiNavItemData* result, ImRect cand) return new_best; } -static void ImGui::NavApplyItemToResult(ImGuiNavItemData* result, ImGuiWindow* window, ImGuiID id, const ImRect& nav_bb_rel) +static void ImGui::NavApplyItemToResult(ImGuiNavItemData* result) { + ImGuiContext& g = *GImGui; + ImGuiWindow* window = g.CurrentWindow; result->Window = window; - result->ID = id; + result->ID = g.LastItemData.ID; result->FocusScopeId = window->DC.NavFocusScopeIdCurrent; - result->RectRel = nav_bb_rel; + result->InFlags = g.LastItemData.InFlags; + result->RectRel = WindowRectAbsToRel(window, g.LastItemData.NavRect); } // We get there when either NavId == id, or when g.NavAnyRequest is set (which is updated by NavUpdateAnyRequestFlag above) -static void ImGui::NavProcessItem(ImGuiWindow* window, const ImRect& nav_bb, const ImGuiID id) +// This is called after LastItemData is set. +static void ImGui::NavProcessItem() { ImGuiContext& g = *GImGui; - //if (!g.IO.NavActive) // [2017/10/06] Removed this possibly redundant test but I am not sure of all the side-effects yet. Some of the feature here will need to work regardless of using a _NoNavInputs flag. - // return; - + ImGuiWindow* window = g.CurrentWindow; + const ImGuiID id = g.LastItemData.ID; + const ImRect nav_bb = g.LastItemData.NavRect; const ImGuiItemFlags item_flags = g.LastItemData.InFlags; - const ImRect nav_bb_rel(nav_bb.Min - window->Pos, nav_bb.Max - window->Pos); // Process Init Request if (g.NavInitRequest && g.NavLayer == window->DC.NavLayerCurrent) @@ -9550,7 +9882,7 @@ static void ImGui::NavProcessItem(ImGuiWindow* window, const ImRect& nav_bb, con if (candidate_for_nav_default_focus || g.NavInitResultId == 0) { g.NavInitResultId = id; - g.NavInitResultRectRel = nav_bb_rel; + g.NavInitResultRectRel = WindowRectAbsToRel(window, nav_bb); } if (candidate_for_nav_default_focus) { @@ -9560,27 +9892,32 @@ static void ImGui::NavProcessItem(ImGuiWindow* window, const ImRect& nav_bb, con } // Process Move Request (scoring for navigation) - // FIXME-NAV: Consider policy for double scoring (scoring from NavScoringRectScreen + scoring from a rect wrapped according to current wrapping policy) - if ((g.NavId != id || (g.NavMoveRequestFlags & ImGuiNavMoveFlags_AllowCurrentNavId)) && !(item_flags & (ImGuiItemFlags_Disabled | ImGuiItemFlags_NoNav))) + // FIXME-NAV: Consider policy for double scoring (scoring from NavScoringRect + scoring from a rect wrapped according to current wrapping policy) + if (g.NavMoveScoringItems) { - ImGuiNavItemData* result = (window == g.NavWindow) ? &g.NavMoveResultLocal : &g.NavMoveResultOther; -#if IMGUI_DEBUG_NAV_SCORING - // [DEBUG] Score all items in NavWindow at all times - if (!g.NavMoveRequest) - g.NavMoveDir = g.NavMoveDirLast; - bool new_best = NavScoreItem(result, nav_bb) && g.NavMoveRequest; -#else - bool new_best = g.NavMoveRequest && NavScoreItem(result, nav_bb); -#endif - if (new_best) - NavApplyItemToResult(result, window, id, nav_bb_rel); - - // Features like PageUp/PageDown need to maintain a separate score for the visible set of items. - const float VISIBLE_RATIO = 0.70f; - if ((g.NavMoveRequestFlags & ImGuiNavMoveFlags_AlsoScoreVisibleSet) && window->ClipRect.Overlaps(nav_bb)) - if (ImClamp(nav_bb.Max.y, window->ClipRect.Min.y, window->ClipRect.Max.y) - ImClamp(nav_bb.Min.y, window->ClipRect.Min.y, window->ClipRect.Max.y) >= (nav_bb.Max.y - nav_bb.Min.y) * VISIBLE_RATIO) - if (NavScoreItem(&g.NavMoveResultLocalVisibleSet, nav_bb)) - NavApplyItemToResult(&g.NavMoveResultLocalVisibleSet, window, id, nav_bb_rel); + const bool is_tab_stop = (item_flags & ImGuiItemFlags_Inputable) && (item_flags & (ImGuiItemFlags_NoTabStop | ImGuiItemFlags_Disabled)) == 0; + const bool is_tabbing = (g.NavMoveFlags & ImGuiNavMoveFlags_Tabbing) != 0; + if (is_tabbing) + { + if (is_tab_stop || (g.NavMoveFlags & ImGuiNavMoveFlags_FocusApi)) + NavProcessItemForTabbingRequest(id); + } + else if ((g.NavId != id || (g.NavMoveFlags & ImGuiNavMoveFlags_AllowCurrentNavId)) && !(item_flags & (ImGuiItemFlags_Disabled | ImGuiItemFlags_NoNav))) + { + ImGuiNavItemData* result = (window == g.NavWindow) ? &g.NavMoveResultLocal : &g.NavMoveResultOther; + if (!is_tabbing) + { + if (NavScoreItem(result)) + NavApplyItemToResult(result); + + // Features like PageUp/PageDown need to maintain a separate score for the visible set of items. + const float VISIBLE_RATIO = 0.70f; + if ((g.NavMoveFlags & ImGuiNavMoveFlags_AlsoScoreVisibleSet) && window->ClipRect.Overlaps(nav_bb)) + if (ImClamp(nav_bb.Max.y, window->ClipRect.Min.y, window->ClipRect.Max.y) - ImClamp(nav_bb.Min.y, window->ClipRect.Min.y, window->ClipRect.Max.y) >= (nav_bb.Max.y - nav_bb.Min.y) * VISIBLE_RATIO) + if (NavScoreItem(&g.NavMoveResultLocalVisible)) + NavApplyItemToResult(&g.NavMoveResultLocalVisible); + } + } } // Update window-relative bounding box of navigated item @@ -9590,33 +9927,113 @@ static void ImGui::NavProcessItem(ImGuiWindow* window, const ImRect& nav_bb, con g.NavLayer = window->DC.NavLayerCurrent; g.NavFocusScopeId = window->DC.NavFocusScopeIdCurrent; g.NavIdIsAlive = true; - window->NavRectRel[window->DC.NavLayerCurrent] = nav_bb_rel; // Store item bounding box (relative to window position) + window->NavRectRel[window->DC.NavLayerCurrent] = WindowRectAbsToRel(window, nav_bb); // Store item bounding box (relative to window position) + } +} + +// Handle "scoring" of an item for a tabbing/focusing request initiated by NavUpdateCreateTabbingRequest(). +// Note that SetKeyboardFocusHere() API calls are considered tabbing requests! +// - Case 1: no nav/active id: set result to first eligible item, stop storing. +// - Case 2: tab forward: on ref id set counter, on counter elapse store result +// - Case 3: tab forward wrap: set result to first eligible item (preemptively), on ref id set counter, on next frame if counter hasn't elapsed store result. // FIXME-TABBING: Could be done as a next-frame forwarded request +// - Case 4: tab backward: store all results, on ref id pick prev, stop storing +// - Case 5: tab backward wrap: store all results, on ref id if no result keep storing until last // FIXME-TABBING: Could be done as next-frame forwarded requested +void ImGui::NavProcessItemForTabbingRequest(ImGuiID id) +{ + ImGuiContext& g = *GImGui; + + // Always store in NavMoveResultLocal (unlike directional request which uses NavMoveResultOther on sibling/flattened windows) + ImGuiNavItemData* result = &g.NavMoveResultLocal; + if (g.NavTabbingDir == +1) + { + // Tab Forward or SetKeyboardFocusHere() with >= 0 + if (g.NavTabbingResultFirst.ID == 0) + NavApplyItemToResult(&g.NavTabbingResultFirst); + if (--g.NavTabbingCounter == 0) + NavMoveRequestResolveWithLastItem(result); + else if (g.NavId == id) + g.NavTabbingCounter = 1; + } + else if (g.NavTabbingDir == -1) + { + // Tab Backward + if (g.NavId == id) + { + if (result->ID) + { + g.NavMoveScoringItems = false; + NavUpdateAnyRequestFlag(); + } + } + else + { + NavApplyItemToResult(result); + } + } + else if (g.NavTabbingDir == 0) + { + // Tab Init + if (g.NavTabbingResultFirst.ID == 0) + NavMoveRequestResolveWithLastItem(&g.NavTabbingResultFirst); } } bool ImGui::NavMoveRequestButNoResultYet() { ImGuiContext& g = *GImGui; - return g.NavMoveRequest && g.NavMoveResultLocal.ID == 0 && g.NavMoveResultOther.ID == 0; + return g.NavMoveScoringItems && g.NavMoveResultLocal.ID == 0 && g.NavMoveResultOther.ID == 0; +} + +// FIXME: ScoringRect is not set +void ImGui::NavMoveRequestSubmit(ImGuiDir move_dir, ImGuiDir clip_dir, ImGuiNavMoveFlags move_flags, ImGuiScrollFlags scroll_flags) +{ + ImGuiContext& g = *GImGui; + IM_ASSERT(g.NavWindow != NULL); + + if (move_flags & ImGuiNavMoveFlags_Tabbing) + move_flags |= ImGuiNavMoveFlags_AllowCurrentNavId; + + g.NavMoveSubmitted = g.NavMoveScoringItems = true; + g.NavMoveDir = move_dir; + g.NavMoveDirForDebug = move_dir; + g.NavMoveClipDir = clip_dir; + g.NavMoveFlags = move_flags; + g.NavMoveScrollFlags = scroll_flags; + g.NavMoveForwardToNextFrame = false; + g.NavMoveKeyMods = g.IO.KeyMods; + g.NavTabbingCounter = 0; + g.NavMoveResultLocal.Clear(); + g.NavMoveResultLocalVisible.Clear(); + g.NavMoveResultOther.Clear(); + NavUpdateAnyRequestFlag(); +} + +void ImGui::NavMoveRequestResolveWithLastItem(ImGuiNavItemData* result) +{ + ImGuiContext& g = *GImGui; + g.NavMoveScoringItems = false; // Ensure request doesn't need more processing + NavApplyItemToResult(result); + NavUpdateAnyRequestFlag(); } void ImGui::NavMoveRequestCancel() { ImGuiContext& g = *GImGui; - g.NavMoveRequest = false; + g.NavMoveSubmitted = g.NavMoveScoringItems = false; NavUpdateAnyRequestFlag(); } // Forward will reuse the move request again on the next frame (generally with modifications done to it) -void ImGui::NavMoveRequestForward(ImGuiDir move_dir, ImGuiDir clip_dir, ImGuiNavMoveFlags move_flags) +void ImGui::NavMoveRequestForward(ImGuiDir move_dir, ImGuiDir clip_dir, ImGuiNavMoveFlags move_flags, ImGuiScrollFlags scroll_flags) { ImGuiContext& g = *GImGui; - IM_ASSERT(g.NavMoveRequestForwardToNextFrame == false); + IM_ASSERT(g.NavMoveForwardToNextFrame == false); NavMoveRequestCancel(); - g.NavMoveRequestForwardToNextFrame = true; + g.NavMoveForwardToNextFrame = true; g.NavMoveDir = move_dir; g.NavMoveClipDir = clip_dir; - g.NavMoveRequestFlags = move_flags | ImGuiNavMoveFlags_Forwarded; + g.NavMoveFlags = move_flags | ImGuiNavMoveFlags_Forwarded; + g.NavMoveScrollFlags = scroll_flags; } // Navigation wrap-around logic is delayed to the end of the frame because this operation is only valid after entire @@ -9625,8 +10042,9 @@ void ImGui::NavMoveRequestTryWrapping(ImGuiWindow* window, ImGuiNavMoveFlags wra { ImGuiContext& g = *GImGui; IM_ASSERT(wrap_flags != 0); // Call with _WrapX, _WrapY, _LoopX, _LoopY - if (g.NavWindow == window && g.NavMoveRequest && g.NavLayer == ImGuiNavLayer_Main) - g.NavMoveRequestFlags |= wrap_flags; + // In theory we should test for NavMoveRequestButNoResultYet() but there's no point doing it, NavEndFrame() will do the same test + if (g.NavWindow == window && g.NavMoveScoringItems && g.NavLayer == ImGuiNavLayer_Main) + g.NavMoveFlags |= wrap_flags; } // FIXME: This could be replaced by updating a frame number in each window when (window == NavWindow) and (NavLayer == 0). @@ -9661,8 +10079,6 @@ void ImGui::NavRestoreLayer(ImGuiNavLayer layer) if (window->NavLastIds[layer] != 0) { SetNavID(window->NavLastIds[layer], layer, 0, window->NavRectRel[layer]); - g.NavDisableHighlight = false; - g.NavDisableMouseHover = g.NavMousePosDirty = true; } else { @@ -9671,10 +10087,17 @@ void ImGui::NavRestoreLayer(ImGuiNavLayer layer) } } +void ImGui::NavRestoreHighlightAfterMove() +{ + ImGuiContext& g = *GImGui; + g.NavDisableHighlight = false; + g.NavDisableMouseHover = g.NavMousePosDirty = true; +} + static inline void ImGui::NavUpdateAnyRequestFlag() { ImGuiContext& g = *GImGui; - g.NavAnyRequest = g.NavMoveRequest || g.NavInitRequest || (IMGUI_DEBUG_NAV_SCORING && g.NavWindow != NULL); + g.NavAnyRequest = g.NavMoveScoringItems || g.NavInitRequest || (IMGUI_DEBUG_NAV_SCORING && g.NavWindow != NULL); if (g.NavAnyRequest) IM_ASSERT(g.NavWindow != NULL); } @@ -9715,19 +10138,26 @@ void ImGui::NavInitWindow(ImGuiWindow* window, bool force_reinit) static ImVec2 ImGui::NavCalcPreferredRefPos() { ImGuiContext& g = *GImGui; - if (g.NavDisableHighlight || !g.NavDisableMouseHover || !g.NavWindow) + ImGuiWindow* window = g.NavWindow; + if (g.NavDisableHighlight || !g.NavDisableMouseHover || !window) { // Mouse (we need a fallback in case the mouse becomes invalid after being used) if (IsMousePosValid(&g.IO.MousePos)) return g.IO.MousePos; - return g.LastValidMousePos; + return g.MouseLastValidPos; } else { - // When navigation is active and mouse is disabled, decide on an arbitrary position around the bottom left of the currently navigated item. - const ImRect& rect_rel = g.NavWindow->NavRectRel[g.NavLayer]; - ImVec2 pos = g.NavWindow->Pos + ImVec2(rect_rel.Min.x + ImMin(g.Style.FramePadding.x * 4, rect_rel.GetWidth()), rect_rel.Max.y - ImMin(g.Style.FramePadding.y, rect_rel.GetHeight())); - ImGuiViewport* viewport = g.NavWindow->Viewport; + // When navigation is active and mouse is disabled, pick a position around the bottom left of the currently navigated item + // Take account of upcoming scrolling (maybe set mouse pos should be done in EndFrame?) + ImRect rect_rel = WindowRectRelToAbs(window, window->NavRectRel[g.NavLayer]); + if (window->LastFrameActive != g.FrameCount && (window->ScrollTarget.x != FLT_MAX || window->ScrollTarget.y != FLT_MAX)) + { + ImVec2 next_scroll = CalcNextScrollFromScrollTargetAndClamp(window); + rect_rel.Translate(window->Scroll - next_scroll); + } + ImVec2 pos = ImVec2(rect_rel.Min.x + ImMin(g.Style.FramePadding.x * 4, rect_rel.GetWidth()), rect_rel.Max.y - ImMin(g.Style.FramePadding.y, rect_rel.GetHeight())); + ImGuiViewport* viewport = window->Viewport; return ImFloor(ImClamp(pos, viewport->Pos, viewport->Pos + viewport->Size)); // ImFloor() is important because non-integer mouse position application in backend might be lossy and result in undesirable non-zero delta. } } @@ -9757,6 +10187,8 @@ float ImGui::GetNavInputAmount(ImGuiNavInput n, ImGuiInputReadMode mode) ImVec2 ImGui::GetNavInputAmount2d(ImGuiNavDirSourceFlags dir_sources, ImGuiInputReadMode mode, float slow_factor, float fast_factor) { ImVec2 delta(0.0f, 0.0f); + if (dir_sources & ImGuiNavDirSourceFlags_RawKeyboard) + delta += ImVec2((float)IsKeyDown(GetKeyIndex(ImGuiKey_RightArrow)) - (float)IsKeyDown(GetKeyIndex(ImGuiKey_LeftArrow)), (float)IsKeyDown(GetKeyIndex(ImGuiKey_DownArrow)) - (float)IsKeyDown(GetKeyIndex(ImGuiKey_UpArrow))); if (dir_sources & ImGuiNavDirSourceFlags_Keyboard) delta += ImVec2(GetNavInputAmount(ImGuiNavInput_KeyRight_, mode) - GetNavInputAmount(ImGuiNavInput_KeyLeft_, mode), GetNavInputAmount(ImGuiNavInput_KeyDown_, mode) - GetNavInputAmount(ImGuiNavInput_KeyUp_, mode)); if (dir_sources & ImGuiNavDirSourceFlags_PadDPad) @@ -9776,9 +10208,7 @@ static void ImGui::NavUpdate() ImGuiIO& io = g.IO; io.WantSetMousePos = false; -#if 0 - if (g.NavScoringCount > 0) IMGUI_DEBUG_LOG("NavScoringCount %d for '%s' layer %d (Init:%d, Move:%d)\n", g.FrameCount, g.NavScoringCount, g.NavWindow ? g.NavWindow->Name : "NULL", g.NavLayer, g.NavInitRequest || g.NavInitResultId != 0, g.NavMoveRequest); -#endif + //if (g.NavScoringDebugCount > 0) IMGUI_DEBUG_LOG("NavScoringDebugCount %d for '%s' layer %d (Init:%d, Move:%d)\n", g.NavScoringDebugCount, g.NavWindow ? g.NavWindow->Name : "NULL", g.NavLayer, g.NavInitRequest || g.NavInitResultId != 0, g.NavMoveRequest); // Set input source as Gamepad when buttons are pressed (as some features differs when used with Gamepad vs Keyboard) // (do it before we map Keyboard input!) @@ -9814,32 +10244,25 @@ static void ImGui::NavUpdate() // Process navigation init request (select first/default focus) if (g.NavInitResultId != 0) - NavUpdateInitResult(); + NavInitRequestApplyResult(); g.NavInitRequest = false; g.NavInitRequestFromMove = false; g.NavInitResultId = 0; g.NavJustMovedToId = 0; // Process navigation move request - if (g.NavMoveRequest) + if (g.NavMoveSubmitted) NavMoveRequestApplyResult(); - g.NavMoveRequest = false; + g.NavTabbingCounter = 0; + g.NavMoveSubmitted = g.NavMoveScoringItems = false; - // Apply application mouse position movement, after we had a chance to process move request result. + // Schedule mouse position update (will be done at the bottom of this function, after 1) processing all move requests and 2) updating scrolling) + bool set_mouse_pos = false; if (g.NavMousePosDirty && g.NavIdIsAlive) - { - // Set mouse position given our knowledge of the navigated item position from last frame - if ((io.ConfigFlags & ImGuiConfigFlags_NavEnableSetMousePos) && (io.BackendFlags & ImGuiBackendFlags_HasSetMousePos)) - if (!g.NavDisableHighlight && g.NavDisableMouseHover && g.NavWindow) - { - io.MousePos = io.MousePosPrev = NavCalcPreferredRefPos(); - io.WantSetMousePos = true; - } - g.NavMousePosDirty = false; - } - g.NavIdIsAlive = false; - g.NavJustTabbedId = 0; - IM_ASSERT(g.NavLayer == 0 || g.NavLayer == 1); + if (!g.NavDisableHighlight && g.NavDisableMouseHover && g.NavWindow) + set_mouse_pos = true; + g.NavMousePosDirty = false; + IM_ASSERT(g.NavLayer == ImGuiNavLayer_Main || g.NavLayer == ImGuiNavLayer_Menu); // Store our return window (for returning from Menu Layer to Main Layer) and clear it as soon as we step back in our own Layer 0 if (g.NavWindow) @@ -9858,19 +10281,28 @@ static void ImGui::NavUpdate() NavUpdateCancelRequest(); // Process manual activation request - g.NavActivateId = g.NavActivateDownId = g.NavActivatePressedId = g.NavInputId = 0; + g.NavActivateId = g.NavActivateDownId = g.NavActivatePressedId = g.NavActivateInputId = 0; + g.NavActivateFlags = ImGuiActivateFlags_None; if (g.NavId != 0 && !g.NavDisableHighlight && !g.NavWindowingTarget && g.NavWindow && !(g.NavWindow->Flags & ImGuiWindowFlags_NoNavInputs)) { bool activate_down = IsNavInputDown(ImGuiNavInput_Activate); + bool input_down = IsNavInputDown(ImGuiNavInput_Input); bool activate_pressed = activate_down && IsNavInputTest(ImGuiNavInput_Activate, ImGuiInputReadMode_Pressed); + bool input_pressed = input_down && IsNavInputTest(ImGuiNavInput_Input, ImGuiInputReadMode_Pressed); if (g.ActiveId == 0 && activate_pressed) + { g.NavActivateId = g.NavId; + g.NavActivateFlags = ImGuiActivateFlags_PreferTweak; + } + if ((g.ActiveId == 0 || g.ActiveId == g.NavId) && input_pressed) + { + g.NavActivateInputId = g.NavId; + g.NavActivateFlags = ImGuiActivateFlags_PreferInput; + } if ((g.ActiveId == 0 || g.ActiveId == g.NavId) && activate_down) g.NavActivateDownId = g.NavId; if ((g.ActiveId == 0 || g.ActiveId == g.NavId) && activate_pressed) g.NavActivatePressedId = g.NavId; - if ((g.ActiveId == 0 || g.ActiveId == g.NavId) && IsNavInputTest(ImGuiNavInput_Input, ImGuiInputReadMode_Pressed)) - g.NavInputId = g.NavId; } if (g.NavWindow && (g.NavWindow->Flags & ImGuiWindowFlags_NoNavInputs)) g.NavDisableHighlight = true; @@ -9878,13 +10310,23 @@ static void ImGui::NavUpdate() IM_ASSERT(g.NavActivateDownId == g.NavActivateId); // Process programmatic activation request + // FIXME-NAV: Those should eventually be queued (unlike focus they don't cancel each others) if (g.NavNextActivateId != 0) - g.NavActivateId = g.NavActivateDownId = g.NavActivatePressedId = g.NavInputId = g.NavNextActivateId; + { + if (g.NavNextActivateFlags & ImGuiActivateFlags_PreferInput) + g.NavActivateInputId = g.NavNextActivateId; + else + g.NavActivateId = g.NavActivateDownId = g.NavActivatePressedId = g.NavNextActivateId; + g.NavActivateFlags = g.NavNextActivateFlags; + } g.NavNextActivateId = 0; // Process move requests NavUpdateCreateMoveRequest(); + if (g.NavMoveDir == ImGuiDir_None) + NavUpdateCreateTabbingRequest(); NavUpdateAnyRequestFlag(); + g.NavIdIsAlive = false; // Scrolling if (g.NavWindow && !(g.NavWindow->Flags & ImGuiWindowFlags_NoNavInputs) && !g.NavWindowingTarget) @@ -9892,12 +10334,13 @@ static void ImGui::NavUpdate() // *Fallback* manual-scroll with Nav directional keys when window has no navigable item ImGuiWindow* window = g.NavWindow; const float scroll_speed = IM_ROUND(window->CalcFontSize() * 100 * io.DeltaTime); // We need round the scrolling speed because sub-pixel scroll isn't reliably supported. - if (window->DC.NavLayersActiveMask == 0x00 && window->DC.NavHasScroll && g.NavMoveRequest) //-V560 + const ImGuiDir move_dir = g.NavMoveDir; + if (window->DC.NavLayersActiveMask == 0x00 && window->DC.NavHasScroll && move_dir != ImGuiDir_None) { - if (g.NavMoveDir == ImGuiDir_Left || g.NavMoveDir == ImGuiDir_Right) - SetScrollX(window, ImFloor(window->Scroll.x + ((g.NavMoveDir == ImGuiDir_Left) ? -1.0f : +1.0f) * scroll_speed)); - if (g.NavMoveDir == ImGuiDir_Up || g.NavMoveDir == ImGuiDir_Down) - SetScrollY(window, ImFloor(window->Scroll.y + ((g.NavMoveDir == ImGuiDir_Up) ? -1.0f : +1.0f) * scroll_speed)); + if (move_dir == ImGuiDir_Left || move_dir == ImGuiDir_Right) + SetScrollX(window, ImFloor(window->Scroll.x + ((move_dir == ImGuiDir_Left) ? -1.0f : +1.0f) * scroll_speed)); + if (move_dir == ImGuiDir_Up || move_dir == ImGuiDir_Down) + SetScrollY(window, ImFloor(window->Scroll.y + ((move_dir == ImGuiDir_Up) ? -1.0f : +1.0f) * scroll_speed)); } // *Normal* Manual scroll with NavScrollXXX keys @@ -9909,19 +10352,35 @@ static void ImGui::NavUpdate() SetScrollY(window, ImFloor(window->Scroll.y + scroll_dir.y * scroll_speed)); } + // Always prioritize mouse highlight if navigation is disabled + if (!nav_keyboard_active && !nav_gamepad_active) + { + g.NavDisableHighlight = true; + g.NavDisableMouseHover = set_mouse_pos = false; + } + + // Update mouse position if requested + // (This will take into account the possibility that a Scroll was queued in the window to offset our absolute mouse position before scroll has been applied) + if (set_mouse_pos && (io.ConfigFlags & ImGuiConfigFlags_NavEnableSetMousePos) && (io.BackendFlags & ImGuiBackendFlags_HasSetMousePos)) + { + io.MousePos = io.MousePosPrev = NavCalcPreferredRefPos(); + io.WantSetMousePos = true; + //IMGUI_DEBUG_LOG("SetMousePos: (%.1f,%.1f)\n", io.MousePos.x, io.MousePos.y); + } + // [DEBUG] - g.NavScoringCount = 0; + g.NavScoringDebugCount = 0; #if IMGUI_DEBUG_NAV_RECTS if (g.NavWindow) { ImDrawList* draw_list = GetForegroundDrawList(g.NavWindow); - if (1) { for (int layer = 0; layer < 2; layer++) draw_list->AddRect(g.NavWindow->Pos + g.NavWindow->NavRectRel[layer].Min, g.NavWindow->Pos + g.NavWindow->NavRectRel[layer].Max, IM_COL32(255,200,0,255)); } // [DEBUG] + if (1) { for (int layer = 0; layer < 2; layer++) { ImRect r = WindowRectRelToAbs(g.NavWindow, g.NavWindow->NavRectRel[layer]); draw_list->AddRect(r.Min, r.Max, IM_COL32(255,200,0,255)); } } // [DEBUG] if (1) { ImU32 col = (!g.NavWindow->Hidden) ? IM_COL32(255,0,255,255) : IM_COL32(255,0,0,255); ImVec2 p = NavCalcPreferredRefPos(); char buf[32]; ImFormatString(buf, 32, "%d", g.NavLayer); draw_list->AddCircleFilled(p, 3.0f, col); draw_list->AddText(NULL, 13.0f, p + ImVec2(8,-4), col, buf); } } #endif } -static void ImGui::NavUpdateInitResult() +void ImGui::NavInitRequestApplyResult() { // In very rare cases g.NavWindow may be null (e.g. clearing focus after requesting an init request, which does happen when releasing Alt while clicking on void) ImGuiContext& g = *GImGui; @@ -9932,11 +10391,9 @@ static void ImGui::NavUpdateInitResult() // FIXME-NAV: On _NavFlattened windows, g.NavWindow will only be updated during subsequent frame. Not a problem currently. IMGUI_DEBUG_LOG_NAV("[nav] NavInitRequest: result NavID 0x%08X in Layer %d Window \"%s\"\n", g.NavInitResultId, g.NavLayer, g.NavWindow->Name); SetNavID(g.NavInitResultId, g.NavLayer, 0, g.NavInitResultRectRel); + g.NavIdIsAlive = true; // Mark as alive from previous frame as we got a result if (g.NavInitRequestFromMove) - { - g.NavDisableHighlight = false; - g.NavDisableMouseHover = g.NavMousePosDirty = true; - } + NavRestoreHighlightAfterMove(); } void ImGui::NavUpdateCreateMoveRequest() @@ -9945,20 +10402,20 @@ void ImGui::NavUpdateCreateMoveRequest() ImGuiIO& io = g.IO; ImGuiWindow* window = g.NavWindow; - if (g.NavMoveRequestForwardToNextFrame) + if (g.NavMoveForwardToNextFrame && window != NULL) { // Forwarding previous request (which has been modified, e.g. wrap around menus rewrite the requests with a starting rectangle at the other side of the window) // (preserve most state, which were already set by the NavMoveRequestForward() function) IM_ASSERT(g.NavMoveDir != ImGuiDir_None && g.NavMoveClipDir != ImGuiDir_None); - IM_ASSERT(g.NavMoveRequestFlags & ImGuiNavMoveFlags_Forwarded); + IM_ASSERT(g.NavMoveFlags & ImGuiNavMoveFlags_Forwarded); IMGUI_DEBUG_LOG_NAV("[nav] NavMoveRequestForward %d\n", g.NavMoveDir); - g.NavMoveRequestForwardToNextFrame = false; } else { // Initiate directional inputs request g.NavMoveDir = ImGuiDir_None; - g.NavMoveRequestFlags = ImGuiNavMoveFlags_None; + g.NavMoveFlags = ImGuiNavMoveFlags_None; + g.NavMoveScrollFlags = ImGuiScrollFlags_None; if (window && !g.NavWindowingTarget && !(window->Flags & ImGuiWindowFlags_NoNavInputs)) { const ImGuiInputReadMode read_mode = ImGuiInputReadMode_Repeat; @@ -9968,29 +10425,39 @@ void ImGui::NavUpdateCreateMoveRequest() if (!IsActiveIdUsingNavDir(ImGuiDir_Down) && (IsNavInputTest(ImGuiNavInput_DpadDown, read_mode) || IsNavInputTest(ImGuiNavInput_KeyDown_, read_mode))) { g.NavMoveDir = ImGuiDir_Down; } } g.NavMoveClipDir = g.NavMoveDir; + g.NavScoringNoClipRect = ImRect(+FLT_MAX, +FLT_MAX, -FLT_MAX, -FLT_MAX); } // Update PageUp/PageDown/Home/End scroll // FIXME-NAV: Consider enabling those keys even without the master ImGuiConfigFlags_NavEnableKeyboard flag? const bool nav_keyboard_active = (io.ConfigFlags & ImGuiConfigFlags_NavEnableKeyboard) != 0; - float nav_scoring_rect_offset_y = 0.0f; - if (nav_keyboard_active) - nav_scoring_rect_offset_y = NavUpdatePageUpPageDown(); + float scoring_rect_offset_y = 0.0f; + if (window && g.NavMoveDir == ImGuiDir_None && nav_keyboard_active) + scoring_rect_offset_y = NavUpdatePageUpPageDown(); + if (scoring_rect_offset_y != 0.0f) + { + g.NavScoringNoClipRect = window->InnerRect; + g.NavScoringNoClipRect.TranslateY(scoring_rect_offset_y); + } - // If we initiate a movement request and have no current NavId, we initiate a InitDefaultRequest that will be used as a fallback if the direction fails to find a match - if (g.NavMoveDir != ImGuiDir_None) + // [DEBUG] Always send a request +#if IMGUI_DEBUG_NAV_SCORING + if (io.KeyCtrl && IsKeyPressedMap(ImGuiKey_C)) + g.NavMoveDirForDebug = (ImGuiDir)((g.NavMoveDirForDebug + 1) & 3); + if (io.KeyCtrl && g.NavMoveDir == ImGuiDir_None) { - IM_ASSERT(window != NULL); - g.NavMoveRequest = true; - g.NavMoveRequestKeyMods = io.KeyMods; - g.NavMoveDirLast = g.NavMoveDir; - g.NavMoveResultLocal.Clear(); - g.NavMoveResultLocalVisibleSet.Clear(); - g.NavMoveResultOther.Clear(); + g.NavMoveDir = g.NavMoveDirForDebug; + g.NavMoveFlags |= ImGuiNavMoveFlags_DebugNoResult; } +#endif - // Moving with no reference triggers a init request - if (g.NavMoveRequest && g.NavId == 0) + // Submit + g.NavMoveForwardToNextFrame = false; + if (g.NavMoveDir != ImGuiDir_None) + NavMoveRequestSubmit(g.NavMoveDir, g.NavMoveClipDir, g.NavMoveFlags, g.NavMoveScrollFlags); + + // Moving with no reference triggers a init request (will be used as a fallback if the direction fails to find a match) + if (g.NavMoveSubmitted && g.NavId == 0) { IMGUI_DEBUG_LOG_NAV("[nav] NavInitRequest: from move, window \"%s\", layer=%d\n", g.NavWindow->Name, g.NavLayer); g.NavInitRequest = g.NavInitRequestFromMove = true; @@ -10001,9 +10468,9 @@ void ImGui::NavUpdateCreateMoveRequest() // When using gamepad, we project the reference nav bounding box into window visible area. // This is to allow resuming navigation inside the visible area after doing a large amount of scrolling, since with gamepad every movements are relative // (can't focus a visible object like we can with the mouse). - if (g.NavMoveRequest && g.NavInputSource == ImGuiInputSource_Gamepad && g.NavLayer == ImGuiNavLayer_Main && window != NULL) + if (g.NavMoveSubmitted && g.NavInputSource == ImGuiInputSource_Gamepad && g.NavLayer == ImGuiNavLayer_Main && window != NULL) { - ImRect window_rect_rel(window->InnerRect.Min - window->Pos - ImVec2(1, 1), window->InnerRect.Max - window->Pos + ImVec2(1, 1)); + ImRect window_rect_rel = WindowRectAbsToRel(window, ImRect(window->InnerRect.Min - ImVec2(1, 1), window->InnerRect.Max + ImVec2(1, 1))); if (!window_rect_rel.Contains(window->NavRectRel[g.NavLayer])) { IMGUI_DEBUG_LOG_NAV("[nav] NavMoveRequest: clamp NavRectRel\n"); @@ -10015,42 +10482,78 @@ void ImGui::NavUpdateCreateMoveRequest() } // For scoring we use a single segment on the left side our current item bounding box (not touching the edge to avoid box overlap with zero-spaced items) - g.NavScoringRect = ImRect(); - if (window) + ImRect scoring_rect; + if (window != NULL) { ImRect nav_rect_rel = !window->NavRectRel[g.NavLayer].IsInverted() ? window->NavRectRel[g.NavLayer] : ImRect(0, 0, 0, 0); - g.NavScoringRect = ImRect(window->Pos + nav_rect_rel.Min, window->Pos + nav_rect_rel.Max); - g.NavScoringRect.TranslateY(nav_scoring_rect_offset_y); - g.NavScoringRect.Min.x = ImMin(g.NavScoringRect.Min.x + 1.0f, g.NavScoringRect.Max.x); - g.NavScoringRect.Max.x = g.NavScoringRect.Min.x; - IM_ASSERT(!g.NavScoringRect.IsInverted()); // Ensure if we have a finite, non-inverted bounding box here will allows us to remove extraneous ImFabs() calls in NavScoreItem(). - //GetForegroundDrawList()->AddRect(g.NavScoringRect.Min, g.NavScoringRect.Max, IM_COL32(255,200,0,255)); // [DEBUG] + scoring_rect = WindowRectRelToAbs(window, nav_rect_rel); + scoring_rect.TranslateY(scoring_rect_offset_y); + scoring_rect.Min.x = ImMin(scoring_rect.Min.x + 1.0f, scoring_rect.Max.x); + scoring_rect.Max.x = scoring_rect.Min.x; + IM_ASSERT(!scoring_rect.IsInverted()); // Ensure if we have a finite, non-inverted bounding box here will allows us to remove extraneous ImFabs() calls in NavScoreItem(). + //GetForegroundDrawList()->AddRect(scoring_rect.Min, scoring_rect.Max, IM_COL32(255,200,0,255)); // [DEBUG] + //if (!g.NavScoringNoClipRect.IsInverted()) { GetForegroundDrawList()->AddRect(g.NavScoringNoClipRect.Min, g.NavScoringNoClipRect.Max, IM_COL32(255, 200, 0, 255)); } // [DEBUG] } + g.NavScoringRect = scoring_rect; + g.NavScoringNoClipRect.Add(scoring_rect); } -// Apply result from previous frame navigation directional move request. Always called from NavUpdate() -void ImGui::NavMoveRequestApplyResult() -{ - ImGuiContext& g = *GImGui; +void ImGui::NavUpdateCreateTabbingRequest() +{ + ImGuiContext& g = *GImGui; + ImGuiWindow* window = g.NavWindow; + IM_ASSERT(g.NavMoveDir == ImGuiDir_None); + if (window == NULL || g.NavWindowingTarget != NULL || (window->Flags & ImGuiWindowFlags_NoNavInputs)) + return; + + const bool tab_pressed = IsKeyPressedMap(ImGuiKey_Tab, true) && !IsActiveIdUsingKey(ImGuiKey_Tab) && !g.IO.KeyCtrl && !g.IO.KeyAlt; + if (!tab_pressed) + return; + + // Initiate tabbing request + // (this is ALWAYS ENABLED, regardless of ImGuiConfigFlags_NavEnableKeyboard flag!) + // Initially this was designed to use counters and modulo arithmetic, but that could not work with unsubmitted items (list clipper). Instead we use a strategy close to other move requests. + // See NavProcessItemForTabbingRequest() for a description of the various forward/backward tabbing cases with and without wrapping. + //// FIXME: We use (g.ActiveId == 0) but (g.NavDisableHighlight == false) might be righter once we can tab through anything + g.NavTabbingDir = g.IO.KeyShift ? -1 : (g.ActiveId == 0) ? 0 : +1; + ImGuiScrollFlags scroll_flags = window->Appearing ? ImGuiScrollFlags_KeepVisibleEdgeX | ImGuiScrollFlags_AlwaysCenterY : ImGuiScrollFlags_KeepVisibleEdgeX | ImGuiScrollFlags_KeepVisibleEdgeY; + ImGuiDir clip_dir = (g.NavTabbingDir < 0) ? ImGuiDir_Up : ImGuiDir_Down; + NavMoveRequestSubmit(ImGuiDir_None, clip_dir, ImGuiNavMoveFlags_Tabbing, scroll_flags); // FIXME-NAV: Once we refactor tabbing, add LegacyApi flag to not activate non-inputable. + g.NavTabbingResultFirst.Clear(); + g.NavTabbingCounter = -1; +} + +// Apply result from previous frame navigation directional move request. Always called from NavUpdate() +void ImGui::NavMoveRequestApplyResult() +{ + ImGuiContext& g = *GImGui; +#if IMGUI_DEBUG_NAV_SCORING + if (g.NavMoveFlags & ImGuiNavMoveFlags_DebugNoResult) // [DEBUG] Scoring all items in NavWindow at all times + return; +#endif + + // Select which result to use + ImGuiNavItemData* result = (g.NavMoveResultLocal.ID != 0) ? &g.NavMoveResultLocal : (g.NavMoveResultOther.ID != 0) ? &g.NavMoveResultOther : NULL; + + // Tabbing forward wrap + if (g.NavMoveFlags & ImGuiNavMoveFlags_Tabbing) + if ((g.NavTabbingCounter == 1 || g.NavTabbingDir == 0) && g.NavTabbingResultFirst.ID) + result = &g.NavTabbingResultFirst; - if (g.NavMoveResultLocal.ID == 0 && g.NavMoveResultOther.ID == 0) + // In a situation when there is no results but NavId != 0, re-enable the Navigation highlight (because g.NavId is not considered as a possible result) + if (result == NULL) { - // In a situation when there is no results but NavId != 0, re-enable the Navigation highlight (because g.NavId is not considered as a possible result) - if (g.NavId != 0) - { - g.NavDisableHighlight = false; - g.NavDisableMouseHover = true; - } + if (g.NavMoveFlags & ImGuiNavMoveFlags_Tabbing) + g.NavMoveFlags |= ImGuiNavMoveFlags_DontSetNavHighlight; + if (g.NavId != 0 && (g.NavMoveFlags & ImGuiNavMoveFlags_DontSetNavHighlight) == 0) + NavRestoreHighlightAfterMove(); return; } - // Select which result to use - ImGuiNavItemData* result = (g.NavMoveResultLocal.ID != 0) ? &g.NavMoveResultLocal : &g.NavMoveResultOther; - // PageUp/PageDown behavior first jumps to the bottom/top mostly visible item, _otherwise_ use the result from the previous/next page. - if (g.NavMoveRequestFlags & ImGuiNavMoveFlags_AlsoScoreVisibleSet) - if (g.NavMoveResultLocalVisibleSet.ID != 0 && g.NavMoveResultLocalVisibleSet.ID != g.NavId) - result = &g.NavMoveResultLocalVisibleSet; + if (g.NavMoveFlags & ImGuiNavMoveFlags_AlsoScoreVisibleSet) + if (g.NavMoveResultLocalVisible.ID != 0 && g.NavMoveResultLocalVisible.ID != g.NavId) + result = &g.NavMoveResultLocalVisible; // Maybe entering a flattened child from the outside? In this case solve the tie using the regular scoring rules. if (result != &g.NavMoveResultOther && g.NavMoveResultOther.ID != 0 && g.NavMoveResultOther.Window->ParentWindow == g.NavWindow) @@ -10061,37 +10564,52 @@ void ImGui::NavMoveRequestApplyResult() // Scroll to keep newly navigated item fully into view. if (g.NavLayer == ImGuiNavLayer_Main) { - ImVec2 delta_scroll; - if (g.NavMoveRequestFlags & ImGuiNavMoveFlags_ScrollToEdge) + if (g.NavMoveFlags & ImGuiNavMoveFlags_ScrollToEdgeY) { + // FIXME: Should remove this float scroll_target = (g.NavMoveDir == ImGuiDir_Up) ? result->Window->ScrollMax.y : 0.0f; - delta_scroll.y = result->Window->Scroll.y - scroll_target; SetScrollY(result->Window, scroll_target); } else { - ImRect rect_abs = ImRect(result->RectRel.Min + result->Window->Pos, result->RectRel.Max + result->Window->Pos); - delta_scroll = ScrollToBringRectIntoView(result->Window, rect_abs); + ImRect rect_abs = WindowRectRelToAbs(result->Window, result->RectRel); + ScrollToRectEx(result->Window, rect_abs, g.NavMoveScrollFlags); } - - // Offset our result position so mouse position can be applied immediately after in NavUpdate() - result->RectRel.TranslateX(-delta_scroll.x); - result->RectRel.TranslateY(-delta_scroll.y); } - ClearActiveID(); g.NavWindow = result->Window; + if (g.ActiveId != result->ID) + ClearActiveID(); if (g.NavId != result->ID) { // Don't set NavJustMovedToId if just landed on the same spot (which may happen with ImGuiNavMoveFlags_AllowCurrentNavId) g.NavJustMovedToId = result->ID; g.NavJustMovedToFocusScopeId = result->FocusScopeId; - g.NavJustMovedToKeyMods = g.NavMoveRequestKeyMods; + g.NavJustMovedToKeyMods = g.NavMoveKeyMods; } + + // Focus IMGUI_DEBUG_LOG_NAV("[nav] NavMoveRequest: result NavID 0x%08X in Layer %d Window \"%s\"\n", result->ID, g.NavLayer, g.NavWindow->Name); SetNavID(result->ID, g.NavLayer, result->FocusScopeId, result->RectRel); - g.NavDisableHighlight = false; - g.NavDisableMouseHover = g.NavMousePosDirty = true; + + // Tabbing: Activates Inputable or Focus non-Inputable + if ((g.NavMoveFlags & ImGuiNavMoveFlags_Tabbing) && (result->InFlags & ImGuiItemFlags_Inputable)) + { + g.NavNextActivateId = result->ID; + g.NavNextActivateFlags = ImGuiActivateFlags_PreferInput | ImGuiActivateFlags_TryToPreserveState; + g.NavMoveFlags |= ImGuiNavMoveFlags_DontSetNavHighlight; + } + + // Activate + if (g.NavMoveFlags & ImGuiNavMoveFlags_Activate) + { + g.NavNextActivateId = result->ID; + g.NavNextActivateFlags = ImGuiActivateFlags_None; + } + + // Enable nav highlight + if ((g.NavMoveFlags & ImGuiNavMoveFlags_DontSetNavHighlight) == 0) + NavRestoreHighlightAfterMove(); } // Process NavCancel input (to close a popup, get back to parent, clear focus) @@ -10114,6 +10632,7 @@ static void ImGui::NavUpdateCancelRequest() { // Leave the "menu" layer NavRestoreLayer(ImGuiNavLayer_Main); + NavRestoreHighlightAfterMove(); } else if (g.NavWindow && g.NavWindow != g.NavWindow->RootWindow && !(g.NavWindow->Flags & ImGuiWindowFlags_Popup) && g.NavWindow->ParentWindow) { @@ -10123,7 +10642,8 @@ static void ImGui::NavUpdateCancelRequest() IM_ASSERT(child_window->ChildId != 0); ImRect child_rect = child_window->Rect(); FocusWindow(parent_window); - SetNavID(child_window->ChildId, ImGuiNavLayer_Main, 0, ImRect(child_rect.Min - parent_window->Pos, child_rect.Max - parent_window->Pos)); + SetNavID(child_window->ChildId, ImGuiNavLayer_Main, 0, WindowRectAbsToRel(parent_window, child_rect)); + NavRestoreHighlightAfterMove(); } else if (g.OpenPopupStack.Size > 0) { @@ -10141,18 +10661,18 @@ static void ImGui::NavUpdateCancelRequest() } // Handle PageUp/PageDown/Home/End keys +// Called from NavUpdateCreateMoveRequest() which will use our output to create a move request +// FIXME-NAV: This doesn't work properly with NavFlattened siblings as we use NavWindow rectangle for reference // FIXME-NAV: how to get Home/End to aim at the beginning/end of a 2D grid? static float ImGui::NavUpdatePageUpPageDown() { ImGuiContext& g = *GImGui; ImGuiIO& io = g.IO; - if (g.NavMoveDir != ImGuiDir_None || g.NavWindow == NULL) - return 0.0f; - if ((g.NavWindow->Flags & ImGuiWindowFlags_NoNavInputs) || g.NavWindowingTarget != NULL || g.NavLayer != ImGuiNavLayer_Main) + ImGuiWindow* window = g.NavWindow; + if ((window->Flags & ImGuiWindowFlags_NoNavInputs) || g.NavWindowingTarget != NULL) return 0.0f; - ImGuiWindow* window = g.NavWindow; const bool page_up_held = IsKeyDown(io.KeyMap[ImGuiKey_PageUp]) && !IsActiveIdUsingKey(ImGuiKey_PageUp); const bool page_down_held = IsKeyDown(io.KeyMap[ImGuiKey_PageDown]) && !IsActiveIdUsingKey(ImGuiKey_PageDown); const bool home_pressed = IsKeyPressed(io.KeyMap[ImGuiKey_Home]) && !IsActiveIdUsingKey(ImGuiKey_Home); @@ -10160,6 +10680,9 @@ static float ImGui::NavUpdatePageUpPageDown() if (page_up_held == page_down_held && home_pressed == end_pressed) // Proceed if either (not both) are pressed, otherwise early out return 0.0f; + if (g.NavLayer != ImGuiNavLayer_Main) + NavRestoreLayer(ImGuiNavLayer_Main); + if (window->DC.NavLayersActiveMask == 0x00 && window->DC.NavHasScroll) { // Fallback manual-scroll when window has no navigable item @@ -10182,33 +10705,35 @@ static float ImGui::NavUpdatePageUpPageDown() nav_scoring_rect_offset_y = -page_offset_y; g.NavMoveDir = ImGuiDir_Down; // Because our scoring rect is offset up, we request the down direction (so we can always land on the last item) g.NavMoveClipDir = ImGuiDir_Up; - g.NavMoveRequestFlags = ImGuiNavMoveFlags_AllowCurrentNavId | ImGuiNavMoveFlags_AlsoScoreVisibleSet; + g.NavMoveFlags = ImGuiNavMoveFlags_AllowCurrentNavId | ImGuiNavMoveFlags_AlsoScoreVisibleSet; } else if (IsKeyPressed(io.KeyMap[ImGuiKey_PageDown], true)) { nav_scoring_rect_offset_y = +page_offset_y; g.NavMoveDir = ImGuiDir_Up; // Because our scoring rect is offset down, we request the up direction (so we can always land on the last item) g.NavMoveClipDir = ImGuiDir_Down; - g.NavMoveRequestFlags = ImGuiNavMoveFlags_AllowCurrentNavId | ImGuiNavMoveFlags_AlsoScoreVisibleSet; + g.NavMoveFlags = ImGuiNavMoveFlags_AllowCurrentNavId | ImGuiNavMoveFlags_AlsoScoreVisibleSet; } else if (home_pressed) { // FIXME-NAV: handling of Home/End is assuming that the top/bottom most item will be visible with Scroll.y == 0/ScrollMax.y - // Scrolling will be handled via the ImGuiNavMoveFlags_ScrollToEdge flag, we don't scroll immediately to avoid scrolling happening before nav result. + // Scrolling will be handled via the ImGuiNavMoveFlags_ScrollToEdgeY flag, we don't scroll immediately to avoid scrolling happening before nav result. // Preserve current horizontal position if we have any. - nav_rect_rel.Min.y = nav_rect_rel.Max.y = -window->Scroll.y; + nav_rect_rel.Min.y = nav_rect_rel.Max.y = 0.0f; if (nav_rect_rel.IsInverted()) nav_rect_rel.Min.x = nav_rect_rel.Max.x = 0.0f; g.NavMoveDir = ImGuiDir_Down; - g.NavMoveRequestFlags = ImGuiNavMoveFlags_AllowCurrentNavId | ImGuiNavMoveFlags_ScrollToEdge; + g.NavMoveFlags = ImGuiNavMoveFlags_AllowCurrentNavId | ImGuiNavMoveFlags_ScrollToEdgeY; + // FIXME-NAV: MoveClipDir left to _None, intentional? } else if (end_pressed) { - nav_rect_rel.Min.y = nav_rect_rel.Max.y = window->ScrollMax.y + window->SizeFull.y - window->Scroll.y; + nav_rect_rel.Min.y = nav_rect_rel.Max.y = window->ContentSize.y; if (nav_rect_rel.IsInverted()) nav_rect_rel.Min.x = nav_rect_rel.Max.x = 0.0f; g.NavMoveDir = ImGuiDir_Up; - g.NavMoveRequestFlags = ImGuiNavMoveFlags_AllowCurrentNavId | ImGuiNavMoveFlags_ScrollToEdge; + g.NavMoveFlags = ImGuiNavMoveFlags_AllowCurrentNavId | ImGuiNavMoveFlags_ScrollToEdgeY; + // FIXME-NAV: MoveClipDir left to _None, intentional? } return nav_scoring_rect_offset_y; } @@ -10224,63 +10749,66 @@ static void ImGui::NavEndFrame() NavUpdateWindowingOverlay(); // Perform wrap-around in menus + // FIXME-NAV: Wrap may need to apply a weight bias on the other axis. e.g. 4x4 grid with 2 last items missing on last item won't handle LoopY/WrapY correctly. // FIXME-NAV: Wrap (not Loop) support could be handled by the scoring function and then WrapX would function without an extra frame. - ImGuiWindow* window = g.NavWindow; - const ImGuiNavMoveFlags move_flags = g.NavMoveRequestFlags; const ImGuiNavMoveFlags wanted_flags = ImGuiNavMoveFlags_WrapX | ImGuiNavMoveFlags_LoopX | ImGuiNavMoveFlags_WrapY | ImGuiNavMoveFlags_LoopY; - if (window && NavMoveRequestButNoResultYet() && (g.NavMoveRequestFlags & wanted_flags) && (g.NavMoveRequestFlags & ImGuiNavMoveFlags_Forwarded) == 0) + if (g.NavWindow && NavMoveRequestButNoResultYet() && (g.NavMoveFlags & wanted_flags) && (g.NavMoveFlags & ImGuiNavMoveFlags_Forwarded) == 0) + NavUpdateCreateWrappingRequest(); +} + +static void ImGui::NavUpdateCreateWrappingRequest() +{ + ImGuiContext& g = *GImGui; + ImGuiWindow* window = g.NavWindow; + + bool do_forward = false; + ImRect bb_rel = window->NavRectRel[g.NavLayer]; + ImGuiDir clip_dir = g.NavMoveDir; + const ImGuiNavMoveFlags move_flags = g.NavMoveFlags; + if (g.NavMoveDir == ImGuiDir_Left && (move_flags & (ImGuiNavMoveFlags_WrapX | ImGuiNavMoveFlags_LoopX))) { - bool do_forward = false; - ImRect bb_rel = window->NavRectRel[g.NavLayer]; - ImGuiDir clip_dir = g.NavMoveDir; - if (g.NavMoveDir == ImGuiDir_Left && (move_flags & (ImGuiNavMoveFlags_WrapX | ImGuiNavMoveFlags_LoopX))) - { - bb_rel.Min.x = bb_rel.Max.x = - ImMax(window->SizeFull.x, window->ContentSize.x + window->WindowPadding.x * 2.0f) - window->Scroll.x; - if (move_flags & ImGuiNavMoveFlags_WrapX) - { - bb_rel.TranslateY(-bb_rel.GetHeight()); - clip_dir = ImGuiDir_Up; - } - do_forward = true; - } - if (g.NavMoveDir == ImGuiDir_Right && (move_flags & (ImGuiNavMoveFlags_WrapX | ImGuiNavMoveFlags_LoopX))) + bb_rel.Min.x = bb_rel.Max.x = window->ContentSize.x + window->WindowPadding.x; + if (move_flags & ImGuiNavMoveFlags_WrapX) { - bb_rel.Min.x = bb_rel.Max.x = -window->Scroll.x; - if (move_flags & ImGuiNavMoveFlags_WrapX) - { - bb_rel.TranslateY(+bb_rel.GetHeight()); - clip_dir = ImGuiDir_Down; - } - do_forward = true; + bb_rel.TranslateY(-bb_rel.GetHeight()); // Previous row + clip_dir = ImGuiDir_Up; } - if (g.NavMoveDir == ImGuiDir_Up && (move_flags & (ImGuiNavMoveFlags_WrapY | ImGuiNavMoveFlags_LoopY))) + do_forward = true; + } + if (g.NavMoveDir == ImGuiDir_Right && (move_flags & (ImGuiNavMoveFlags_WrapX | ImGuiNavMoveFlags_LoopX))) + { + bb_rel.Min.x = bb_rel.Max.x = -window->WindowPadding.x; + if (move_flags & ImGuiNavMoveFlags_WrapX) { - bb_rel.Min.y = bb_rel.Max.y = - ImMax(window->SizeFull.y, window->ContentSize.y + window->WindowPadding.y * 2.0f) - window->Scroll.y; - if (move_flags & ImGuiNavMoveFlags_WrapY) - { - bb_rel.TranslateX(-bb_rel.GetWidth()); - clip_dir = ImGuiDir_Left; - } - do_forward = true; + bb_rel.TranslateY(+bb_rel.GetHeight()); // Next row + clip_dir = ImGuiDir_Down; } - if (g.NavMoveDir == ImGuiDir_Down && (move_flags & (ImGuiNavMoveFlags_WrapY | ImGuiNavMoveFlags_LoopY))) + do_forward = true; + } + if (g.NavMoveDir == ImGuiDir_Up && (move_flags & (ImGuiNavMoveFlags_WrapY | ImGuiNavMoveFlags_LoopY))) + { + bb_rel.Min.y = bb_rel.Max.y = window->ContentSize.y + window->WindowPadding.y; + if (move_flags & ImGuiNavMoveFlags_WrapY) { - bb_rel.Min.y = bb_rel.Max.y = -window->Scroll.y; - if (move_flags & ImGuiNavMoveFlags_WrapY) - { - bb_rel.TranslateX(+bb_rel.GetWidth()); - clip_dir = ImGuiDir_Right; - } - do_forward = true; + bb_rel.TranslateX(-bb_rel.GetWidth()); // Previous column + clip_dir = ImGuiDir_Left; } - if (do_forward) + do_forward = true; + } + if (g.NavMoveDir == ImGuiDir_Down && (move_flags & (ImGuiNavMoveFlags_WrapY | ImGuiNavMoveFlags_LoopY))) + { + bb_rel.Min.y = bb_rel.Max.y = -window->WindowPadding.y; + if (move_flags & ImGuiNavMoveFlags_WrapY) { - window->NavRectRel[g.NavLayer] = bb_rel; - NavMoveRequestForward(g.NavMoveDir, clip_dir, move_flags); + bb_rel.TranslateX(+bb_rel.GetWidth()); // Next column + clip_dir = ImGuiDir_Right; } + do_forward = true; } + if (!do_forward) + return; + window->NavRectRel[g.NavLayer] = bb_rel; + NavMoveRequestForward(g.NavMoveDir, clip_dir, move_flags, g.NavMoveScrollFlags); } static int ImGui::FindWindowFocusIndex(ImGuiWindow* window) @@ -10288,6 +10816,7 @@ static int ImGui::FindWindowFocusIndex(ImGuiWindow* window) ImGuiContext& g = *GImGui; IM_UNUSED(g); int order = window->FocusOrder; + IM_ASSERT(window->RootWindow == window); // No child window (not testing _ChildWindow because of docking) IM_ASSERT(g.WindowsFocusOrder[order] == window); return order; } @@ -10341,9 +10870,9 @@ static void ImGui::NavUpdateWindowing() g.NavWindowingTargetAnim = NULL; } - // Start CTRL-TAB or Square+L/R window selection - bool start_windowing_with_gamepad = allow_windowing && !g.NavWindowingTarget && IsNavInputTest(ImGuiNavInput_Menu, ImGuiInputReadMode_Pressed); - bool start_windowing_with_keyboard = allow_windowing && !g.NavWindowingTarget && io.KeyCtrl && IsKeyPressedMap(ImGuiKey_Tab) && (io.ConfigFlags & ImGuiConfigFlags_NavEnableKeyboard); + // Start CTRL+Tab or Square+L/R window selection + const bool start_windowing_with_gamepad = allow_windowing && !g.NavWindowingTarget && IsNavInputTest(ImGuiNavInput_Menu, ImGuiInputReadMode_Pressed); + const bool start_windowing_with_keyboard = allow_windowing && !g.NavWindowingTarget && io.KeyCtrl && IsKeyPressedMap(ImGuiKey_Tab); if (start_windowing_with_gamepad || start_windowing_with_keyboard) if (ImGuiWindow* window = g.NavWindow ? g.NavWindow : FindWindowNavFocusable(g.WindowsFocusOrder.Size - 1, -INT_MAX, -1)) { @@ -10394,7 +10923,8 @@ static void ImGui::NavUpdateWindowing() // Keyboard: Press and Release ALT to toggle menu layer // - Testing that only Alt is tested prevents Alt+Shift or AltGR from toggling menu layer. // - AltGR is normally Alt+Ctrl but we can't reliably detect it (not all backends/systems/layout emit it as Alt+Ctrl). But even on keyboards without AltGR we don't want Alt+Ctrl to open menu anyway. - if (io.KeyMods == ImGuiKeyModFlags_Alt && (io.KeyModsPrev & ImGuiKeyModFlags_Alt) == 0) + const bool nav_keyboard_active = (io.ConfigFlags & ImGuiConfigFlags_NavEnableKeyboard) != 0; + if (nav_keyboard_active && io.KeyMods == ImGuiKeyModFlags_Alt && (io.KeyModsPrev & ImGuiKeyModFlags_Alt) == 0) { g.NavWindowingToggleLayer = true; g.NavInputSource = ImGuiInputSource_Keyboard; @@ -10422,7 +10952,7 @@ static void ImGui::NavUpdateWindowing() { ImVec2 move_delta; if (g.NavInputSource == ImGuiInputSource_Keyboard && !io.KeyShift) - move_delta = GetNavInputAmount2d(ImGuiNavDirSourceFlags_Keyboard, ImGuiInputReadMode_Down); + move_delta = GetNavInputAmount2d(ImGuiNavDirSourceFlags_RawKeyboard, ImGuiInputReadMode_Down); if (g.NavInputSource == ImGuiInputSource_Gamepad) move_delta = GetNavInputAmount2d(ImGuiNavDirSourceFlags_PadLStick, ImGuiInputReadMode_Down); if (move_delta.x != 0.0f || move_delta.y != 0.0f) @@ -10441,8 +10971,7 @@ static void ImGui::NavUpdateWindowing() { ImGuiViewport* previous_viewport = g.NavWindow ? g.NavWindow->Viewport : NULL; ClearActiveID(); - g.NavDisableHighlight = false; - g.NavDisableMouseHover = true; + NavRestoreHighlightAfterMove(); apply_focus_window = NavRestoreLastChildNavWindow(apply_focus_window); ClosePopupsOverWindow(apply_focus_window, false); FocusWindow(apply_focus_window); @@ -10484,15 +11013,18 @@ static void ImGui::NavUpdateWindowing() FocusWindow(new_nav_window); new_nav_window->NavLastChildNavWindow = old_nav_window; } - g.NavDisableHighlight = false; - g.NavDisableMouseHover = true; - // Reinitialize navigation when entering menu bar with the Alt key. + // Toggle layer const ImGuiNavLayer new_nav_layer = (g.NavWindow->DC.NavLayersActiveMask & (1 << ImGuiNavLayer_Menu)) ? (ImGuiNavLayer)((int)g.NavLayer ^ 1) : ImGuiNavLayer_Main; - const bool preserve_layer_1_nav_id = (new_nav_window->DockNodeAsHost != NULL); - if (new_nav_layer == ImGuiNavLayer_Menu && !preserve_layer_1_nav_id) - g.NavWindow->NavLastIds[new_nav_layer] = 0; - NavRestoreLayer(new_nav_layer); + if (new_nav_layer != g.NavLayer) + { + // Reinitialize navigation when entering menu bar with the Alt key (FIXME: could be a properly of the layer?) + const bool preserve_layer_1_nav_id = (new_nav_window->DockNodeAsHost != NULL); + if (new_nav_layer == ImGuiNavLayer_Menu && !preserve_layer_1_nav_id) + g.NavWindow->NavLastIds[new_nav_layer] = 0; + NavRestoreLayer(new_nav_layer); + NavRestoreHighlightAfterMove(); + } } } @@ -10587,31 +11119,29 @@ bool ImGui::BeginDragDropSource(ImGuiDragDropFlags flags) return false; if (g.ActiveIdMouseButton != -1) mouse_button = g.ActiveIdMouseButton; - if (g.IO.MouseDown[mouse_button] == false) + if (g.IO.MouseDown[mouse_button] == false || window->SkipItems) return false; g.ActiveIdAllowOverlap = false; } else { // Uncommon path: items without ID - if (g.IO.MouseDown[mouse_button] == false) + if (g.IO.MouseDown[mouse_button] == false || window->SkipItems) + return false; + if ((g.LastItemData.StatusFlags & ImGuiItemStatusFlags_HoveredRect) == 0 && (g.ActiveId == 0 || g.ActiveIdWindow != window)) return false; // If you want to use BeginDragDropSource() on an item with no unique identifier for interaction, such as Text() or Image(), you need to: - // A) Read the explanation below, B) Use the ImGuiDragDropFlags_SourceAllowNullID flag, C) Swallow your programmer pride. + // A) Read the explanation below, B) Use the ImGuiDragDropFlags_SourceAllowNullID flag. if (!(flags & ImGuiDragDropFlags_SourceAllowNullID)) { IM_ASSERT(0); return false; } - // Early out - if ((g.LastItemData.StatusFlags & ImGuiItemStatusFlags_HoveredRect) == 0 && (g.ActiveId == 0 || g.ActiveIdWindow != window)) - return false; - - // Magic fallback (=somehow reprehensible) to handle items with no assigned ID, e.g. Text(), Image() + // Magic fallback to handle items with no assigned ID, e.g. Text(), Image() // We build a throwaway ID based on current ID stack + relative AABB of items in window. - // THE IDENTIFIER WON'T SURVIVE ANY REPOSITIONING OF THE WIDGET, so if your widget moves your dragging operation will be canceled. + // THE IDENTIFIER WON'T SURVIVE ANY REPOSITIONING/RESIZINGG OF THE WIDGET, so if your widget moves your dragging operation will be canceled. // We don't need to maintain/call ClearActiveID() as releasing the button will early out this function and trigger !ActiveIdIsAlive. // Rely on keeping other window->LastItemXXX fields intact. source_id = g.LastItemData.ID = window->GetIDFromRectangle(g.LastItemData.Rect); @@ -10774,7 +11304,7 @@ bool ImGui::BeginDragDropTarget() if (!(g.LastItemData.StatusFlags & ImGuiItemStatusFlags_HoveredRect)) return false; ImGuiWindow* hovered_window = g.HoveredWindowUnderMovingWindow; - if (hovered_window == NULL || window->RootWindowDockTree != hovered_window->RootWindowDockTree) + if (hovered_window == NULL || window->RootWindowDockTree != hovered_window->RootWindowDockTree || window->SkipItems) return false; const ImRect& display_rect = (g.LastItemData.StatusFlags & ImGuiItemStatusFlags_HasDisplayRect) ? g.LastItemData.DisplayRect : g.LastItemData.Rect; @@ -11507,6 +12037,10 @@ void ImGui::SetCurrentViewport(ImGuiWindow* current_window, ImGuiViewportP* view static void SetWindowViewport(ImGuiWindow* window, ImGuiViewportP* viewport) { + // Abandon viewport + if (window->ViewportOwned && window->Viewport->Window == window) + window->Viewport->Size = ImVec2(0.0f, 0.0f); + window->Viewport = viewport; window->ViewportId = viewport->ID; window->ViewportOwned = (viewport->Window == window); @@ -11539,6 +12073,7 @@ static bool ImGui::UpdateTryMergeWindowIntoHostViewport(ImGuiWindow* window, ImG if (GetWindowAlwaysWantOwnViewport(window)) return false; + // FIXME: Can't use g.WindowsFocusOrder[] for root windows only as we care about Z order. If we maintained a DisplayOrder along with FocusOrder we could.. for (int n = 0; n < g.Windows.Size; n++) { ImGuiWindow* window_behind = g.Windows[n]; @@ -11672,22 +12207,7 @@ static void ImGui::UpdateViewportsNewFrame() // Erase unused viewports if (n > 0 && viewport->LastFrameActive < g.FrameCount - 2) { - // Clear references to this viewport in windows (window->ViewportId becomes the master data) - for (int window_n = 0; window_n < g.Windows.Size; window_n++) - if (g.Windows[window_n]->Viewport == viewport) - { - g.Windows[window_n]->Viewport = NULL; - g.Windows[window_n]->ViewportOwned = false; - } - if (viewport == g.MouseLastHoveredViewport) - g.MouseLastHoveredViewport = NULL; - g.Viewports.erase(g.Viewports.Data + n); - - // Destroy - IMGUI_DEBUG_LOG_VIEWPORT("Delete Viewport %08X (%s)\n", viewport->ID, viewport->Window ? viewport->Window->Name : "n/a"); - DestroyPlatformWindow(viewport); // In most circumstances the platform window will already be destroyed here. - IM_ASSERT(g.PlatformIO.Viewports.contains(viewport) == false); - IM_DELETE(viewport); + DestroyViewport(viewport); n--; continue; } @@ -11719,7 +12239,7 @@ static void ImGui::UpdateViewportsNewFrame() // Reset alpha every frame. Users of transparency (docking) needs to request a lower alpha back. viewport->Alpha = 1.0f; - // Translate imgui windows when a Host Viewport has been moved + // Translate Dear ImGui windows when a Host Viewport has been moved // (This additionally keeps windows at the same place when ImGuiConfigFlags_ViewportsEnable is toggled!) const ImVec2 viewport_delta_pos = viewport->Pos - viewport->LastPos; if ((viewport->Flags & ImGuiViewportFlags_CanHostOtherWindows) && (viewport_delta_pos.x != 0.0f || viewport_delta_pos.y != 0.0f)) @@ -11794,7 +12314,8 @@ static void ImGui::UpdateViewportsNewFrame() // Update mouse reference viewport // (when moving a window we aim at its viewport, but this will be overwritten below if we go in drag and drop mode) - if (g.MovingWindow) + // (MovingViewport->Viewport will be NULL in the rare situation where the window disappared while moving, set UpdateMouseMovingWindowNewFrame() for details) + if (g.MovingWindow && g.MovingWindow->Viewport) g.MouseViewport = g.MovingWindow->Viewport; else g.MouseViewport = g.MouseLastHoveredViewport; @@ -11898,6 +12419,30 @@ ImGuiViewportP* ImGui::AddUpdateViewport(ImGuiWindow* window, ImGuiID id, const return viewport; } +static void ImGui::DestroyViewport(ImGuiViewportP* viewport) +{ + // Clear references to this viewport in windows (window->ViewportId becomes the master data) + ImGuiContext& g = *GImGui; + for (int window_n = 0; window_n < g.Windows.Size; window_n++) + { + ImGuiWindow* window = g.Windows[window_n]; + if (window->Viewport != viewport) + continue; + window->Viewport = NULL; + window->ViewportOwned = false; + } + if (viewport == g.MouseLastHoveredViewport) + g.MouseLastHoveredViewport = NULL; + + // Destroy + IMGUI_DEBUG_LOG_VIEWPORT("Delete Viewport %08X (%s)\n", viewport->ID, viewport->Window ? viewport->Window->Name : "n/a"); + DestroyPlatformWindow(viewport); // In most circumstances the platform window will already be destroyed here. + IM_ASSERT(g.PlatformIO.Viewports.contains(viewport) == false); + IM_ASSERT(g.Viewports[viewport->Idx] == viewport); + g.Viewports.erase(g.Viewports.Data + viewport->Idx); + IM_DELETE(viewport); +} + // FIXME-VIEWPORT: This is all super messy and ought to be clarified or rewritten. static void ImGui::WindowSelectViewport(ImGuiWindow* window) { @@ -11947,8 +12492,15 @@ static void ImGui::WindowSelectViewport(ImGuiWindow* window) else if ((flags & ImGuiWindowFlags_ChildWindow) || (flags & ImGuiWindowFlags_ChildMenu)) { // Always inherit viewport from parent window + if (window->DockNode && window->DockNode->HostWindow) + IM_ASSERT(window->DockNode->HostWindow->Viewport == window->ParentWindow->Viewport); window->Viewport = window->ParentWindow->Viewport; } + else if (window->DockNode && window->DockNode->HostWindow) + { + // This covers the "always inherit viewport from parent window" case for when a window reattach to a node that was just created mid-frame + window->Viewport = window->DockNode->HostWindow->Viewport; + } else if (flags & ImGuiWindowFlags_Tooltip) { window->Viewport = g.MouseViewport; @@ -11991,7 +12543,7 @@ static void ImGui::WindowSelectViewport(ImGuiWindow* window) else window->ViewportAllowPlatformMonitorExtend = window->Viewport->PlatformMonitor; } - else if (window->Viewport && window != window->Viewport->Window && window->Viewport->Window && !(flags & ImGuiWindowFlags_ChildWindow)) + else if (window->Viewport && window != window->Viewport->Window && window->Viewport->Window && !(flags & ImGuiWindowFlags_ChildWindow) && window->DockNode == NULL) { // When called from Begin() we don't have access to a proper version of the Hidden flag yet, so we replicate this code. const bool will_be_visible = (window->DockIsActive && !window->DockTabIsVisible) ? false : true; @@ -12104,7 +12656,7 @@ void ImGui::WindowSyncOwnedViewport(ImGuiWindow* window, ImGuiWindow* parent_win // Update parent viewport ID // (the !IsFallbackWindow test mimic the one done in WindowSelectViewport()) - if (window->WindowClass.ParentViewportId) + if (window->WindowClass.ParentViewportId != (ImGuiID)-1) window->Viewport->ParentViewportId = window->WindowClass.ParentViewportId; else if ((window_flags & (ImGuiWindowFlags_Popup | ImGuiWindowFlags_Tooltip)) && parent_window_in_stack && (!parent_window_in_stack->IsFallbackWindow || parent_window_in_stack->WasActive)) window->Viewport->ParentViewportId = parent_window_in_stack->Viewport->ID; @@ -12400,7 +12952,7 @@ void ImGui::DestroyPlatformWindows() // | - DockContextProcessDock() - process one docking request // | - DockNodeUpdate() // | - DockNodeUpdateForRootNode() -// | - DockNodeUpdateVisibleFlagAndInactiveChilds() +// | - DockNodeUpdateFlagsAndCollapse() // | - DockNodeFindInfo() // | - destroy unused node or tab bar // | - create dock node host window @@ -12431,6 +12983,9 @@ void ImGui::DestroyPlatformWindows() // | BeginDockableDragDropTarget() // | - DockNodePreviewDockRender() //----------------------------------------------------------------------------- +// - EndFrame() +// | DockContextEndFrame() +//----------------------------------------------------------------------------- //----------------------------------------------------------------------------- // Docking: Internal Types @@ -12533,7 +13088,8 @@ namespace ImGui static void DockNodeHideHostWindow(ImGuiDockNode* node); static void DockNodeUpdate(ImGuiDockNode* node); static void DockNodeUpdateForRootNode(ImGuiDockNode* node); - static void DockNodeUpdateVisibleFlagAndInactiveChilds(ImGuiDockNode* node); + static void DockNodeUpdateFlagsAndCollapse(ImGuiDockNode* node); + static void DockNodeUpdateHasCentralNodeChild(ImGuiDockNode* node); static void DockNodeUpdateTabBar(ImGuiDockNode* node, ImGuiWindow* host_window); static void DockNodeAddTabBar(ImGuiDockNode* node); static void DockNodeRemoveTabBar(ImGuiDockNode* node); @@ -12552,7 +13108,7 @@ namespace ImGui // ImGuiDockNode tree manipulations static void DockNodeTreeSplit(ImGuiContext* ctx, ImGuiDockNode* parent_node, ImGuiAxis split_axis, int split_first_child, float split_ratio, ImGuiDockNode* new_node); static void DockNodeTreeMerge(ImGuiContext* ctx, ImGuiDockNode* parent_node, ImGuiDockNode* merge_lead_child); - static void DockNodeTreeUpdatePosSize(ImGuiDockNode* node, ImVec2 pos, ImVec2 size, bool only_write_to_marked_nodes = false); + static void DockNodeTreeUpdatePosSize(ImGuiDockNode* node, ImVec2 pos, ImVec2 size, ImGuiDockNode* only_write_to_single_node = NULL); static void DockNodeTreeUpdateSplitter(ImGuiDockNode* node); static ImGuiDockNode* DockNodeTreeFindVisibleNodeByPos(ImGuiDockNode* node, ImVec2 pos); static ImGuiDockNode* DockNodeTreeFindFallbackLeafNode(ImGuiDockNode* node); @@ -12584,6 +13140,7 @@ namespace ImGui // - DockContextRebuildNodes() // - DockContextNewFrameUpdateUndocking() // - DockContextNewFrameUpdateDocking() +// - DockContextEndFrame() // - DockContextFindNodeByID() // - DockContextBindNodeToWindow() // - DockContextGenNodeID() @@ -12719,6 +13276,22 @@ void ImGui::DockContextNewFrameUpdateDocking(ImGuiContext* ctx) DockNodeUpdate(node); } +void ImGui::DockContextEndFrame(ImGuiContext* ctx) +{ + // Draw backgrounds of node missing their window + ImGuiContext& g = *ctx; + ImGuiDockContext* dc = &g.DockContext; + for (int n = 0; n < dc->Nodes.Data.Size; n++) + if (ImGuiDockNode* node = (ImGuiDockNode*)dc->Nodes.Data[n].val_p) + if (node->LastFrameActive == g.FrameCount && node->IsVisible && node->HostWindow && node->IsLeafNode() && !node->IsBgDrawnThisFrame) + { + ImRect bg_rect(node->Pos + ImVec2(0.0f, GetFrameHeight()), node->Pos + node->Size); + ImDrawFlags bg_rounding_flags = CalcRoundingFlagsForRectInRect(bg_rect, node->HostWindow->Rect(), DOCKING_SPLITTER_SIZE); + node->HostWindow->DrawList->ChannelsSetCurrent(0); + node->HostWindow->DrawList->AddRectFilled(bg_rect.Min, bg_rect.Max, node->LastBgColor, node->HostWindow->WindowRounding, bg_rounding_flags); + } +} + static ImGuiDockNode* ImGui::DockContextFindNodeByID(ImGuiContext* ctx, ImGuiID id) { return (ImGuiDockNode*)ctx->DockContext.Nodes.GetVoidPtr(id); @@ -13061,7 +13634,7 @@ void ImGui::DockContextProcessDock(ImGuiContext* ctx, ImGuiDockRequest* req) IM_ASSERT(last_focused_node != NULL); ImGuiDockNode* last_focused_root_node = DockNodeGetRootNode(last_focused_node); IM_ASSERT(last_focused_root_node == DockNodeGetRootNode(payload_node)); - last_focused_node->SetLocalFlags(last_focused_node->LocalFlags |= ImGuiDockNodeFlags_CentralNode); + last_focused_node->SetLocalFlags(last_focused_node->LocalFlags | ImGuiDockNodeFlags_CentralNode); node->SetLocalFlags(node->LocalFlags & ~ImGuiDockNodeFlags_CentralNode); last_focused_root_node->CentralNode = last_focused_node; } @@ -13207,7 +13780,8 @@ bool ImGui::DockContextCalcDropPosForDocking(ImGuiWindow* target, ImGuiDockNode* // - ImGuiDockNodeFindInfoResults // - DockNodeFindInfo() // - DockNodeFindWindowByID() -// - DockNodeUpdateVisibleFlagAndInactiveChilds() +// - DockNodeUpdateFlagsAndCollapse() +// - DockNodeUpdateHasCentralNodeFlag() // - DockNodeUpdateVisibleFlag() // - DockNodeStartMouseMovingWindow() // - DockNodeUpdate() @@ -13235,8 +13809,10 @@ ImGuiDockNode::ImGuiDockNode(ImGuiID id) SplitAxis = ImGuiAxis_None; State = ImGuiDockNodeState_Unknown; + LastBgColor = IM_COL32_WHITE; HostWindow = VisibleWindow = NULL; CentralNode = OnlyNodeWithWindows = NULL; + CountNodeWithWindows = 0; LastFrameAlive = LastFrameActive = LastFrameFocused = -1; LastFocusedNodeId = 0; SelectedTabId = 0; @@ -13244,9 +13820,9 @@ ImGuiDockNode::ImGuiDockNode(ImGuiID id) AuthorityForPos = AuthorityForSize = ImGuiDataAuthority_DockNode; AuthorityForViewport = ImGuiDataAuthority_Auto; IsVisible = true; - IsFocused = HasCloseButton = HasWindowMenuButton = false; + IsFocused = HasCloseButton = HasWindowMenuButton = HasCentralNodeChild = false; + IsBgDrawnThisFrame = false; WantCloseAll = WantLockSizeOnce = WantMouseMove = WantHiddenTabBarUpdate = WantHiddenTabBarToggle = false; - MarkedForPosSizeWrite = false; } ImGuiDockNode::~ImGuiDockNode() @@ -13356,7 +13932,8 @@ static void ImGui::DockNodeRemoveWindow(ImGuiDockNode* node, ImGuiWindow* window erased = true; break; } - IM_ASSERT(erased); + if (!erased) + IM_ASSERT(erased); if (node->VisibleWindow == window) node->VisibleWindow = NULL; @@ -13383,6 +13960,7 @@ static void ImGui::DockNodeRemoveWindow(ImGuiDockNode* node, ImGuiWindow* window if (node->HostWindow->ViewportOwned && node->IsRootNode()) { // Transfer viewport back to the remaining loose window + IMGUI_DEBUG_LOG_VIEWPORT("Node %08X transfer Viewport %08X=>%08X for Window '%s'\n", node->ID, node->HostWindow->Viewport->ID, remaining_window->ID, remaining_window->Name); IM_ASSERT(node->HostWindow->Viewport->Window == node->HostWindow); node->HostWindow->Viewport->Window = remaining_window; node->HostWindow->Viewport->ID = remaining_window->ID; @@ -13473,36 +14051,36 @@ static void ImGui::DockNodeHideHostWindow(ImGuiDockNode* node) } // Search function called once by root node in DockNodeUpdate() -struct ImGuiDockNodeFindInfoResults +struct ImGuiDockNodeTreeInfo { ImGuiDockNode* CentralNode; ImGuiDockNode* FirstNodeWithWindows; int CountNodesWithWindows; //ImGuiWindowClass WindowClassForMerges; - ImGuiDockNodeFindInfoResults() { CentralNode = FirstNodeWithWindows = NULL; CountNodesWithWindows = 0; } + ImGuiDockNodeTreeInfo() { memset(this, 0, sizeof(*this)); } }; -static void DockNodeFindInfo(ImGuiDockNode* node, ImGuiDockNodeFindInfoResults* results) +static void DockNodeFindInfo(ImGuiDockNode* node, ImGuiDockNodeTreeInfo* info) { if (node->Windows.Size > 0) { - if (results->FirstNodeWithWindows == NULL) - results->FirstNodeWithWindows = node; - results->CountNodesWithWindows++; + if (info->FirstNodeWithWindows == NULL) + info->FirstNodeWithWindows = node; + info->CountNodesWithWindows++; } if (node->IsCentralNode()) { - IM_ASSERT(results->CentralNode == NULL); // Should be only one + IM_ASSERT(info->CentralNode == NULL); // Should be only one IM_ASSERT(node->IsLeafNode() && "If you get this assert: please submit .ini file + repro of actions leading to this."); - results->CentralNode = node; + info->CentralNode = node; } - if (results->CountNodesWithWindows > 1 && results->CentralNode != NULL) + if (info->CountNodesWithWindows > 1 && info->CentralNode != NULL) return; if (node->ChildNodes[0]) - DockNodeFindInfo(node->ChildNodes[0], results); + DockNodeFindInfo(node->ChildNodes[0], info); if (node->ChildNodes[1]) - DockNodeFindInfo(node->ChildNodes[1], results); + DockNodeFindInfo(node->ChildNodes[1], info); } static ImGuiWindow* ImGui::DockNodeFindWindowByID(ImGuiDockNode* node, ImGuiID id) @@ -13516,7 +14094,7 @@ static ImGuiWindow* ImGui::DockNodeFindWindowByID(ImGuiDockNode* node, ImGuiID i // - Remove inactive windows/nodes. // - Update visibility flag. -static void ImGui::DockNodeUpdateVisibleFlagAndInactiveChilds(ImGuiDockNode* node) +static void ImGui::DockNodeUpdateFlagsAndCollapse(ImGuiDockNode* node) { ImGuiContext& g = *GImGui; IM_ASSERT(node->ParentNode == NULL || node->ParentNode->ChildNodes[0] == node || node->ParentNode->ChildNodes[1] == node); @@ -13529,12 +14107,13 @@ static void ImGui::DockNodeUpdateVisibleFlagAndInactiveChilds(ImGuiDockNode* nod // There is the possibility that one of our child becoming empty will delete itself and moving its sibling contents into 'node'. // If 'node->ChildNode[0]' delete itself, then 'node->ChildNode[1]->Windows' will be moved into 'node' // If 'node->ChildNode[1]' delete itself, then 'node->ChildNode[0]->Windows' will be moved into 'node' and the "remove inactive windows" loop will have run twice on those windows (harmless) + node->HasCentralNodeChild = false; if (node->ChildNodes[0]) - DockNodeUpdateVisibleFlagAndInactiveChilds(node->ChildNodes[0]); + DockNodeUpdateFlagsAndCollapse(node->ChildNodes[0]); if (node->ChildNodes[1]) - DockNodeUpdateVisibleFlagAndInactiveChilds(node->ChildNodes[1]); + DockNodeUpdateFlagsAndCollapse(node->ChildNodes[1]); - // Remove inactive windows + // Remove inactive windows, collapse nodes // Merge node flags overrides stored in windows node->LocalFlagsInWindows = ImGuiDockNodeFlags_None; for (int window_n = 0; window_n < node->Windows.Size; window_n++) @@ -13559,13 +14138,12 @@ static void ImGui::DockNodeUpdateVisibleFlagAndInactiveChilds(ImGuiDockNode* nod } DockNodeRemoveWindow(node, window, node->ID); window_n--; + continue; } - else - { - // FIXME-DOCKING: Missing policies for conflict resolution, hence the "Experimental" tag on this. - //node->LocalFlagsInWindow &= ~window->WindowClass.DockNodeFlagsOverrideClear; - node->LocalFlagsInWindows |= window->WindowClass.DockNodeFlagsOverrideSet; - } + + // FIXME-DOCKING: Missing policies for conflict resolution, hence the "Experimental" tag on this. + //node->LocalFlagsInWindow &= ~window->WindowClass.DockNodeFlagsOverrideClear; + node->LocalFlagsInWindows |= window->WindowClass.DockNodeFlagsOverrideSet; } node->UpdateMergedFlags(); @@ -13589,6 +14167,25 @@ static void ImGui::DockNodeUpdateVisibleFlagAndInactiveChilds(ImGuiDockNode* nod DockNodeUpdateVisibleFlag(node); } +// This is rarely called as DockNodeUpdateForRootNode() generally does it most frames. +static void ImGui::DockNodeUpdateHasCentralNodeChild(ImGuiDockNode* node) +{ + node->HasCentralNodeChild = false; + if (node->ChildNodes[0]) + DockNodeUpdateHasCentralNodeChild(node->ChildNodes[0]); + if (node->ChildNodes[1]) + DockNodeUpdateHasCentralNodeChild(node->ChildNodes[1]); + if (node->IsRootNode()) + { + ImGuiDockNode* mark_node = node->CentralNode; + while (mark_node) + { + mark_node->HasCentralNodeChild = true; + mark_node = mark_node->ParentNode; + } + } +} + static void ImGui::DockNodeUpdateVisibleFlag(ImGuiDockNode* node) { // Update visibility flag @@ -13612,22 +14209,23 @@ static void ImGui::DockNodeStartMouseMovingWindow(ImGuiDockNode* node, ImGuiWind // Update CentralNode, OnlyNodeWithWindows, LastFocusedNodeID. Copy window class. static void ImGui::DockNodeUpdateForRootNode(ImGuiDockNode* node) { - DockNodeUpdateVisibleFlagAndInactiveChilds(node); + DockNodeUpdateFlagsAndCollapse(node); - // FIXME-DOCK: Merge this scan into the one above. // - Setup central node pointers // - Find if there's only a single visible window in the hierarchy (in which case we need to display a regular title bar -> FIXME-DOCK: that last part is not done yet!) - ImGuiDockNodeFindInfoResults results; - DockNodeFindInfo(node, &results); - node->CentralNode = results.CentralNode; - node->OnlyNodeWithWindows = (results.CountNodesWithWindows == 1) ? results.FirstNodeWithWindows : NULL; - if (node->LastFocusedNodeId == 0 && results.FirstNodeWithWindows != NULL) - node->LastFocusedNodeId = results.FirstNodeWithWindows->ID; + // Cannot merge this with DockNodeUpdateFlagsAndCollapse() because FirstNodeWithWindows is found after window removal and child collapsing + ImGuiDockNodeTreeInfo info; + DockNodeFindInfo(node, &info); + node->CentralNode = info.CentralNode; + node->OnlyNodeWithWindows = (info.CountNodesWithWindows == 1) ? info.FirstNodeWithWindows : NULL; + node->CountNodeWithWindows = info.CountNodesWithWindows; + if (node->LastFocusedNodeId == 0 && info.FirstNodeWithWindows != NULL) + node->LastFocusedNodeId = info.FirstNodeWithWindows->ID; // Copy the window class from of our first window so it can be used for proper dock filtering. // When node has mixed windows, prioritize the class with the most constraint (DockingAllowUnclassed = false) as the reference to copy. // FIXME-DOCK: We don't recurse properly, this code could be reworked to work from DockNodeUpdateScanRec. - if (ImGuiDockNode* first_node_with_windows = results.FirstNodeWithWindows) + if (ImGuiDockNode* first_node_with_windows = info.FirstNodeWithWindows) { node->WindowClass = first_node_with_windows->Windows[0]->WindowClass; for (int n = 1; n < first_node_with_windows->Windows.Size; n++) @@ -13637,6 +14235,13 @@ static void ImGui::DockNodeUpdateForRootNode(ImGuiDockNode* node) break; } } + + ImGuiDockNode* mark_node = node->CentralNode; + while (mark_node) + { + mark_node->HasCentralNodeChild = true; + mark_node = mark_node->ParentNode; + } } static void DockNodeSetupHostWindow(ImGuiDockNode* node, ImGuiWindow* host_window) @@ -13658,7 +14263,7 @@ static void ImGui::DockNodeUpdate(ImGuiDockNode* node) ImGuiContext& g = *GImGui; IM_ASSERT(node->LastFrameActive != g.FrameCount); node->LastFrameAlive = g.FrameCount; - node->MarkedForPosSizeWrite = false; + node->IsBgDrawnThisFrame = false; node->CentralNode = node->OnlyNodeWithWindows = NULL; if (node->IsRootNode()) @@ -13670,9 +14275,14 @@ static void ImGui::DockNodeUpdate(ImGuiDockNode* node) // Early out for hidden root dock nodes (when all DockId references are in inactive windows, or there is only 1 floating window holding on the DockId) bool want_to_hide_host_window = false; - if (node->Windows.Size <= 1 && node->IsFloatingNode() && node->IsLeafNode()) - if (!g.IO.ConfigDockingAlwaysTabBar && (node->Windows.Size == 0 || !node->Windows[0]->WindowClass.DockingAlwaysTabBar)) + if (node->IsFloatingNode()) + { + if (node->Windows.Size <= 1 && node->IsLeafNode()) + if (!g.IO.ConfigDockingAlwaysTabBar && (node->Windows.Size == 0 || !node->Windows[0]->WindowClass.DockingAlwaysTabBar)) + want_to_hide_host_window = true; + if (node->CountNodeWithWindows == 0) want_to_hide_host_window = true; + } if (want_to_hide_host_window) { if (node->Windows.Size == 1) @@ -13796,6 +14406,7 @@ static void ImGui::DockNodeUpdate(ImGuiDockNode* node) window_flags |= ImGuiWindowFlags_NoSavedSettings | ImGuiWindowFlags_NoNavFocus | ImGuiWindowFlags_NoCollapse; window_flags |= ImGuiWindowFlags_NoTitleBar; + SetNextWindowBgAlpha(0.0f); // Don't set ImGuiWindowFlags_NoBackground because it disables borders PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0, 0)); Begin(window_label, NULL, window_flags); PopStyleVar(); @@ -13834,15 +14445,6 @@ static void ImGui::DockNodeUpdate(ImGuiDockNode* node) if (g.NavWindow && g.NavWindow->RootWindow->DockNode && g.NavWindow->RootWindow->ParentWindow == host_window) node->LastFocusedNodeId = g.NavWindow->RootWindow->DockNode->ID; - // We need to draw a background at the root level if requested by ImGuiDockNodeFlags_PassthruCentralNode, but we will only know the correct pos/size - // _after_ processing the resizing splitters. So we are using the DrawList channel splitting facility to submit drawing primitives out of order! - const bool render_dockspace_bg = node->IsRootNode() && host_window && (node_flags & ImGuiDockNodeFlags_PassthruCentralNode) != 0; - if (render_dockspace_bg) - { - host_window->DrawList->ChannelsSplit(2); - host_window->DrawList->ChannelsSetCurrent(1); - } - // Register a hit-test hole in the window unless we are currently dragging a window that is compatible with our dockspace ImGuiDockNode* central_node = node->CentralNode; const bool central_node_hole = node->IsRootNode() && host_window && (node_flags & ImGuiDockNodeFlags_PassthruCentralNode) != 0 && central_node != NULL && central_node->IsEmpty(); @@ -13875,15 +14477,25 @@ static void ImGui::DockNodeUpdate(ImGuiDockNode* node) // Update position/size, process and draw resizing splitters if (node->IsRootNode() && host_window) { + host_window->DrawList->ChannelsSetCurrent(1); DockNodeTreeUpdatePosSize(node, host_window->Pos, host_window->Size); DockNodeTreeUpdateSplitter(node); } // Draw empty node background (currently can only be the Central Node) - if (host_window && node->IsEmpty() && node->IsVisible && !(node_flags & ImGuiDockNodeFlags_PassthruCentralNode)) - host_window->DrawList->AddRectFilled(node->Pos, node->Pos + node->Size, GetColorU32(ImGuiCol_DockingEmptyBg)); + if (host_window && node->IsEmpty() && node->IsVisible) + { + host_window->DrawList->ChannelsSetCurrent(0); + node->LastBgColor = (node_flags & ImGuiDockNodeFlags_PassthruCentralNode) ? 0 : GetColorU32(ImGuiCol_DockingEmptyBg); + if (node->LastBgColor != 0) + host_window->DrawList->AddRectFilled(node->Pos, node->Pos + node->Size, node->LastBgColor); + node->IsBgDrawnThisFrame = true; + } // Draw whole dockspace background if ImGuiDockNodeFlags_PassthruCentralNode if set. + // We need to draw a background at the root level if requested by ImGuiDockNodeFlags_PassthruCentralNode, but we will only know the correct pos/size + // _after_ processing the resizing splitters. So we are using the DrawList channel splitting facility to submit drawing primitives out of order! + const bool render_dockspace_bg = node->IsRootNode() && host_window && (node_flags & ImGuiDockNodeFlags_PassthruCentralNode) != 0; if (render_dockspace_bg && node->IsVisible) { host_window->DrawList->ChannelsSetCurrent(0); @@ -13891,10 +14503,11 @@ static void ImGui::DockNodeUpdate(ImGuiDockNode* node) RenderRectFilledWithHole(host_window->DrawList, node->Rect(), central_node->Rect(), GetColorU32(ImGuiCol_WindowBg), 0.0f); else host_window->DrawList->AddRectFilled(node->Pos, node->Pos + node->Size, GetColorU32(ImGuiCol_WindowBg), 0.0f); - host_window->DrawList->ChannelsMerge(); } // Draw and populate Tab Bar + if (host_window) + host_window->DrawList->ChannelsSetCurrent(1); if (host_window && node->Windows.Size > 0) { DockNodeUpdateTabBar(node, host_window); @@ -13929,7 +14542,13 @@ static void ImGui::DockNodeUpdate(ImGuiDockNode* node) // Render outer borders last (after the tab bar) if (node->IsRootNode()) + { + host_window->DrawList->ChannelsSetCurrent(1); RenderWindowOuterBorders(host_window); + } + + // Further rendering (= hosted windows background) will be drawn on layer 0 + host_window->DrawList->ChannelsSetCurrent(0); } // End host window @@ -14096,7 +14715,8 @@ static void ImGui::DockNodeUpdateTabBar(ImGuiDockNode* node, ImGuiWindow* host_w if (is_focused) node->LastFrameFocused = g.FrameCount; ImU32 title_bar_col = GetColorU32(host_window->Collapsed ? ImGuiCol_TitleBgCollapsed : is_focused ? ImGuiCol_TitleBgActive : ImGuiCol_TitleBg); - host_window->DrawList->AddRectFilled(title_bar_rect.Min, title_bar_rect.Max, title_bar_col, host_window->WindowRounding, ImDrawFlags_RoundCornersTop); + ImDrawFlags rounding_flags = CalcRoundingFlagsForRectInRect(title_bar_rect, host_window->Rect(), DOCKING_SPLITTER_SIZE); + host_window->DrawList->AddRectFilled(title_bar_rect.Min, title_bar_rect.Max, title_bar_col, host_window->WindowRounding, rounding_flags); // Docking/Collapse button if (has_window_menu_button) @@ -14304,12 +14924,23 @@ static bool DockNodeIsDropAllowedOne(ImGuiWindow* payload, ImGuiWindow* host_win return false; } + // Prevent docking any window created above a popup + // Technically we should support it (e.g. in the case of a long-lived modal window that had fancy docking features), + // by e.g. adding a 'if (!ImGui::IsWindowWithinBeginStackOf(host_window, popup_window))' test. + // But it would requires more work on our end because the dock host windows is technically created in NewFrame() + // and our ->ParentXXX and ->RootXXX pointers inside windows are currently mislading or lacking. + ImGuiContext& g = *GImGui; + for (int i = g.OpenPopupStack.Size - 1; i >= 0; i--) + if (ImGuiWindow* popup_window = g.OpenPopupStack[i].Window) + if (ImGui::IsWindowWithinBeginStackOf(payload, popup_window)) // Payload is created from within a popup begin stack. + return false; + return true; } static bool ImGui::DockNodeIsDropAllowed(ImGuiWindow* host_window, ImGuiWindow* root_payload) { - if (root_payload->DockNodeAsHost && root_payload->DockNodeAsHost->IsSplitNode()) + if (root_payload->DockNodeAsHost && root_payload->DockNodeAsHost->IsSplitNode()) // FIXME-DOCK: Missing filtering return true; const int payload_count = root_payload->DockNodeAsHost ? root_payload->DockNodeAsHost->Windows.Size : 1; @@ -14510,9 +15141,9 @@ static void ImGui::DockNodePreviewDockSetup(ImGuiWindow* host_window, ImGuiDockN } } - // We only allow and preview docking when hovering over a drop rect or over the title bar + // When docking without holding Shift, we only allow and preview docking when hovering over a drop rect or over the title bar data->IsDropAllowed = (data->SplitDir != ImGuiDir_None) || (data->IsCenterAvailable); - if (!is_explicit_target && !data->IsSplitDirExplicit) + if (!is_explicit_target && !data->IsSplitDirExplicit && !g.IO.ConfigDockingWithShift) data->IsDropAllowed = false; // Calculate split area @@ -14564,7 +15195,7 @@ static void ImGui::DockNodePreviewDockRender(ImGuiWindow* host_window, ImGuiDock overlay_rect.Min.y += GetFrameHeight(); if (data->SplitDir != ImGuiDir_None || data->IsCenterAvailable) for (int overlay_n = 0; overlay_n < overlay_draw_lists_count; overlay_n++) - overlay_draw_lists[overlay_n]->AddRectFilled(overlay_rect.Min, overlay_rect.Max, overlay_col_main, host_window->WindowRounding); + overlay_draw_lists[overlay_n]->AddRectFilled(overlay_rect.Min, overlay_rect.Max, overlay_col_main, host_window->WindowRounding, CalcRoundingFlagsForRectInRect(overlay_rect, host_window->Rect(), DOCKING_SPLITTER_SIZE)); } // Display tab shape/label preview unless we are splitting node (it generally makes the situation harder to read) @@ -14690,6 +15321,7 @@ void ImGui::DockNodeTreeSplit(ImGuiContext* ctx, ImGuiDockNode* parent_node, ImG DockNodeMoveWindows(parent_node->ChildNodes[split_inheritor_child_idx], parent_node); DockSettingsRenameNodeReferences(parent_node->ID, parent_node->ChildNodes[split_inheritor_child_idx]->ID); + DockNodeUpdateHasCentralNodeChild(DockNodeGetRootNode(parent_node)); DockNodeTreeUpdatePosSize(parent_node, parent_node->Pos, parent_node->Size); // Flags transfer (e.g. this is where we transfer the ImGuiDockNodeFlags_CentralNode property) @@ -14755,11 +15387,12 @@ void ImGui::DockNodeTreeMerge(ImGuiContext* ctx, ImGuiDockNode* parent_node, ImG } // Update Pos/Size for a node hierarchy (don't affect child Windows yet) -void ImGui::DockNodeTreeUpdatePosSize(ImGuiDockNode* node, ImVec2 pos, ImVec2 size, bool only_write_to_marked_nodes) +// (Depth-first, Pre-Order) +void ImGui::DockNodeTreeUpdatePosSize(ImGuiDockNode* node, ImVec2 pos, ImVec2 size, ImGuiDockNode* only_write_to_single_node) { // During the regular dock node update we write to all nodes. - // 'only_write_to_marked_nodes' is only set when turning a node visible mid-frame and we need its size right-away. - const bool write_to_node = (only_write_to_marked_nodes == false) || (node->MarkedForPosSizeWrite); + // 'only_write_to_single_node' is only set when turning a node visible mid-frame and we need its size right-away. + const bool write_to_node = only_write_to_single_node == NULL || only_write_to_single_node == node; if (write_to_node) { node->Pos = pos; @@ -14773,17 +15406,27 @@ void ImGui::DockNodeTreeUpdatePosSize(ImGuiDockNode* node, ImVec2 pos, ImVec2 si ImGuiDockNode* child_1 = node->ChildNodes[1]; ImVec2 child_0_pos = pos, child_1_pos = pos; ImVec2 child_0_size = size, child_1_size = size; - if (child_0->IsVisible && child_1->IsVisible) + + const bool child_0_is_toward_single_node = (only_write_to_single_node != NULL && DockNodeIsInHierarchyOf(only_write_to_single_node, child_0)); + const bool child_1_is_toward_single_node = (only_write_to_single_node != NULL && DockNodeIsInHierarchyOf(only_write_to_single_node, child_1)); + const bool child_0_is_or_will_be_visible = child_0->IsVisible || child_0_is_toward_single_node; + const bool child_1_is_or_will_be_visible = child_1->IsVisible || child_1_is_toward_single_node; + + if (child_0_is_or_will_be_visible && child_1_is_or_will_be_visible) { + ImGuiContext& g = *GImGui; const float spacing = DOCKING_SPLITTER_SIZE; const ImGuiAxis axis = (ImGuiAxis)node->SplitAxis; const float size_avail = ImMax(size[axis] - spacing, 0.0f); // Size allocation policy // 1) The first 0..WindowMinSize[axis]*2 are allocated evenly to both windows. - ImGuiContext& g = *GImGui; const float size_min_each = ImFloor(ImMin(size_avail, g.Style.WindowMinSize[axis] * 2.0f) * 0.5f); + // FIXME: Blocks 2) and 3) are essentially doing nearly the same thing. + // Difference are: write-back to SizeRef; application of a minimum size; rounding before ImFloor() + // Clarify and rework differences between Size & SizeRef and purpose of WantLockSizeOnce + // 2) Process locked absolute size (during a splitter resize we preserve the child of nodes not touching the splitter edge) if (child_0->WantLockSizeOnce && !child_1->WantLockSizeOnce) { @@ -14801,19 +15444,19 @@ void ImGui::DockNodeTreeUpdatePosSize(ImGuiDockNode* node, ImVec2 pos, ImVec2 si { // FIXME-DOCK: We cannot honor the requested size, so apply ratio. // Currently this path will only be taken if code programmatically sets WantLockSizeOnce - float ratio_0 = child_0_size[axis] / (child_0_size[axis] + child_1_size[axis]); - child_0_size[axis] = child_0->SizeRef[axis] = ImFloor(size_avail * ratio_0); + float split_ratio = child_0_size[axis] / (child_0_size[axis] + child_1_size[axis]); + child_0_size[axis] = child_0->SizeRef[axis] = ImFloor(size_avail * split_ratio); child_1_size[axis] = child_1->SizeRef[axis] = (size_avail - child_0_size[axis]); IM_ASSERT(child_0->SizeRef[axis] > 0.0f && child_1->SizeRef[axis] > 0.0f); } // 3) If one window is the central node (~ use remaining space, should be made explicit!), use explicit size from the other, and remainder for the central node - else if (child_1->IsCentralNode() && child_0->SizeRef[axis] != 0.0f) + else if (child_0->SizeRef[axis] != 0.0f && child_1->HasCentralNodeChild) { child_0_size[axis] = ImMin(size_avail - size_min_each, child_0->SizeRef[axis]); child_1_size[axis] = (size_avail - child_0_size[axis]); } - else if (child_0->IsCentralNode() && child_1->SizeRef[axis] != 0.0f) + else if (child_1->SizeRef[axis] != 0.0f && child_0->HasCentralNodeChild) { child_1_size[axis] = ImMin(size_avail - size_min_each, child_1->SizeRef[axis]); child_0_size[axis] = (size_avail - child_1_size[axis]); @@ -14822,17 +15465,21 @@ void ImGui::DockNodeTreeUpdatePosSize(ImGuiDockNode* node, ImVec2 pos, ImVec2 si { // 4) Otherwise distribute according to the relative ratio of each SizeRef value float split_ratio = child_0->SizeRef[axis] / (child_0->SizeRef[axis] + child_1->SizeRef[axis]); - child_0_size[axis] = ImMax(size_min_each, ImFloor(size_avail * split_ratio + 0.5F)); + child_0_size[axis] = ImMax(size_min_each, ImFloor(size_avail * split_ratio + 0.5f)); child_1_size[axis] = (size_avail - child_0_size[axis]); } child_1_pos[axis] += spacing + child_0_size[axis]; } - child_0->WantLockSizeOnce = child_1->WantLockSizeOnce = false; - if (child_0->IsVisible) + if (only_write_to_single_node == NULL) + child_0->WantLockSizeOnce = child_1->WantLockSizeOnce = false; + + const bool child_0_recurse = only_write_to_single_node ? child_0_is_toward_single_node : child_0->IsVisible; + const bool child_1_recurse = only_write_to_single_node ? child_1_is_toward_single_node : child_1->IsVisible; + if (child_0_recurse) DockNodeTreeUpdatePosSize(child_0, child_0_pos, child_0_size); - if (child_1->IsVisible) + if (child_1_recurse) DockNodeTreeUpdatePosSize(child_1, child_1_pos, child_1_size); } @@ -14851,6 +15498,7 @@ static void DockNodeTreeUpdateSplitterFindTouchingNode(ImGuiDockNode* node, ImGu DockNodeTreeUpdateSplitterFindTouchingNode(node->ChildNodes[1], axis, side, touching_nodes); } +// (Depth-First, Pre-Order) void ImGui::DockNodeTreeUpdateSplitter(ImGuiDockNode* node) { if (node->IsLeafNode()) @@ -14885,7 +15533,7 @@ void ImGui::DockNodeTreeUpdateSplitter(ImGuiDockNode* node) //bb.Max[axis] -= 1; PushID(node->ID); - // Gather list of nodes that are touching the splitter line. Find resizing limits based on those nodes. + // Find resizing limits by gathering list of nodes that are touching the splitter line. ImVector touching_nodes[2]; float min_size = g.Style.WindowMinSize[axis]; float resize_limits[2]; @@ -14893,9 +15541,8 @@ void ImGui::DockNodeTreeUpdateSplitter(ImGuiDockNode* node) resize_limits[1] = node->ChildNodes[1]->Pos[axis] + node->ChildNodes[1]->Size[axis] - min_size; ImGuiID splitter_id = GetID("##Splitter"); - if (g.ActiveId == splitter_id) + if (g.ActiveId == splitter_id) // Only process when splitter is active { - // Only process when splitter is active DockNodeTreeUpdateSplitterFindTouchingNode(child_0, axis, 1, &touching_nodes[0]); DockNodeTreeUpdateSplitterFindTouchingNode(child_1, axis, 0, &touching_nodes[1]); for (int touching_node_n = 0; touching_node_n < touching_nodes[0].Size; touching_node_n++) @@ -14903,14 +15550,18 @@ void ImGui::DockNodeTreeUpdateSplitter(ImGuiDockNode* node) for (int touching_node_n = 0; touching_node_n < touching_nodes[1].Size; touching_node_n++) resize_limits[1] = ImMin(resize_limits[1], touching_nodes[1][touching_node_n]->Rect().Max[axis] - min_size); + // [DEBUG] Render touching nodes & limits /* - // [DEBUG] Render limits ImDrawList* draw_list = node->HostWindow ? GetForegroundDrawList(node->HostWindow) : GetForegroundDrawList(GetMainViewport()); for (int n = 0; n < 2; n++) + { + for (int touching_node_n = 0; touching_node_n < touching_nodes[n].Size; touching_node_n++) + draw_list->AddRect(touching_nodes[n][touching_node_n]->Pos, touching_nodes[n][touching_node_n]->Pos + touching_nodes[n][touching_node_n]->Size, IM_COL32(0, 255, 0, 255)); if (axis == ImGuiAxis_X) draw_list->AddLine(ImVec2(resize_limits[n], node->ChildNodes[n]->Pos.y), ImVec2(resize_limits[n], node->ChildNodes[n]->Pos.y + node->ChildNodes[n]->Size.y), IM_COL32(255, 0, 255, 255), 3.0f); else draw_list->AddLine(ImVec2(node->ChildNodes[n]->Pos.x, resize_limits[n]), ImVec2(node->ChildNodes[n]->Pos.x + node->ChildNodes[n]->Size.x, resize_limits[n]), IM_COL32(255, 0, 255, 255), 3.0f); + } */ } @@ -14919,7 +15570,8 @@ void ImGui::DockNodeTreeUpdateSplitter(ImGuiDockNode* node) float cur_size_1 = child_1->Size[axis]; float min_size_0 = resize_limits[0] - child_0->Pos[axis]; float min_size_1 = child_1->Pos[axis] + child_1->Size[axis] - resize_limits[1]; - if (SplitterBehavior(bb, GetID("##Splitter"), axis, &cur_size_0, &cur_size_1, min_size_0, min_size_1, WINDOWS_HOVER_PADDING, WINDOWS_RESIZE_FROM_EDGES_FEEDBACK_TIMER)) + ImU32 bg_col = GetColorU32(ImGuiCol_WindowBg); + if (SplitterBehavior(bb, GetID("##Splitter"), axis, &cur_size_0, &cur_size_1, min_size_0, min_size_1, WINDOWS_HOVER_PADDING, WINDOWS_RESIZE_FROM_EDGES_FEEDBACK_TIMER, bg_col)) { if (touching_nodes[0].Size > 0 && touching_nodes[1].Size > 0) { @@ -15586,6 +16238,7 @@ void ImGui::DockBuilderCopyDockSpace(ImGuiID src_dockspace_id, ImGuiID dst_docks } } +// FIXME-DOCK: This is awkward because in series of split user is likely to loose access to its root node. void ImGui::DockBuilderFinish(ImGuiID root_id) { ImGuiContext* ctx = GImGui; @@ -15641,19 +16294,17 @@ static ImGuiDockNode* ImGui::DockContextBindNodeToWindow(ImGuiContext* ctx, ImGu if (!node->IsVisible) { ImGuiDockNode* ancestor_node = node; - while (!ancestor_node->IsVisible) - { - ancestor_node->IsVisible = true; - ancestor_node->MarkedForPosSizeWrite = true; - if (ancestor_node->ParentNode) - ancestor_node = ancestor_node->ParentNode; - } + while (!ancestor_node->IsVisible && ancestor_node->ParentNode) + ancestor_node = ancestor_node->ParentNode; IM_ASSERT(ancestor_node->Size.x > 0.0f && ancestor_node->Size.y > 0.0f); - DockNodeTreeUpdatePosSize(ancestor_node, ancestor_node->Pos, ancestor_node->Size, true); + DockNodeUpdateHasCentralNodeChild(DockNodeGetRootNode(ancestor_node)); + DockNodeTreeUpdatePosSize(ancestor_node, ancestor_node->Pos, ancestor_node->Size, node); } // Add window to node + bool node_was_visible = node->IsVisible; DockNodeAddWindow(node, window, true); + node->IsVisible = node_was_visible; // Don't mark visible right away (so DockContextEndFrame() doesn't render it, maybe other side effects? will see) IM_ASSERT(node == window->DockNode); return node; } @@ -15744,7 +16395,7 @@ void ImGui::BeginDocked(ImGuiWindow* window, bool* p_open) node->State = ImGuiDockNodeState_HostWindowVisible; // Undock if we are submitted earlier than the host window - if (window->BeginOrderWithinContext < node->HostWindow->BeginOrderWithinContext) + if (!(node->MergedFlags & ImGuiDockNodeFlags_KeepAliveOnly) && window->BeginOrderWithinContext < node->HostWindow->BeginOrderWithinContext) { DockContextProcessUndockWindow(ctx, window); return; @@ -15795,7 +16446,7 @@ void ImGui::BeginDockableDragDropSource(ImGuiWindow* window) g.LastItemData.ID = window->MoveId; window = window->RootWindowDockTree; IM_ASSERT((window->Flags & ImGuiWindowFlags_NoDocking) == 0); - bool is_drag_docking = ImRect(0, 0, window->SizeFull.x, GetFrameHeight()).Contains(g.ActiveIdClickOffset); // FIXME-DOCKING: Need to make this stateful and explicit + bool is_drag_docking = (g.IO.ConfigDockingWithShift) || ImRect(0, 0, window->SizeFull.x, GetFrameHeight()).Contains(g.ActiveIdClickOffset); // FIXME-DOCKING: Need to make this stateful and explicit if (is_drag_docking && BeginDragDropSource(ImGuiDragDropFlags_SourceNoPreviewTooltip | ImGuiDragDropFlags_SourceNoHoldToOpenOthers | ImGuiDragDropFlags_SourceAutoExpirePayload)) { SetDragDropPayload(IMGUI_PAYLOAD_TYPE_WINDOW, &window, sizeof(window)); @@ -15856,7 +16507,7 @@ void ImGui::BeginDockableDragDropTarget(ImGuiWindow* window) } const ImRect explicit_target_rect = (node && node->TabBar && !node->IsHiddenTabBar() && !node->IsNoTabBar()) ? node->TabBar->BarRect : ImRect(window->Pos, window->Pos + ImVec2(window->Size.x, GetFrameHeight())); - const bool is_explicit_target = IsMouseHoveringRect(explicit_target_rect.Min, explicit_target_rect.Max); + const bool is_explicit_target = g.IO.ConfigDockingWithShift || IsMouseHoveringRect(explicit_target_rect.Min, explicit_target_rect.Max); // Preview docking request and find out split direction/ratio //const bool do_preview = true; // Ignore testing for payload->IsPreview() which removes one frame of delay, but breaks overlapping drop targets within the same window. @@ -16260,6 +16911,7 @@ static void SetClipboardTextFn_DefaultImpl(void*, const char* text) // - DebugNodeWindow() [Internal] // - DebugNodeWindowSettings() [Internal] // - DebugNodeWindowsList() [Internal] +// - DebugNodeWindowsListByBeginStackParent() [Internal] //----------------------------------------------------------------------------- #ifndef IMGUI_DISABLE_METRICS_WINDOW @@ -16344,22 +16996,23 @@ namespace ImGui { void ShowFontAtlas(ImFontAtlas* atlas); } void ImGui::ShowMetricsWindow(bool* p_open) { - if (!Begin("Dear ImGui Metrics/Debugger", p_open)) + ImGuiContext& g = *GImGui; + ImGuiIO& io = g.IO; + ImGuiMetricsConfig* cfg = &g.DebugMetricsConfig; + if (cfg->ShowStackTool) + ShowStackToolWindow(&cfg->ShowStackTool); + + if (!Begin("Dear ImGui Metrics/Debugger", p_open) || GetCurrentWindow()->BeginCount > 1) { End(); return; } - ImGuiContext& g = *GImGui; - ImGuiIO& io = g.IO; - ImGuiMetricsConfig* cfg = &g.DebugMetricsConfig; - // Basic info Text("Dear ImGui %s", GetVersion()); Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate); Text("%d vertices, %d indices (%d triangles)", io.MetricsRenderVertices, io.MetricsRenderIndices, io.MetricsRenderIndices / 3); - Text("%d active windows (%d visible)", io.MetricsActiveWindows, io.MetricsRenderWindows); - Text("%d active allocations", io.MetricsActiveAllocations); + Text("%d visible windows, %d active allocations", io.MetricsRenderWindows, io.MetricsActiveAllocations); //SameLine(); if (SmallButton("GC")) { g.GcCompactAll = true; } Separator(); @@ -16413,11 +17066,10 @@ void ImGui::ShowMetricsWindow(bool* p_open) // Tools if (TreeNode("Tools")) { - // The Item Picker tool is super useful to visually select an item and break into the call-stack of where it was submitted. - if (Button("Item Picker..")) - DebugStartItemPicker(); + // Stack Tool is your best friend! + Checkbox("Show stack tool", &cfg->ShowStackTool); SameLine(); - MetricsHelpMarker("Will call the IM_DEBUG_BREAK() macro to break in debugger.\nWarning: If you don't have a debugger attached, this will probably crash."); + MetricsHelpMarker("You can also call ImGui::ShowStackToolWindow() from your code."); Checkbox("Show windows begin order", &cfg->ShowWindowsBeginOrder); Checkbox("Show windows rectangles", &cfg->ShowWindowsRects); @@ -16435,8 +17087,6 @@ void ImGui::ShowMetricsWindow(bool* p_open) } Unindent(); } - Checkbox("Show ImDrawCmd mesh when hovering", &cfg->ShowDrawCmdMesh); - Checkbox("Show ImDrawCmd bounding boxes when hovering", &cfg->ShowDrawCmdBoundingBoxes); Checkbox("Show tables rectangles", &cfg->ShowTablesRects); SameLine(); @@ -16483,12 +17133,37 @@ void ImGui::ShowMetricsWindow(bool* p_open) } } + // The Item Picker tool is super useful to visually select an item and break into the call-stack of where it was submitted. + if (Button("Item Picker..")) + DebugStartItemPicker(); + SameLine(); + MetricsHelpMarker("Will call the IM_DEBUG_BREAK() macro to break in debugger.\nWarning: If you don't have a debugger attached, this will probably crash."); + TreePop(); } // Windows - DebugNodeWindowsList(&g.Windows, "Windows"); - //DebugNodeWindowsList(&g.WindowsFocusOrder, "WindowsFocusOrder"); + if (TreeNode("Windows", "Windows (%d)", g.Windows.Size)) + { + //SetNextItemOpen(true, ImGuiCond_Once); + DebugNodeWindowsList(&g.Windows, "By display order"); + DebugNodeWindowsList(&g.WindowsFocusOrder, "By focus order (root windows)"); + if (TreeNode("By submission order (begin stack)")) + { + // Here we display windows in their submitted order/hierarchy, however note that the Begin stack doesn't constitute a Parent<>Child relationship! + ImVector& temp_buffer = g.WindowsTempSortBuffer; + temp_buffer.resize(0); + for (int i = 0; i < g.Windows.Size; i++) + if (g.Windows[i]->LastFrameActive + 1 >= g.FrameCount) + temp_buffer.push_back(g.Windows[i]); + struct Func { static int IMGUI_CDECL WindowComparerByBeginOrder(const void* lhs, const void* rhs) { return ((int)(*(const ImGuiWindow* const *)lhs)->BeginOrderWithinContext - (*(const ImGuiWindow* const*)rhs)->BeginOrderWithinContext); } }; + ImQsort(temp_buffer.Data, (size_t)temp_buffer.Size, sizeof(ImGuiWindow*), Func::WindowComparerByBeginOrder); + DebugNodeWindowsListByBeginStackParent(temp_buffer.Data, temp_buffer.Size, NULL); + TreePop(); + } + + TreePop(); + } // DrawLists int drawlist_count = 0; @@ -16496,6 +17171,8 @@ void ImGui::ShowMetricsWindow(bool* p_open) drawlist_count += g.Viewports[viewport_i]->DrawDataBuilder.GetDrawListCount(); if (TreeNode("DrawLists", "DrawLists (%d)", drawlist_count)) { + Checkbox("Show ImDrawCmd mesh when hovering", &cfg->ShowDrawCmdMesh); + Checkbox("Show ImDrawCmd bounding boxes when hovering", &cfg->ShowDrawCmdBoundingBoxes); for (int viewport_i = 0; viewport_i < g.Viewports.Size; viewport_i++) { ImGuiViewportP* viewport = g.Viewports[viewport_i]; @@ -16715,7 +17392,8 @@ void ImGui::ShowMetricsWindow(bool* p_open) Text("NavId: 0x%08X, NavLayer: %d", g.NavId, g.NavLayer); Text("NavInputSource: %s", input_source_names[g.NavInputSource]); Text("NavActive: %d, NavVisible: %d", g.IO.NavActive, g.IO.NavVisible); - Text("NavActivateId: 0x%08X, NavInputId: 0x%08X", g.NavActivateId, g.NavInputId); + Text("NavActivateId/DownId/PressedId/InputId: %08X/%08X/%08X/%08X", g.NavActivateId, g.NavActivateDownId, g.NavActivatePressedId, g.NavActivateInputId); + Text("NavActivateFlags: %04X", g.NavActivateFlags); Text("NavDisableHighlight: %d, NavDisableMouseHover: %d", g.NavDisableHighlight, g.NavDisableMouseHover); Text("NavFocusScopeId = 0x%08X", g.NavFocusScopeId); Text("NavWindowingTarget: '%s'", g.NavWindowingTarget ? g.NavWindowingTarget->Name : "NULL"); @@ -16882,11 +17560,12 @@ void ImGui::DebugNodeDockNode(ImGuiDockNode* node, const char* label) DebugNodeWindow(node->HostWindow, "HostWindow"); DebugNodeWindow(node->VisibleWindow, "VisibleWindow"); BulletText("SelectedTabID: 0x%08X, LastFocusedNodeID: 0x%08X", node->SelectedTabId, node->LastFocusedNodeId); - BulletText("Misc:%s%s%s%s%s", + BulletText("Misc:%s%s%s%s%s%s", node->IsDockSpace() ? " IsDockSpace" : "", node->IsCentralNode() ? " IsCentralNode" : "", is_alive ? " IsAlive" : "", is_active ? " IsActive" : "", - node->WantLockSizeOnce ? " WantLockSizeOnce" : ""); + node->WantLockSizeOnce ? " WantLockSizeOnce" : "", + node->HasCentralNodeChild ? " HasCentralNodeChild" : ""); if (TreeNode("flags", "Flags Merged: 0x%04X, Local: 0x%04X, InWindows: 0x%04X, Shared: 0x%04X", node->MergedFlags, node->LocalFlags, node->LocalFlagsInWindows, node->SharedFlags)) { if (BeginTable("flags", 4)) @@ -16931,7 +17610,7 @@ void ImGui::DebugNodeDrawList(ImGuiWindow* window, ImGuiViewportP* viewport, con } ImDrawList* fg_draw_list = viewport ? GetForegroundDrawList(viewport) : NULL; // Render additional visuals into the top-most draw list - if (window && fg_draw_list && IsItemHovered()) + if (window && IsItemHovered() && fg_draw_list) fg_draw_list->AddRect(window->Pos, window->Pos + window->Size, IM_COL32(255, 255, 0, 255)); if (!node_open) return; @@ -17297,7 +17976,6 @@ void ImGui::DebugNodeWindowsList(ImVector* windows, const char* la { if (!TreeNode(label, "%s (%d)", label, windows->Size)) return; - Text("(In front-to-back order:)"); for (int i = windows->Size - 1; i >= 0; i--) // Iterate front to back { PushID((*windows)[i]); @@ -17307,6 +17985,206 @@ void ImGui::DebugNodeWindowsList(ImVector* windows, const char* la TreePop(); } +// FIXME-OPT: This is technically suboptimal, but it is simpler this way. +void ImGui::DebugNodeWindowsListByBeginStackParent(ImGuiWindow** windows, int windows_size, ImGuiWindow* parent_in_begin_stack) +{ + for (int i = 0; i < windows_size; i++) + { + ImGuiWindow* window = windows[i]; + if (window->ParentWindowInBeginStack != parent_in_begin_stack) + continue; + char buf[20]; + ImFormatString(buf, IM_ARRAYSIZE(buf), "[%04d] Window", window->BeginOrderWithinContext); + //BulletText("[%04d] Window '%s'", window->BeginOrderWithinContext, window->Name); + DebugNodeWindow(window, buf); + Indent(); + DebugNodeWindowsListByBeginStackParent(windows + i + 1, windows_size - i - 1, window); + Unindent(); + } +} + +//----------------------------------------------------------------------------- +// [SECTION] OTHER DEBUG TOOLS (ITEM PICKER, STACK TOOL) +//----------------------------------------------------------------------------- + +// [DEBUG] Item picker tool - start with DebugStartItemPicker() - useful to visually select an item and break into its call-stack. +void ImGui::UpdateDebugToolItemPicker() +{ + ImGuiContext& g = *GImGui; + g.DebugItemPickerBreakId = 0; + if (!g.DebugItemPickerActive) + return; + + const ImGuiID hovered_id = g.HoveredIdPreviousFrame; + SetMouseCursor(ImGuiMouseCursor_Hand); + if (IsKeyPressedMap(ImGuiKey_Escape)) + g.DebugItemPickerActive = false; + if (IsMouseClicked(0) && hovered_id) + { + g.DebugItemPickerBreakId = hovered_id; + g.DebugItemPickerActive = false; + } + SetNextWindowBgAlpha(0.60f); + BeginTooltip(); + Text("HoveredId: 0x%08X", hovered_id); + Text("Press ESC to abort picking."); + TextColored(GetStyleColorVec4(hovered_id ? ImGuiCol_Text : ImGuiCol_TextDisabled), "Click to break in debugger!"); + EndTooltip(); +} + +// [DEBUG] Stack Tool: update queries. Called by NewFrame() +void ImGui::UpdateDebugToolStackQueries() +{ + ImGuiContext& g = *GImGui; + ImGuiStackTool* tool = &g.DebugStackTool; + + // Clear hook when stack tool is not visible + g.DebugHookIdInfo = 0; + if (g.FrameCount != tool->LastActiveFrame + 1) + return; + + // Update queries. The steps are: -1: query Stack, >= 0: query each stack item + // We can only perform 1 ID Info query every frame. This is designed so the GetID() tests are cheap and constant-time + const ImGuiID query_id = g.HoveredIdPreviousFrame ? g.HoveredIdPreviousFrame : g.ActiveId; + if (tool->QueryId != query_id) + { + tool->QueryId = query_id; + tool->StackLevel = -1; + tool->Results.resize(0); + } + if (query_id == 0) + return; + + // Advance to next stack level when we got our result, or after 2 frames (in case we never get a result) + int stack_level = tool->StackLevel; + if (stack_level >= 0 && stack_level < tool->Results.Size) + if (tool->Results[stack_level].QuerySuccess || tool->Results[stack_level].QueryFrameCount > 2) + tool->StackLevel++; + + // Update hook + stack_level = tool->StackLevel; + if (stack_level == -1) + g.DebugHookIdInfo = query_id; + if (stack_level >= 0 && stack_level < tool->Results.Size) + { + g.DebugHookIdInfo = tool->Results[stack_level].ID; + tool->Results[stack_level].QueryFrameCount++; + } +} + +// [DEBUG] Stack tool: hooks called by GetID() family functions +void ImGui::DebugHookIdInfo(ImGuiID id, ImGuiDataType data_type, const void* data_id, const void* data_id_end) +{ + ImGuiContext& g = *GImGui; + ImGuiWindow* window = g.CurrentWindow; + ImGuiStackTool* tool = &g.DebugStackTool; + + // Step 0: stack query + // This assume that the ID was computed with the current ID stack, which tends to be the case for our widget. + if (tool->StackLevel == -1) + { + tool->StackLevel++; + tool->Results.resize(window->IDStack.Size + 1, ImGuiStackLevelInfo()); + for (int n = 0; n < window->IDStack.Size + 1; n++) + tool->Results[n].ID = (n < window->IDStack.Size) ? window->IDStack[n] : id; + return; + } + + // Step 1+: query for individual level + IM_ASSERT(tool->StackLevel >= 0); + if (tool->StackLevel != window->IDStack.Size) + return; + ImGuiStackLevelInfo* info = &tool->Results[tool->StackLevel]; + IM_ASSERT(info->ID == id && info->QueryFrameCount > 0); + + int data_len; + switch (data_type) + { + case ImGuiDataType_S32: + ImFormatString(info->Desc, IM_ARRAYSIZE(info->Desc), "%d", (int)(intptr_t)data_id); + break; + case ImGuiDataType_String: + data_len = data_id_end ? (int)((const char*)data_id_end - (const char*)data_id) : (int)strlen((const char*)data_id); + ImFormatString(info->Desc, IM_ARRAYSIZE(info->Desc), "\"%.*s\"", data_len, (const char*)data_id); + break; + case ImGuiDataType_Pointer: + ImFormatString(info->Desc, IM_ARRAYSIZE(info->Desc), "(void*)0x%p", data_id); + break; + case ImGuiDataType_ID: + if (info->Desc[0] == 0) // PushOverrideID() is often used to avoid hashing twice, which would lead to 2 calls to DebugHookIdInfo(). We prioritize the first one. + ImFormatString(info->Desc, IM_ARRAYSIZE(info->Desc), "0x%08X [override]", id); + break; + default: + IM_ASSERT(0); + } + info->QuerySuccess = true; +} + +// Stack Tool: Display UI +void ImGui::ShowStackToolWindow(bool* p_open) +{ + ImGuiContext& g = *GImGui; + if (!(g.NextWindowData.Flags & ImGuiNextWindowDataFlags_HasSize)) + SetNextWindowSize(ImVec2(0.0f, GetFontSize() * 8.0f), ImGuiCond_FirstUseEver); + if (!Begin("Dear ImGui Stack Tool", p_open) || GetCurrentWindow()->BeginCount > 1) + { + End(); + return; + } + + // Display hovered/active status + const ImGuiID hovered_id = g.HoveredIdPreviousFrame; + const ImGuiID active_id = g.ActiveId; +#ifdef IMGUI_ENABLE_TEST_ENGINE + Text("HoveredId: 0x%08X (\"%s\"), ActiveId: 0x%08X (\"%s\")", hovered_id, hovered_id ? ImGuiTestEngine_FindItemDebugLabel(&g, hovered_id) : "", active_id, active_id ? ImGuiTestEngine_FindItemDebugLabel(&g, active_id) : ""); +#else + Text("HoveredId: 0x%08X, ActiveId: 0x%08X", hovered_id, active_id); +#endif + SameLine(); + MetricsHelpMarker("Hover an item with the mouse to display elements of the ID Stack leading to the item's final ID.\nEach level of the stack correspond to a PushID() call.\nAll levels of the stack are hashed together to make the final ID of a widget (ID displayed at the bottom level of the stack).\nRead FAQ entry about the ID stack for details."); + + // Display decorated stack + ImGuiStackTool* tool = &g.DebugStackTool; + tool->LastActiveFrame = g.FrameCount; + if (tool->Results.Size > 0 && BeginTable("##table", 3, ImGuiTableFlags_Borders)) + { + const float id_width = CalcTextSize("0xDDDDDDDD").x; + TableSetupColumn("Seed", ImGuiTableColumnFlags_WidthFixed, id_width); + TableSetupColumn("PushID", ImGuiTableColumnFlags_WidthStretch); + TableSetupColumn("Result", ImGuiTableColumnFlags_WidthFixed, id_width); + TableHeadersRow(); + for (int n = 0; n < tool->Results.Size; n++) + { + ImGuiStackLevelInfo* info = &tool->Results[n]; + TableNextColumn(); + Text("0x%08X", (n > 0) ? tool->Results[n - 1].ID : 0); + + TableNextColumn(); + ImGuiWindow* window = (info->Desc[0] == 0 && n == 0) ? FindWindowByID(info->ID) : NULL; + if (window) // Source: window name (because the root ID don't call GetID() and so doesn't get hooked) + Text("\"%s\" [window]", window->Name); + else if (info->QuerySuccess) // Source: GetID() hooks (prioritize over ItemInfo() because we frequently use patterns like: PushID(str), Button("") where they both have same id) + TextUnformatted(info->Desc); + else if (tool->StackLevel >= tool->Results.Size) // Only start using fallback below when all queries are done, so during queries we don't flickering ??? markers. + { +#ifdef IMGUI_ENABLE_TEST_ENGINE + if (const char* label = ImGuiTestEngine_FindItemDebugLabel(&g, info->ID)) // Source: ImGuiTestEngine's ItemInfo() + Text("??? \"%s\"", label); + else +#endif + TextUnformatted("???"); + } + + TableNextColumn(); + Text("0x%08X", info->ID); + if (n == tool->Results.Size - 1) + TableSetBgColor(ImGuiTableBgTarget_CellBg, GetColorU32(ImGuiCol_Header)); + } + EndTable(); + } + End(); +} + #else void ImGui::ShowMetricsWindow(bool*) {} @@ -17322,7 +18200,12 @@ void ImGui::DebugNodeWindowSettings(ImGuiWindowSettings*) {} void ImGui::DebugNodeWindowsList(ImVector*, const char*) {} void ImGui::DebugNodeViewport(ImGuiViewportP*) {} -#endif +void ImGui::ShowStackToolWindow(bool*) {} +void ImGui::DebugHookIdInfo(ImGuiID, ImGuiDataType, const void*, const void*) {} +void ImGui::UpdateDebugToolItemPicker() {} +void ImGui::UpdateDebugToolStackQueries() {} + +#endif // #ifndef IMGUI_DISABLE_METRICS_WINDOW //----------------------------------------------------------------------------- diff --git a/imgui-sys/third-party/imgui-docking/imgui/imgui.h b/imgui-sys/third-party/imgui-docking/imgui/imgui.h index b7487d0ad..ceb3b086d 100644 --- a/imgui-sys/third-party/imgui-docking/imgui/imgui.h +++ b/imgui-sys/third-party/imgui-docking/imgui/imgui.h @@ -1,4 +1,4 @@ -// dear imgui, v1.85 WIP +// dear imgui, v1.86 // (headers) // Help: @@ -64,8 +64,8 @@ Index of this file: // Version // (Integer encoded as XYYZZ for use in #if preprocessor conditionals. Work in progress versions typically starts at XYY99 then bounce up to XYY00, XYY01 etc. when release tagging happens) -#define IMGUI_VERSION "1.85 WIP" -#define IMGUI_VERSION_NUM 18410 +#define IMGUI_VERSION "1.86" +#define IMGUI_VERSION_NUM 18600 #define IMGUI_CHECKVERSION() ImGui::DebugCheckVersionAndDataLayout(IMGUI_VERSION, sizeof(ImGuiIO), sizeof(ImGuiStyle), sizeof(ImVec2), sizeof(ImVec4), sizeof(ImDrawVert), sizeof(ImDrawIdx)) #define IMGUI_HAS_TABLE #define IMGUI_HAS_VIEWPORT // Viewport WIP branch @@ -95,7 +95,7 @@ Index of this file: #endif // Helper Macros - IM_FMTARGS, IM_FMTLIST: Apply printf-style warnings to our formatting functions. -#if !defined(IMGUI_USE_STB_SPRINTF) && defined(__MINGW32__) +#if !defined(IMGUI_USE_STB_SPRINTF) && defined(__MINGW32__) && !defined(__clang__) #define IM_FMTARGS(FMT) __attribute__((format(gnu_printf, FMT, FMT+1))) #define IM_FMTLIST(FMT) __attribute__((format(gnu_printf, FMT, 0))) #elif !defined(IMGUI_USE_STB_SPRINTF) && (defined(__clang__) || defined(__GNUC__)) @@ -155,7 +155,7 @@ struct ImGuiContext; // Dear ImGui context (opaque structure, unl struct ImGuiIO; // Main configuration and I/O between your application and ImGui struct ImGuiInputTextCallbackData; // Shared state of InputText() when using custom ImGuiInputTextCallback (rare/advanced use) struct ImGuiListClipper; // Helper to manually clip large list of items -struct ImGuiOnceUponAFrame; // Helper for running a block of code not more than once a frame, used by IMGUI_ONCE_UPON_A_FRAME macro +struct ImGuiOnceUponAFrame; // Helper for running a block of code not more than once a frame struct ImGuiPayload; // User data payload for drag and drop operations struct ImGuiPlatformIO; // Multi-viewport support: interface for Platform/Renderer backends + viewports to render struct ImGuiPlatformMonitor; // Multi-viewport support: user-provided bounds for each connected monitor/display. Used when positioning popups and tooltips to avoid them straddling monitors @@ -314,6 +314,7 @@ namespace ImGui // Demo, Debug, Information IMGUI_API void ShowDemoWindow(bool* p_open = NULL); // create Demo window. demonstrate most ImGui features. call this to learn about the library! try to make it always available in your application! IMGUI_API void ShowMetricsWindow(bool* p_open = NULL); // create Metrics/Debugger window. display Dear ImGui internals: windows, draw commands, various internal state, etc. + IMGUI_API void ShowStackToolWindow(bool* p_open = NULL); // create Stack Tool window. hover items with mouse to query information about the source of their unique ID. IMGUI_API void ShowAboutWindow(bool* p_open = NULL); // create About window. display Dear ImGui version, credits and build/system information. IMGUI_API void ShowStyleEditor(ImGuiStyle* ref = NULL); // add style editor block (not a window). you can pass in a reference ImGuiStyle structure to compare to, revert to and save to (else it uses the default style) IMGUI_API bool ShowStyleSelector(const char* label); // add style selector block (not a window), essentially a combo listing the default styles. @@ -532,12 +533,12 @@ namespace ImGui IMGUI_API bool Combo(const char* label, int* current_item, bool(*items_getter)(void* data, int idx, const char** out_text), void* data, int items_count, int popup_max_height_in_items = -1); // Widgets: Drag Sliders - // - CTRL+Click on any drag box to turn them into an input box. Manually input values aren't clamped and can go off-bounds. + // - CTRL+Click on any drag box to turn them into an input box. Manually input values aren't clamped by default and can go off-bounds. Use ImGuiSliderFlags_AlwaysClamp to always clamp. // - For all the Float2/Float3/Float4/Int2/Int3/Int4 versions of every functions, note that a 'float v[X]' function argument is the same as 'float* v', the array syntax is just a way to document the number of elements that are expected to be accessible. You can pass address of your first element out of a contiguous set, e.g. &myvector.x // - Adjust format string to decorate the value with a prefix, a suffix, or adapt the editing and display precision e.g. "%.3f" -> 1.234; "%5.2f secs" -> 01.23 secs; "Biscuit: %.0f" -> Biscuit: 1; etc. // - Format string may also be set to NULL or use the default format ("%f" or "%d"). // - Speed are per-pixel of mouse movement (v_speed=0.2f: mouse needs to move by 5 pixels to increase value by 1). For gamepad/keyboard navigation, minimum speed is Max(v_speed, minimum_step_at_given_precision). - // - Use v_min < v_max to clamp edits to given limits. Note that CTRL+Click manual input can override those limits. + // - Use v_min < v_max to clamp edits to given limits. Note that CTRL+Click manual input can override those limits if ImGuiSliderFlags_AlwaysClamp is not used. // - Use v_max = FLT_MAX / INT_MAX etc to avoid clamping to a maximum, same with v_min = -FLT_MAX / INT_MIN to avoid clamping to a minimum. // - We use the same sets of flags for DragXXX() and SliderXXX() functions as the features are the same and it makes it easier to swap them. // - Legacy: Pre-1.78 there are DragXXX() function signatures that takes a final `float power=1.0f' argument instead of the `ImGuiSliderFlags flags=0' argument. @@ -556,7 +557,7 @@ namespace ImGui IMGUI_API bool DragScalarN(const char* label, ImGuiDataType data_type, void* p_data, int components, float v_speed = 1.0f, const void* p_min = NULL, const void* p_max = NULL, const char* format = NULL, ImGuiSliderFlags flags = 0); // Widgets: Regular Sliders - // - CTRL+Click on any slider to turn them into an input box. Manually input values aren't clamped and can go off-bounds. + // - CTRL+Click on any slider to turn them into an input box. Manually input values aren't clamped by default and can go off-bounds. Use ImGuiSliderFlags_AlwaysClamp to always clamp. // - Adjust format string to decorate the value with a prefix, a suffix, or adapt the editing and display precision e.g. "%.3f" -> 1.234; "%5.2f secs" -> 01.23 secs; "Biscuit: %.0f" -> Biscuit: 1; etc. // - Format string may also be set to NULL or use the default format ("%f" or "%d"). // - Legacy: Pre-1.78 there are SliderXXX() function signatures that takes a final `float power=1.0f' argument instead of the `ImGuiSliderFlags flags=0' argument. @@ -804,8 +805,9 @@ namespace ImGui // Docking // [BETA API] Enable with io.ConfigFlags |= ImGuiConfigFlags_DockingEnable. // Note: You can use most Docking facilities without calling any API. You DO NOT need to call DockSpace() to use Docking! - // - Drag from window title bar or their tab to dock/undock. Hold SHIFT to disable docking. + // - Drag from window title bar or their tab to dock/undock. Hold SHIFT to disable docking/undocking. // - Drag from window menu button (upper-left button) to undock an entire node (all windows). + // - When io.ConfigDockingWithShift == true, you instead need to hold SHIFT to _enable_ docking/undocking. // About dockspaces: // - Use DockSpace() to create an explicit dock node _within_ an existing window. See Docking demo for details. // - Use DockSpaceOverViewport() to create an explicit dock node covering the screen or a specific viewport. @@ -900,7 +902,6 @@ namespace ImGui IMGUI_API const char* GetStyleColorName(ImGuiCol idx); // get a string corresponding to the enum value (for display, saving, etc.). IMGUI_API void SetStateStorage(ImGuiStorage* storage); // replace current window storage with our own (if you want to manipulate it yourself, typically clear subsection of it) IMGUI_API ImGuiStorage* GetStateStorage(); - IMGUI_API void CalcListClipping(int items_count, float items_height, int* out_items_display_start, int* out_items_display_end); // calculate coarse clipping for large list of evenly sized items. Prefer using the ImGuiListClipper higher-level helper if you can. IMGUI_API bool BeginChildFrame(ImGuiID id, const ImVec2& size, ImGuiWindowFlags flags = 0); // helper to create a child window / scrolling region that looks like a normal widget frame IMGUI_API void EndChildFrame(); // always call EndChildFrame() regardless of BeginChildFrame() return values (which indicates a collapsed/clipped window) @@ -928,9 +929,10 @@ namespace ImGui // - You can also use regular integer: it is forever guaranteed that 0=Left, 1=Right, 2=Middle. // - Dragging operations are only reported after mouse has moved a certain distance away from the initial clicking position (see 'lock_threshold' and 'io.MouseDraggingThreshold') IMGUI_API bool IsMouseDown(ImGuiMouseButton button); // is mouse button held? - IMGUI_API bool IsMouseClicked(ImGuiMouseButton button, bool repeat = false); // did mouse button clicked? (went from !Down to Down) + IMGUI_API bool IsMouseClicked(ImGuiMouseButton button, bool repeat = false); // did mouse button clicked? (went from !Down to Down). Same as GetMouseClickedCount() == 1. IMGUI_API bool IsMouseReleased(ImGuiMouseButton button); // did mouse button released? (went from Down to !Down) - IMGUI_API bool IsMouseDoubleClicked(ImGuiMouseButton button); // did mouse button double-clicked? (note that a double-click will also report IsMouseClicked() == true) + IMGUI_API bool IsMouseDoubleClicked(ImGuiMouseButton button); // did mouse button double-clicked? Same as GetMouseClickedCount() == 2. (note that a double-click will also report IsMouseClicked() == true) + IMGUI_API int GetMouseClickedCount(ImGuiMouseButton button); // return the number of successive mouse-clicks at the time where a click happen (otherwise 0). IMGUI_API bool IsMouseHoveringRect(const ImVec2& r_min, const ImVec2& r_max, bool clip = true);// is mouse hovering given bounding rect (in screen space). clipped by current clipping settings, but disregarding of other consideration of focus/window ordering/popup-block. IMGUI_API bool IsMousePosValid(const ImVec2* mouse_pos = NULL); // by convention we use (-FLT_MAX,-FLT_MAX) to denote that there is no mouse available IMGUI_API bool IsAnyMouseDown(); // is any mouse button held? @@ -995,7 +997,7 @@ enum ImGuiWindowFlags_ ImGuiWindowFlags_NoMove = 1 << 2, // Disable user moving the window ImGuiWindowFlags_NoScrollbar = 1 << 3, // Disable scrollbars (window can still scroll with mouse or programmatically) ImGuiWindowFlags_NoScrollWithMouse = 1 << 4, // Disable user vertically scrolling with mouse wheel. On child window, mouse wheel will be forwarded to the parent unless NoScrollbar is also set. - ImGuiWindowFlags_NoCollapse = 1 << 5, // Disable user collapsing window by double-clicking on it. Also referred to as "window menu button" within a docking node. + ImGuiWindowFlags_NoCollapse = 1 << 5, // Disable user collapsing window by double-clicking on it. Also referred to as Window Menu Button (e.g. within a docking node). ImGuiWindowFlags_AlwaysAutoResize = 1 << 6, // Resize every window to its content every frame ImGuiWindowFlags_NoBackground = 1 << 7, // Disable drawing background color (WindowBg, etc.) and outside border. Similar as using SetNextWindowBgAlpha(0.0f). ImGuiWindowFlags_NoSavedSettings = 1 << 8, // Never load/save settings in .ini file @@ -1017,7 +1019,7 @@ enum ImGuiWindowFlags_ ImGuiWindowFlags_NoInputs = ImGuiWindowFlags_NoMouseInputs | ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus, // [Internal] - ImGuiWindowFlags_NavFlattened = 1 << 23, // [BETA] Allow gamepad/keyboard navigation to cross over parent border to this child (only use on child that have no scrolling!) + ImGuiWindowFlags_NavFlattened = 1 << 23, // [BETA] On child window: allow gamepad/keyboard navigation to cross over parent border to this child or between sibling child windows. ImGuiWindowFlags_ChildWindow = 1 << 24, // Don't use! For internal use by BeginChild() ImGuiWindowFlags_Tooltip = 1 << 25, // Don't use! For internal use by BeginTooltip() ImGuiWindowFlags_Popup = 1 << 26, // Don't use! For internal use by BeginPopup() @@ -1309,9 +1311,11 @@ enum ImGuiTableBgTarget_ enum ImGuiFocusedFlags_ { ImGuiFocusedFlags_None = 0, - ImGuiFocusedFlags_ChildWindows = 1 << 0, // IsWindowFocused(): Return true if any children of the window is focused - ImGuiFocusedFlags_RootWindow = 1 << 1, // IsWindowFocused(): Test from root window (top most parent of the current hierarchy) - ImGuiFocusedFlags_AnyWindow = 1 << 2, // IsWindowFocused(): Return true if any window is focused. Important: If you are trying to tell how to dispatch your low-level inputs, do NOT use this. Use 'io.WantCaptureMouse' instead! Please read the FAQ! + ImGuiFocusedFlags_ChildWindows = 1 << 0, // Return true if any children of the window is focused + ImGuiFocusedFlags_RootWindow = 1 << 1, // Test from root window (top most parent of the current hierarchy) + ImGuiFocusedFlags_AnyWindow = 1 << 2, // Return true if any window is focused. Important: If you are trying to tell how to dispatch your low-level inputs, do NOT use this. Use 'io.WantCaptureMouse' instead! Please read the FAQ! + ImGuiFocusedFlags_NoPopupHierarchy = 1 << 3, // Do not consider popup hierarchy (do not treat popup emitter as parent of popup) (when used with _ChildWindows or _RootWindow) + ImGuiFocusedFlags_DockHierarchy = 1 << 4, // Consider docking hierarchy (treat dockspace host as parent of docked window) (when used with _ChildWindows or _RootWindow) ImGuiFocusedFlags_RootAndChildWindows = ImGuiFocusedFlags_RootWindow | ImGuiFocusedFlags_ChildWindows }; @@ -1324,11 +1328,13 @@ enum ImGuiHoveredFlags_ ImGuiHoveredFlags_ChildWindows = 1 << 0, // IsWindowHovered() only: Return true if any children of the window is hovered ImGuiHoveredFlags_RootWindow = 1 << 1, // IsWindowHovered() only: Test from root window (top most parent of the current hierarchy) ImGuiHoveredFlags_AnyWindow = 1 << 2, // IsWindowHovered() only: Return true if any window is hovered - ImGuiHoveredFlags_AllowWhenBlockedByPopup = 1 << 3, // Return true even if a popup window is normally blocking access to this item/window - //ImGuiHoveredFlags_AllowWhenBlockedByModal = 1 << 4, // Return true even if a modal popup window is normally blocking access to this item/window. FIXME-TODO: Unavailable yet. - ImGuiHoveredFlags_AllowWhenBlockedByActiveItem = 1 << 5, // Return true even if an active item is blocking access to this item/window. Useful for Drag and Drop patterns. - ImGuiHoveredFlags_AllowWhenOverlapped = 1 << 6, // Return true even if the position is obstructed or overlapped by another window - ImGuiHoveredFlags_AllowWhenDisabled = 1 << 7, // Return true even if the item is disabled + ImGuiHoveredFlags_NoPopupHierarchy = 1 << 3, // IsWindowHovered() only: Do not consider popup hierarchy (do not treat popup emitter as parent of popup) (when used with _ChildWindows or _RootWindow) + ImGuiHoveredFlags_DockHierarchy = 1 << 4, // IsWindowHovered() only: Consider docking hierarchy (treat dockspace host as parent of docked window) (when used with _ChildWindows or _RootWindow) + ImGuiHoveredFlags_AllowWhenBlockedByPopup = 1 << 5, // Return true even if a popup window is normally blocking access to this item/window + //ImGuiHoveredFlags_AllowWhenBlockedByModal = 1 << 6, // Return true even if a modal popup window is normally blocking access to this item/window. FIXME-TODO: Unavailable yet. + ImGuiHoveredFlags_AllowWhenBlockedByActiveItem = 1 << 7, // Return true even if an active item is blocking access to this item/window. Useful for Drag and Drop patterns. + ImGuiHoveredFlags_AllowWhenOverlapped = 1 << 8, // IsItemHovered() only: Return true even if the position is obstructed or overlapped by another window + ImGuiHoveredFlags_AllowWhenDisabled = 1 << 9, // IsItemHovered() only: Return true even if the item is disabled ImGuiHoveredFlags_RectOnly = ImGuiHoveredFlags_AllowWhenBlockedByPopup | ImGuiHoveredFlags_AllowWhenBlockedByActiveItem | ImGuiHoveredFlags_AllowWhenOverlapped, ImGuiHoveredFlags_RootAndChildWindows = ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_ChildWindows }; @@ -1344,7 +1350,7 @@ enum ImGuiDockNodeFlags_ ImGuiDockNodeFlags_NoDockingInCentralNode = 1 << 2, // Shared // Disable docking inside the Central Node, which will be always kept empty. ImGuiDockNodeFlags_PassthruCentralNode = 1 << 3, // Shared // Enable passthru dockspace: 1) DockSpace() will render a ImGuiCol_WindowBg background covering everything excepted the Central Node when empty. Meaning the host window should probably use SetNextWindowBgAlpha(0.0f) prior to Begin() when using this. 2) When Central Node is empty: let inputs pass-through + won't display a DockingEmptyBg background. See demo for details. ImGuiDockNodeFlags_NoSplit = 1 << 4, // Shared/Local // Disable splitting the node into smaller nodes. Useful e.g. when embedding dockspaces into a main root one (the root one may have splitting disabled to reduce confusion). Note: when turned off, existing splits will be preserved. - ImGuiDockNodeFlags_NoResize = 1 << 5, // Shared/Local // Disable resizing node using the splitter/separators. Useful with programatically setup dockspaces. + ImGuiDockNodeFlags_NoResize = 1 << 5, // Shared/Local // Disable resizing node using the splitter/separators. Useful with programmatically setup dockspaces. ImGuiDockNodeFlags_AutoHideTabBar = 1 << 6 // Shared/Local // Tab bar will automatically hide when there is a single window in the dock node. }; @@ -1813,7 +1819,7 @@ struct ImVector inline void pop_back() { IM_ASSERT(Size > 0); Size--; } inline void push_front(const T& v) { if (Size == 0) push_back(v); else insert(Data, v); } inline T* erase(const T* it) { IM_ASSERT(it >= Data && it < Data + Size); const ptrdiff_t off = it - Data; memmove(Data + off, Data + off + 1, ((size_t)Size - (size_t)off - 1) * sizeof(T)); Size--; return Data + off; } - inline T* erase(const T* it, const T* it_last){ IM_ASSERT(it >= Data && it < Data + Size && it_last > it && it_last <= Data + Size); const ptrdiff_t count = it_last - it; const ptrdiff_t off = it - Data; memmove(Data + off, Data + off + count, ((size_t)Size - (size_t)off - count) * sizeof(T)); Size -= (int)count; return Data + off; } + inline T* erase(const T* it, const T* it_last){ IM_ASSERT(it >= Data && it < Data + Size && it_last > it && it_last <= Data + Size); const ptrdiff_t count = it_last - it; const ptrdiff_t off = it - Data; memmove(Data + off, Data + off + count, ((size_t)Size - (size_t)off - (size_t)count) * sizeof(T)); Size -= (int)count; return Data + off; } inline T* erase_unsorted(const T* it) { IM_ASSERT(it >= Data && it < Data + Size); const ptrdiff_t off = it - Data; if (it < Data + Size - 1) memcpy(Data + off, Data + Size - 1, sizeof(T)); Size--; return Data + off; } inline T* insert(const T* it, const T& v) { IM_ASSERT(it >= Data && it <= Data + Size); const ptrdiff_t off = it - Data; if (Size == Capacity) reserve(_grow_capacity(Size + 1)); if (off < (int)Size) memmove(Data + off + 1, Data + off, ((size_t)Size - (size_t)off) * sizeof(T)); memcpy(&Data[off], &v, sizeof(v)); Size++; return Data + off; } inline bool contains(const T& v) const { const T* data = Data; const T* data_end = Data + Size; while (data < data_end) if (*data++ == v) return true; return false; } @@ -1917,6 +1923,7 @@ struct ImGuiIO // Docking options (when ImGuiConfigFlags_DockingEnable is set) bool ConfigDockingNoSplit; // = false // Simplified docking mode: disable window splitting, so docking is limited to merging multiple windows together into tab-bars. + bool ConfigDockingWithShift; // = false // Enable docking with holding Shift key (reduce visual noise, allows dropping in wider space) bool ConfigDockingAlwaysTabBar; // = false // [BETA] [FIXME: This currently creates regression with auto-sizing and general overhead] Make every single floating window display within a docking node. bool ConfigDockingTransparentPayload;// = false // [BETA] Make window or viewport transparent when docking and only display docking boxes on the target viewport. Useful if rendering of multiple viewport cannot be synced. Best used with ConfigViewportsNoAutoMerge. @@ -2008,12 +2015,13 @@ struct ImGuiIO ImVec2 MousePosPrev; // Previous mouse position (note that MouseDelta is not necessary == MousePos-MousePosPrev, in case either position is invalid) ImVec2 MouseClickedPos[5]; // Position at time of clicking double MouseClickedTime[5]; // Time of last click (used to figure out double-click) - bool MouseClicked[5]; // Mouse button went from !Down to Down - bool MouseDoubleClicked[5]; // Has mouse button been double-clicked? + bool MouseClicked[5]; // Mouse button went from !Down to Down (same as MouseClickedCount[x] != 0) + bool MouseDoubleClicked[5]; // Has mouse button been double-clicked? (same as MouseClickedCount[x] == 2) + ImU16 MouseClickedCount[5]; // == 0 (not clicked), == 1 (same as MouseClicked[]), == 2 (double-clicked), == 3 (triple-clicked) etc. when going from !Down to Down + ImU16 MouseClickedLastCount[5]; // Count successive number of clicks. Stays valid after mouse release. Reset after another click is done. bool MouseReleased[5]; // Mouse button went from Down to !Down bool MouseDownOwned[5]; // Track if button was clicked inside a dear imgui window or over void blocked by a popup. We don't request mouse capture from the application if click started outside ImGui bounds. bool MouseDownOwnedUnlessPopupClose[5];//Track if button was clicked inside a dear imgui window. - bool MouseDownWasDoubleClick[5]; // Track if button down was a double-click float MouseDownDuration[5]; // Duration the mouse button has been down (0.0f == just clicked) float MouseDownDurationPrev[5]; // Previous time the mouse button has been down ImVec2 MouseDragMaxDistanceAbs[5]; // Maximum distance, absolute, on each axis, of how much mouse has traveled from the clicking point @@ -2092,7 +2100,7 @@ struct ImGuiSizeCallbackData struct ImGuiWindowClass { ImGuiID ClassId; // User data. 0 = Default class (unclassed). Windows of different classes cannot be docked with each others. - ImGuiID ParentViewportId; // Hint for the platform backend. If non-zero, the platform backend can create a parent<>child relationship between the platform windows. Not conforming backends are free to e.g. parent every viewport to the main viewport or not. + ImGuiID ParentViewportId; // Hint for the platform backend. -1: use default. 0: request platform backend to not parent the platform. != 0: request platform backend to create a parent<>child relationship between the platform windows. Not conforming backends are free to e.g. parent every viewport to the main viewport or not. ImGuiViewportFlags ViewportFlagsOverrideSet; // Viewport flags to set when a window of this class owns a viewport. This allows you to enforce OS decoration or task bar icon, override the defaults on a per-window basis. ImGuiViewportFlags ViewportFlagsOverrideClear; // Viewport flags to clear when a window of this class owns a viewport. This allows you to enforce OS decoration or task bar icon, override the defaults on a per-window basis. ImGuiTabItemFlags TabItemFlagsOverrideSet; // [EXPERIMENTAL] TabItem flags to set when a window of this class gets submitted into a dock node tab bar. May use with ImGuiTabItemFlags_Leading or ImGuiTabItemFlags_Trailing. @@ -2100,7 +2108,7 @@ struct ImGuiWindowClass bool DockingAlwaysTabBar; // Set to true to enforce single floating windows of this class always having their own docking node (equivalent of setting the global io.ConfigDockingAlwaysTabBar) bool DockingAllowUnclassed; // Set to true to allow windows of this class to be docked/merged with an unclassed window. // FIXME-DOCK: Move to DockNodeFlags override? - ImGuiWindowClass() { memset(this, 0, sizeof(*this)); DockingAllowUnclassed = true; } + ImGuiWindowClass() { memset(this, 0, sizeof(*this)); ParentViewportId = (ImGuiID)-1; DockingAllowUnclassed = true; } }; // Data payload for Drag and Drop operations: AcceptDragDropPayload(), GetDragDropPayload() @@ -2269,10 +2277,12 @@ struct ImGuiStorage }; // Helper: Manually clip large list of items. -// If you are submitting lots of evenly spaced items and you have a random access to the list, you can perform coarse -// clipping based on visibility to save yourself from processing those items at all. +// If you have lots evenly spaced items and you have a random access to the list, you can perform coarse +// clipping based on visibility to only submit items that are in view. // The clipper calculates the range of visible items and advance the cursor to compensate for the non-visible items we have skipped. -// (Dear ImGui already clip items based on their bounds but it needs to measure text size to do so, whereas manual coarse clipping before submission makes this cost and your own data fetching/submission cost almost null) +// (Dear ImGui already clip items based on their bounds but: it needs to first layout the item to do so, and generally +// fetching/submitting your own data incurs additional cost. Coarse clipping using ImGuiListClipper allows you to easily +// scale using lists with tens of thousands of items without a problem) // Usage: // ImGuiListClipper clipper; // clipper.Begin(1000); // We have 1000 elements, evenly spaced. @@ -2281,30 +2291,30 @@ struct ImGuiStorage // ImGui::Text("line number %d", i); // Generally what happens is: // - Clipper lets you process the first element (DisplayStart = 0, DisplayEnd = 1) regardless of it being visible or not. -// - User code submit one element. +// - User code submit that one element. // - Clipper can measure the height of the first element // - Clipper calculate the actual range of elements to display based on the current clipping rectangle, position the cursor before the first visible element. // - User code submit visible elements. +// - The clipper also handles various subtleties related to keyboard/gamepad navigation, wrapping etc. struct ImGuiListClipper { - int DisplayStart; - int DisplayEnd; - - // [Internal] - int ItemsCount; - int StepNo; - int ItemsFrozen; - float ItemsHeight; - float StartPosY; + int DisplayStart; // First item to display, updated by each call to Step() + int DisplayEnd; // End of items to display (exclusive) + int ItemsCount; // [Internal] Number of items + float ItemsHeight; // [Internal] Height of item after a first step and item submission can calculate it + float StartPosY; // [Internal] Cursor position at the time of Begin() or after table frozen rows are all processed + void* TempData; // [Internal] Internal data + // items_count: Use INT_MAX if you don't know how many items you have (in which case the cursor won't be advanced in the final step) + // items_height: Use -1.0f to be calculated automatically on first step. Otherwise pass in the distance between your items, typically GetTextLineHeightWithSpacing() or GetFrameHeightWithSpacing(). IMGUI_API ImGuiListClipper(); IMGUI_API ~ImGuiListClipper(); + IMGUI_API void Begin(int items_count, float items_height = -1.0f); + IMGUI_API void End(); // Automatically called on the last call of Step() that returns false. + IMGUI_API bool Step(); // Call until it returns false. The DisplayStart/DisplayEnd fields will be set and you can process/draw those items. - // items_count: Use INT_MAX if you don't know how many items you have (in which case the cursor won't be advanced in the final step) - // items_height: Use -1.0f to be calculated automatically on first step. Otherwise pass in the distance between your items, typically GetTextLineHeightWithSpacing() or GetFrameHeightWithSpacing(). - IMGUI_API void Begin(int items_count, float items_height = -1.0f); // Automatically called by constructor if you passed 'items_count' or by Step() in Step 1. - IMGUI_API void End(); // Automatically called on the last call of Step() that returns false. - IMGUI_API bool Step(); // Call until it returns false. The DisplayStart/DisplayEnd fields will be set and you can process/draw those items. + // Call ForceDisplayRangeByIndices() before first call to Step() if you need a range of items to be displayed regardless of visibility. + IMGUI_API void ForceDisplayRangeByIndices(int item_min, int item_max); // item_max is exclusive e.g. use (42, 42+1) to make item 42 always visible BUT due to alignment/padding of certain items it is likely that an extra item may be included on either end of the display range. #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS inline ImGuiListClipper(int items_count, float items_height = -1.0f) { memset(this, 0, sizeof(*this)); ItemsCount = -1; Begin(items_count, items_height); } // [removed in 1.79] @@ -3077,6 +3087,8 @@ struct ImGuiPlatformMonitor #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS namespace ImGui { + // OBSOLETED in 1.86 (from November 2021) + IMGUI_API void CalcListClipping(int items_count, float items_height, int* out_items_display_start, int* out_items_display_end); // Calculate coarse clipping for large list of evenly sized items. Prefer using ImGuiListClipper. // OBSOLETED in 1.85 (from August 2021) static inline float GetWindowContentRegionWidth() { return GetWindowContentRegionMax().x - GetWindowContentRegionMin().x; } // OBSOLETED in 1.81 (from February 2021) diff --git a/imgui-sys/third-party/imgui-docking/imgui/imgui_demo.cpp b/imgui-sys/third-party/imgui-docking/imgui/imgui_demo.cpp index 63a3b2bbf..5d6779e9a 100644 --- a/imgui-sys/third-party/imgui-docking/imgui/imgui_demo.cpp +++ b/imgui-sys/third-party/imgui-docking/imgui/imgui_demo.cpp @@ -1,4 +1,4 @@ -// dear imgui, v1.85 WIP +// dear imgui, v1.86 // (demo code) // Help: @@ -212,6 +212,14 @@ static void ShowDockingDisabledMessage() io.ConfigFlags |= ImGuiConfigFlags_DockingEnable; } +// Helper to wire demo markers located in code to a interactive browser +typedef void (*ImGuiDemoMarkerCallback)(const char* file, int line, const char* section, void* user_data); +extern ImGuiDemoMarkerCallback GImGuiDemoMarkerCallback; +extern void* GImGuiDemoMarkerCallbackUserData; +ImGuiDemoMarkerCallback GImGuiDemoMarkerCallback = NULL; +void* GImGuiDemoMarkerCallbackUserData = NULL; +#define IMGUI_DEMO_MARKER(section) do { if (GImGuiDemoMarkerCallback != NULL) GImGuiDemoMarkerCallback(__FILE__, __LINE__, section, GImGuiDemoMarkerCallbackUserData); } while (0) + // Helper to display basic user controls. void ImGui::ShowUserGuide() { @@ -222,7 +230,8 @@ void ImGui::ShowUserGuide() "(double-click to auto fit window to its contents)."); ImGui::BulletText("CTRL+Click on a slider or drag box to input value as text."); ImGui::BulletText("TAB/SHIFT+TAB to cycle through keyboard editable fields."); - if (io.FontAllowUserScaling) + ImGui::BulletText("CTRL+Tab to select a window."); + if (io.FontAllowUserScaling) ImGui::BulletText("CTRL+Mouse Wheel to zoom window contents."); ImGui::BulletText("While inputing text:\n"); ImGui::Indent(); @@ -240,7 +249,6 @@ void ImGui::ShowUserGuide() ImGui::BulletText("Return to input text into a widget."); ImGui::BulletText("Escape to deactivate a widget, close popup, exit child window."); ImGui::BulletText("Alt to jump to the menu layer of a window."); - ImGui::BulletText("CTRL+Tab to select a window."); ImGui::Unindent(); } @@ -308,10 +316,12 @@ void ImGui::ShowDemoWindow(bool* p_open) // Dear ImGui Apps (accessible from the "Tools" menu) static bool show_app_metrics = false; + static bool show_app_stack_tool = false; static bool show_app_style_editor = false; static bool show_app_about = false; if (show_app_metrics) { ImGui::ShowMetricsWindow(&show_app_metrics); } + if (show_app_stack_tool) { ImGui::ShowStackToolWindow(&show_app_stack_tool); } if (show_app_about) { ImGui::ShowAboutWindow(&show_app_about); } if (show_app_style_editor) { @@ -375,11 +385,13 @@ void ImGui::ShowDemoWindow(bool* p_open) { if (ImGui::BeginMenu("Menu")) { + IMGUI_DEMO_MARKER("Menu/File"); ShowExampleMenuFile(); ImGui::EndMenu(); } if (ImGui::BeginMenu("Examples")) { + IMGUI_DEMO_MARKER("Menu/Examples"); ImGui::MenuItem("Main menu bar", NULL, &show_app_main_menu_bar); ImGui::MenuItem("Console", NULL, &show_app_console); ImGui::MenuItem("Log", NULL, &show_app_log); @@ -396,9 +408,14 @@ void ImGui::ShowDemoWindow(bool* p_open) ImGui::MenuItem("Documents", NULL, &show_app_documents); ImGui::EndMenu(); } + //if (ImGui::MenuItem("MenuItem")) {} // You can also use MenuItem() inside a menu bar! if (ImGui::BeginMenu("Tools")) { + IMGUI_DEMO_MARKER("Menu/Tools"); +#ifndef IMGUI_DISABLE_METRICS_WINDOW ImGui::MenuItem("Metrics/Debugger", NULL, &show_app_metrics); + ImGui::MenuItem("Stack Tool", NULL, &show_app_stack_tool); +#endif ImGui::MenuItem("Style Editor", NULL, &show_app_style_editor); ImGui::MenuItem("About Dear ImGui", NULL, &show_app_about); ImGui::EndMenu(); @@ -409,6 +426,7 @@ void ImGui::ShowDemoWindow(bool* p_open) ImGui::Text("dear imgui says hello. (%s)", IMGUI_VERSION); ImGui::Spacing(); + IMGUI_DEMO_MARKER("Help"); if (ImGui::CollapsingHeader("Help")) { ImGui::Text("ABOUT THIS DEMO:"); @@ -431,6 +449,7 @@ void ImGui::ShowDemoWindow(bool* p_open) ImGui::ShowUserGuide(); } + IMGUI_DEMO_MARKER("Configuration"); if (ImGui::CollapsingHeader("Configuration")) { ImGuiIO& io = ImGui::GetIO(); @@ -459,12 +478,18 @@ void ImGui::ShowDemoWindow(bool* p_open) ImGui::SameLine(); HelpMarker("Instruct backend to not alter mouse cursor shape and visibility."); ImGui::CheckboxFlags("io.ConfigFlags: DockingEnable", &io.ConfigFlags, ImGuiConfigFlags_DockingEnable); - ImGui::SameLine(); HelpMarker("Drag from window title bar or their tab to dock/undock. Hold SHIFT to disable docking.\n\nDrag from window menu button (upper-left button) to undock an entire node (all windows)."); + ImGui::SameLine(); + if (io.ConfigDockingWithShift) + HelpMarker("Drag from window title bar or their tab to dock/undock. Hold SHIFT to enable docking.\n\nDrag from window menu button (upper-left button) to undock an entire node (all windows)."); + else + HelpMarker("Drag from window title bar or their tab to dock/undock. Hold SHIFT to disable docking.\n\nDrag from window menu button (upper-left button) to undock an entire node (all windows)."); if (io.ConfigFlags & ImGuiConfigFlags_DockingEnable) { ImGui::Indent(); ImGui::Checkbox("io.ConfigDockingNoSplit", &io.ConfigDockingNoSplit); ImGui::SameLine(); HelpMarker("Simplified docking mode: disable window splitting, so docking is limited to merging multiple windows together into tab-bars."); + ImGui::Checkbox("io.ConfigDockingWithShift", &io.ConfigDockingWithShift); + ImGui::SameLine(); HelpMarker("Enable docking when holding Shift only (allow to drop in wider space, reduce visual noise)"); ImGui::Checkbox("io.ConfigDockingAlwaysTabBar", &io.ConfigDockingAlwaysTabBar); ImGui::SameLine(); HelpMarker("Create a docking node and tab-bar on single floating windows."); ImGui::Checkbox("io.ConfigDockingTransparentPayload", &io.ConfigDockingTransparentPayload); @@ -502,6 +527,7 @@ void ImGui::ShowDemoWindow(bool* p_open) ImGui::Separator(); } + IMGUI_DEMO_MARKER("Configuration/Backend Flags"); if (ImGui::TreeNode("Backend Flags")) { HelpMarker( @@ -521,6 +547,7 @@ void ImGui::ShowDemoWindow(bool* p_open) ImGui::Separator(); } + IMGUI_DEMO_MARKER("Configuration/Style"); if (ImGui::TreeNode("Style")) { HelpMarker("The same contents can be accessed in 'Tools->Style Editor' or by calling the ShowStyleEditor() function."); @@ -529,6 +556,7 @@ void ImGui::ShowDemoWindow(bool* p_open) ImGui::Separator(); } + IMGUI_DEMO_MARKER("Configuration/Capture, Logging"); if (ImGui::TreeNode("Capture/Logging")) { HelpMarker( @@ -548,6 +576,7 @@ void ImGui::ShowDemoWindow(bool* p_open) } } + IMGUI_DEMO_MARKER("Window options"); if (ImGui::CollapsingHeader("Window options")) { if (ImGui::BeginTable("split", 3)) @@ -582,6 +611,7 @@ void ImGui::ShowDemoWindow(bool* p_open) static void ShowDemoWindowWidgets() { + IMGUI_DEMO_MARKER("Widgets"); if (!ImGui::CollapsingHeader("Widgets")) return; @@ -589,8 +619,10 @@ static void ShowDemoWindowWidgets() if (disable_all) ImGui::BeginDisabled(); + IMGUI_DEMO_MARKER("Widgets/Basic"); if (ImGui::TreeNode("Basic")) { + IMGUI_DEMO_MARKER("Widgets/Basic/Button"); static int clicked = 0; if (ImGui::Button("Button")) clicked++; @@ -600,15 +632,18 @@ static void ShowDemoWindowWidgets() ImGui::Text("Thanks for clicking me!"); } + IMGUI_DEMO_MARKER("Widgets/Basic/Checkbox"); static bool check = true; ImGui::Checkbox("checkbox", &check); + IMGUI_DEMO_MARKER("Widgets/Basic/RadioButton"); static int e = 0; ImGui::RadioButton("radio a", &e, 0); ImGui::SameLine(); ImGui::RadioButton("radio b", &e, 1); ImGui::SameLine(); ImGui::RadioButton("radio c", &e, 2); // Color buttons, demonstrate using PushID() to add unique identifier in the ID stack, and changing style. + IMGUI_DEMO_MARKER("Widgets/Basic/Buttons (Colored)"); for (int i = 0; i < 7; i++) { if (i > 0) @@ -630,6 +665,7 @@ static void ShowDemoWindowWidgets() ImGui::SameLine(); // Arrow buttons with Repeater + IMGUI_DEMO_MARKER("Widgets/Basic/Buttons (Repeating)"); static int counter = 0; float spacing = ImGui::GetStyle().ItemInnerSpacing.x; ImGui::PushButtonRepeat(true); @@ -640,6 +676,7 @@ static void ShowDemoWindowWidgets() ImGui::SameLine(); ImGui::Text("%d", counter); + IMGUI_DEMO_MARKER("Widgets/Basic/Tooltips"); ImGui::Text("Hover over me"); if (ImGui::IsItemHovered()) ImGui::SetTooltip("I am a tooltip"); @@ -656,12 +693,12 @@ static void ShowDemoWindowWidgets() } ImGui::Separator(); - ImGui::LabelText("label", "Value"); { // Using the _simplified_ one-liner Combo() api here // See "Combo" section for examples of how to use the more flexible BeginCombo()/EndCombo() api. + IMGUI_DEMO_MARKER("Widgets/Basic/Combo"); const char* items[] = { "AAAA", "BBBB", "CCCC", "DDDD", "EEEE", "FFFF", "GGGG", "HHHH", "IIIIIII", "JJJJ", "KKKKKKK" }; static int item_current = 0; ImGui::Combo("combo", &item_current, items, IM_ARRAYSIZE(items)); @@ -672,6 +709,7 @@ static void ShowDemoWindowWidgets() { // To wire InputText() with std::string or any other custom string type, // see the "Text Input > Resize Callback" section of this demo, and the misc/cpp/imgui_stdlib.h file. + IMGUI_DEMO_MARKER("Widgets/Basic/InputText"); static char str0[128] = "Hello, world!"; ImGui::InputText("input text", str0, IM_ARRAYSIZE(str0)); ImGui::SameLine(); HelpMarker( @@ -690,6 +728,7 @@ static void ShowDemoWindowWidgets() static char str1[128] = ""; ImGui::InputTextWithHint("input text (w/ hint)", "enter text here", str1, IM_ARRAYSIZE(str1)); + IMGUI_DEMO_MARKER("Widgets/Basic/InputInt, InputFloat"); static int i0 = 123; ImGui::InputInt("input int", &i0); ImGui::SameLine(); HelpMarker( @@ -714,6 +753,7 @@ static void ShowDemoWindowWidgets() } { + IMGUI_DEMO_MARKER("Widgets/Basic/DragInt, DragFloat"); static int i1 = 50, i2 = 42; ImGui::DragInt("drag int", &i1, 1); ImGui::SameLine(); HelpMarker( @@ -729,6 +769,7 @@ static void ShowDemoWindowWidgets() } { + IMGUI_DEMO_MARKER("Widgets/Basic/SliderInt, SliderFloat"); static int i1 = 0; ImGui::SliderInt("slider int", &i1, -1, 3); ImGui::SameLine(); HelpMarker("CTRL+click to input value."); @@ -737,12 +778,14 @@ static void ShowDemoWindowWidgets() ImGui::SliderFloat("slider float", &f1, 0.0f, 1.0f, "ratio = %.3f"); ImGui::SliderFloat("slider float (log)", &f2, -10.0f, 10.0f, "%.4f", ImGuiSliderFlags_Logarithmic); + IMGUI_DEMO_MARKER("Widgets/Basic/SliderAngle"); static float angle = 0.0f; ImGui::SliderAngle("slider angle", &angle); // Using the format string to display a name instead of an integer. // Here we completely omit '%d' from the format string, so it'll only display a name. // This technique can also be used with DragInt(). + IMGUI_DEMO_MARKER("Widgets/Basic/Slider (enum)"); enum Element { Element_Fire, Element_Earth, Element_Air, Element_Water, Element_COUNT }; static int elem = Element_Fire; const char* elems_names[Element_COUNT] = { "Fire", "Earth", "Air", "Water" }; @@ -752,6 +795,7 @@ static void ShowDemoWindowWidgets() } { + IMGUI_DEMO_MARKER("Widgets/Basic/ColorEdit3, ColorEdit4"); static float col1[3] = { 1.0f, 0.0f, 0.2f }; static float col2[4] = { 0.4f, 0.7f, 0.0f, 0.5f }; ImGui::ColorEdit3("color 1", col1); @@ -767,6 +811,7 @@ static void ShowDemoWindowWidgets() { // Using the _simplified_ one-liner ListBox() api here // See "List boxes" section for examples of how to use the more flexible BeginListBox()/EndListBox() api. + IMGUI_DEMO_MARKER("Widgets/Basic/ListBox"); const char* items[] = { "Apple", "Banana", "Cherry", "Kiwi", "Mango", "Orange", "Pineapple", "Strawberry", "Watermelon" }; static int item_current = 1; ImGui::ListBox("listbox", &item_current, items, IM_ARRAYSIZE(items), 4); @@ -783,8 +828,10 @@ static void ShowDemoWindowWidgets() // if (once) // ImGui::Text("This will be displayed only once."); + IMGUI_DEMO_MARKER("Widgets/Trees"); if (ImGui::TreeNode("Trees")) { + IMGUI_DEMO_MARKER("Widgets/Trees/Basic trees"); if (ImGui::TreeNode("Basic trees")) { for (int i = 0; i < 5; i++) @@ -805,6 +852,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Trees/Advanced, with Selectable nodes"); if (ImGui::TreeNode("Advanced, with Selectable nodes")) { HelpMarker( @@ -832,6 +880,7 @@ static void ShowDemoWindowWidgets() for (int i = 0; i < 6; i++) { // Disable the default "open on single-click behavior" + set Selected flag according to our selection. + // To alter selection we use IsItemClicked() && !IsItemToggledOpen(), so clicking on an arrow doesn't alter selection. ImGuiTreeNodeFlags node_flags = base_flags; const bool is_selected = (selection_mask & (1 << i)) != 0; if (is_selected) @@ -840,7 +889,7 @@ static void ShowDemoWindowWidgets() { // Items 0..2 are Tree Node bool node_open = ImGui::TreeNodeEx((void*)(intptr_t)i, node_flags, "Selectable Node %d", i); - if (ImGui::IsItemClicked()) + if (ImGui::IsItemClicked() && !ImGui::IsItemToggledOpen()) node_clicked = i; if (test_drag_and_drop && ImGui::BeginDragDropSource()) { @@ -861,7 +910,7 @@ static void ShowDemoWindowWidgets() // use BulletText() or advance the cursor by GetTreeNodeToLabelSpacing() and call Text(). node_flags |= ImGuiTreeNodeFlags_Leaf | ImGuiTreeNodeFlags_NoTreePushOnOpen; // ImGuiTreeNodeFlags_Bullet ImGui::TreeNodeEx((void*)(intptr_t)i, node_flags, "Selectable Leaf %d", i); - if (ImGui::IsItemClicked()) + if (ImGui::IsItemClicked() && !ImGui::IsItemToggledOpen()) node_clicked = i; if (test_drag_and_drop && ImGui::BeginDragDropSource()) { @@ -887,6 +936,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Collapsing Headers"); if (ImGui::TreeNode("Collapsing Headers")) { static bool closable_group = true; @@ -910,6 +960,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Bullets"); if (ImGui::TreeNode("Bullets")) { ImGui::BulletText("Bullet point 1"); @@ -924,8 +975,10 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Text"); if (ImGui::TreeNode("Text")) { + IMGUI_DEMO_MARKER("Widgets/Text/Colored Text"); if (ImGui::TreeNode("Colorful Text")) { // Using shortcut. You can use PushStyleColor()/PopStyleColor() for more flexibility. @@ -936,6 +989,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Text/Word Wrapping"); if (ImGui::TreeNode("Word Wrapping")) { // Using shortcut. You can use PushTextWrapPos()/PopTextWrapPos() for more flexibility. @@ -969,6 +1023,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Text/UTF-8 Text"); if (ImGui::TreeNode("UTF-8 Text")) { // UTF-8 test with Japanese characters @@ -995,6 +1050,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Images"); if (ImGui::TreeNode("Images")) { ImGuiIO& io = ImGui::GetIO(); @@ -1048,6 +1104,8 @@ static void ShowDemoWindowWidgets() ImGui::EndTooltip(); } } + + IMGUI_DEMO_MARKER("Widgets/Images/Textured buttons"); ImGui::TextWrapped("And now some textured buttons.."); static int pressed_count = 0; for (int i = 0; i < 8; i++) @@ -1069,6 +1127,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Combo"); if (ImGui::TreeNode("Combo")) { // Expose flags as checkbox for the demo @@ -1119,6 +1178,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/List Boxes"); if (ImGui::TreeNode("List boxes")) { // Using the generic BeginListBox() API, you have full control over how to display the combo contents. @@ -1161,6 +1221,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Selectables"); if (ImGui::TreeNode("Selectables")) { // Selectable() has 2 overloads: @@ -1169,6 +1230,7 @@ static void ShowDemoWindowWidgets() // - The one taking "bool* p_selected" as a read-write selection information (convenient in some cases) // The earlier is more flexible, as in real application your selection may be stored in many different ways // and not necessarily inside a bool value (e.g. in flags within objects, as an external list, etc). + IMGUI_DEMO_MARKER("Widgets/Selectables/Basic"); if (ImGui::TreeNode("Basic")) { static bool selection[5] = { false, true, false, false, false }; @@ -1181,6 +1243,7 @@ static void ShowDemoWindowWidgets() selection[4] = !selection[4]; ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Selectables/Single Selection"); if (ImGui::TreeNode("Selection State: Single Selection")) { static int selected = -1; @@ -1193,6 +1256,7 @@ static void ShowDemoWindowWidgets() } ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Selectables/Multiple Selection"); if (ImGui::TreeNode("Selection State: Multiple Selection")) { HelpMarker("Hold CTRL and click to select multiple items."); @@ -1210,6 +1274,7 @@ static void ShowDemoWindowWidgets() } ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Selectables/Rendering more text into the same line"); if (ImGui::TreeNode("Rendering more text into the same line")) { // Using the Selectable() override that takes "bool* p_selected" parameter, @@ -1220,6 +1285,7 @@ static void ShowDemoWindowWidgets() ImGui::Selectable("Hello.h", &selected[2]); ImGui::SameLine(300); ImGui::Text(" 2,345 bytes"); ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Selectables/In columns"); if (ImGui::TreeNode("In columns")) { static bool selected[10] = {}; @@ -1254,6 +1320,7 @@ static void ShowDemoWindowWidgets() } ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Selectables/Grid"); if (ImGui::TreeNode("Grid")) { static char selected[4][4] = { { 1, 0, 0, 0 }, { 0, 1, 0, 0 }, { 0, 0, 1, 0 }, { 0, 0, 0, 1 } }; @@ -1286,6 +1353,7 @@ static void ShowDemoWindowWidgets() ImGui::PopStyleVar(); ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Selectables/Alignment"); if (ImGui::TreeNode("Alignment")) { HelpMarker( @@ -1313,8 +1381,10 @@ static void ShowDemoWindowWidgets() // To wire InputText() with std::string or any other custom string type, // see the "Text Input > Resize Callback" section of this demo, and the misc/cpp/imgui_stdlib.h file. + IMGUI_DEMO_MARKER("Widgets/Text Input"); if (ImGui::TreeNode("Text Input")) { + IMGUI_DEMO_MARKER("Widgets/Text Input/Multi-line Text Input"); if (ImGui::TreeNode("Multi-line Text Input")) { // Note: we are using a fixed-sized buffer for simplicity here. See ImGuiInputTextFlags_CallbackResize @@ -1340,6 +1410,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Text Input/Filtered Text Input"); if (ImGui::TreeNode("Filtered Text Input")) { struct TextFilters @@ -1362,6 +1433,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Text Input/Password input"); if (ImGui::TreeNode("Password Input")) { static char password[64] = "password123"; @@ -1428,6 +1500,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Text Input/Resize Callback"); if (ImGui::TreeNode("Resize Callback")) { // To wire InputText() with std::string or any other custom string type, @@ -1474,8 +1547,10 @@ static void ShowDemoWindowWidgets() } // Tabs + IMGUI_DEMO_MARKER("Widgets/Tabs"); if (ImGui::TreeNode("Tabs")) { + IMGUI_DEMO_MARKER("Widgets/Tabs/Basic"); if (ImGui::TreeNode("Basic")) { ImGuiTabBarFlags tab_bar_flags = ImGuiTabBarFlags_None; @@ -1502,6 +1577,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Tabs/Advanced & Close Button"); if (ImGui::TreeNode("Advanced & Close Button")) { // Expose a couple of the available flags. In most cases you may just call BeginTabBar() with no flags (0). @@ -1544,6 +1620,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Tabs/TabItemButton & Leading-Trailing flags"); if (ImGui::TreeNode("TabItemButton & Leading/Trailing flags")) { static ImVector active_tabs; @@ -1613,16 +1690,19 @@ static void ShowDemoWindowWidgets() } // Plot/Graph widgets are not very good. - // Consider writing your own, or using a third-party one, see: - // - ImPlot https://github.com/epezent/implot - // - others https://github.com/ocornut/imgui/wiki/Useful-Extensions - if (ImGui::TreeNode("Plots Widgets")) + // Consider using a third-party library such as ImPlot: https://github.com/epezent/implot + // (see others https://github.com/ocornut/imgui/wiki/Useful-Extensions) + IMGUI_DEMO_MARKER("Widgets/Plotting"); + if (ImGui::TreeNode("Plotting")) { static bool animate = true; ImGui::Checkbox("Animate", &animate); + // Plot as lines and plot as histogram + IMGUI_DEMO_MARKER("Widgets/Plotting/PlotLines, PlotHistogram"); static float arr[] = { 0.6f, 0.1f, 1.0f, 0.5f, 0.92f, 0.1f, 0.2f }; ImGui::PlotLines("Frame Times", arr, IM_ARRAYSIZE(arr)); + ImGui::PlotHistogram("Histogram", arr, IM_ARRAYSIZE(arr), 0, NULL, 0.0f, 1.0f, ImVec2(0, 80.0f)); // Fill an array of contiguous float values to plot // Tip: If your float aren't contiguous but part of a structure, you can pass a pointer to your first float @@ -1652,7 +1732,6 @@ static void ShowDemoWindowWidgets() sprintf(overlay, "avg %f", average); ImGui::PlotLines("Lines", values, IM_ARRAYSIZE(values), values_offset, overlay, -1.0f, 1.0f, ImVec2(0, 80.0f)); } - ImGui::PlotHistogram("Histogram", arr, IM_ARRAYSIZE(arr), 0, NULL, 0.0f, 1.0f, ImVec2(0, 80.0f)); // Use functions to generate output // FIXME: This is rather awkward because current plot API only pass in indices. @@ -1674,6 +1753,7 @@ static void ShowDemoWindowWidgets() ImGui::Separator(); // Animate a simple progress bar + IMGUI_DEMO_MARKER("Widgets/Plotting/ProgressBar"); static float progress = 0.0f, progress_dir = 1.0f; if (animate) { @@ -1695,6 +1775,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Color"); if (ImGui::TreeNode("Color/Picker Widgets")) { static ImVec4 color = ImVec4(114.0f / 255.0f, 144.0f / 255.0f, 154.0f / 255.0f, 200.0f / 255.0f); @@ -1711,18 +1792,22 @@ static void ShowDemoWindowWidgets() ImGui::Checkbox("With HDR", &hdr); ImGui::SameLine(); HelpMarker("Currently all this does is to lift the 0..1 limits on dragging widgets."); ImGuiColorEditFlags misc_flags = (hdr ? ImGuiColorEditFlags_HDR : 0) | (drag_and_drop ? 0 : ImGuiColorEditFlags_NoDragDrop) | (alpha_half_preview ? ImGuiColorEditFlags_AlphaPreviewHalf : (alpha_preview ? ImGuiColorEditFlags_AlphaPreview : 0)) | (options_menu ? 0 : ImGuiColorEditFlags_NoOptions); + IMGUI_DEMO_MARKER("Widgets/Color/ColorEdit"); ImGui::Text("Color widget:"); ImGui::SameLine(); HelpMarker( "Click on the color square to open a color picker.\n" "CTRL+click on individual component to input value.\n"); ImGui::ColorEdit3("MyColor##1", (float*)&color, misc_flags); + IMGUI_DEMO_MARKER("Widgets/Color/ColorEdit (HSV, with Alpha)"); ImGui::Text("Color widget HSV with Alpha:"); ImGui::ColorEdit4("MyColor##2", (float*)&color, ImGuiColorEditFlags_DisplayHSV | misc_flags); + IMGUI_DEMO_MARKER("Widgets/Color/ColorEdit (float display)"); ImGui::Text("Color widget with Float Display:"); ImGui::ColorEdit4("MyColor##2f", (float*)&color, ImGuiColorEditFlags_Float | misc_flags); + IMGUI_DEMO_MARKER("Widgets/Color/ColorButton (with Picker)"); ImGui::Text("Color button with Picker:"); ImGui::SameLine(); HelpMarker( "With the ImGuiColorEditFlags_NoInputs flag you can hide all the slider/text inputs.\n" @@ -1730,6 +1815,7 @@ static void ShowDemoWindowWidgets() "be used for the tooltip and picker popup."); ImGui::ColorEdit4("MyColor##3", (float*)&color, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_NoLabel | misc_flags); + IMGUI_DEMO_MARKER("Widgets/Color/ColorButton (with custom Picker popup)"); ImGui::Text("Color button with Custom Picker Popup:"); // Generate a default palette. The palette will persist and can be edited. @@ -1797,11 +1883,13 @@ static void ShowDemoWindowWidgets() ImGui::EndPopup(); } + IMGUI_DEMO_MARKER("Widgets/Color/ColorButton (simple)"); ImGui::Text("Color button only:"); static bool no_border = false; ImGui::Checkbox("ImGuiColorEditFlags_NoBorder", &no_border); ImGui::ColorButton("MyColor##3c", *(ImVec4*)&color, misc_flags | (no_border ? ImGuiColorEditFlags_NoBorder : 0), ImVec2(80, 80)); + IMGUI_DEMO_MARKER("Widgets/Color/ColorPicker"); ImGui::Text("Color picker:"); static bool alpha = true; static bool alpha_bar = true; @@ -1869,6 +1957,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Drag and Slider Flags"); if (ImGui::TreeNode("Drag/Slider Flags")) { // Demonstrate using advanced flags for DragXXX and SliderXXX functions. Note that the flags are the same! @@ -1902,6 +1991,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Range Widgets"); if (ImGui::TreeNode("Range Widgets")) { static float begin = 10, end = 90; @@ -1912,6 +2002,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Data Types"); if (ImGui::TreeNode("Data Types")) { // DragScalar/InputScalar/SliderScalar functions allow various data types @@ -1961,6 +2052,7 @@ static void ShowDemoWindowWidgets() const float drag_speed = 0.2f; static bool drag_clamp = false; + IMGUI_DEMO_MARKER("Widgets/Data Types/Drags"); ImGui::Text("Drags:"); ImGui::Checkbox("Clamp integers to 0..50", &drag_clamp); ImGui::SameLine(); HelpMarker( @@ -1979,6 +2071,7 @@ static void ShowDemoWindowWidgets() ImGui::DragScalar("drag double", ImGuiDataType_Double, &f64_v, 0.0005f, &f64_zero, NULL, "%.10f grams"); ImGui::DragScalar("drag double log",ImGuiDataType_Double, &f64_v, 0.0005f, &f64_zero, &f64_one, "0 < %.10f < 1", ImGuiSliderFlags_Logarithmic); + IMGUI_DEMO_MARKER("Widgets/Data Types/Sliders"); ImGui::Text("Sliders"); ImGui::SliderScalar("slider s8 full", ImGuiDataType_S8, &s8_v, &s8_min, &s8_max, "%d"); ImGui::SliderScalar("slider u8 full", ImGuiDataType_U8, &u8_v, &u8_min, &u8_max, "%u"); @@ -2011,6 +2104,7 @@ static void ShowDemoWindowWidgets() ImGui::SliderScalar("slider s64 reverse", ImGuiDataType_S64, &s64_v, &s64_fifty, &s64_zero, "%" IM_PRId64); ImGui::SliderScalar("slider u64 reverse", ImGuiDataType_U64, &u64_v, &u64_fifty, &u64_zero, "%" IM_PRIu64 " ms"); + IMGUI_DEMO_MARKER("Widgets/Data Types/Inputs"); static bool inputs_step = true; ImGui::Text("Inputs"); ImGui::Checkbox("Show step buttons", &inputs_step); @@ -2030,6 +2124,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Multi-component Widgets"); if (ImGui::TreeNode("Multi-component Widgets")) { static float vec4f[4] = { 0.10f, 0.20f, 0.30f, 0.44f }; @@ -2061,6 +2156,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Vertical Sliders"); if (ImGui::TreeNode("Vertical Sliders")) { const float spacing = 4; @@ -2125,8 +2221,10 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Drag and drop"); if (ImGui::TreeNode("Drag and Drop")) { + IMGUI_DEMO_MARKER("Widgets/Drag and drop/Standard widgets"); if (ImGui::TreeNode("Drag and drop in standard widgets")) { // ColorEdit widgets automatically act as drag source and drag target. @@ -2141,6 +2239,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Drag and drop/Copy-swap items"); if (ImGui::TreeNode("Drag and drop to copy/swap items")) { enum Mode @@ -2208,6 +2307,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Drag and Drop/Drag to reorder items (simple)"); if (ImGui::TreeNode("Drag to reorder items (simple)")) { // Simple reordering @@ -2237,12 +2337,13 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } - if (ImGui::TreeNode("Querying Status (Edited/Active/Hovered etc.)")) + IMGUI_DEMO_MARKER("Widgets/Querying Item Status (Edited,Active,Hovered etc.)"); + if (ImGui::TreeNode("Querying Item Status (Edited/Active/Hovered etc.)")) { // Select an item type const char* item_names[] = { - "Text", "Button", "Button (w/ repeat)", "Checkbox", "SliderFloat", "InputText", "InputFloat", + "Text", "Button", "Button (w/ repeat)", "Checkbox", "SliderFloat", "InputText", "InputTextMultiline", "InputFloat", "InputFloat3", "ColorEdit4", "Selectable", "MenuItem", "TreeNode", "TreeNode (w/ double-click)", "Combo", "ListBox" }; static int item_type = 4; @@ -2265,15 +2366,16 @@ static void ShowDemoWindowWidgets() if (item_type == 3) { ret = ImGui::Checkbox("ITEM: Checkbox", &b); } // Testing checkbox if (item_type == 4) { ret = ImGui::SliderFloat("ITEM: SliderFloat", &col4f[0], 0.0f, 1.0f); } // Testing basic item if (item_type == 5) { ret = ImGui::InputText("ITEM: InputText", &str[0], IM_ARRAYSIZE(str)); } // Testing input text (which handles tabbing) - if (item_type == 6) { ret = ImGui::InputFloat("ITEM: InputFloat", col4f, 1.0f); } // Testing +/- buttons on scalar input - if (item_type == 7) { ret = ImGui::InputFloat3("ITEM: InputFloat3", col4f); } // Testing multi-component items (IsItemXXX flags are reported merged) - if (item_type == 8) { ret = ImGui::ColorEdit4("ITEM: ColorEdit4", col4f); } // Testing multi-component items (IsItemXXX flags are reported merged) - if (item_type == 9) { ret = ImGui::Selectable("ITEM: Selectable"); } // Testing selectable item - if (item_type == 10){ ret = ImGui::MenuItem("ITEM: MenuItem"); } // Testing menu item (they use ImGuiButtonFlags_PressedOnRelease button policy) - if (item_type == 11){ ret = ImGui::TreeNode("ITEM: TreeNode"); if (ret) ImGui::TreePop(); } // Testing tree node - if (item_type == 12){ ret = ImGui::TreeNodeEx("ITEM: TreeNode w/ ImGuiTreeNodeFlags_OpenOnDoubleClick", ImGuiTreeNodeFlags_OpenOnDoubleClick | ImGuiTreeNodeFlags_NoTreePushOnOpen); } // Testing tree node with ImGuiButtonFlags_PressedOnDoubleClick button policy. - if (item_type == 13){ const char* items[] = { "Apple", "Banana", "Cherry", "Kiwi" }; static int current = 1; ret = ImGui::Combo("ITEM: Combo", ¤t, items, IM_ARRAYSIZE(items)); } - if (item_type == 14){ const char* items[] = { "Apple", "Banana", "Cherry", "Kiwi" }; static int current = 1; ret = ImGui::ListBox("ITEM: ListBox", ¤t, items, IM_ARRAYSIZE(items), IM_ARRAYSIZE(items)); } + if (item_type == 6) { ret = ImGui::InputTextMultiline("ITEM: InputTextMultiline", &str[0], IM_ARRAYSIZE(str)); } // Testing input text (which uses a child window) + if (item_type == 7) { ret = ImGui::InputFloat("ITEM: InputFloat", col4f, 1.0f); } // Testing +/- buttons on scalar input + if (item_type == 8) { ret = ImGui::InputFloat3("ITEM: InputFloat3", col4f); } // Testing multi-component items (IsItemXXX flags are reported merged) + if (item_type == 9) { ret = ImGui::ColorEdit4("ITEM: ColorEdit4", col4f); } // Testing multi-component items (IsItemXXX flags are reported merged) + if (item_type == 10){ ret = ImGui::Selectable("ITEM: Selectable"); } // Testing selectable item + if (item_type == 11){ ret = ImGui::MenuItem("ITEM: MenuItem"); } // Testing menu item (they use ImGuiButtonFlags_PressedOnRelease button policy) + if (item_type == 12){ ret = ImGui::TreeNode("ITEM: TreeNode"); if (ret) ImGui::TreePop(); } // Testing tree node + if (item_type == 13){ ret = ImGui::TreeNodeEx("ITEM: TreeNode w/ ImGuiTreeNodeFlags_OpenOnDoubleClick", ImGuiTreeNodeFlags_OpenOnDoubleClick | ImGuiTreeNodeFlags_NoTreePushOnOpen); } // Testing tree node with ImGuiButtonFlags_PressedOnDoubleClick button policy. + if (item_type == 14){ const char* items[] = { "Apple", "Banana", "Cherry", "Kiwi" }; static int current = 1; ret = ImGui::Combo("ITEM: Combo", ¤t, items, IM_ARRAYSIZE(items)); } + if (item_type == 15){ const char* items[] = { "Apple", "Banana", "Cherry", "Kiwi" }; static int current = 1; ret = ImGui::ListBox("ITEM: ListBox", ¤t, items, IM_ARRAYSIZE(items), IM_ARRAYSIZE(items)); } // Display the values of IsItemHovered() and other common item state functions. // Note that the ImGuiHoveredFlags_XXX flags can be combined. @@ -2323,43 +2425,76 @@ static void ShowDemoWindowWidgets() if (item_disabled) ImGui::EndDisabled(); + char buf[1] = ""; + ImGui::InputText("unused", buf, IM_ARRAYSIZE(buf), ImGuiInputTextFlags_ReadOnly); + ImGui::SameLine(); + HelpMarker("This widget is only here to be able to tab-out of the widgets above and see e.g. Deactivated() status."); + + ImGui::TreePop(); + } + + IMGUI_DEMO_MARKER("Widgets/Querying Window Status (Focused,Hovered etc.)"); + if (ImGui::TreeNode("Querying Window Status (Focused/Hovered etc.)")) + { static bool embed_all_inside_a_child_window = false; - ImGui::Checkbox("Embed everything inside a child window (for additional testing)", &embed_all_inside_a_child_window); + ImGui::Checkbox("Embed everything inside a child window for testing _RootWindow flag.", &embed_all_inside_a_child_window); if (embed_all_inside_a_child_window) ImGui::BeginChild("outer_child", ImVec2(0, ImGui::GetFontSize() * 20.0f), true); // Testing IsWindowFocused() function with its various flags. - // Note that the ImGuiFocusedFlags_XXX flags can be combined. ImGui::BulletText( "IsWindowFocused() = %d\n" "IsWindowFocused(_ChildWindows) = %d\n" + "IsWindowFocused(_ChildWindows|_NoPopupHierarchy) = %d\n" + "IsWindowFocused(_ChildWindows|_DockHierarchy) = %d\n" "IsWindowFocused(_ChildWindows|_RootWindow) = %d\n" + "IsWindowFocused(_ChildWindows|_RootWindow|_NoPopupHierarchy) = %d\n" + "IsWindowFocused(_ChildWindows|_RootWindow|_DockHierarchy) = %d\n" "IsWindowFocused(_RootWindow) = %d\n" + "IsWindowFocused(_RootWindow|_NoPopupHierarchy) = %d\n" + "IsWindowFocused(_RootWindow|_DockHierarchy) = %d\n" "IsWindowFocused(_AnyWindow) = %d\n", ImGui::IsWindowFocused(), ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows), + ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows | ImGuiFocusedFlags_NoPopupHierarchy), + ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows | ImGuiFocusedFlags_DockHierarchy), ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows | ImGuiFocusedFlags_RootWindow), + ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows | ImGuiFocusedFlags_RootWindow | ImGuiFocusedFlags_NoPopupHierarchy), + ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows | ImGuiFocusedFlags_RootWindow | ImGuiFocusedFlags_DockHierarchy), ImGui::IsWindowFocused(ImGuiFocusedFlags_RootWindow), + ImGui::IsWindowFocused(ImGuiFocusedFlags_RootWindow | ImGuiFocusedFlags_NoPopupHierarchy), + ImGui::IsWindowFocused(ImGuiFocusedFlags_RootWindow | ImGuiFocusedFlags_DockHierarchy), ImGui::IsWindowFocused(ImGuiFocusedFlags_AnyWindow)); // Testing IsWindowHovered() function with its various flags. - // Note that the ImGuiHoveredFlags_XXX flags can be combined. ImGui::BulletText( "IsWindowHovered() = %d\n" "IsWindowHovered(_AllowWhenBlockedByPopup) = %d\n" "IsWindowHovered(_AllowWhenBlockedByActiveItem) = %d\n" "IsWindowHovered(_ChildWindows) = %d\n" + "IsWindowHovered(_ChildWindows|_NoPopupHierarchy) = %d\n" + "IsWindowHovered(_ChildWindows|_DockHierarchy) = %d\n" "IsWindowHovered(_ChildWindows|_RootWindow) = %d\n" - "IsWindowHovered(_ChildWindows|_AllowWhenBlockedByPopup) = %d\n" + "IsWindowHovered(_ChildWindows|_RootWindow|_NoPopupHierarchy) = %d\n" + "IsWindowHovered(_ChildWindows|_RootWindow|_DockHierarchy) = %d\n" "IsWindowHovered(_RootWindow) = %d\n" + "IsWindowHovered(_RootWindow|_NoPopupHierarchy) = %d\n" + "IsWindowHovered(_RootWindow|_DockHierarchy) = %d\n" + "IsWindowHovered(_ChildWindows|_AllowWhenBlockedByPopup) = %d\n" "IsWindowHovered(_AnyWindow) = %d\n", ImGui::IsWindowHovered(), ImGui::IsWindowHovered(ImGuiHoveredFlags_AllowWhenBlockedByPopup), ImGui::IsWindowHovered(ImGuiHoveredFlags_AllowWhenBlockedByActiveItem), ImGui::IsWindowHovered(ImGuiHoveredFlags_ChildWindows), + ImGui::IsWindowHovered(ImGuiHoveredFlags_ChildWindows | ImGuiHoveredFlags_NoPopupHierarchy), + ImGui::IsWindowHovered(ImGuiHoveredFlags_ChildWindows | ImGuiHoveredFlags_DockHierarchy), ImGui::IsWindowHovered(ImGuiHoveredFlags_ChildWindows | ImGuiHoveredFlags_RootWindow), - ImGui::IsWindowHovered(ImGuiHoveredFlags_ChildWindows | ImGuiHoveredFlags_AllowWhenBlockedByPopup), + ImGui::IsWindowHovered(ImGuiHoveredFlags_ChildWindows | ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_NoPopupHierarchy), + ImGui::IsWindowHovered(ImGuiHoveredFlags_ChildWindows | ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_DockHierarchy), ImGui::IsWindowHovered(ImGuiHoveredFlags_RootWindow), + ImGui::IsWindowHovered(ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_NoPopupHierarchy), + ImGui::IsWindowHovered(ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_DockHierarchy), + ImGui::IsWindowHovered(ImGuiHoveredFlags_ChildWindows | ImGuiHoveredFlags_AllowWhenBlockedByPopup), ImGui::IsWindowHovered(ImGuiHoveredFlags_AnyWindow)); ImGui::BeginChild("child", ImVec2(0, 50), true); @@ -2368,9 +2503,6 @@ static void ShowDemoWindowWidgets() if (embed_all_inside_a_child_window) ImGui::EndChild(); - static char unused_str[] = "This widget is only here to be able to tab-out of the widgets above."; - ImGui::InputText("unused", unused_str, IM_ARRAYSIZE(unused_str), ImGuiInputTextFlags_ReadOnly); - // Calling IsItemHovered() after begin returns the hovered status of the title bar. // This is useful in particular if you want to create a context menu associated to the title bar of a window. // This will also work when docked into a Tab (the Tab replace the Title Bar and guarantee the same properties). @@ -2401,6 +2533,7 @@ static void ShowDemoWindowWidgets() if (disable_all) ImGui::EndDisabled(); + IMGUI_DEMO_MARKER("Widgets/Disable Block"); if (ImGui::TreeNode("Disable block")) { ImGui::Checkbox("Disable entire section above", &disable_all); @@ -2411,9 +2544,11 @@ static void ShowDemoWindowWidgets() static void ShowDemoWindowLayout() { + IMGUI_DEMO_MARKER("Layout"); if (!ImGui::CollapsingHeader("Layout & Scrolling")) return; + IMGUI_DEMO_MARKER("Layout/Child windows"); if (ImGui::TreeNode("Child windows")) { HelpMarker("Use child windows to begin into a self-contained independent scrolling/clipping regions within a host window."); @@ -2499,6 +2634,7 @@ static void ShowDemoWindowLayout() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Layout/Widgets Width"); if (ImGui::TreeNode("Widgets Width")) { static float f = 0.0f; @@ -2575,11 +2711,13 @@ static void ShowDemoWindowLayout() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Layout/Basic Horizontal Layout"); if (ImGui::TreeNode("Basic Horizontal Layout")) { ImGui::TextWrapped("(Use ImGui::SameLine() to keep adding items to the right of the preceding item)"); // Text + IMGUI_DEMO_MARKER("Layout/Basic Horizontal Layout/SameLine"); ImGui::Text("Two items: Hello"); ImGui::SameLine(); ImGui::TextColored(ImVec4(1,1,0,1), "Sailor"); @@ -2600,6 +2738,7 @@ static void ShowDemoWindowLayout() ImGui::Text("can fit within a text block."); // Aligned to arbitrary position. Easy/cheap column. + IMGUI_DEMO_MARKER("Layout/Basic Horizontal Layout/SameLine (with offset)"); ImGui::Text("Aligned"); ImGui::SameLine(150); ImGui::Text("x=150"); ImGui::SameLine(300); ImGui::Text("x=300"); @@ -2608,6 +2747,7 @@ static void ShowDemoWindowLayout() ImGui::SameLine(300); ImGui::SmallButton("x=300"); // Checkbox + IMGUI_DEMO_MARKER("Layout/Basic Horizontal Layout/SameLine (more)"); static bool c1 = false, c2 = false, c3 = false, c4 = false; ImGui::Checkbox("My", &c1); ImGui::SameLine(); ImGui::Checkbox("Tailor", &c2); ImGui::SameLine(); @@ -2639,6 +2779,7 @@ static void ShowDemoWindowLayout() ImGui::PopItemWidth(); // Dummy + IMGUI_DEMO_MARKER("Layout/Basic Horizontal Layout/Dummy"); ImVec2 button_sz(40, 40); ImGui::Button("A", button_sz); ImGui::SameLine(); ImGui::Dummy(button_sz); ImGui::SameLine(); @@ -2646,7 +2787,8 @@ static void ShowDemoWindowLayout() // Manually wrapping // (we should eventually provide this as an automatic layout feature, but for now you can do it manually) - ImGui::Text("Manually wrapping:"); + IMGUI_DEMO_MARKER("Layout/Basic Horizontal Layout/Manual wrapping"); + ImGui::Text("Manual wrapping:"); ImGuiStyle& style = ImGui::GetStyle(); int buttons_count = 20; float window_visible_x2 = ImGui::GetWindowPos().x + ImGui::GetWindowContentRegionMax().x; @@ -2664,6 +2806,7 @@ static void ShowDemoWindowLayout() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Layout/Groups"); if (ImGui::TreeNode("Groups")) { HelpMarker( @@ -2711,6 +2854,7 @@ static void ShowDemoWindowLayout() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Layout/Text Baseline Alignment"); if (ImGui::TreeNode("Text Baseline Alignment")) { { @@ -2829,9 +2973,11 @@ static void ShowDemoWindowLayout() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Layout/Scrolling"); if (ImGui::TreeNode("Scrolling")) { // Vertical scroll functions + IMGUI_DEMO_MARKER("Layout/Scrolling/Vertical"); HelpMarker("Use SetScrollHereY() or SetScrollFromPosY() to scroll to a given vertical position."); static int track_item = 50; @@ -2904,6 +3050,7 @@ static void ShowDemoWindowLayout() ImGui::PopID(); // Horizontal scroll functions + IMGUI_DEMO_MARKER("Layout/Scrolling/Horizontal"); ImGui::Spacing(); HelpMarker( "Use SetScrollHereX() or SetScrollFromPosX() to scroll to a given horizontal position.\n\n" @@ -2949,6 +3096,7 @@ static void ShowDemoWindowLayout() ImGui::PopID(); // Miscellaneous Horizontal Scrolling Demo + IMGUI_DEMO_MARKER("Layout/Scrolling/Horizontal (more)"); HelpMarker( "Horizontal scrolling for a window is enabled via the ImGuiWindowFlags_HorizontalScrollbar flag.\n\n" "You may want to also explicitly specify content width by using SetNextWindowContentWidth() before Begin()."); @@ -3023,6 +3171,7 @@ static void ShowDemoWindowLayout() if (explicit_content_size) ImGui::SetNextWindowContentSize(ImVec2(contents_size_x, 0.0f)); ImGui::Begin("Horizontal contents size demo window", &show_horizontal_contents_size_demo_window, show_h_scrollbar ? ImGuiWindowFlags_HorizontalScrollbar : 0); + IMGUI_DEMO_MARKER("Layout/Scrolling/Horizontal contents size demo window"); ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(2, 0)); ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(2, 0)); HelpMarker("Test of different widgets react and impact the work rectangle growing when horizontal scrolling is enabled.\n\nUse 'Metrics->Tools->Show windows rectangles' to visualize rectangles."); @@ -3109,6 +3258,7 @@ static void ShowDemoWindowLayout() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Layout/Clipping"); if (ImGui::TreeNode("Clipping")) { static ImVec2 size(100.0f, 100.0f); @@ -3177,6 +3327,7 @@ static void ShowDemoWindowLayout() static void ShowDemoWindowPopups() { + IMGUI_DEMO_MARKER("Popups"); if (!ImGui::CollapsingHeader("Popups & Modal windows")) return; @@ -3198,6 +3349,7 @@ static void ShowDemoWindowPopups() // With popups we have to go through a library call (here OpenPopup) to manipulate the visibility state. // This may be a bit confusing at first but it should quickly make sense. Follow on the examples below. + IMGUI_DEMO_MARKER("Popups/Popups"); if (ImGui::TreeNode("Popups")) { ImGui::TextWrapped( @@ -3266,17 +3418,33 @@ static void ShowDemoWindowPopups() } // Call the more complete ShowExampleMenuFile which we use in various places of this demo - if (ImGui::Button("File Menu..")) + if (ImGui::Button("With a menu..")) ImGui::OpenPopup("my_file_popup"); - if (ImGui::BeginPopup("my_file_popup")) + if (ImGui::BeginPopup("my_file_popup", ImGuiWindowFlags_MenuBar)) { - ShowExampleMenuFile(); + if (ImGui::BeginMenuBar()) + { + if (ImGui::BeginMenu("File")) + { + ShowExampleMenuFile(); + ImGui::EndMenu(); + } + if (ImGui::BeginMenu("Edit")) + { + ImGui::MenuItem("Dummy"); + ImGui::EndMenu(); + } + ImGui::EndMenuBar(); + } + ImGui::Text("Hello from popup!"); + ImGui::Button("This is a dummy button.."); ImGui::EndPopup(); } ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Popups/Context menus"); if (ImGui::TreeNode("Context menus")) { HelpMarker("\"Context\" functions are simple helpers to associate a Popup to a given Item or Window identifier."); @@ -3361,6 +3529,7 @@ static void ShowDemoWindowPopups() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Popups/Modals"); if (ImGui::TreeNode("Modals")) { ImGui::TextWrapped("Modal windows are like popups but the user cannot close them by clicking outside."); @@ -3436,6 +3605,7 @@ static void ShowDemoWindowPopups() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Popups/Menus inside a regular window"); if (ImGui::TreeNode("Menus inside a regular window")) { ImGui::TextWrapped("Below we are testing adding menu items to a regular window. It's rather unusual but should work!"); @@ -3615,6 +3785,7 @@ static void ShowTableColumnsStatusFlags(ImGuiTableColumnFlags flags) static void ShowDemoWindowTables() { //ImGui::SetNextItemOpen(true, ImGuiCond_Once); + IMGUI_DEMO_MARKER("Tables"); if (!ImGui::CollapsingHeader("Tables & Columns")) return; @@ -3654,6 +3825,7 @@ static void ShowDemoWindowTables() // Demos if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Basic"); if (ImGui::TreeNode("Basic")) { // Here we will showcase three different ways to output a table. @@ -3715,6 +3887,7 @@ static void ShowDemoWindowTables() if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Borders, background"); if (ImGui::TreeNode("Borders, background")) { // Expose a few Borders related flags interactively @@ -3785,6 +3958,7 @@ static void ShowDemoWindowTables() if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Resizable, stretch"); if (ImGui::TreeNode("Resizable, stretch")) { // By default, if we don't enable ScrollX the sizing policy for each columns is "Stretch" @@ -3814,6 +3988,7 @@ static void ShowDemoWindowTables() if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Resizable, fixed"); if (ImGui::TreeNode("Resizable, fixed")) { // Here we use ImGuiTableFlags_SizingFixedFit (even though _ScrollX is not set) @@ -3847,6 +4022,7 @@ static void ShowDemoWindowTables() if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Resizable, mixed"); if (ImGui::TreeNode("Resizable, mixed")) { HelpMarker( @@ -3896,6 +4072,7 @@ static void ShowDemoWindowTables() if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Reorderable, hideable, with headers"); if (ImGui::TreeNode("Reorderable, hideable, with headers")) { HelpMarker( @@ -3953,6 +4130,7 @@ static void ShowDemoWindowTables() if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Padding"); if (ImGui::TreeNode("Padding")) { // First example: showcase use of padding flags and effect of BorderOuterV/BorderInnerV on X padding. @@ -4061,6 +4239,7 @@ static void ShowDemoWindowTables() if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Explicit widths"); if (ImGui::TreeNode("Sizing policies")) { static ImGuiTableFlags flags1 = ImGuiTableFlags_BordersV | ImGuiTableFlags_BordersOuterH | ImGuiTableFlags_RowBg | ImGuiTableFlags_ContextMenuInBody; @@ -4164,6 +4343,7 @@ static void ShowDemoWindowTables() if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Vertical scrolling, with clipping"); if (ImGui::TreeNode("Vertical scrolling, with clipping")) { HelpMarker("Here we activate ScrollY, which will create a child window container to allow hosting scrollable contents.\n\nWe also demonstrate using ImGuiListClipper to virtualize the submission of many items."); @@ -4206,6 +4386,7 @@ static void ShowDemoWindowTables() if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Horizontal scrolling"); if (ImGui::TreeNode("Horizontal scrolling")) { HelpMarker( @@ -4294,6 +4475,7 @@ static void ShowDemoWindowTables() if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Columns flags"); if (ImGui::TreeNode("Columns flags")) { // Create a first table just to show all the options/flags we want to make visible in our example! @@ -4358,6 +4540,7 @@ static void ShowDemoWindowTables() if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Columns widths"); if (ImGui::TreeNode("Columns widths")) { HelpMarker("Using TableSetupColumn() to setup default width."); @@ -4423,6 +4606,7 @@ static void ShowDemoWindowTables() if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Nested tables"); if (ImGui::TreeNode("Nested tables")) { HelpMarker("This demonstrate embedding a table into another table cell."); @@ -4467,6 +4651,7 @@ static void ShowDemoWindowTables() if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Row height"); if (ImGui::TreeNode("Row height")) { HelpMarker("You can pass a 'min_row_height' to TableNextRow().\n\nRows are padded with 'style.CellPadding.y' on top and bottom, so effectively the minimum row height will always be >= 'style.CellPadding.y * 2.0f'.\n\nWe cannot honor a _maximum_ row height as that would requires a unique clipping rectangle per row."); @@ -4486,6 +4671,7 @@ static void ShowDemoWindowTables() if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Outer size"); if (ImGui::TreeNode("Outer size")) { // Showcasing use of ImGuiTableFlags_NoHostExtendX and ImGuiTableFlags_NoHostExtendY @@ -4552,6 +4738,7 @@ static void ShowDemoWindowTables() if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Background color"); if (ImGui::TreeNode("Background color")) { static ImGuiTableFlags flags = ImGuiTableFlags_RowBg; @@ -4609,6 +4796,7 @@ static void ShowDemoWindowTables() if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Tree view"); if (ImGui::TreeNode("Tree view")) { static ImGuiTableFlags flags = ImGuiTableFlags_BordersV | ImGuiTableFlags_BordersOuterH | ImGuiTableFlags_Resizable | ImGuiTableFlags_RowBg | ImGuiTableFlags_NoBordersInBody; @@ -4680,6 +4868,7 @@ static void ShowDemoWindowTables() if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Item width"); if (ImGui::TreeNode("Item width")) { HelpMarker( @@ -4725,6 +4914,7 @@ static void ShowDemoWindowTables() // Demonstrate using TableHeader() calls instead of TableHeadersRow() if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Custom headers"); if (ImGui::TreeNode("Custom headers")) { const int COLUMNS_COUNT = 3; @@ -4772,6 +4962,7 @@ static void ShowDemoWindowTables() // Demonstrate creating custom context menus inside columns, while playing it nice with context menus provided by TableHeadersRow()/TableHeader() if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Context menus"); if (ImGui::TreeNode("Context menus")) { HelpMarker("By default, right-clicking over a TableHeadersRow()/TableHeader() line will open the default context-menu.\nUsing ImGuiTableFlags_ContextMenuInBody we also allow right-clicking over columns body."); @@ -4878,6 +5069,7 @@ static void ShowDemoWindowTables() // Demonstrate creating multiple tables with the same ID if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Synced instances"); if (ImGui::TreeNode("Synced instances")) { HelpMarker("Multiple tables with the same identifier will share their settings, width, visibility, order etc."); @@ -4913,6 +5105,7 @@ static void ShowDemoWindowTables() }; if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Sorting"); if (ImGui::TreeNode("Sorting")) { // Create item list @@ -5000,6 +5193,7 @@ static void ShowDemoWindowTables() //ImGui::SetNextItemOpen(true, ImGuiCond_Once); // [DEBUG] if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Advanced"); if (ImGui::TreeNode("Advanced")) { static ImGuiTableFlags flags = @@ -5316,6 +5510,7 @@ static void ShowDemoWindowTables() // [2020: Columns are under-featured and not maintained. Prefer using the more flexible and powerful BeginTable() API!] static void ShowDemoWindowColumns() { + IMGUI_DEMO_MARKER("Columns (legacy API)"); bool open = ImGui::TreeNode("Legacy Columns API"); ImGui::SameLine(); HelpMarker("Columns() is an old API! Prefer using the more flexible and powerful BeginTable() API!"); @@ -5323,6 +5518,7 @@ static void ShowDemoWindowColumns() return; // Basic columns + IMGUI_DEMO_MARKER("Columns (legacy API)/Basic"); if (ImGui::TreeNode("Basic")) { ImGui::Text("Without border:"); @@ -5367,6 +5563,7 @@ static void ShowDemoWindowColumns() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Columns (legacy API)/Borders"); if (ImGui::TreeNode("Borders")) { // NB: Future columns API should allow automatic horizontal borders. @@ -5402,6 +5599,7 @@ static void ShowDemoWindowColumns() } // Create multiple items in a same cell before switching to next column + IMGUI_DEMO_MARKER("Columns (legacy API)/Mixed items"); if (ImGui::TreeNode("Mixed items")) { ImGui::Columns(3, "mixed"); @@ -5433,6 +5631,7 @@ static void ShowDemoWindowColumns() } // Word wrapping + IMGUI_DEMO_MARKER("Columns (legacy API)/Word-wrapping"); if (ImGui::TreeNode("Word-wrapping")) { ImGui::Columns(2, "word-wrapping"); @@ -5447,6 +5646,7 @@ static void ShowDemoWindowColumns() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Columns (legacy API)/Horizontal Scrolling"); if (ImGui::TreeNode("Horizontal Scrolling")) { ImGui::SetNextWindowContentSize(ImVec2(1500.0f, 0.0f)); @@ -5472,6 +5672,7 @@ static void ShowDemoWindowColumns() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Columns (legacy API)/Tree"); if (ImGui::TreeNode("Tree")) { ImGui::Columns(2, "tree", true); @@ -5513,6 +5714,7 @@ static void ShowDemoWindowColumns() static void ShowDemoWindowMisc() { + IMGUI_DEMO_MARKER("Filtering"); if (ImGui::CollapsingHeader("Filtering")) { // Helper class to easy setup a text filter. @@ -5530,6 +5732,7 @@ static void ShowDemoWindowMisc() ImGui::BulletText("%s", lines[i]); } + IMGUI_DEMO_MARKER("Inputs, Navigation & Focus"); if (ImGui::CollapsingHeader("Inputs, Navigation & Focus")) { ImGuiIO& io = ImGui::GetIO(); @@ -5543,6 +5746,7 @@ static void ShowDemoWindowMisc() ImGui::Text("NavActive: %d, NavVisible: %d", io.NavActive, io.NavVisible); // Display Mouse state + IMGUI_DEMO_MARKER("Inputs, Navigation & Focus/Mouse State"); if (ImGui::TreeNode("Mouse State")) { if (ImGui::IsMousePosValid()) @@ -5550,16 +5754,18 @@ static void ShowDemoWindowMisc() else ImGui::Text("Mouse pos: "); ImGui::Text("Mouse delta: (%g, %g)", io.MouseDelta.x, io.MouseDelta.y); - ImGui::Text("Mouse down:"); for (int i = 0; i < IM_ARRAYSIZE(io.MouseDown); i++) if (ImGui::IsMouseDown(i)) { ImGui::SameLine(); ImGui::Text("b%d (%.02f secs)", i, io.MouseDownDuration[i]); } - ImGui::Text("Mouse clicked:"); for (int i = 0; i < IM_ARRAYSIZE(io.MouseDown); i++) if (ImGui::IsMouseClicked(i)) { ImGui::SameLine(); ImGui::Text("b%d", i); } - ImGui::Text("Mouse dblclick:"); for (int i = 0; i < IM_ARRAYSIZE(io.MouseDown); i++) if (ImGui::IsMouseDoubleClicked(i)){ ImGui::SameLine(); ImGui::Text("b%d", i); } - ImGui::Text("Mouse released:"); for (int i = 0; i < IM_ARRAYSIZE(io.MouseDown); i++) if (ImGui::IsMouseReleased(i)) { ImGui::SameLine(); ImGui::Text("b%d", i); } + + int count = IM_ARRAYSIZE(io.MouseDown); + ImGui::Text("Mouse down:"); for (int i = 0; i < count; i++) if (ImGui::IsMouseDown(i)) { ImGui::SameLine(); ImGui::Text("b%d (%.02f secs)", i, io.MouseDownDuration[i]); } + ImGui::Text("Mouse clicked:"); for (int i = 0; i < count; i++) if (ImGui::IsMouseClicked(i)) { ImGui::SameLine(); ImGui::Text("b%d (%d)", i, ImGui::GetMouseClickedCount(i)); } + ImGui::Text("Mouse released:"); for (int i = 0; i < count; i++) if (ImGui::IsMouseReleased(i)) { ImGui::SameLine(); ImGui::Text("b%d", i); } ImGui::Text("Mouse wheel: %.1f", io.MouseWheel); ImGui::Text("Pen Pressure: %.1f", io.PenPressure); // Note: currently unused ImGui::TreePop(); } // Display Keyboard/Mouse state + IMGUI_DEMO_MARKER("Inputs, Navigation & Focus/Keyboard & Navigation State"); if (ImGui::TreeNode("Keyboard & Navigation State")) { ImGui::Text("Keys down:"); for (int i = 0; i < IM_ARRAYSIZE(io.KeysDown); i++) if (ImGui::IsKeyDown(i)) { ImGui::SameLine(); ImGui::Text("%d (0x%X) (%.02f secs)", i, i, io.KeysDownDuration[i]); } @@ -5581,6 +5787,7 @@ static void ShowDemoWindowMisc() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Inputs, Navigation & Focus/Tabbing"); if (ImGui::TreeNode("Tabbing")) { ImGui::Text("Use TAB/SHIFT+TAB to cycle through keyboard editable fields."); @@ -5596,6 +5803,7 @@ static void ShowDemoWindowMisc() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Inputs, Navigation & Focus/Focus from code"); if (ImGui::TreeNode("Focus from code")) { bool focus_1 = ImGui::Button("Focus on 1"); ImGui::SameLine(); @@ -5637,6 +5845,7 @@ static void ShowDemoWindowMisc() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Inputs, Navigation & Focus/Dragging"); if (ImGui::TreeNode("Dragging")) { ImGui::TextWrapped("You can use ImGui::GetMouseDragDelta(0) to query for the dragged amount on any widget."); @@ -5665,6 +5874,7 @@ static void ShowDemoWindowMisc() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Inputs, Navigation & Focus/Mouse cursors"); if (ImGui::TreeNode("Mouse cursors")) { const char* mouse_cursors_names[] = { "Arrow", "TextInput", "ResizeAll", "ResizeNS", "ResizeEW", "ResizeNESW", "ResizeNWSE", "Hand", "NotAllowed" }; @@ -5702,6 +5912,7 @@ void ImGui::ShowAboutWindow(bool* p_open) ImGui::End(); return; } + IMGUI_DEMO_MARKER("Tools/About Dear ImGui"); ImGui::Text("Dear ImGui %s", ImGui::GetVersion()); ImGui::Separator(); ImGui::Text("By Omar Cornut and all Dear ImGui contributors."); @@ -5813,6 +6024,7 @@ void ImGui::ShowAboutWindow(bool* p_open) if (io.ConfigViewportsNoDecoration) ImGui::Text("io.ConfigViewportsNoDecoration"); if (io.ConfigViewportsNoDefaultParent) ImGui::Text("io.ConfigViewportsNoDefaultParent"); if (io.ConfigDockingNoSplit) ImGui::Text("io.ConfigDockingNoSplit"); + if (io.ConfigDockingWithShift) ImGui::Text("io.ConfigDockingWithShift"); if (io.ConfigDockingAlwaysTabBar) ImGui::Text("io.ConfigDockingAlwaysTabBar"); if (io.ConfigDockingTransparentPayload) ImGui::Text("io.ConfigDockingTransparentPayload"); if (io.ConfigMacOSXBehaviors) ImGui::Text("io.ConfigMacOSXBehaviors"); @@ -5909,6 +6121,7 @@ bool ImGui::ShowStyleSelector(const char* label) void ImGui::ShowStyleEditor(ImGuiStyle* ref) { + IMGUI_DEMO_MARKER("Tools/Style Editor"); // You can pass in a reference ImGuiStyle structure to compare to, revert to and save to // (without a reference style pointer, we will use one compared locally as a reference) ImGuiStyle& style = ImGui::GetStyle(); @@ -6192,6 +6405,7 @@ static void ShowExampleAppMainMenuBar() // (future version will add explicit flags to BeginMenu() to request processing shortcuts) static void ShowExampleMenuFile() { + IMGUI_DEMO_MARKER("Examples/Menu"); ImGui::MenuItem("(demo menu)", NULL, false, false); if (ImGui::MenuItem("New")) {} if (ImGui::MenuItem("Open", "Ctrl+O")) {} @@ -6217,6 +6431,7 @@ static void ShowExampleMenuFile() if (ImGui::MenuItem("Save As..")) {} ImGui::Separator(); + IMGUI_DEMO_MARKER("Examples/Menu/Options"); if (ImGui::BeginMenu("Options")) { static bool enabled = true; @@ -6233,6 +6448,7 @@ static void ShowExampleMenuFile() ImGui::EndMenu(); } + IMGUI_DEMO_MARKER("Examples/Menu/Colors"); if (ImGui::BeginMenu("Colors")) { float sz = ImGui::GetTextLineHeight(); @@ -6253,6 +6469,7 @@ static void ShowExampleMenuFile() // In a real code-base using it would make senses to use this feature from very different code locations. if (ImGui::BeginMenu("Options")) // <-- Append! { + IMGUI_DEMO_MARKER("Examples/Menu/Append to an existing menu"); static bool b = true; ImGui::Checkbox("SomeOption", &b); ImGui::EndMenu(); @@ -6285,6 +6502,7 @@ struct ExampleAppConsole ExampleAppConsole() { + IMGUI_DEMO_MARKER("Examples/Console"); ClearLog(); memset(InputBuf, 0, sizeof(InputBuf)); HistoryPos = -1; @@ -6762,6 +6980,7 @@ static void ShowExampleAppLog(bool* p_open) // Most of the contents of the window will be added by the log.Draw() call. ImGui::SetNextWindowSize(ImVec2(500, 400), ImGuiCond_FirstUseEver); ImGui::Begin("Example: Log", p_open); + IMGUI_DEMO_MARKER("Examples/Log"); if (ImGui::SmallButton("[Debug] Add 5 entries")) { static int counter = 0; @@ -6792,6 +7011,7 @@ static void ShowExampleAppLayout(bool* p_open) ImGui::SetNextWindowSize(ImVec2(500, 440), ImGuiCond_FirstUseEver); if (ImGui::Begin("Example: Simple layout", p_open, ImGuiWindowFlags_MenuBar)) { + IMGUI_DEMO_MARKER("Examples/Simple layout"); if (ImGui::BeginMenuBar()) { if (ImGui::BeginMenu("File")) @@ -6908,6 +7128,7 @@ static void ShowExampleAppPropertyEditor(bool* p_open) ImGui::End(); return; } + IMGUI_DEMO_MARKER("Examples/Property Editor"); HelpMarker( "This example shows how you may implement a property editor using two columns.\n" @@ -6943,6 +7164,7 @@ static void ShowExampleAppLongText(bool* p_open) ImGui::End(); return; } + IMGUI_DEMO_MARKER("Examples/Long text display"); static int test_type = 0; static ImGuiTextBuffer log; @@ -7004,6 +7226,7 @@ static void ShowExampleAppAutoResize(bool* p_open) ImGui::End(); return; } + IMGUI_DEMO_MARKER("Examples/Auto-resizing window"); static int lines = 10; ImGui::TextUnformatted( @@ -7055,6 +7278,7 @@ static void ShowExampleAppConstrainedResize(bool* p_open) ImGuiWindowFlags flags = auto_resize ? ImGuiWindowFlags_AlwaysAutoResize : 0; if (ImGui::Begin("Example: Constrained Resize", p_open, flags)) { + IMGUI_DEMO_MARKER("Examples/Constrained Resizing window"); if (ImGui::IsWindowDocked()) ImGui::Text("Warning: Sizing Constraints won't work if the window is docked!"); if (ImGui::Button("200x200")) { ImGui::SetWindowSize(ImVec2(200, 200)); } ImGui::SameLine(); @@ -7100,6 +7324,7 @@ static void ShowExampleAppSimpleOverlay(bool* p_open) ImGui::SetNextWindowBgAlpha(0.35f); // Transparent background if (ImGui::Begin("Example: Simple overlay", p_open, window_flags)) { + IMGUI_DEMO_MARKER("Examples/Simple Overlay"); ImGui::Text("Simple overlay\n" "in the corner of the screen.\n" "(right-click to change position)"); ImGui::Separator(); if (ImGui::IsMousePosValid()) @@ -7174,6 +7399,7 @@ static void ShowExampleAppWindowTitles(bool*) // Using "##" to display same title but have unique identifier. ImGui::SetNextWindowPos(ImVec2(base_pos.x + 100, base_pos.y + 100), ImGuiCond_FirstUseEver); ImGui::Begin("Same title as another window##1"); + IMGUI_DEMO_MARKER("Examples/Manipulating window titles"); ImGui::Text("This is window 1.\nMy title is the same as window 2, but my identifier is unique."); ImGui::End(); @@ -7203,6 +7429,7 @@ static void ShowExampleAppCustomRendering(bool* p_open) ImGui::End(); return; } + IMGUI_DEMO_MARKER("Examples/Custom Rendering"); // Tip: If you do a lot of custom rendering, you probably want to use your own geometrical types and benefit of // overloaded operators, etc. Define IM_VEC2_CLASS_EXTRA in imconfig.h to create implicit conversions between your @@ -7440,6 +7667,7 @@ static void ShowExampleAppCustomRendering(bool* p_open) // Note: You can use most Docking facilities without calling any API. You DO NOT need to call DockSpace() to use Docking! // - Drag from window title bar or their tab to dock/undock. Hold SHIFT to disable docking. // - Drag from window menu button (upper-left button) to undock an entire node (all windows). +// - When io.ConfigDockingWithShift == true, you instead need to hold SHIFT to _enable_ docking/undocking. // About dockspaces: // - Use DockSpace() to create an explicit dock node _within_ an existing window. // - Use DockSpaceOverViewport() to create an explicit dock node covering the screen or a specific viewport. @@ -7544,8 +7772,9 @@ void ShowExampleAppDockSpace(bool* p_open) "When docking is enabled, you can ALWAYS dock MOST window into another! Try it now!" "\n" "- Drag from window title bar or their tab to dock/undock." "\n" "- Drag from window menu button (upper-left button) to undock an entire node (all windows)." "\n" - "- Hold SHIFT to disable docking." "\n" - "This demo app has nothing to do with it!" "\n\n" + "- Hold SHIFT to disable docking (if io.ConfigDockingWithShift == false, default)" "\n" + "- Hold SHIFT to enable docking (if io.ConfigDockingWithShift == true)" "\n" + "This demo app has nothing to do with enabling docking!" "\n\n" "This demo app only demonstrate the use of ImGui::DockSpace() which allows you to manually create a docking node _within_ another window." "\n\n" "Read comments in ShowExampleAppDockSpace() for more details."); diff --git a/imgui-sys/third-party/imgui-docking/imgui/imgui_draw.cpp b/imgui-sys/third-party/imgui-docking/imgui/imgui_draw.cpp index 0943da9d5..80ef77d3d 100644 --- a/imgui-sys/third-party/imgui-docking/imgui/imgui_draw.cpp +++ b/imgui-sys/third-party/imgui-docking/imgui/imgui_draw.cpp @@ -1,4 +1,4 @@ -// dear imgui, v1.85 WIP +// dear imgui, v1.86 // (drawing and font code) /* @@ -412,6 +412,8 @@ void ImDrawList::_ResetForNewFrame() IM_ASSERT(IM_OFFSETOF(ImDrawCmd, ClipRect) == 0); IM_ASSERT(IM_OFFSETOF(ImDrawCmd, TextureId) == sizeof(ImVec4)); IM_ASSERT(IM_OFFSETOF(ImDrawCmd, VtxOffset) == sizeof(ImVec4) + sizeof(ImTextureID)); + if (_Splitter._Count > 1) + _Splitter.Merge(this); CmdBuffer.resize(0); IdxBuffer.resize(0); @@ -479,6 +481,7 @@ void ImDrawList::_PopUnusedDrawCmd() void ImDrawList::AddCallback(ImDrawCallback callback, void* callback_data) { + IM_ASSERT_PARANOID(CmdBuffer.Size > 0); ImDrawCmd* curr_cmd = &CmdBuffer.Data[CmdBuffer.Size - 1]; IM_ASSERT(curr_cmd->UserCallback == NULL); if (curr_cmd->ElemCount != 0) @@ -500,6 +503,7 @@ void ImDrawList::AddCallback(ImDrawCallback callback, void* callback_data) // Try to merge two last draw commands void ImDrawList::_TryMergeDrawCmds() { + IM_ASSERT_PARANOID(CmdBuffer.Size > 0); ImDrawCmd* curr_cmd = &CmdBuffer.Data[CmdBuffer.Size - 1]; ImDrawCmd* prev_cmd = curr_cmd - 1; if (ImDrawCmd_HeaderCompare(curr_cmd, prev_cmd) == 0 && curr_cmd->UserCallback == NULL && prev_cmd->UserCallback == NULL) @@ -514,6 +518,7 @@ void ImDrawList::_TryMergeDrawCmds() void ImDrawList::_OnChangedClipRect() { // If current command is used with different settings we need to add a new command + IM_ASSERT_PARANOID(CmdBuffer.Size > 0); ImDrawCmd* curr_cmd = &CmdBuffer.Data[CmdBuffer.Size - 1]; if (curr_cmd->ElemCount != 0 && memcmp(&curr_cmd->ClipRect, &_CmdHeader.ClipRect, sizeof(ImVec4)) != 0) { @@ -536,6 +541,7 @@ void ImDrawList::_OnChangedClipRect() void ImDrawList::_OnChangedTextureID() { // If current command is used with different settings we need to add a new command + IM_ASSERT_PARANOID(CmdBuffer.Size > 0); ImDrawCmd* curr_cmd = &CmdBuffer.Data[CmdBuffer.Size - 1]; if (curr_cmd->ElemCount != 0 && curr_cmd->TextureId != _CmdHeader.TextureId) { @@ -559,6 +565,7 @@ void ImDrawList::_OnChangedVtxOffset() { // We don't need to compare curr_cmd->VtxOffset != _CmdHeader.VtxOffset because we know it'll be different at the time we call this. _VtxCurrentIdx = 0; + IM_ASSERT_PARANOID(CmdBuffer.Size > 0); ImDrawCmd* curr_cmd = &CmdBuffer.Data[CmdBuffer.Size - 1]; //IM_ASSERT(curr_cmd->VtxOffset != _CmdHeader.VtxOffset); // See #3349 if (curr_cmd->ElemCount != 0) @@ -1925,37 +1932,38 @@ ImFontConfig::ImFontConfig() // A work of art lies ahead! (. = white layer, X = black layer, others are blank) // The 2x2 white texels on the top left are the ones we'll use everywhere in Dear ImGui to render filled shapes. -const int FONT_ATLAS_DEFAULT_TEX_DATA_W = 108; // Actual texture will be 2 times that + 1 spacing. +// (This is used when io.MouseDrawCursor = true) +const int FONT_ATLAS_DEFAULT_TEX_DATA_W = 122; // Actual texture will be 2 times that + 1 spacing. const int FONT_ATLAS_DEFAULT_TEX_DATA_H = 27; static const char FONT_ATLAS_DEFAULT_TEX_DATA_PIXELS[FONT_ATLAS_DEFAULT_TEX_DATA_W * FONT_ATLAS_DEFAULT_TEX_DATA_H + 1] = { - "..- -XXXXXXX- X - X -XXXXXXX - XXXXXXX- XX " - "..- -X.....X- X.X - X.X -X.....X - X.....X- X..X " - "--- -XXX.XXX- X...X - X...X -X....X - X....X- X..X " - "X - X.X - X.....X - X.....X -X...X - X...X- X..X " - "XX - X.X -X.......X- X.......X -X..X.X - X.X..X- X..X " - "X.X - X.X -XXXX.XXXX- XXXX.XXXX -X.X X.X - X.X X.X- X..XXX " - "X..X - X.X - X.X - X.X -XX X.X - X.X XX- X..X..XXX " - "X...X - X.X - X.X - XX X.X XX - X.X - X.X - X..X..X..XX " - "X....X - X.X - X.X - X.X X.X X.X - X.X - X.X - X..X..X..X.X " - "X.....X - X.X - X.X - X..X X.X X..X - X.X - X.X -XXX X..X..X..X..X" - "X......X - X.X - X.X - X...XXXXXX.XXXXXX...X - X.X XX-XX X.X -X..XX........X..X" - "X.......X - X.X - X.X -X.....................X- X.X X.X-X.X X.X -X...X...........X" - "X........X - X.X - X.X - X...XXXXXX.XXXXXX...X - X.X..X-X..X.X - X..............X" - "X.........X -XXX.XXX- X.X - X..X X.X X..X - X...X-X...X - X.............X" - "X..........X-X.....X- X.X - X.X X.X X.X - X....X-X....X - X.............X" - "X......XXXXX-XXXXXXX- X.X - XX X.X XX - X.....X-X.....X - X............X" - "X...X..X --------- X.X - X.X - XXXXXXX-XXXXXXX - X...........X " - "X..X X..X - -XXXX.XXXX- XXXX.XXXX ------------------------------------- X..........X " - "X.X X..X - -X.......X- X.......X - XX XX - - X..........X " - "XX X..X - - X.....X - X.....X - X.X X.X - - X........X " - " X..X - X...X - X...X - X..X X..X - - X........X " - " XX - X.X - X.X - X...XXXXXXXXXXXXX...X - - XXXXXXXXXX " - "------------ - X - X -X.....................X- ------------------" - " ----------------------------------- X...XXXXXXXXXXXXX...X - " - " - X..X X..X - " - " - X.X X.X - " - " - XX XX - " + "..- -XXXXXXX- X - X -XXXXXXX - XXXXXXX- XX - XX XX " + "..- -X.....X- X.X - X.X -X.....X - X.....X- X..X -X..X X..X" + "--- -XXX.XXX- X...X - X...X -X....X - X....X- X..X -X...X X...X" + "X - X.X - X.....X - X.....X -X...X - X...X- X..X - X...X X...X " + "XX - X.X -X.......X- X.......X -X..X.X - X.X..X- X..X - X...X...X " + "X.X - X.X -XXXX.XXXX- XXXX.XXXX -X.X X.X - X.X X.X- X..XXX - X.....X " + "X..X - X.X - X.X - X.X -XX X.X - X.X XX- X..X..XXX - X...X " + "X...X - X.X - X.X - XX X.X XX - X.X - X.X - X..X..X..XX - X.X " + "X....X - X.X - X.X - X.X X.X X.X - X.X - X.X - X..X..X..X.X - X...X " + "X.....X - X.X - X.X - X..X X.X X..X - X.X - X.X -XXX X..X..X..X..X- X.....X " + "X......X - X.X - X.X - X...XXXXXX.XXXXXX...X - X.X XX-XX X.X -X..XX........X..X- X...X...X " + "X.......X - X.X - X.X -X.....................X- X.X X.X-X.X X.X -X...X...........X- X...X X...X " + "X........X - X.X - X.X - X...XXXXXX.XXXXXX...X - X.X..X-X..X.X - X..............X-X...X X...X" + "X.........X -XXX.XXX- X.X - X..X X.X X..X - X...X-X...X - X.............X-X..X X..X" + "X..........X-X.....X- X.X - X.X X.X X.X - X....X-X....X - X.............X- XX XX " + "X......XXXXX-XXXXXXX- X.X - XX X.X XX - X.....X-X.....X - X............X--------------" + "X...X..X --------- X.X - X.X - XXXXXXX-XXXXXXX - X...........X - " + "X..X X..X - -XXXX.XXXX- XXXX.XXXX ------------------------------------- X..........X - " + "X.X X..X - -X.......X- X.......X - XX XX - - X..........X - " + "XX X..X - - X.....X - X.....X - X.X X.X - - X........X - " + " X..X - - X...X - X...X - X..X X..X - - X........X - " + " XX - - X.X - X.X - X...XXXXXXXXXXXXX...X - - XXXXXXXXXX - " + "------------- - X - X -X.....................X- ------------------- " + " ----------------------------------- X...XXXXXXXXXXXXX...X - " + " - X..X X..X - " + " - X.X X.X - " + " - XX XX - " }; static const ImVec2 FONT_ATLAS_DEFAULT_TEX_CURSOR_DATA[ImGuiMouseCursor_COUNT][3] = @@ -1969,6 +1977,7 @@ static const ImVec2 FONT_ATLAS_DEFAULT_TEX_CURSOR_DATA[ImGuiMouseCursor_COUNT][3 { ImVec2(73,0), ImVec2(17,17), ImVec2( 8, 8) }, // ImGuiMouseCursor_ResizeNESW { ImVec2(55,0), ImVec2(17,17), ImVec2( 8, 8) }, // ImGuiMouseCursor_ResizeNWSE { ImVec2(91,0), ImVec2(17,22), ImVec2( 5, 0) }, // ImGuiMouseCursor_Hand + { ImVec2(109,0),ImVec2(13,15), ImVec2( 6, 7) }, // ImGuiMouseCursor_NotAllowed }; ImFontAtlas::ImFontAtlas() @@ -3079,8 +3088,8 @@ void ImFontGlyphRangesBuilder::AddText(const char* text, const char* text_end) void ImFontGlyphRangesBuilder::AddRanges(const ImWchar* ranges) { for (; ranges[0]; ranges += 2) - for (ImWchar c = ranges[0]; c <= ranges[1]; c++) - AddChar(c); + for (unsigned int c = ranges[0]; c <= ranges[1] && c <= IM_UNICODE_CODEPOINT_MAX; c++) //-V560 + AddChar((ImWchar)c); } void ImFontGlyphRangesBuilder::BuildRanges(ImVector* out_ranges) @@ -3914,16 +3923,27 @@ void ImGui::RenderRectFilledWithHole(ImDrawList* draw_list, ImRect outer, ImRect const bool fill_R = (inner.Max.x < outer.Max.x); const bool fill_U = (inner.Min.y > outer.Min.y); const bool fill_D = (inner.Max.y < outer.Max.y); - if (fill_L) draw_list->AddRectFilled(ImVec2(outer.Min.x, inner.Min.y), ImVec2(inner.Min.x, inner.Max.y), col, rounding, (fill_U ? 0 : ImDrawFlags_RoundCornersTopLeft) | (fill_D ? 0 : ImDrawFlags_RoundCornersBottomLeft)); - if (fill_R) draw_list->AddRectFilled(ImVec2(inner.Max.x, inner.Min.y), ImVec2(outer.Max.x, inner.Max.y), col, rounding, (fill_U ? 0 : ImDrawFlags_RoundCornersTopRight) | (fill_D ? 0 : ImDrawFlags_RoundCornersBottomRight)); - if (fill_U) draw_list->AddRectFilled(ImVec2(inner.Min.x, outer.Min.y), ImVec2(inner.Max.x, inner.Min.y), col, rounding, (fill_L ? 0 : ImDrawFlags_RoundCornersTopLeft) | (fill_R ? 0 : ImDrawFlags_RoundCornersTopRight)); - if (fill_D) draw_list->AddRectFilled(ImVec2(inner.Min.x, inner.Max.y), ImVec2(inner.Max.x, outer.Max.y), col, rounding, (fill_L ? 0 : ImDrawFlags_RoundCornersBottomLeft) | (fill_R ? 0 : ImDrawFlags_RoundCornersBottomRight)); + if (fill_L) draw_list->AddRectFilled(ImVec2(outer.Min.x, inner.Min.y), ImVec2(inner.Min.x, inner.Max.y), col, rounding, ImDrawFlags_RoundCornersNone | (fill_U ? 0 : ImDrawFlags_RoundCornersTopLeft) | (fill_D ? 0 : ImDrawFlags_RoundCornersBottomLeft)); + if (fill_R) draw_list->AddRectFilled(ImVec2(inner.Max.x, inner.Min.y), ImVec2(outer.Max.x, inner.Max.y), col, rounding, ImDrawFlags_RoundCornersNone | (fill_U ? 0 : ImDrawFlags_RoundCornersTopRight) | (fill_D ? 0 : ImDrawFlags_RoundCornersBottomRight)); + if (fill_U) draw_list->AddRectFilled(ImVec2(inner.Min.x, outer.Min.y), ImVec2(inner.Max.x, inner.Min.y), col, rounding, ImDrawFlags_RoundCornersNone | (fill_L ? 0 : ImDrawFlags_RoundCornersTopLeft) | (fill_R ? 0 : ImDrawFlags_RoundCornersTopRight)); + if (fill_D) draw_list->AddRectFilled(ImVec2(inner.Min.x, inner.Max.y), ImVec2(inner.Max.x, outer.Max.y), col, rounding, ImDrawFlags_RoundCornersNone | (fill_L ? 0 : ImDrawFlags_RoundCornersBottomLeft) | (fill_R ? 0 : ImDrawFlags_RoundCornersBottomRight)); if (fill_L && fill_U) draw_list->AddRectFilled(ImVec2(outer.Min.x, outer.Min.y), ImVec2(inner.Min.x, inner.Min.y), col, rounding, ImDrawFlags_RoundCornersTopLeft); if (fill_R && fill_U) draw_list->AddRectFilled(ImVec2(inner.Max.x, outer.Min.y), ImVec2(outer.Max.x, inner.Min.y), col, rounding, ImDrawFlags_RoundCornersTopRight); if (fill_L && fill_D) draw_list->AddRectFilled(ImVec2(outer.Min.x, inner.Max.y), ImVec2(inner.Min.x, outer.Max.y), col, rounding, ImDrawFlags_RoundCornersBottomLeft); if (fill_R && fill_D) draw_list->AddRectFilled(ImVec2(inner.Max.x, inner.Max.y), ImVec2(outer.Max.x, outer.Max.y), col, rounding, ImDrawFlags_RoundCornersBottomRight); } +ImDrawFlags ImGui::CalcRoundingFlagsForRectInRect(const ImRect& r_in, const ImRect& r_outer, float threshold) +{ + bool round_l = r_in.Min.x <= r_outer.Min.x + threshold; + bool round_r = r_in.Max.x >= r_outer.Max.x - threshold; + bool round_t = r_in.Min.y <= r_outer.Min.y + threshold; + bool round_b = r_in.Max.y >= r_outer.Max.y - threshold; + return ImDrawFlags_RoundCornersNone + | ((round_t && round_l) ? ImDrawFlags_RoundCornersTopLeft : 0) | ((round_t && round_r) ? ImDrawFlags_RoundCornersTopRight : 0) + | ((round_b && round_l) ? ImDrawFlags_RoundCornersBottomLeft : 0) | ((round_b && round_r) ? ImDrawFlags_RoundCornersBottomRight : 0); +} + // Helper for ColorPicker4() // NB: This is rather brittle and will show artifact when rounding this enabled if rounded corners overlap multiple cells. Caller currently responsible for avoiding that. // Spent a non reasonable amount of time trying to getting this right for ColorButton with rounding+anti-aliasing+ImGuiColorEditFlags_HalfAlphaPreview flag + various grid sizes and offsets, and eventually gave up... probably more reasonable to disable rounding altogether. diff --git a/imgui-sys/third-party/imgui-docking/imgui/imgui_internal.h b/imgui-sys/third-party/imgui-docking/imgui/imgui_internal.h index 60f0780f0..398c69dc2 100644 --- a/imgui-sys/third-party/imgui-docking/imgui/imgui_internal.h +++ b/imgui-sys/third-party/imgui-docking/imgui/imgui_internal.h @@ -1,4 +1,4 @@ -// dear imgui, v1.85 WIP +// dear imgui, v1.86 // (internal structures/api) // You may use this file to debug, understand or extend ImGui features but we don't provide any guarantee of forward compatibility! @@ -18,13 +18,14 @@ Index of this file: // [SECTION] Generic helpers // [SECTION] ImDrawList support // [SECTION] Widgets support: flags, enums, data structures +// [SECTION] Clipper support // [SECTION] Navigation support // [SECTION] Columns support // [SECTION] Multi-select support // [SECTION] Docking support // [SECTION] Viewport support // [SECTION] Settings support -// [SECTION] Metrics, Debug +// [SECTION] Metrics, Debug tools // [SECTION] Generic context hooks // [SECTION] ImGuiContext (main imgui context) // [SECTION] ImGuiWindowTempData, ImGuiWindow @@ -148,8 +149,8 @@ struct ImGuiWindowSettings; // Storage for a window .ini settings (we ke // Use your programming IDE "Go to definition" facility on the names of the center columns to find the actual flags/enum lists. typedef int ImGuiDataAuthority; // -> enum ImGuiDataAuthority_ // Enum: for storing the source authority (dock node vs window) of a field typedef int ImGuiLayoutType; // -> enum ImGuiLayoutType_ // Enum: Horizontal or vertical +typedef int ImGuiActivateFlags; // -> enum ImGuiActivateFlags_ // Flags: for navigation/focus function (will be for ActivateItem() later) typedef int ImGuiItemFlags; // -> enum ImGuiItemFlags_ // Flags: for PushItemFlag() -typedef int ImGuiItemAddFlags; // -> enum ImGuiItemAddFlags_ // Flags: for ItemAdd() typedef int ImGuiItemStatusFlags; // -> enum ImGuiItemStatusFlags_ // Flags: for DC.LastItemStatusFlags typedef int ImGuiOldColumnFlags; // -> enum ImGuiOldColumnFlags_ // Flags: for BeginColumns() typedef int ImGuiNavHighlightFlags; // -> enum ImGuiNavHighlightFlags_ // Flags: for RenderNavHighlight() @@ -157,6 +158,7 @@ typedef int ImGuiNavDirSourceFlags; // -> enum ImGuiNavDirSourceFlags_ // F typedef int ImGuiNavMoveFlags; // -> enum ImGuiNavMoveFlags_ // Flags: for navigation requests typedef int ImGuiNextItemDataFlags; // -> enum ImGuiNextItemDataFlags_ // Flags: for SetNextItemXXX() functions typedef int ImGuiNextWindowDataFlags; // -> enum ImGuiNextWindowDataFlags_// Flags: for SetNextWindowXXX() functions +typedef int ImGuiScrollFlags; // -> enum ImGuiScrollFlags_ // Flags: for ScrollToItem() and navigation requests typedef int ImGuiSeparatorFlags; // -> enum ImGuiSeparatorFlags_ // Flags: for SeparatorEx() typedef int ImGuiTextFlags; // -> enum ImGuiTextFlags_ // Flags: for TextEx() typedef int ImGuiTooltipFlags; // -> enum ImGuiTooltipFlags_ // Flags: for BeginTooltipEx() @@ -263,12 +265,19 @@ namespace ImStb #endif // Debug Tools -// Use 'Metrics->Tools->Item Picker' to break into the call-stack of a specific item. +// Use 'Metrics/Debugger->Tools->Item Picker' to break into the call-stack of a specific item. +// This will call IM_DEBUG_BREAK() which you may redefine yourself. See https://github.com/scottt/debugbreak for more reference. #ifndef IM_DEBUG_BREAK -#if defined(__clang__) -#define IM_DEBUG_BREAK() __builtin_debugtrap() -#elif defined (_MSC_VER) +#if defined (_MSC_VER) #define IM_DEBUG_BREAK() __debugbreak() +#elif defined(__clang__) +#define IM_DEBUG_BREAK() __builtin_debugtrap() +#elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) +#define IM_DEBUG_BREAK() __asm__ volatile("int $0x03") +#elif defined(__GNUC__) && defined(__thumb__) +#define IM_DEBUG_BREAK() __asm__ volatile(".inst 0xde01") +#elif defined(__GNUC__) && defined(__arm__) && !defined(__thumb__) +#define IM_DEBUG_BREAK() __asm__ volatile(".inst 0xe7f001f0"); #else #define IM_DEBUG_BREAK() IM_ASSERT(0) // It is expected that you define IM_DEBUG_BREAK() into something that will break nicely in a debugger! #endif @@ -305,7 +314,9 @@ static inline ImGuiID ImHash(const void* data, int size, ImU32 seed = 0) { ret #endif // Helpers: Sorting -#define ImQsort qsort +#ifndef ImQsort +static inline void ImQsort(void* base, size_t count, size_t size_of_element, int(IMGUI_CDECL *compare_func)(void const*, void const*)) { if (count > 1) qsort(base, count, size_of_element, compare_func); } +#endif // Helpers: Color Blending IMGUI_API ImU32 ImAlphaBlendColors(ImU32 col_a, ImU32 col_b); @@ -412,8 +423,8 @@ static inline double ImLog(double x) { return log(x); } static inline int ImAbs(int x) { return x < 0 ? -x : x; } static inline float ImAbs(float x) { return fabsf(x); } static inline double ImAbs(double x) { return fabs(x); } -static inline float ImSign(float x) { return (x < 0.0f) ? -1.0f : ((x > 0.0f) ? 1.0f : 0.0f); } // Sign operator - returns -1, 0 or 1 based on sign of argument -static inline double ImSign(double x) { return (x < 0.0) ? -1.0 : ((x > 0.0) ? 1.0 : 0.0); } +static inline float ImSign(float x) { return (x < 0.0f) ? -1.0f : (x > 0.0f) ? 1.0f : 0.0f; } // Sign operator - returns -1, 0 or 1 based on sign of argument +static inline double ImSign(double x) { return (x < 0.0) ? -1.0 : (x > 0.0) ? 1.0 : 0.0; } #ifdef IMGUI_ENABLE_SSE static inline float ImRsqrt(float x) { return _mm_cvtss_f32(_mm_rsqrt_ss(_mm_set_ss(x))); } #else @@ -449,6 +460,7 @@ static inline float ImDot(const ImVec2& a, const ImVec2& b) static inline ImVec2 ImRotate(const ImVec2& v, float cos_a, float sin_a) { return ImVec2(v.x * cos_a - v.y * sin_a, v.x * sin_a + v.y * cos_a); } static inline float ImLinearSweep(float current, float target, float speed) { if (current < target) return ImMin(current + speed, target); if (current > target) return ImMax(current - speed, target); return current; } static inline ImVec2 ImMul(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(lhs.x * rhs.x, lhs.y * rhs.y); } +static inline bool ImIsFloatAboveGuaranteedIntegerPrecision(float f) { return f <= -16777216 || f >= 16777216; } IM_MSVC_RUNTIME_CHECKS_RESTORE // Helpers: Geometry @@ -754,15 +766,8 @@ enum ImGuiItemFlags_ ImGuiItemFlags_NoNavDefaultFocus = 1 << 4, // false // Disable item being a candidate for default focus (e.g. used by title bar items) ImGuiItemFlags_SelectableDontClosePopup = 1 << 5, // false // Disable MenuItem/Selectable() automatically closing their popup window ImGuiItemFlags_MixedValue = 1 << 6, // false // [BETA] Represent a mixed/indeterminate value, generally multi-selection where values differ. Currently only supported by Checkbox() (later should support all sorts of widgets) - ImGuiItemFlags_ReadOnly = 1 << 7 // false // [ALPHA] Allow hovering interactions but underlying value is not changed. -}; - -// Flags for ItemAdd() -// FIXME-NAV: _Focusable is _ALMOST_ what you would expect to be called '_TabStop' but because SetKeyboardFocusHere() works on items with no TabStop we distinguish Focusable from TabStop. -enum ImGuiItemAddFlags_ -{ - ImGuiItemAddFlags_None = 0, - ImGuiItemAddFlags_Focusable = 1 << 0 // FIXME-NAV: In current/legacy scheme, Focusable+TabStop support are opt-in by widgets. We will transition it toward being opt-out, so this flag is expected to eventually disappear. + ImGuiItemFlags_ReadOnly = 1 << 7, // false // [ALPHA] Allow hovering interactions but underlying value is not changed. + ImGuiItemFlags_Inputable = 1 << 8 // false // [WIP] Auto-activate input mode when tab focused. Currently only used and supported by a few items before it becomes a generic feature. }; // Storage for LastItem data @@ -770,16 +775,14 @@ enum ImGuiItemStatusFlags_ { ImGuiItemStatusFlags_None = 0, ImGuiItemStatusFlags_HoveredRect = 1 << 0, // Mouse position is within item rectangle (does NOT mean that the window is in correct z-order and can be hovered!, this is only one part of the most-common IsItemHovered test) - ImGuiItemStatusFlags_HasDisplayRect = 1 << 1, // window->DC.LastItemDisplayRect is valid + ImGuiItemStatusFlags_HasDisplayRect = 1 << 1, // g.LastItemData.DisplayRect is valid ImGuiItemStatusFlags_Edited = 1 << 2, // Value exposed by item was edited in the current frame (should match the bool return value of most widgets) ImGuiItemStatusFlags_ToggledSelection = 1 << 3, // Set when Selectable(), TreeNode() reports toggling a selection. We can't report "Selected", only state changes, in order to easily handle clipping with less issues. ImGuiItemStatusFlags_ToggledOpen = 1 << 4, // Set when TreeNode() reports toggling their open state. ImGuiItemStatusFlags_HasDeactivated = 1 << 5, // Set if the widget/group is able to provide data for the ImGuiItemStatusFlags_Deactivated flag. ImGuiItemStatusFlags_Deactivated = 1 << 6, // Only valid if ImGuiItemStatusFlags_HasDeactivated is set. ImGuiItemStatusFlags_HoveredWindow = 1 << 7, // Override the HoveredWindow test to allow cross-window hover testing. - ImGuiItemStatusFlags_FocusedByCode = 1 << 8, // Set when the Focusable item just got focused from code. - ImGuiItemStatusFlags_FocusedByTabbing = 1 << 9, // Set when the Focusable item just got focused by Tabbing. - ImGuiItemStatusFlags_Focused = ImGuiItemStatusFlags_FocusedByCode | ImGuiItemStatusFlags_FocusedByTabbing + ImGuiItemStatusFlags_FocusedByTabbing = 1 << 8 // Set when the Focusable item just got focused by Tabbing (FIXME: to be removed soon) #ifdef IMGUI_ENABLE_TEST_ENGINE , // [imgui_tests only] @@ -1039,8 +1042,6 @@ struct IMGUI_API ImGuiInputTextState bool SelectedAllMouseLock; // after a double-click to select all, we ignore further mouse drags to update selection bool Edited; // edited this frame ImGuiInputTextFlags Flags; // copy of InputText() flags - ImGuiInputTextCallback UserCallback; // " - void* UserCallbackData; // " ImGuiInputTextState() { memset(this, 0, sizeof(*this)); } void ClearText() { CurLenW = CurLenA = 0; TextW[0] = 0; TextA[0] = 0; CursorClamp(); } @@ -1143,17 +1144,36 @@ struct ImGuiLastItemData ImGuiID ID; ImGuiItemFlags InFlags; // See ImGuiItemFlags_ ImGuiItemStatusFlags StatusFlags; // See ImGuiItemStatusFlags_ - ImRect Rect; - ImRect DisplayRect; + ImRect Rect; // Full rectangle + ImRect NavRect; // Navigation scoring rectangle (not displayed) + ImRect DisplayRect; // Display rectangle (only if ImGuiItemStatusFlags_HasDisplayRect is set) ImGuiLastItemData() { memset(this, 0, sizeof(*this)); } }; +struct IMGUI_API ImGuiStackSizes +{ + short SizeOfIDStack; + short SizeOfColorStack; + short SizeOfStyleVarStack; + short SizeOfFontStack; + short SizeOfFocusScopeStack; + short SizeOfGroupStack; + short SizeOfItemFlagsStack; + short SizeOfBeginPopupStack; + short SizeOfDisabledStack; + + ImGuiStackSizes() { memset(this, 0, sizeof(*this)); } + void SetToCurrentState(); + void CompareWithCurrentState(); +}; + // Data saved for each window pushed into the stack struct ImGuiWindowStackData { ImGuiWindow* Window; ImGuiLastItemData ParentLastItemDataBackup; + ImGuiStackSizes StackSizesOnBegin; // Store size of various stacks for asserting }; struct ImGuiShrinkWidthItem @@ -1171,10 +1191,62 @@ struct ImGuiPtrOrIndex ImGuiPtrOrIndex(int index) { Ptr = NULL; Index = index; } }; +//----------------------------------------------------------------------------- +// [SECTION] Clipper support +//----------------------------------------------------------------------------- + +struct ImGuiListClipperRange +{ + int Min; + int Max; + bool PosToIndexConvert; // Begin/End are absolute position (will be converted to indices later) + ImS8 PosToIndexOffsetMin; // Add to Min after converting to indices + ImS8 PosToIndexOffsetMax; // Add to Min after converting to indices + + static ImGuiListClipperRange FromIndices(int min, int max) { ImGuiListClipperRange r = { min, max, false, 0, 0 }; return r; } + static ImGuiListClipperRange FromPositions(float y1, float y2, int off_min, int off_max) { ImGuiListClipperRange r = { (int)y1, (int)y2, true, (ImS8)off_min, (ImS8)off_max }; return r; } +}; + +// Temporary clipper data, buffers shared/reused between instances +struct ImGuiListClipperData +{ + ImGuiListClipper* ListClipper; + float LossynessOffset; + int StepNo; + int ItemsFrozen; + ImVector Ranges; + + ImGuiListClipperData() { memset(this, 0, sizeof(*this)); } + void Reset(ImGuiListClipper* clipper) { ListClipper = clipper; StepNo = ItemsFrozen = 0; Ranges.resize(0); } +}; + //----------------------------------------------------------------------------- // [SECTION] Navigation support //----------------------------------------------------------------------------- +enum ImGuiActivateFlags_ +{ + ImGuiActivateFlags_None = 0, + ImGuiActivateFlags_PreferInput = 1 << 0, // Favor activation that requires keyboard text input (e.g. for Slider/Drag). Default if keyboard is available. + ImGuiActivateFlags_PreferTweak = 1 << 1, // Favor activation for tweaking with arrows or gamepad (e.g. for Slider/Drag). Default if keyboard is not available. + ImGuiActivateFlags_TryToPreserveState = 1 << 2 // Request widget to preserve state if it can (e.g. InputText will try to preserve cursor/selection) +}; + +// Early work-in-progress API for ScrollToItem() +enum ImGuiScrollFlags_ +{ + ImGuiScrollFlags_None = 0, + ImGuiScrollFlags_KeepVisibleEdgeX = 1 << 0, // If item is not visible: scroll as little as possible on X axis to bring item back into view [default for X axis] + ImGuiScrollFlags_KeepVisibleEdgeY = 1 << 1, // If item is not visible: scroll as little as possible on Y axis to bring item back into view [default for Y axis for windows that are already visible] + ImGuiScrollFlags_KeepVisibleCenterX = 1 << 2, // If item is not visible: scroll to make the item centered on X axis [rarely used] + ImGuiScrollFlags_KeepVisibleCenterY = 1 << 3, // If item is not visible: scroll to make the item centered on Y axis + ImGuiScrollFlags_AlwaysCenterX = 1 << 4, // Always center the result item on X axis [rarely used] + ImGuiScrollFlags_AlwaysCenterY = 1 << 5, // Always center the result item on Y axis [default for Y axis for appearing window) + ImGuiScrollFlags_NoScrollParent = 1 << 6, // Disable forwarding scrolling to parent window if required to keep item/rect visible (only scroll window the function was applied to). + ImGuiScrollFlags_MaskX_ = ImGuiScrollFlags_KeepVisibleEdgeX | ImGuiScrollFlags_KeepVisibleCenterX | ImGuiScrollFlags_AlwaysCenterX, + ImGuiScrollFlags_MaskY_ = ImGuiScrollFlags_KeepVisibleEdgeY | ImGuiScrollFlags_KeepVisibleCenterY | ImGuiScrollFlags_AlwaysCenterY +}; + enum ImGuiNavHighlightFlags_ { ImGuiNavHighlightFlags_None = 0, @@ -1187,9 +1259,10 @@ enum ImGuiNavHighlightFlags_ enum ImGuiNavDirSourceFlags_ { ImGuiNavDirSourceFlags_None = 0, - ImGuiNavDirSourceFlags_Keyboard = 1 << 0, - ImGuiNavDirSourceFlags_PadDPad = 1 << 1, - ImGuiNavDirSourceFlags_PadLStick = 1 << 2 + ImGuiNavDirSourceFlags_RawKeyboard = 1 << 0, // Raw keyboard (not pulled from nav), faciliate use of some functions before we can unify nav and keys + ImGuiNavDirSourceFlags_Keyboard = 1 << 1, + ImGuiNavDirSourceFlags_PadDPad = 1 << 2, + ImGuiNavDirSourceFlags_PadLStick = 1 << 3 }; enum ImGuiNavMoveFlags_ @@ -1200,9 +1273,14 @@ enum ImGuiNavMoveFlags_ ImGuiNavMoveFlags_WrapX = 1 << 2, // On failed request, request from opposite side one line down (when NavDir==right) or one line up (when NavDir==left) ImGuiNavMoveFlags_WrapY = 1 << 3, // This is not super useful but provided for completeness ImGuiNavMoveFlags_AllowCurrentNavId = 1 << 4, // Allow scoring and considering the current NavId as a move target candidate. This is used when the move source is offset (e.g. pressing PageDown actually needs to send a Up move request, if we are pressing PageDown from the bottom-most item we need to stay in place) - ImGuiNavMoveFlags_AlsoScoreVisibleSet = 1 << 5, // Store alternate result in NavMoveResultLocalVisibleSet that only comprise elements that are already fully visible (used by PageUp/PageDown) - ImGuiNavMoveFlags_ScrollToEdge = 1 << 6, - ImGuiNavMoveFlags_Forwarded = 1 << 7 + ImGuiNavMoveFlags_AlsoScoreVisibleSet = 1 << 5, // Store alternate result in NavMoveResultLocalVisible that only comprise elements that are already fully visible (used by PageUp/PageDown) + ImGuiNavMoveFlags_ScrollToEdgeY = 1 << 6, // Force scrolling to min/max (used by Home/End) // FIXME-NAV: Aim to remove or reword, probably unnecessary + ImGuiNavMoveFlags_Forwarded = 1 << 7, + ImGuiNavMoveFlags_DebugNoResult = 1 << 8, // Dummy scoring for debug purpose, don't apply result + ImGuiNavMoveFlags_FocusApi = 1 << 9, + ImGuiNavMoveFlags_Tabbing = 1 << 10, // == Focus + Activate if item is Inputable + DontChangeNavHighlight + ImGuiNavMoveFlags_Activate = 1 << 11, + ImGuiNavMoveFlags_DontSetNavHighlight = 1 << 12 // Do not alter the visible state of keyboard vs mouse nav highlight }; enum ImGuiNavLayer @@ -1218,12 +1296,13 @@ struct ImGuiNavItemData ImGuiID ID; // Init,Move // Best candidate item ID ImGuiID FocusScopeId; // Init,Move // Best candidate focus scope ID ImRect RectRel; // Init,Move // Best candidate bounding box in window relative space + ImGuiItemFlags InFlags; // ????,Move // Best candidate item flags float DistBox; // Move // Best candidate box distance to current NavId float DistCenter; // Move // Best candidate center distance to current NavId float DistAxial; // Move // Best candidate axial distance to current NavId ImGuiNavItemData() { Clear(); } - void Clear() { Window = NULL; ID = FocusScopeId = 0; RectRel = ImRect(); DistBox = DistCenter = DistAxial = FLT_MAX; } + void Clear() { Window = NULL; ID = FocusScopeId = 0; InFlags = 0; DistBox = DistCenter = DistAxial = FLT_MAX; } }; //----------------------------------------------------------------------------- @@ -1355,11 +1434,13 @@ struct IMGUI_API ImGuiDockNode ImVec2 SizeRef; // [Split node only] Last explicitly written-to size (overridden when using a splitter affecting the node), used to calculate Size. ImGuiAxis SplitAxis; // [Split node only] Split axis (X or Y) ImGuiWindowClass WindowClass; // [Root node only] + ImU32 LastBgColor; ImGuiWindow* HostWindow; ImGuiWindow* VisibleWindow; // Generally point to window which is ID is == SelectedTabID, but when CTRL+Tabbing this can be a different window. ImGuiDockNode* CentralNode; // [Root node only] Pointer to central node. ImGuiDockNode* OnlyNodeWithWindows; // [Root node only] Set when there is a single visible node within the hierarchy. + int CountNodeWithWindows; // [Root node only] int LastFrameAlive; // Last frame number the node was updated or kept alive explicitly with DockSpace() + ImGuiDockNodeFlags_KeepAliveOnly int LastFrameActive; // Last frame number the node was updated. int LastFrameFocused; // Last frame number the node was focused. @@ -1371,14 +1452,15 @@ struct IMGUI_API ImGuiDockNode ImGuiDataAuthority AuthorityForViewport :3; bool IsVisible :1; // Set to false when the node is hidden (usually disabled as it has no active window) bool IsFocused :1; + bool IsBgDrawnThisFrame :1; bool HasCloseButton :1; // Provide space for a close button (if any of the docked window has one). Note that button may be hidden on window without one. bool HasWindowMenuButton :1; + bool HasCentralNodeChild :1; bool WantCloseAll :1; // Set when closing all tabs at once. bool WantLockSizeOnce :1; bool WantMouseMove :1; // After a node extraction we need to transition toward moving the newly created host window bool WantHiddenTabBarUpdate :1; bool WantHiddenTabBarToggle :1; - bool MarkedForPosSizeWrite :1; // Update by DockNodeTreeUpdatePosSize() write-filtering ImGuiDockNode(ImGuiID id); ~ImGuiDockNode(); @@ -1513,11 +1595,12 @@ struct ImGuiSettingsHandler }; //----------------------------------------------------------------------------- -// [SECTION] Metrics, Debug +// [SECTION] Metrics, Debug Tools //----------------------------------------------------------------------------- struct ImGuiMetricsConfig { + bool ShowStackTool; bool ShowWindowsRects; bool ShowWindowsBeginOrder; bool ShowTablesRects; @@ -1529,6 +1612,7 @@ struct ImGuiMetricsConfig ImGuiMetricsConfig() { + ShowStackTool = false; ShowWindowsRects = false; ShowWindowsBeginOrder = false; ShowTablesRects = false; @@ -1540,19 +1624,25 @@ struct ImGuiMetricsConfig } }; -struct IMGUI_API ImGuiStackSizes +struct ImGuiStackLevelInfo { - short SizeOfIDStack; - short SizeOfColorStack; - short SizeOfStyleVarStack; - short SizeOfFontStack; - short SizeOfFocusScopeStack; - short SizeOfGroupStack; - short SizeOfBeginPopupStack; + ImGuiID ID; + ImS8 QueryFrameCount; // >= 1: Query in progress + bool QuerySuccess; // Obtained result from DebugHookIdInfo() + char Desc[58]; // Arbitrarily sized buffer to hold a result (FIXME: could replace Results[] with a chunk stream?) - ImGuiStackSizes() { memset(this, 0, sizeof(*this)); } - void SetToCurrentState(); - void CompareWithCurrentState(); + ImGuiStackLevelInfo() { memset(this, 0, sizeof(*this)); } +}; + +// State for Stack tool queries +struct ImGuiStackTool +{ + int LastActiveFrame; + int StackLevel; // -1: query stack and resize Results, >= 0: individual stack level + ImGuiID QueryId; // ID to query details for + ImVector Results; + + ImGuiStackTool() { memset(this, 0, sizeof(*this)); } }; //----------------------------------------------------------------------------- @@ -1600,7 +1690,6 @@ struct ImGuiContext bool WithinEndChild; // Set within EndChild() bool GcCompactAll; // Request full GC bool TestEngineHookItems; // Will call test engine hooks: ImGuiTestEngineHook_ItemAdd(), ImGuiTestEngineHook_ItemInfo(), ImGuiTestEngineHook_Log() - ImGuiID TestEngineHookIdInfo; // Will call test engine hooks: ImGuiTestEngineHook_IdInfo() from GetID() void* TestEngine; // Test engine user data // Windows state @@ -1614,13 +1703,14 @@ struct ImGuiContext ImGuiWindow* CurrentWindow; // Window being drawn into ImGuiWindow* HoveredWindow; // Window the mouse is hovering. Will typically catch mouse inputs. ImGuiWindow* HoveredWindowUnderMovingWindow; // Hovered window ignoring MovingWindow. Only set if MovingWindow is set. - ImGuiDockNode* HoveredDockNode; // Hovered dock node. + ImGuiDockNode* HoveredDockNode; // [Debug] Hovered dock node. ImGuiWindow* MovingWindow; // Track the window we clicked on (in order to preserve focus). The actual window that is moved is generally MovingWindow->RootWindowDockTree. ImGuiWindow* WheelingWindow; // Track the window we started mouse-wheeling on. Until a timer elapse or mouse has moved, generally keep scrolling the same window even if during the course of scrolling the mouse ends up hovering a child window. ImVec2 WheelingWindowRefMousePos; float WheelingWindowTimer; // Item/widgets state and tracking information + ImGuiID DebugHookIdInfo; // Will call core hooks: DebugHookIdInfo() from GetID functions, used by Stack Tool [next HoveredId/ActiveId to not pull in an extra cache-line] ImGuiID HoveredId; // Hovered widget, filled during the frame ImGuiID HoveredIdPreviousFrame; bool HoveredIdAllowOverlap; @@ -1668,6 +1758,7 @@ struct ImGuiContext ImVectorGroupStack; // Stack for BeginGroup()/EndGroup() - not inherited by Begin() ImVectorOpenPopupStack; // Which popups are open (persistent) ImVectorBeginPopupStack; // Which level of BeginPopup() we are in (reset every frame) + int BeginMenuCount; // Viewports ImVector Viewports; // Active viewports (always 1+, and generally 1 unless multi-viewports are enabled). Each viewports hold their copy of ImDrawData. @@ -1686,35 +1777,44 @@ struct ImGuiContext ImGuiID NavActivateId; // ~~ (g.ActiveId == 0) && IsNavInputPressed(ImGuiNavInput_Activate) ? NavId : 0, also set when calling ActivateItem() ImGuiID NavActivateDownId; // ~~ IsNavInputDown(ImGuiNavInput_Activate) ? NavId : 0 ImGuiID NavActivatePressedId; // ~~ IsNavInputPressed(ImGuiNavInput_Activate) ? NavId : 0 - ImGuiID NavInputId; // ~~ IsNavInputPressed(ImGuiNavInput_Input) ? NavId : 0 - ImGuiID NavJustTabbedId; // Just tabbed to this id. + ImGuiID NavActivateInputId; // ~~ IsNavInputPressed(ImGuiNavInput_Input) ? NavId : 0; ImGuiActivateFlags_PreferInput will be set and NavActivateId will be 0. + ImGuiActivateFlags NavActivateFlags; ImGuiID NavJustMovedToId; // Just navigated to this id (result of a successfully MoveRequest). ImGuiID NavJustMovedToFocusScopeId; // Just navigated to this focus scope id (result of a successfully MoveRequest). ImGuiKeyModFlags NavJustMovedToKeyMods; ImGuiID NavNextActivateId; // Set by ActivateItem(), queued until next frame. + ImGuiActivateFlags NavNextActivateFlags; ImGuiInputSource NavInputSource; // Keyboard or Gamepad mode? THIS WILL ONLY BE None or NavGamepad or NavKeyboard. - ImRect NavScoringRect; // Rectangle used for scoring, in screen space. Based of window->NavRectRel[], modified for directional navigation scoring. - int NavScoringCount; // Metrics for debugging ImGuiNavLayer NavLayer; // Layer we are navigating on. For now the system is hard-coded for 0=main contents and 1=menu/title bar, may expose layers later. - int NavIdTabCounter; // == NavWindow->DC.FocusIdxTabCounter at time of NavId processing bool NavIdIsAlive; // Nav widget has been seen this frame ~~ NavRectRel is valid bool NavMousePosDirty; // When set we will update mouse position if (io.ConfigFlags & ImGuiConfigFlags_NavEnableSetMousePos) if set (NB: this not enabled by default) bool NavDisableHighlight; // When user starts using mouse, we hide gamepad/keyboard highlight (NB: but they are still available, which is why NavDisableHighlight isn't always != NavDisableMouseHover) bool NavDisableMouseHover; // When user starts using gamepad/keyboard, we hide mouse hovering highlight until mouse is touched again. + + // Navigation: Init & Move Requests bool NavAnyRequest; // ~~ NavMoveRequest || NavInitRequest this is to perform early out in ItemAdd() bool NavInitRequest; // Init request for appearing window to select first item bool NavInitRequestFromMove; ImGuiID NavInitResultId; // Init request result (first item of the window, or one for which SetItemDefaultFocus() was called) ImRect NavInitResultRectRel; // Init request result rectangle (relative to parent window) - bool NavMoveRequest; // Move request for this frame - bool NavMoveRequestForwardToNextFrame; - ImGuiNavMoveFlags NavMoveRequestFlags; - ImGuiKeyModFlags NavMoveRequestKeyMods; - ImGuiDir NavMoveDir, NavMoveDirLast; // Direction of the move request (left/right/up/down), direction of the previous move request + bool NavMoveSubmitted; // Move request submitted, will process result on next NewFrame() + bool NavMoveScoringItems; // Move request submitted, still scoring incoming items + bool NavMoveForwardToNextFrame; + ImGuiNavMoveFlags NavMoveFlags; + ImGuiScrollFlags NavMoveScrollFlags; + ImGuiKeyModFlags NavMoveKeyMods; + ImGuiDir NavMoveDir; // Direction of the move request (left/right/up/down) + ImGuiDir NavMoveDirForDebug; ImGuiDir NavMoveClipDir; // FIXME-NAV: Describe the purpose of this better. Might want to rename? + ImRect NavScoringRect; // Rectangle used for scoring, in screen space. Based of window->NavRectRel[], modified for directional navigation scoring. + ImRect NavScoringNoClipRect; // Some nav operations (such as PageUp/PageDown) enforce a region which clipper will attempt to always keep submitted + int NavScoringDebugCount; // Metrics for debugging + int NavTabbingDir; // Generally -1 or +1, 0 when tabbing without a nav id + int NavTabbingCounter; // >0 when counting items for tabbing ImGuiNavItemData NavMoveResultLocal; // Best move request candidate within NavWindow - ImGuiNavItemData NavMoveResultLocalVisibleSet; // Best move request candidate within NavWindow that are mostly visible (when using ImGuiNavMoveFlags_AlsoScoreVisibleSet flag) + ImGuiNavItemData NavMoveResultLocalVisible; // Best move request candidate within NavWindow that are mostly visible (when using ImGuiNavMoveFlags_AlsoScoreVisibleSet flag) ImGuiNavItemData NavMoveResultOther; // Best move request candidate within NavWindow's flattened hierarchy (when using ImGuiWindowFlags_NavFlattened flag) + ImGuiNavItemData NavTabbingResultFirst; // First tabbing request candidate within NavWindow and flattened hierarchy // Navigation: Windowing (CTRL+TAB for list, or Menu button + keys or directional pads to move/resize) ImGuiWindow* NavWindowingTarget; // Target window when doing CTRL+Tab (or Pad Menu + FocusPrev/Next), this window is temporarily displayed top-most! @@ -1724,15 +1824,6 @@ struct ImGuiContext float NavWindowingHighlightAlpha; bool NavWindowingToggleLayer; - // Legacy Focus/Tabbing system (older than Nav, active even if Nav is disabled, misnamed. FIXME-NAV: This needs a redesign!) - ImGuiWindow* TabFocusRequestCurrWindow; // - ImGuiWindow* TabFocusRequestNextWindow; // - int TabFocusRequestCurrCounterRegular; // Any item being requested for focus, stored as an index (we on layout to be stable between the frame pressing TAB and the next frame, semi-ouch) - int TabFocusRequestCurrCounterTabStop; // Tab item being requested for focus, stored as an index - int TabFocusRequestNextCounterRegular; // Stored for next frame - int TabFocusRequestNextCounterTabStop; // " - bool TabFocusPressed; // Set in NewFrame() when user pressed Tab - // Render float DimBgRatio; // 0.0..1.0 animation when fading in a dimming background (for modal window and CTRL+TAB list) ImGuiMouseCursor MouseCursor; @@ -1756,11 +1847,15 @@ struct ImGuiContext ImVector DragDropPayloadBufHeap; // We don't expose the ImVector<> directly, ImGuiPayload only holds pointer+size unsigned char DragDropPayloadBufLocal[16]; // Local buffer for small payloads + // Clipper + int ClipperTempDataStacked; + ImVector ClipperTempData; + // Table ImGuiTable* CurrentTable; - int CurrentTableStackIdx; - ImPool Tables; - ImVector TablesTempDataStack; + int TablesTempDataStacked; // Temporary table data size (because we leave previous instances undestructed, we generally don't use TablesTempData.Size) + ImVector TablesTempData; // Temporary table data (buffers reused/shared across instances, support nesting) + ImPool Tables; // Persistent table data ImVector TablesLastTimeActive; // Last used timestamp of each tables (SOA, for efficient GC) ImVector DrawChannelsTempMergeBuffer; @@ -1771,14 +1866,14 @@ struct ImGuiContext ImVector ShrinkWidthBuffer; // Widget state - ImVec2 LastValidMousePos; + ImVec2 MouseLastValidPos; ImGuiInputTextState InputTextState; ImFont InputTextPasswordFont; ImGuiID TempInputId; // Temporary text input when CTRL+clicking on a slider, etc. ImGuiColorEditFlags ColorEditOptions; // Store user options for color edit widgets - float ColorEditLastHue; // Backup of last Hue associated to LastColor[3], so we can restore Hue in lossy RGB<>HSV round trips - float ColorEditLastSat; // Backup of last Saturation associated to LastColor[3], so we can restore Saturation in lossy RGB<>HSV round trips - float ColorEditLastColor[3]; + float ColorEditLastHue; // Backup of last Hue associated to LastColor, so we can restore Hue in lossy RGB<>HSV round trips + float ColorEditLastSat; // Backup of last Saturation associated to LastColor, so we can restore Saturation in lossy RGB<>HSV round trips + ImU32 ColorEditLastColor; // RGB value with alpha set to 0. ImVec4 ColorPickerRef; // Initial/reference color at the time of opening the color picker. ImGuiComboPreviewData ComboPreviewData; float SliderCurrentAccum; // Accumulated slider delta when using navigation controls. @@ -1786,9 +1881,10 @@ struct ImGuiContext bool DragCurrentAccumDirty; float DragCurrentAccum; // Accumulator for dragging modification. Always high-precision, not rounded by end-user precision settings float DragSpeedDefaultRatio; // If speed == 0.0f, uses (max-min) * DragSpeedDefaultRatio - float DisabledAlphaBackup; // Backup for style.Alpha for BeginDisabled() float ScrollbarClickDeltaToGrabCenter; // Distance between mouse and center of grab box, normalized in parent space. Use storage? - int TooltipOverrideCount; + float DisabledAlphaBackup; // Backup for style.Alpha for BeginDisabled() + short DisabledStackSize; + short TooltipOverrideCount; float TooltipSlowDelay; // Time before slow tooltips appears (FIXME: This is temporary until we merge in tooltip timer+priority work) ImVector ClipboardHandlerData; // If no custom clipboard handler is defined ImVector MenusIdSubmittedThisFrame; // A list of menu IDs that were rendered at least once @@ -1828,8 +1924,9 @@ struct ImGuiContext // Debug Tools bool DebugItemPickerActive; // Item picker is active (started with DebugStartItemPicker()) - ImGuiID DebugItemPickerBreakId; // Will call IM_DEBUG_BREAK() when encountering this id + ImGuiID DebugItemPickerBreakId; // Will call IM_DEBUG_BREAK() when encountering this ID ImGuiMetricsConfig DebugMetricsConfig; + ImGuiStackTool DebugStackTool; // Misc float FramerateSecPerFrame[120]; // Calculate estimate of framerate for user over the last 2 seconds. @@ -1855,7 +1952,6 @@ struct ImGuiContext WithinFrameScope = WithinFrameScopeWithImplicitWindow = WithinEndChild = false; GcCompactAll = false; TestEngineHookItems = false; - TestEngineHookIdInfo = 0; TestEngine = NULL; WindowsActiveCount = 0; @@ -1867,6 +1963,7 @@ struct ImGuiContext WheelingWindow = NULL; WheelingWindowTimer = 0.0f; + DebugHookIdInfo = 0; HoveredId = HoveredIdPreviousFrame = 0; HoveredIdAllowOverlap = false; HoveredIdUsingMouseWheel = HoveredIdPreviousFrameUsingMouseWheel = false; @@ -1897,6 +1994,7 @@ struct ImGuiContext LastActiveIdTimer = 0.0f; CurrentItemFlags = ImGuiItemFlags_None; + BeginMenuCount = 0; CurrentDpiScale = 0.0f; CurrentViewport = NULL; @@ -1905,14 +2003,12 @@ struct ImGuiContext ViewportFrontMostStampCount = 0; NavWindow = NULL; - NavId = NavFocusScopeId = NavActivateId = NavActivateDownId = NavActivatePressedId = NavInputId = 0; - NavJustTabbedId = NavJustMovedToId = NavJustMovedToFocusScopeId = NavNextActivateId = 0; + NavId = NavFocusScopeId = NavActivateId = NavActivateDownId = NavActivatePressedId = NavActivateInputId = 0; + NavJustMovedToId = NavJustMovedToFocusScopeId = NavNextActivateId = 0; + NavActivateFlags = NavNextActivateFlags = ImGuiActivateFlags_None; NavJustMovedToKeyMods = ImGuiKeyModFlags_None; NavInputSource = ImGuiInputSource_None; - NavScoringRect = ImRect(); - NavScoringCount = 0; NavLayer = ImGuiNavLayer_Main; - NavIdTabCounter = INT_MAX; NavIdIsAlive = false; NavMousePosDirty = false; NavDisableHighlight = true; @@ -1921,21 +2017,21 @@ struct ImGuiContext NavInitRequest = false; NavInitRequestFromMove = false; NavInitResultId = 0; - NavMoveRequest = false; - NavMoveRequestForwardToNextFrame = false; - NavMoveRequestFlags = ImGuiNavMoveFlags_None; - NavMoveRequestKeyMods = ImGuiKeyModFlags_None; - NavMoveDir = NavMoveDirLast = NavMoveClipDir = ImGuiDir_None; + NavMoveSubmitted = false; + NavMoveScoringItems = false; + NavMoveForwardToNextFrame = false; + NavMoveFlags = ImGuiNavMoveFlags_None; + NavMoveScrollFlags = ImGuiScrollFlags_None; + NavMoveKeyMods = ImGuiKeyModFlags_None; + NavMoveDir = NavMoveDirForDebug = NavMoveClipDir = ImGuiDir_None; + NavScoringDebugCount = 0; + NavTabbingDir = 0; + NavTabbingCounter = 0; NavWindowingTarget = NavWindowingTargetAnim = NavWindowingListWindow = NULL; NavWindowingTimer = NavWindowingHighlightAlpha = 0.0f; NavWindowingToggleLayer = false; - TabFocusRequestCurrWindow = TabFocusRequestNextWindow = NULL; - TabFocusRequestCurrCounterRegular = TabFocusRequestCurrCounterTabStop = INT_MAX; - TabFocusRequestNextCounterRegular = TabFocusRequestNextCounterTabStop = INT_MAX; - TabFocusPressed = false; - DimBgRatio = 0.0f; MouseCursor = ImGuiMouseCursor_Arrow; @@ -1951,21 +2047,23 @@ struct ImGuiContext DragDropHoldJustPressedId = 0; memset(DragDropPayloadBufLocal, 0, sizeof(DragDropPayloadBufLocal)); + ClipperTempDataStacked = 0; + CurrentTable = NULL; - CurrentTableStackIdx = -1; + TablesTempDataStacked = 0; CurrentTabBar = NULL; - LastValidMousePos = ImVec2(0.0f, 0.0f); TempInputId = 0; ColorEditOptions = ImGuiColorEditFlags_DefaultOptions_; ColorEditLastHue = ColorEditLastSat = 0.0f; - ColorEditLastColor[0] = ColorEditLastColor[1] = ColorEditLastColor[2] = FLT_MAX; + ColorEditLastColor = 0; SliderCurrentAccum = 0.0f; SliderCurrentAccumDirty = false; DragCurrentAccumDirty = false; DragCurrentAccum = 0.0f; DragSpeedDefaultRatio = 1.0f / 100.0f; DisabledAlphaBackup = 0.0f; + DisabledStackSize = 0; ScrollbarClickDeltaToGrabCenter = 0.0f; TooltipOverrideCount = 0; TooltipSlowDelay = 0.50f; @@ -2020,6 +2118,7 @@ struct IMGUI_API ImGuiWindowTempData ImVec1 Indent; // Indentation / start position from left of window (increased by TreePush/TreePop, etc.) ImVec1 ColumnsOffset; // Offset to the current column (if ColumnsCurrent > 0). FIXME: This and the above should be a stack to allow use cases like Tree->Column->Tree. Need revamp columns API. ImVec1 GroupOffset; + ImVec2 CursorStartPosLossyness;// Record the loss of precision of CursorStartPos due to really large scrolling amount. This is used by clipper to compensentate and fix the most common use case of large scroll area. // Keyboard/Gamepad navigation ImGuiNavLayer NavLayerCurrent; // Current layer, 0..31 (we currently only use 0..1) @@ -2041,8 +2140,6 @@ struct IMGUI_API ImGuiWindowTempData int CurrentTableIdx; // Current table index (into g.Tables) ImGuiLayoutType LayoutType; ImGuiLayoutType ParentLayoutType; // Layout type of parent window at the time of Begin() - int FocusCounterRegular; // (Legacy Focus/Tabbing system) Sequential counter, start at -1 and increase as assigned via FocusableItemRegister() (FIXME-NAV: Needs redesign) - int FocusCounterTabStop; // (Legacy Focus/Tabbing system) Same, but only count widgets which you can Tab through. // Local parameters stacks // We store the current settings outside of the vectors to increase memory locality (reduce cache misses). The vectors are rarely modified. Also it allows us to not heap allocate for short-lived windows which are not using those settings. @@ -2050,7 +2147,6 @@ struct IMGUI_API ImGuiWindowTempData float TextWrapPos; // Current text wrap pos. ImVector ItemWidthStack; // Store item widths to restore (attention: .back() is not == ItemWidth) ImVector TextWrapPosStack; // Store text wrap pos to restore (attention: .back() is not == TextWrapPos) - ImGuiStackSizes StackSizesOnBegin; // Store size of various stacks for asserting }; // Storage for one window @@ -2093,6 +2189,7 @@ struct IMGUI_API ImGuiWindow bool Appearing; // Set during the frame where the window is appearing (or re-appearing) bool Hidden; // Do not display (== HiddenFrames*** > 0) bool IsFallbackWindow; // Set on the "Debug##Default" window. + bool IsExplicitChild; // Set when passed _ChildWindow, left to false by BeginDocked() bool HasCloseButton; // Set when the window has a close button (p_open != NULL) signed char ResizeBorderHeld; // Current border being held for resize (-1: none, otherwise 0-3) short BeginCount; // Number of Begin() during the current frame (generally 0 or 1, 1+ if appending via multiple Begin/End pairs) @@ -2142,8 +2239,10 @@ struct IMGUI_API ImGuiWindow ImDrawList* DrawList; // == &DrawListInst (for backward compatibility reason with code using imgui_internal.h we keep this a pointer) ImDrawList DrawListInst; - ImGuiWindow* ParentWindow; // If we are a child _or_ popup window, this is pointing to our parent. Otherwise NULL. - ImGuiWindow* RootWindow; // Point to ourself or first ancestor that is not a child window. Doesn't cross through dock nodes. We use this so IsWindowFocused() can behave consistently regardless of docking state. + ImGuiWindow* ParentWindow; // If we are a child _or_ popup _or_ docked window, this is pointing to our parent. Otherwise NULL. + ImGuiWindow* ParentWindowInBeginStack; + ImGuiWindow* RootWindow; // Point to ourself or first ancestor that is not a child window. Doesn't cross through popups/dock nodes. + ImGuiWindow* RootWindowPopupTree; // Point to ourself or first ancestor that is not a child window. Cross through popups parent<>child. ImGuiWindow* RootWindowDockTree; // Point to ourself or first ancestor that is not a child window. Cross through dock nodes. ImGuiWindow* RootWindowForTitleBarHighlight; // Point to ourself or first ancestor which will display TitleBgActive color when this window is active. ImGuiWindow* RootWindowForNav; // Point to ourself or first ancestor which doesn't have the NavFlattened flag. @@ -2359,7 +2458,7 @@ struct ImGuiTableCellData }; // FIXME-TABLE: more transient data could be stored in a per-stacked table structure: DrawSplitter, SortSpecs, incoming RowData -struct ImGuiTable +struct IMGUI_API ImGuiTable { ImGuiID ID; ImGuiTableFlags Flags; @@ -2465,14 +2564,14 @@ struct ImGuiTable bool MemoryCompacted; bool HostSkipItems; // Backup of InnerWindow->SkipItem at the end of BeginTable(), because we will overwrite InnerWindow->SkipItem on a per-column basis - IMGUI_API ImGuiTable() { memset(this, 0, sizeof(*this)); LastFrameActive = -1; } - IMGUI_API ~ImGuiTable() { IM_FREE(RawData); } + ImGuiTable() { memset(this, 0, sizeof(*this)); LastFrameActive = -1; } + ~ImGuiTable() { IM_FREE(RawData); } }; // Transient data that are only needed between BeginTable() and EndTable(), those buffers are shared (1 per level of stacked table). // - Accessing those requires chasing an extra pointer so for very frequently used data we leave them in the main table structure. // - We also leave out of this structure data that tend to be particularly useful for debugging/metrics. -struct ImGuiTableTempData +struct IMGUI_API ImGuiTableTempData { int TableIndex; // Index in g.Tables.Buf[] pool float LastTimeActive; // Last timestamp this structure was used @@ -2489,7 +2588,7 @@ struct ImGuiTableTempData float HostBackupItemWidth; // Backup of OuterWindow->DC.ItemWidth at the end of BeginTable() int HostBackupItemWidthStackSize;//Backup of OuterWindow->DC.ItemWidthStack.Size at the end of BeginTable() - IMGUI_API ImGuiTableTempData() { memset(this, 0, sizeof(*this)); LastTimeActive = -1.0f; } + ImGuiTableTempData() { memset(this, 0, sizeof(*this)); LastTimeActive = -1.0f; } }; // sizeof() ~ 12 @@ -2548,13 +2647,16 @@ namespace ImGui IMGUI_API ImGuiWindow* FindWindowByName(const char* name); IMGUI_API void UpdateWindowParentAndRootLinks(ImGuiWindow* window, ImGuiWindowFlags flags, ImGuiWindow* parent_window); IMGUI_API ImVec2 CalcWindowNextAutoFitSize(ImGuiWindow* window); - IMGUI_API bool IsWindowChildOf(ImGuiWindow* window, ImGuiWindow* potential_parent); + IMGUI_API bool IsWindowChildOf(ImGuiWindow* window, ImGuiWindow* potential_parent, bool popup_hierarchy, bool dock_hierarchy); + IMGUI_API bool IsWindowWithinBeginStackOf(ImGuiWindow* window, ImGuiWindow* potential_parent); IMGUI_API bool IsWindowAbove(ImGuiWindow* potential_above, ImGuiWindow* potential_below); IMGUI_API bool IsWindowNavFocusable(ImGuiWindow* window); IMGUI_API void SetWindowPos(ImGuiWindow* window, const ImVec2& pos, ImGuiCond cond = 0); IMGUI_API void SetWindowSize(ImGuiWindow* window, const ImVec2& size, ImGuiCond cond = 0); IMGUI_API void SetWindowCollapsed(ImGuiWindow* window, bool collapsed, ImGuiCond cond = 0); IMGUI_API void SetWindowHitTestHole(ImGuiWindow* window, const ImVec2& pos, const ImVec2& size); + inline ImRect WindowRectAbsToRel(ImGuiWindow* window, const ImRect& r) { ImVec2 off = window->DC.CursorStartPos; return ImRect(r.Min.x - off.x, r.Min.y - off.y, r.Max.x - off.x, r.Max.y - off.y); } + inline ImRect WindowRectRelToAbs(ImGuiWindow* window, const ImRect& r) { ImVec2 off = window->DC.CursorStartPos; return ImRect(r.Min.x + off.x, r.Min.y + off.y, r.Max.x + off.x, r.Max.y + off.y); } // Windows: Display Order and Focus Order IMGUI_API void FocusWindow(ImGuiWindow* window); @@ -2562,6 +2664,9 @@ namespace ImGui IMGUI_API void BringWindowToFocusFront(ImGuiWindow* window); IMGUI_API void BringWindowToDisplayFront(ImGuiWindow* window); IMGUI_API void BringWindowToDisplayBack(ImGuiWindow* window); + IMGUI_API void BringWindowToDisplayBehind(ImGuiWindow* window, ImGuiWindow* above_window); + IMGUI_API int FindWindowDisplayIndex(ImGuiWindow* window); + IMGUI_API ImGuiWindow* FindBottomMostVisibleWindowWithinBeginStack(ImGuiWindow* window); // Fonts, drawing IMGUI_API void SetCurrentFont(ImFont* font); @@ -2606,7 +2711,14 @@ namespace ImGui IMGUI_API void SetScrollY(ImGuiWindow* window, float scroll_y); IMGUI_API void SetScrollFromPosX(ImGuiWindow* window, float local_x, float center_x_ratio); IMGUI_API void SetScrollFromPosY(ImGuiWindow* window, float local_y, float center_y_ratio); - IMGUI_API ImVec2 ScrollToBringRectIntoView(ImGuiWindow* window, const ImRect& item_rect); + + // Early work-in-progress API (ScrollToItem() will become public) + IMGUI_API void ScrollToItem(ImGuiScrollFlags flags = 0); + IMGUI_API void ScrollToRect(ImGuiWindow* window, const ImRect& rect, ImGuiScrollFlags flags = 0); + IMGUI_API ImVec2 ScrollToRectEx(ImGuiWindow* window, const ImRect& rect, ImGuiScrollFlags flags = 0); +//#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS + inline void ScrollToBringRectIntoView(ImGuiWindow* window, const ImRect& rect) { ScrollToRect(window, rect, ImGuiScrollFlags_KeepVisibleEdgeY); } +//#endif // Basic Accessors inline ImGuiID GetItemID() { ImGuiContext& g = *GImGui; return g.LastItemData.ID; } // Get ID of last item (~~ often same ImGui::GetID(label) beforehand) @@ -2627,10 +2739,9 @@ namespace ImGui // Basic Helpers for widget code IMGUI_API void ItemSize(const ImVec2& size, float text_baseline_y = -1.0f); IMGUI_API void ItemSize(const ImRect& bb, float text_baseline_y = -1.0f); - IMGUI_API bool ItemAdd(const ImRect& bb, ImGuiID id, const ImRect* nav_bb = NULL, ImGuiItemAddFlags flags = 0); + IMGUI_API bool ItemAdd(const ImRect& bb, ImGuiID id, const ImRect* nav_bb = NULL, ImGuiItemFlags extra_flags = 0); IMGUI_API bool ItemHoverable(const ImRect& bb, ImGuiID id); - IMGUI_API void ItemFocusable(ImGuiWindow* window, ImGuiID id); - IMGUI_API bool IsClippedEx(const ImRect& bb, ImGuiID id, bool clip_even_when_logged); + IMGUI_API bool IsClippedEx(const ImRect& bb, ImGuiID id); IMGUI_API void SetLastItemData(ImGuiID item_id, ImGuiItemFlags in_flags, ImGuiItemStatusFlags status_flags, const ImRect& item_rect); IMGUI_API ImVec2 CalcItemSize(ImVec2 size, float default_w, float default_h); IMGUI_API float CalcWrapWidthForPos(const ImVec2& pos, float wrap_pos_x); @@ -2644,11 +2755,13 @@ namespace ImGui IMGUI_API void PopItemFlag(); #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS + // Currently refactoring focus/nav/tabbing system // If you have old/custom copy-and-pasted widgets that used FocusableItemRegister(): - // (Old) IMGUI_VERSION_NUM < 18209: using 'ItemAdd(....)' and 'bool focused = FocusableItemRegister(...)' - // (New) IMGUI_VERSION_NUM >= 18209: using 'ItemAdd(..., ImGuiItemAddFlags_Focusable)' and 'bool focused = (GetItemStatusFlags() & ImGuiItemStatusFlags_Focused) != 0' + // (Old) IMGUI_VERSION_NUM < 18209: using 'ItemAdd(....)' and 'bool tab_focused = FocusableItemRegister(...)' + // (Old) IMGUI_VERSION_NUM >= 18209: using 'ItemAdd(..., ImGuiItemAddFlags_Focusable)' and 'bool tab_focused = (GetItemStatusFlags() & ImGuiItemStatusFlags_Focused) != 0' + // (New) IMGUI_VERSION_NUM >= 18413: using 'ItemAdd(..., ImGuiItemFlags_Inputable)' and 'bool tab_focused = (GetItemStatusFlags() & ImGuiItemStatusFlags_FocusedTabbing) != 0 || g.NavActivateInputId == id' (WIP) // Widget code are simplified as there's no need to call FocusableItemUnregister() while managing the transition from regular widget to TempInputText() - inline bool FocusableItemRegister(ImGuiWindow* window, ImGuiID id) { IM_ASSERT(0); IM_UNUSED(window); IM_UNUSED(id); return false; } // -> pass ImGuiItemAddFlags_Focusable flag to ItemAdd() + inline bool FocusableItemRegister(ImGuiWindow* window, ImGuiID id) { IM_ASSERT(0); IM_UNUSED(window); IM_UNUSED(id); return false; } // -> pass ImGuiItemAddFlags_Inputable flag to ItemAdd() inline void FocusableItemUnregister(ImGuiWindow* window) { IM_ASSERT(0); IM_UNUSED(window); } // -> unnecessary: TempInputText() uses ImGuiInputTextFlags_MergedItem #endif @@ -2663,16 +2776,18 @@ namespace ImGui IMGUI_API void OpenPopupEx(ImGuiID id, ImGuiPopupFlags popup_flags = ImGuiPopupFlags_None); IMGUI_API void ClosePopupToLevel(int remaining, bool restore_focus_to_window_under_popup); IMGUI_API void ClosePopupsOverWindow(ImGuiWindow* ref_window, bool restore_focus_to_window_under_popup); + IMGUI_API void ClosePopupsExceptModals(); IMGUI_API bool IsPopupOpen(ImGuiID id, ImGuiPopupFlags popup_flags); IMGUI_API bool BeginPopupEx(ImGuiID id, ImGuiWindowFlags extra_flags); - IMGUI_API void BeginTooltipEx(ImGuiWindowFlags extra_flags, ImGuiTooltipFlags tooltip_flags); + IMGUI_API void BeginTooltipEx(ImGuiTooltipFlags tooltip_flags, ImGuiWindowFlags extra_window_flags); IMGUI_API ImRect GetPopupAllowedExtentRect(ImGuiWindow* window); IMGUI_API ImGuiWindow* GetTopMostPopupModal(); + IMGUI_API ImGuiWindow* GetTopMostAndVisiblePopupModal(); IMGUI_API ImVec2 FindBestWindowPosForPopup(ImGuiWindow* window); IMGUI_API ImVec2 FindBestWindowPosForPopupEx(const ImVec2& ref_pos, const ImVec2& size, ImGuiDir* last_dir, const ImRect& r_outer, const ImRect& r_avoid, ImGuiPopupPositionPolicy policy); - IMGUI_API bool BeginViewportSideBar(const char* name, ImGuiViewport* viewport, ImGuiDir dir, float size, ImGuiWindowFlags window_flags); // Menus + IMGUI_API bool BeginViewportSideBar(const char* name, ImGuiViewport* viewport, ImGuiDir dir, float size, ImGuiWindowFlags window_flags); IMGUI_API bool BeginMenuEx(const char* label, const char* icon, bool enabled = true); IMGUI_API bool MenuItemEx(const char* label, const char* icon, const char* shortcut = NULL, bool selected = false, bool enabled = true); @@ -2683,8 +2798,11 @@ namespace ImGui // Gamepad/Keyboard Navigation IMGUI_API void NavInitWindow(ImGuiWindow* window, bool force_reinit); - IMGUI_API bool NavMoveRequestButNoResultYet(); // Should be called ~NavMoveRequestIsActiveButNoResultYet() - IMGUI_API void NavMoveRequestForward(ImGuiDir move_dir, ImGuiDir clip_dir, ImGuiNavMoveFlags move_flags); + IMGUI_API void NavInitRequestApplyResult(); + IMGUI_API bool NavMoveRequestButNoResultYet(); + IMGUI_API void NavMoveRequestSubmit(ImGuiDir move_dir, ImGuiDir clip_dir, ImGuiNavMoveFlags move_flags, ImGuiScrollFlags scroll_flags); + IMGUI_API void NavMoveRequestForward(ImGuiDir move_dir, ImGuiDir clip_dir, ImGuiNavMoveFlags move_flags, ImGuiScrollFlags scroll_flags); + IMGUI_API void NavMoveRequestResolveWithLastItem(ImGuiNavItemData* result); IMGUI_API void NavMoveRequestCancel(); IMGUI_API void NavMoveRequestApplyResult(); IMGUI_API void NavMoveRequestTryWrapping(ImGuiWindow* window, ImGuiNavMoveFlags move_flags); @@ -2723,6 +2841,7 @@ namespace ImGui IMGUI_API void DockContextRebuildNodes(ImGuiContext* ctx); IMGUI_API void DockContextNewFrameUpdateUndocking(ImGuiContext* ctx); IMGUI_API void DockContextNewFrameUpdateDocking(ImGuiContext* ctx); + IMGUI_API void DockContextEndFrame(ImGuiContext* ctx); IMGUI_API ImGuiID DockContextGenNodeID(ImGuiContext* ctx); IMGUI_API void DockContextQueueDock(ImGuiContext* ctx, ImGuiWindow* target, ImGuiDockNode* target_node, ImGuiWindow* payload, ImGuiDir split_dir, float split_ratio, bool split_outer); IMGUI_API void DockContextQueueUndockWindow(ImGuiContext* ctx, ImGuiWindow* window); @@ -2731,6 +2850,7 @@ namespace ImGui IMGUI_API bool DockNodeBeginAmendTabBar(ImGuiDockNode* node); IMGUI_API void DockNodeEndAmendTabBar(); inline ImGuiDockNode* DockNodeGetRootNode(ImGuiDockNode* node) { while (node->ParentNode) node = node->ParentNode; return node; } + inline bool DockNodeIsInHierarchyOf(ImGuiDockNode* node, ImGuiDockNode* parent) { while (node) { if (node == parent) return true; node = node->ParentNode; } return false; } inline int DockNodeGetDepth(const ImGuiDockNode* node) { int depth = 0; while (node->ParentNode) { node = node->ParentNode; depth++; } return depth; } inline ImGuiID DockNodeGetWindowMenuButtonId(const ImGuiDockNode* node) { return ImHashStr("#COLLAPSE", 0, node->ID); } inline ImGuiDockNode* GetWindowDockNode() { ImGuiContext& g = *GImGui; return g.CurrentWindow->DockNode; } @@ -2870,6 +2990,7 @@ namespace ImGui IMGUI_API void RenderArrowDockMenu(ImDrawList* draw_list, ImVec2 p_min, float sz, ImU32 col); IMGUI_API void RenderRectFilledRangeH(ImDrawList* draw_list, const ImRect& rect, ImU32 col, float x_start_norm, float x_end_norm, float rounding); IMGUI_API void RenderRectFilledWithHole(ImDrawList* draw_list, ImRect outer, ImRect inner, ImU32 col, float rounding); + IMGUI_API ImDrawFlags CalcRoundingFlagsForRectInRect(const ImRect& r_in, const ImRect& r_outer, float threshold); #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS // [1.71: 2019/06/07: Updating prototypes of some of the internal functions. Leaving those for reference for a short while] @@ -2884,7 +3005,7 @@ namespace ImGui IMGUI_API bool CollapseButton(ImGuiID id, const ImVec2& pos, ImGuiDockNode* dock_node); IMGUI_API bool ArrowButtonEx(const char* str_id, ImGuiDir dir, ImVec2 size_arg, ImGuiButtonFlags flags = 0); IMGUI_API void Scrollbar(ImGuiAxis axis); - IMGUI_API bool ScrollbarEx(const ImRect& bb, ImGuiID id, ImGuiAxis axis, float* p_scroll_v, float avail_v, float contents_v, ImDrawFlags flags); + IMGUI_API bool ScrollbarEx(const ImRect& bb, ImGuiID id, ImGuiAxis axis, ImS64* p_scroll_v, ImS64 avail_v, ImS64 contents_v, ImDrawFlags flags); IMGUI_API bool ImageButtonEx(ImGuiID id, ImTextureID texture_id, const ImVec2& size, const ImVec2& uv0, const ImVec2& uv1, const ImVec2& padding, const ImVec4& bg_col, const ImVec4& tint_col); IMGUI_API ImRect GetWindowScrollbarRect(ImGuiWindow* window, ImGuiAxis axis); IMGUI_API ImGuiID GetWindowScrollbarID(ImGuiWindow* window, ImGuiAxis axis); @@ -2898,7 +3019,7 @@ namespace ImGui IMGUI_API bool ButtonBehavior(const ImRect& bb, ImGuiID id, bool* out_hovered, bool* out_held, ImGuiButtonFlags flags = 0); IMGUI_API bool DragBehavior(ImGuiID id, ImGuiDataType data_type, void* p_v, float v_speed, const void* p_min, const void* p_max, const char* format, ImGuiSliderFlags flags); IMGUI_API bool SliderBehavior(const ImRect& bb, ImGuiID id, ImGuiDataType data_type, void* p_v, const void* p_min, const void* p_max, const char* format, ImGuiSliderFlags flags, ImRect* out_grab_bb); - IMGUI_API bool SplitterBehavior(const ImRect& bb, ImGuiID id, ImGuiAxis axis, float* size1, float* size2, float min_size1, float min_size2, float hover_extend = 0.0f, float hover_visibility_delay = 0.0f); + IMGUI_API bool SplitterBehavior(const ImRect& bb, ImGuiID id, ImGuiAxis axis, float* size1, float* size2, float min_size1, float min_size2, float hover_extend = 0.0f, float hover_visibility_delay = 0.0f, ImU32 bg_col = 0); IMGUI_API bool TreeNodeBehavior(ImGuiID id, ImGuiTreeNodeFlags flags, const char* label, const char* label_end = NULL); IMGUI_API bool TreeNodeBehaviorIsOpen(ImGuiID id, ImGuiTreeNodeFlags flags = 0); // Consume previous SetNextItemOpen() data, if any. May return true when logging IMGUI_API void TreePushOverrideID(ImGuiID id); @@ -2947,10 +3068,12 @@ namespace ImGui // Debug Tools IMGUI_API void ErrorCheckEndFrameRecover(ImGuiErrorLogCallback log_callback, void* user_data = NULL); + IMGUI_API void ErrorCheckEndWindowRecover(ImGuiErrorLogCallback log_callback, void* user_data = NULL); inline void DebugDrawItemRect(ImU32 col = IM_COL32(255,0,0,255)) { ImGuiContext& g = *GImGui; ImGuiWindow* window = g.CurrentWindow; GetForegroundDrawList(window)->AddRect(g.LastItemData.Rect.Min, g.LastItemData.Rect.Max, col); } inline void DebugStartItemPicker() { ImGuiContext& g = *GImGui; g.DebugItemPickerActive = true; } IMGUI_API void ShowFontAtlas(ImFontAtlas* atlas); + IMGUI_API void DebugHookIdInfo(ImGuiID id, ImGuiDataType data_type, const void* data_id, const void* data_id_end); IMGUI_API void DebugNodeColumns(ImGuiOldColumns* columns); IMGUI_API void DebugNodeDockNode(ImGuiDockNode* node, const char* label); IMGUI_API void DebugNodeDrawList(ImGuiWindow* window, ImGuiViewportP* viewport, const ImDrawList* draw_list, const char* label); @@ -2963,6 +3086,7 @@ namespace ImGui IMGUI_API void DebugNodeWindow(ImGuiWindow* window, const char* label); IMGUI_API void DebugNodeWindowSettings(ImGuiWindowSettings* settings); IMGUI_API void DebugNodeWindowsList(ImVector* windows, const char* label); + IMGUI_API void DebugNodeWindowsListByBeginStackParent(ImGuiWindow** windows, int windows_size, ImGuiWindow* parent_in_begin_stack); IMGUI_API void DebugNodeViewport(ImGuiViewportP* viewport); IMGUI_API void DebugRenderViewportThumbnail(ImDrawList* draw_list, ImGuiViewportP* viewport, const ImRect& bb); @@ -2997,14 +3121,12 @@ IMGUI_API void ImFontAtlasBuildMultiplyRectAlpha8(const unsigned char table #ifdef IMGUI_ENABLE_TEST_ENGINE extern void ImGuiTestEngineHook_ItemAdd(ImGuiContext* ctx, const ImRect& bb, ImGuiID id); extern void ImGuiTestEngineHook_ItemInfo(ImGuiContext* ctx, ImGuiID id, const char* label, ImGuiItemStatusFlags flags); -extern void ImGuiTestEngineHook_IdInfo(ImGuiContext* ctx, ImGuiDataType data_type, ImGuiID id, const void* data_id); -extern void ImGuiTestEngineHook_IdInfo(ImGuiContext* ctx, ImGuiDataType data_type, ImGuiID id, const void* data_id, const void* data_id_end); extern void ImGuiTestEngineHook_Log(ImGuiContext* ctx, const char* fmt, ...); +extern const char* ImGuiTestEngine_FindItemDebugLabel(ImGuiContext* ctx, ImGuiID id); + #define IMGUI_TEST_ENGINE_ITEM_ADD(_BB,_ID) if (g.TestEngineHookItems) ImGuiTestEngineHook_ItemAdd(&g, _BB, _ID) // Register item bounding box #define IMGUI_TEST_ENGINE_ITEM_INFO(_ID,_LABEL,_FLAGS) if (g.TestEngineHookItems) ImGuiTestEngineHook_ItemInfo(&g, _ID, _LABEL, _FLAGS) // Register item label and status flags (optional) #define IMGUI_TEST_ENGINE_LOG(_FMT,...) if (g.TestEngineHookItems) ImGuiTestEngineHook_Log(&g, _FMT, __VA_ARGS__) // Custom log entry from user land into test log -#define IMGUI_TEST_ENGINE_ID_INFO(_ID,_TYPE,_DATA) if (g.TestEngineHookIdInfo == _ID) ImGuiTestEngineHook_IdInfo(&g, _TYPE, _ID, (const void*)(_DATA)); -#define IMGUI_TEST_ENGINE_ID_INFO2(_ID,_TYPE,_DATA,_DATA2) if (g.TestEngineHookIdInfo == _ID) ImGuiTestEngineHook_IdInfo(&g, _TYPE, _ID, (const void*)(_DATA), (const void*)(_DATA2)); #else #define IMGUI_TEST_ENGINE_ITEM_INFO(_ID,_LABEL,_FLAGS) ((void)0) #endif diff --git a/imgui-sys/third-party/imgui-docking/imgui/imgui_tables.cpp b/imgui-sys/third-party/imgui-docking/imgui/imgui_tables.cpp index e70a4dea0..8a3fe93c1 100644 --- a/imgui-sys/third-party/imgui-docking/imgui/imgui_tables.cpp +++ b/imgui-sys/third-party/imgui-docking/imgui/imgui_tables.cpp @@ -1,4 +1,4 @@ -// dear imgui, v1.85 WIP +// dear imgui, v1.86 // (tables and columns code) /* @@ -324,7 +324,7 @@ bool ImGui::BeginTableEx(const char* name, ImGuiID id, int columns_count, ImG const ImVec2 avail_size = GetContentRegionAvail(); ImVec2 actual_outer_size = CalcItemSize(outer_size, ImMax(avail_size.x, 1.0f), use_child_window ? ImMax(avail_size.y, 1.0f) : 0.0f); ImRect outer_rect(outer_window->DC.CursorPos, outer_window->DC.CursorPos + actual_outer_size); - if (use_child_window && IsClippedEx(outer_rect, 0, false)) + if (use_child_window && IsClippedEx(outer_rect, 0)) { ItemSize(outer_rect); return false; @@ -340,10 +340,9 @@ bool ImGui::BeginTableEx(const char* name, ImGuiID id, int columns_count, ImG // Acquire temporary buffers const int table_idx = g.Tables.GetIndex(table); - g.CurrentTableStackIdx++; - if (g.CurrentTableStackIdx + 1 > g.TablesTempDataStack.Size) - g.TablesTempDataStack.resize(g.CurrentTableStackIdx + 1, ImGuiTableTempData()); - ImGuiTableTempData* temp_data = table->TempData = &g.TablesTempDataStack[g.CurrentTableStackIdx]; + if (++g.TablesTempDataStacked > g.TablesTempData.Size) + g.TablesTempData.resize(g.TablesTempDataStacked, ImGuiTableTempData()); + ImGuiTableTempData* temp_data = table->TempData = &g.TablesTempData[g.TablesTempDataStacked - 1]; temp_data->TableIndex = table_idx; table->DrawSplitter = &table->TempData->DrawSplitter; table->DrawSplitter->Clear(); @@ -564,6 +563,7 @@ bool ImGui::BeginTableEx(const char* name, ImGuiID id, int columns_count, ImG // + 0 (for ImGuiTable instance, we are pooling allocations in g.Tables) // + 1 (for table->RawData allocated below) // + 1 (for table->ColumnsNames, if names are used) +// Shared allocations per number of nested tables // + 1 (for table->Splitter._Channels) // + 2 * active_channels_count (for ImDrawCmd and ImDrawIdx buffers inside channels) // Where active_channels_count is variable but often == columns_count or columns_count + 1, see TableSetupDrawChannels() for details. @@ -1170,7 +1170,7 @@ void ImGui::TableUpdateBorders(ImGuiTable* table) KeepAliveID(column_id); bool hovered = false, held = false; - bool pressed = ButtonBehavior(hit_rect, column_id, &hovered, &held, ImGuiButtonFlags_FlattenChildren | ImGuiButtonFlags_AllowItemOverlap | ImGuiButtonFlags_PressedOnClick | ImGuiButtonFlags_PressedOnDoubleClick); + bool pressed = ButtonBehavior(hit_rect, column_id, &hovered, &held, ImGuiButtonFlags_FlattenChildren | ImGuiButtonFlags_AllowItemOverlap | ImGuiButtonFlags_PressedOnClick | ImGuiButtonFlags_PressedOnDoubleClick | ImGuiButtonFlags_NoNavFocus); if (pressed && IsMouseDoubleClicked(0)) { TableSetColumnWidthAutoSingle(table, column_n); @@ -1381,9 +1381,8 @@ void ImGui::EndTable() // Clear or restore current table, if any IM_ASSERT(g.CurrentWindow == outer_window && g.CurrentTable == table); - IM_ASSERT(g.CurrentTableStackIdx >= 0); - g.CurrentTableStackIdx--; - temp_data = g.CurrentTableStackIdx >= 0 ? &g.TablesTempDataStack[g.CurrentTableStackIdx] : NULL; + IM_ASSERT(g.TablesTempDataStacked > 0); + temp_data = (--g.TablesTempDataStacked > 0) ? &g.TablesTempData[g.TablesTempDataStacked - 1] : NULL; g.CurrentTable = temp_data ? g.Tables.GetByIndex(temp_data->TableIndex) : NULL; if (g.CurrentTable) { @@ -1479,6 +1478,7 @@ void ImGui::TableSetupScrollFreeze(int columns, int rows) table->IsUnfrozenRows = (table->FreezeRowsCount == 0); // Make sure this is set before TableUpdateLayout() so ImGuiListClipper can benefit from it.b // Ensure frozen columns are ordered in their section. We still allow multiple frozen columns to be reordered. + // FIXME-TABLE: This work for preserving 2143 into 21|43. How about 4321 turning into 21|43? (preserve relative order in each section) for (int column_n = 0; column_n < table->FreezeColumnsRequest; column_n++) { int order_n = table->DisplayOrderToIndex[column_n]; @@ -3987,7 +3987,7 @@ void ImGui::EndColumns() const float column_hit_hw = COLUMNS_HIT_RECT_HALF_WIDTH; const ImRect column_hit_rect(ImVec2(x - column_hit_hw, y1), ImVec2(x + column_hit_hw, y2)); KeepAliveID(column_id); - if (IsClippedEx(column_hit_rect, column_id, false)) + if (IsClippedEx(column_hit_rect, column_id)) // FIXME: Can be removed or replaced with a lower-level test continue; bool hovered = false, held = false; diff --git a/imgui-sys/third-party/imgui-docking/imgui/imgui_widgets.cpp b/imgui-sys/third-party/imgui-docking/imgui/imgui_widgets.cpp index cb835f2ac..89e3681e4 100644 --- a/imgui-sys/third-party/imgui-docking/imgui/imgui_widgets.cpp +++ b/imgui-sys/third-party/imgui-docking/imgui/imgui_widgets.cpp @@ -1,4 +1,4 @@ -// dear imgui, v1.85 WIP +// dear imgui, v1.86 // (widgets code) /* @@ -205,7 +205,7 @@ void ImGui::TextEx(const char* text, const char* text_end, ImGuiTextFlags flags) ImRect line_rect(pos, pos + ImVec2(FLT_MAX, line_height)); while (line < text_end) { - if (IsClippedEx(line_rect, 0, false)) + if (IsClippedEx(line_rect, 0)) break; const char* line_end = (const char*)memchr(line, '\n', text_end - line); @@ -273,6 +273,7 @@ void ImGui::TextV(const char* fmt, va_list args) if (window->SkipItems) return; + // FIXME-OPT: Handle the %s shortcut? ImGuiContext& g = *GImGui; const char* text_end = g.TempBuffer + ImFormatStringV(g.TempBuffer, IM_ARRAYSIZE(g.TempBuffer), fmt, args); TextEx(g.TempBuffer, text_end, ImGuiTextFlags_NoWidthForLargeClippedText); @@ -563,13 +564,15 @@ bool ImGui::ButtonBehavior(const ImRect& bb, ImGuiID id, bool* out_hovered, bool SetFocusID(id, window); FocusWindow(window); } - if ((flags & ImGuiButtonFlags_PressedOnClick) || ((flags & ImGuiButtonFlags_PressedOnDoubleClick) && g.IO.MouseDoubleClicked[mouse_button_clicked])) + if ((flags & ImGuiButtonFlags_PressedOnClick) || ((flags & ImGuiButtonFlags_PressedOnDoubleClick) && g.IO.MouseClickedCount[mouse_button_clicked] == 2)) { pressed = true; if (flags & ImGuiButtonFlags_NoHoldingActiveId) ClearActiveID(); else SetActiveID(id, window); // Hold on ID + if (!(flags & ImGuiButtonFlags_NoNavFocus)) + SetFocusID(id, window); g.ActiveIdMouseButton = mouse_button_clicked; FocusWindow(window); } @@ -580,6 +583,8 @@ bool ImGui::ButtonBehavior(const ImRect& bb, ImGuiID id, bool* out_hovered, bool const bool has_repeated_at_least_once = (flags & ImGuiButtonFlags_Repeat) && g.IO.MouseDownDurationPrev[mouse_button_released] >= g.IO.KeyRepeatDelay; if (!has_repeated_at_least_once) pressed = true; + if (!(flags & ImGuiButtonFlags_NoNavFocus)) + SetFocusID(id, window); ClearActiveID(); } @@ -604,13 +609,12 @@ bool ImGui::ButtonBehavior(const ImRect& bb, ImGuiID id, bool* out_hovered, bool bool nav_activated_by_code = (g.NavActivateId == id); bool nav_activated_by_inputs = IsNavInputTest(ImGuiNavInput_Activate, (flags & ImGuiButtonFlags_Repeat) ? ImGuiInputReadMode_Repeat : ImGuiInputReadMode_Pressed); if (nav_activated_by_code || nav_activated_by_inputs) - pressed = true; - if (nav_activated_by_code || nav_activated_by_inputs || g.ActiveId == id) { // Set active id so it can be queried by user via IsItemActive(), equivalent of holding the mouse button. - g.NavActivateId = id; // This is so SetActiveId assign a Nav source + pressed = true; SetActiveID(id, window); - if ((nav_activated_by_code || nav_activated_by_inputs) && !(flags & ImGuiButtonFlags_NoNavFocus)) + g.ActiveIdSource = ImGuiInputSource_Nav; + if (!(flags & ImGuiButtonFlags_NoNavFocus)) SetFocusID(id, window); } } @@ -637,7 +641,7 @@ bool ImGui::ButtonBehavior(const ImRect& bb, ImGuiID id, bool* out_hovered, bool if ((release_in || release_anywhere) && !g.DragDropActive) { // Report as pressed when releasing the mouse (this is the most common path) - bool is_double_click_release = (flags & ImGuiButtonFlags_PressedOnDoubleClick) && g.IO.MouseDownWasDoubleClick[mouse_button]; + bool is_double_click_release = (flags & ImGuiButtonFlags_PressedOnDoubleClick) && g.IO.MouseReleased[mouse_button] && g.IO.MouseClickedLastCount[mouse_button] == 2; bool is_repeating_already = (flags & ImGuiButtonFlags_Repeat) && g.IO.MouseDownDurationPrev[mouse_button] >= g.IO.KeyRepeatDelay; // Repeat mode trumps if (!is_double_click_release && !is_repeating_already) pressed = true; @@ -898,7 +902,9 @@ void ImGui::Scrollbar(ImGuiAxis axis) } float size_avail = window->InnerRect.Max[axis] - window->InnerRect.Min[axis]; float size_contents = window->ContentSize[axis] + window->WindowPadding[axis] * 2.0f; - ScrollbarEx(bb, id, axis, &window->Scroll[axis], size_avail, size_contents, rounding_corners); + ImS64 scroll = (ImS64)window->Scroll[axis]; + ScrollbarEx(bb, id, axis, &scroll, (ImS64)size_avail, (ImS64)size_contents, rounding_corners); + window->Scroll[axis] = (float)scroll; } // Vertical/Horizontal scrollbar @@ -907,7 +913,7 @@ void ImGui::Scrollbar(ImGuiAxis axis) // - We store values as normalized ratio and in a form that allows the window content to change while we are holding on a scrollbar // - We handle both horizontal and vertical scrollbars, which makes the terminology not ideal. // Still, the code should probably be made simpler.. -bool ImGui::ScrollbarEx(const ImRect& bb_frame, ImGuiID id, ImGuiAxis axis, float* p_scroll_v, float size_avail_v, float size_contents_v, ImDrawFlags flags) +bool ImGui::ScrollbarEx(const ImRect& bb_frame, ImGuiID id, ImGuiAxis axis, ImS64* p_scroll_v, ImS64 size_avail_v, ImS64 size_contents_v, ImDrawFlags flags) { ImGuiContext& g = *GImGui; ImGuiWindow* window = g.CurrentWindow; @@ -938,8 +944,8 @@ bool ImGui::ScrollbarEx(const ImRect& bb_frame, ImGuiID id, ImGuiAxis axis, floa // Calculate the height of our grabbable box. It generally represent the amount visible (vs the total scrollable amount) // But we maintain a minimum size in pixel to allow for the user to still aim inside. IM_ASSERT(ImMax(size_contents_v, size_avail_v) > 0.0f); // Adding this assert to check if the ImMax(XXX,1.0f) is still needed. PLEASE CONTACT ME if this triggers. - const float win_size_v = ImMax(ImMax(size_contents_v, size_avail_v), 1.0f); - const float grab_h_pixels = ImClamp(scrollbar_size_v * (size_avail_v / win_size_v), style.GrabMinSize, scrollbar_size_v); + const ImS64 win_size_v = ImMax(ImMax(size_contents_v, size_avail_v), (ImS64)1); + const float grab_h_pixels = ImClamp(scrollbar_size_v * ((float)size_avail_v / (float)win_size_v), style.GrabMinSize, scrollbar_size_v); const float grab_h_norm = grab_h_pixels / scrollbar_size_v; // Handle input right away. None of the code of Begin() is relying on scrolling position before calling Scrollbar(). @@ -947,13 +953,13 @@ bool ImGui::ScrollbarEx(const ImRect& bb_frame, ImGuiID id, ImGuiAxis axis, floa bool hovered = false; ButtonBehavior(bb, id, &hovered, &held, ImGuiButtonFlags_NoNavFocus); - float scroll_max = ImMax(1.0f, size_contents_v - size_avail_v); - float scroll_ratio = ImSaturate(*p_scroll_v / scroll_max); + const ImS64 scroll_max = ImMax((ImS64)1, size_contents_v - size_avail_v); + float scroll_ratio = ImSaturate((float)*p_scroll_v / (float)scroll_max); float grab_v_norm = scroll_ratio * (scrollbar_size_v - grab_h_pixels) / scrollbar_size_v; // Grab position in normalized space if (held && allow_interaction && grab_h_norm < 1.0f) { - float scrollbar_pos_v = bb.Min[axis]; - float mouse_pos_v = g.IO.MousePos[axis]; + const float scrollbar_pos_v = bb.Min[axis]; + const float mouse_pos_v = g.IO.MousePos[axis]; // Click position in scrollbar normalized space (0.0f->1.0f) const float clicked_v_norm = ImSaturate((mouse_pos_v - scrollbar_pos_v) / scrollbar_size_v); @@ -973,10 +979,10 @@ bool ImGui::ScrollbarEx(const ImRect& bb_frame, ImGuiID id, ImGuiAxis axis, floa // Apply scroll (p_scroll_v will generally point on one member of window->Scroll) // It is ok to modify Scroll here because we are being called in Begin() after the calculation of ContentSize and before setting up our starting position const float scroll_v_norm = ImSaturate((clicked_v_norm - g.ScrollbarClickDeltaToGrabCenter - grab_h_norm * 0.5f) / (1.0f - grab_h_norm)); - *p_scroll_v = IM_ROUND(scroll_v_norm * scroll_max);//(win_size_contents_v - win_size_v)); + *p_scroll_v = (ImS64)(scroll_v_norm * scroll_max); // Update values for rendering - scroll_ratio = ImSaturate(*p_scroll_v / scroll_max); + scroll_ratio = ImSaturate((float)*p_scroll_v / (float)scroll_max); grab_v_norm = scroll_ratio * (scrollbar_size_v - grab_h_pixels) / scrollbar_size_v; // Update distance to grab now that we have seeked and saturated @@ -1393,11 +1399,20 @@ void ImGui::SeparatorEx(ImGuiSeparatorFlags flags) if (g.GroupStack.Size > 0 && g.GroupStack.back().WindowID == window->ID) x1 += window->DC.Indent.x; + // FIXME-WORKRECT: In theory we should simply be using WorkRect.Min.x/Max.x everywhere but it isn't aesthetically what we want, + // need to introduce a variant of WorkRect for that purpose. (#4787) + if (ImGuiTable* table = g.CurrentTable) + { + x1 = table->Columns[table->CurrentColumn].MinX; + x2 = table->Columns[table->CurrentColumn].MaxX; + } + ImGuiOldColumns* columns = (flags & ImGuiSeparatorFlags_SpanAllColumns) ? window->DC.CurrentColumns : NULL; if (columns) PushColumnsBackground(); // We don't provide our width to the layout so that it doesn't get feed back into AutoFit + // FIXME: This prevents ->CursorMaxPos based bounding box evaluation from working (e.g. TableEndCell) const ImRect bb(ImVec2(x1, window->DC.CursorPos.y), ImVec2(x2, window->DC.CursorPos.y + thickness_draw)); ItemSize(ImVec2(0.0f, thickness_layout)); const bool item_visible = ItemAdd(bb, 0); @@ -1426,12 +1441,12 @@ void ImGui::Separator() // Those flags should eventually be overridable by the user ImGuiSeparatorFlags flags = (window->DC.LayoutType == ImGuiLayoutType_Horizontal) ? ImGuiSeparatorFlags_Vertical : ImGuiSeparatorFlags_Horizontal; - flags |= ImGuiSeparatorFlags_SpanAllColumns; + flags |= ImGuiSeparatorFlags_SpanAllColumns; // NB: this only applies to legacy Columns() api as they relied on Separator() a lot. SeparatorEx(flags); } // Using 'hover_visibility_delay' allows us to hide the highlight and mouse cursor for a short time, which can be convenient to reduce visual noise. -bool ImGui::SplitterBehavior(const ImRect& bb, ImGuiID id, ImGuiAxis axis, float* size1, float* size2, float min_size1, float min_size2, float hover_extend, float hover_visibility_delay) +bool ImGui::SplitterBehavior(const ImRect& bb, ImGuiID id, ImGuiAxis axis, float* size1, float* size2, float min_size1, float min_size2, float hover_extend, float hover_visibility_delay, ImU32 bg_col) { ImGuiContext& g = *GImGui; ImGuiWindow* window = g.CurrentWindow; @@ -1483,7 +1498,9 @@ bool ImGui::SplitterBehavior(const ImRect& bb, ImGuiID id, ImGuiAxis axis, float } } - // Render + // Render at new position + if (bg_col & IM_COL32_A_MASK) + window->DrawList->AddRectFilled(bb_render.Min, bb_render.Max, bg_col, 0.0f); const ImU32 col = GetColorU32(held ? ImGuiCol_SeparatorActive : (hovered && g.HoveredIdTimer >= hover_visibility_delay) ? ImGuiCol_SeparatorHovered : ImGuiCol_Separator); window->DrawList->AddRectFilled(bb_render.Min, bb_render.Max, col, 0.0f); @@ -1587,7 +1604,7 @@ bool ImGui::BeginCombo(const char* label, const char* preview_value, ImGuiComboF bool pressed = ButtonBehavior(bb, id, &hovered, &held); const ImGuiID popup_id = ImHashStr("##ComboPopup", 0, id); bool popup_open = IsPopupOpen(popup_id, ImGuiPopupFlags_None); - if ((pressed || g.NavActivateId == id) && !popup_open) + if (pressed && !popup_open) { OpenPopupEx(popup_id, ImGuiPopupFlags_None); popup_open = true; @@ -1801,7 +1818,7 @@ bool ImGui::Combo(const char* label, int* current_item, bool (*items_getter)(voi bool value_changed = false; for (int i = 0; i < items_count; i++) { - PushID((void*)(intptr_t)i); + PushID(i); const bool item_selected = (i == *current_item); const char* item_text; if (!items_getter(data, i, &item_text)) @@ -2395,7 +2412,7 @@ bool ImGui::DragScalar(const char* label, ImGuiDataType data_type, void* p_data, const bool temp_input_allowed = (flags & ImGuiSliderFlags_NoInput) == 0; ItemSize(total_bb, style.FramePadding.y); - if (!ItemAdd(total_bb, id, &frame_bb, temp_input_allowed ? ImGuiItemAddFlags_Focusable : 0)) + if (!ItemAdd(total_bb, id, &frame_bb, temp_input_allowed ? ImGuiItemFlags_Inputable : 0)) return false; // Default format string when passing NULL @@ -2409,24 +2426,26 @@ bool ImGui::DragScalar(const char* label, ImGuiDataType data_type, void* p_data, bool temp_input_is_active = temp_input_allowed && TempInputIsActive(id); if (!temp_input_is_active) { - const bool focus_requested = temp_input_allowed && (g.LastItemData.StatusFlags & ImGuiItemStatusFlags_Focused) != 0; + const bool input_requested_by_tabbing = temp_input_allowed && (g.LastItemData.StatusFlags & ImGuiItemStatusFlags_FocusedByTabbing) != 0; const bool clicked = (hovered && g.IO.MouseClicked[0]); - const bool double_clicked = (hovered && g.IO.MouseDoubleClicked[0]); - if (focus_requested || clicked || double_clicked || g.NavActivateId == id || g.NavInputId == id) + const bool double_clicked = (hovered && g.IO.MouseClickedCount[0] == 2); + if (input_requested_by_tabbing || clicked || double_clicked || g.NavActivateId == id || g.NavActivateInputId == id) { SetActiveID(id, window); SetFocusID(id, window); FocusWindow(window); g.ActiveIdUsingNavDirMask = (1 << ImGuiDir_Left) | (1 << ImGuiDir_Right); - if (temp_input_allowed && (focus_requested || (clicked && g.IO.KeyCtrl) || double_clicked || g.NavInputId == id)) - temp_input_is_active = true; + if (temp_input_allowed) + if (input_requested_by_tabbing || (clicked && g.IO.KeyCtrl) || double_clicked || g.NavActivateInputId == id) + temp_input_is_active = true; } + // Experimental: simple click (without moving) turns Drag into an InputText - // FIXME: Currently polling ImGuiConfigFlags_IsTouchScreen, may either poll an hypothetical ImGuiBackendFlags_HasKeyboard and/or an explicit drag settings. if (g.IO.ConfigDragClickToInputText && temp_input_allowed && !temp_input_is_active) if (g.ActiveId == id && hovered && g.IO.MouseReleased[0] && !IsMouseDragPastThreshold(0, g.IO.MouseDragThreshold * DRAG_MOUSE_THRESHOLD_FACTOR)) { - g.NavInputId = id; + g.NavActivateId = g.NavActivateInputId = id; + g.NavActivateFlags = ImGuiActivateFlags_PreferInput; temp_input_is_active = true; } } @@ -3011,7 +3030,7 @@ bool ImGui::SliderScalar(const char* label, ImGuiDataType data_type, void* p_dat const bool temp_input_allowed = (flags & ImGuiSliderFlags_NoInput) == 0; ItemSize(total_bb, style.FramePadding.y); - if (!ItemAdd(total_bb, id, &frame_bb, temp_input_allowed ? ImGuiItemAddFlags_Focusable : 0)) + if (!ItemAdd(total_bb, id, &frame_bb, temp_input_allowed ? ImGuiItemFlags_Inputable : 0)) return false; // Default format string when passing NULL @@ -3025,15 +3044,15 @@ bool ImGui::SliderScalar(const char* label, ImGuiDataType data_type, void* p_dat bool temp_input_is_active = temp_input_allowed && TempInputIsActive(id); if (!temp_input_is_active) { - const bool focus_requested = temp_input_allowed && (g.LastItemData.StatusFlags & ImGuiItemStatusFlags_Focused) != 0; + const bool input_requested_by_tabbing = temp_input_allowed && (g.LastItemData.StatusFlags & ImGuiItemStatusFlags_FocusedByTabbing) != 0; const bool clicked = (hovered && g.IO.MouseClicked[0]); - if (focus_requested || clicked || g.NavActivateId == id || g.NavInputId == id) + if (input_requested_by_tabbing || clicked || g.NavActivateId == id || g.NavActivateInputId == id) { SetActiveID(id, window); SetFocusID(id, window); FocusWindow(window); g.ActiveIdUsingNavDirMask |= (1 << ImGuiDir_Left) | (1 << ImGuiDir_Right); - if (temp_input_allowed && (focus_requested || (clicked && g.IO.KeyCtrl) || g.NavInputId == id)) + if (temp_input_allowed && (input_requested_by_tabbing || (clicked && g.IO.KeyCtrl) || g.NavActivateInputId == id)) temp_input_is_active = true; } } @@ -3185,7 +3204,7 @@ bool ImGui::VSliderScalar(const char* label, const ImVec2& size, ImGuiDataType d format = PatchFormatStringFloatToInt(format); const bool hovered = ItemHoverable(frame_bb, id); - if ((hovered && g.IO.MouseClicked[0]) || g.NavActivateId == id || g.NavInputId == id) + if ((hovered && g.IO.MouseClicked[0]) || g.NavActivateId == id || g.NavActivateInputId == id) { SetActiveID(id, window); SetFocusID(id, window); @@ -3449,7 +3468,7 @@ bool ImGui::InputScalar(const char* label, ImGuiDataType data_type, void* p_data style.FramePadding.x = style.FramePadding.y; ImGuiButtonFlags button_flags = ImGuiButtonFlags_Repeat | ImGuiButtonFlags_DontClosePopups; if (flags & ImGuiInputTextFlags_ReadOnly) - BeginDisabled(true); + BeginDisabled(); SameLine(0, style.ItemInnerSpacing.x); if (ButtonEx("-", ImVec2(button_size, button_size), button_flags)) { @@ -3679,17 +3698,18 @@ static void STB_TEXTEDIT_LAYOUTROW(StbTexteditRow* r, ImGuiInputTextState* ob } // When ImGuiInputTextFlags_Password is set, we don't want actions such as CTRL+Arrow to leak the fact that underlying data are blanks or separators. -static bool is_separator(unsigned int c) { return ImCharIsBlankW(c) || c==',' || c==';' || c=='(' || c==')' || c=='{' || c=='}' || c=='[' || c==']' || c=='|'; } +static bool is_separator(unsigned int c) { return ImCharIsBlankW(c) || c==',' || c==';' || c=='(' || c==')' || c=='{' || c=='}' || c=='[' || c==']' || c=='|' || c=='\n' || c=='\r'; } static int is_word_boundary_from_right(ImGuiInputTextState* obj, int idx) { if (obj->Flags & ImGuiInputTextFlags_Password) return 0; return idx > 0 ? (is_separator(obj->TextW[idx - 1]) && !is_separator(obj->TextW[idx]) ) : 1; } +static int is_word_boundary_from_left(ImGuiInputTextState* obj, int idx) { if (obj->Flags & ImGuiInputTextFlags_Password) return 0; return idx > 0 ? (!is_separator(obj->TextW[idx - 1]) && is_separator(obj->TextW[idx])) : 1; } static int STB_TEXTEDIT_MOVEWORDLEFT_IMPL(ImGuiInputTextState* obj, int idx) { idx--; while (idx >= 0 && !is_word_boundary_from_right(obj, idx)) idx--; return idx < 0 ? 0 : idx; } +static int STB_TEXTEDIT_MOVEWORDRIGHT_MAC(ImGuiInputTextState* obj, int idx) { idx++; int len = obj->CurLenW; while (idx < len && !is_word_boundary_from_left(obj, idx)) idx++; return idx > len ? len : idx; } +#define STB_TEXTEDIT_MOVEWORDLEFT STB_TEXTEDIT_MOVEWORDLEFT_IMPL // They need to be #define for stb_textedit.h #ifdef __APPLE__ // FIXME: Move setting to IO structure -static int is_word_boundary_from_left(ImGuiInputTextState* obj, int idx) { if (obj->Flags & ImGuiInputTextFlags_Password) return 0; return idx > 0 ? (!is_separator(obj->TextW[idx - 1]) && is_separator(obj->TextW[idx]) ) : 1; } -static int STB_TEXTEDIT_MOVEWORDRIGHT_IMPL(ImGuiInputTextState* obj, int idx) { idx++; int len = obj->CurLenW; while (idx < len && !is_word_boundary_from_left(obj, idx)) idx++; return idx > len ? len : idx; } +#define STB_TEXTEDIT_MOVEWORDRIGHT STB_TEXTEDIT_MOVEWORDRIGHT_MAC #else -static int STB_TEXTEDIT_MOVEWORDRIGHT_IMPL(ImGuiInputTextState* obj, int idx) { idx++; int len = obj->CurLenW; while (idx < len && !is_word_boundary_from_right(obj, idx)) idx++; return idx > len ? len : idx; } +static int STB_TEXTEDIT_MOVEWORDRIGHT_WIN(ImGuiInputTextState* obj, int idx) { idx++; int len = obj->CurLenW; while (idx < len && !is_word_boundary_from_right(obj, idx)) idx++; return idx > len ? len : idx; } +#define STB_TEXTEDIT_MOVEWORDRIGHT STB_TEXTEDIT_MOVEWORDRIGHT_WIN #endif -#define STB_TEXTEDIT_MOVEWORDLEFT STB_TEXTEDIT_MOVEWORDLEFT_IMPL // They need to be #define for stb_textedit.h -#define STB_TEXTEDIT_MOVEWORDRIGHT STB_TEXTEDIT_MOVEWORDRIGHT_IMPL static void STB_TEXTEDIT_DELETECHARS(ImGuiInputTextState* obj, int pos, int n) { @@ -3881,11 +3901,12 @@ static bool InputTextFilterCharacter(unsigned int* p_char, ImGuiInputTextFlags f // Generic named filters if (apply_named_filters && (flags & (ImGuiInputTextFlags_CharsDecimal | ImGuiInputTextFlags_CharsHexadecimal | ImGuiInputTextFlags_CharsUppercase | ImGuiInputTextFlags_CharsNoBlank | ImGuiInputTextFlags_CharsScientific))) { - // The libc allows overriding locale, with e.g. 'setlocale(LC_NUMERIC, "de_DE.UTF-8");' which affect the output/input of printf/scanf. + // The libc allows overriding locale, with e.g. 'setlocale(LC_NUMERIC, "de_DE.UTF-8");' which affect the output/input of printf/scanf to use e.g. ',' instead of '.'. // The standard mandate that programs starts in the "C" locale where the decimal point is '.'. // We don't really intend to provide widespread support for it, but out of empathy for people stuck with using odd API, we support the bare minimum aka overriding the decimal point. // Change the default decimal_point with: // ImGui::GetCurrentContext()->PlatformLocaleDecimalPoint = *localeconv()->decimal_point; + // Users of non-default decimal point (in particular ',') may be affected by word-selection logic (is_word_boundary_from_right/is_word_boundary_from_left) functions. ImGuiContext& g = *GImGui; const unsigned c_decimal_point = (unsigned int)g.PlatformLocaleDecimalPoint; @@ -3964,7 +3985,7 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ if (is_resizable) IM_ASSERT(callback != NULL); // Must provide a callback if you set the ImGuiInputTextFlags_CallbackResize flag! - if (is_multiline) // Open group before calling GetID() because groups tracks id created within their scope, + if (is_multiline) // Open group before calling GetID() because groups tracks id created within their scope (including the scrollbar) BeginGroup(); const ImGuiID id = window->GetID(label); const ImVec2 label_size = CalcTextSize(label, NULL, true); @@ -3977,24 +3998,28 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ ImGuiWindow* draw_window = window; ImVec2 inner_size = frame_size; ImGuiItemStatusFlags item_status_flags = 0; + ImGuiLastItemData item_data_backup; if (is_multiline) { ImVec2 backup_pos = window->DC.CursorPos; ItemSize(total_bb, style.FramePadding.y); - if (!ItemAdd(total_bb, id, &frame_bb, ImGuiItemAddFlags_Focusable)) + if (!ItemAdd(total_bb, id, &frame_bb, ImGuiItemFlags_Inputable)) { EndGroup(); return false; } item_status_flags = g.LastItemData.StatusFlags; + item_data_backup = g.LastItemData; window->DC.CursorPos = backup_pos; // We reproduce the contents of BeginChildFrame() in order to provide 'label' so our window internal data are easier to read/debug. + // FIXME-NAV: Pressing NavActivate will trigger general child activation right before triggering our own below. Harmless but bizarre. PushStyleColor(ImGuiCol_ChildBg, style.Colors[ImGuiCol_FrameBg]); PushStyleVar(ImGuiStyleVar_ChildRounding, style.FrameRounding); PushStyleVar(ImGuiStyleVar_ChildBorderSize, style.FrameBorderSize); + PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0, 0)); // Ensure no clip rect so mouse hover can reach FramePadding edges bool child_visible = BeginChildEx(label, id, frame_bb.GetSize(), true, ImGuiWindowFlags_NoMove); - PopStyleVar(2); + PopStyleVar(3); PopStyleColor(); if (!child_visible) { @@ -4012,7 +4037,7 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ // Support for internal ImGuiInputTextFlags_MergedItem flag, which could be redesigned as an ItemFlags if needed (with test performed in ItemAdd) ItemSize(total_bb, style.FramePadding.y); if (!(flags & ImGuiInputTextFlags_MergedItem)) - if (!ItemAdd(total_bb, id, &frame_bb, ImGuiItemAddFlags_Focusable)) + if (!ItemAdd(total_bb, id, &frame_bb, ImGuiItemFlags_Inputable)) return false; item_status_flags = g.LastItemData.StatusFlags; } @@ -4023,21 +4048,19 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ // We are only allowed to access the state if we are already the active widget. ImGuiInputTextState* state = GetInputTextState(id); - const bool focus_requested_by_code = (item_status_flags & ImGuiItemStatusFlags_FocusedByCode) != 0; - const bool focus_requested_by_tabbing = (item_status_flags & ImGuiItemStatusFlags_FocusedByTabbing) != 0; + const bool input_requested_by_tabbing = (item_status_flags & ImGuiItemStatusFlags_FocusedByTabbing) != 0; + const bool input_requested_by_nav = (g.ActiveId != id) && ((g.NavActivateInputId == id) || (g.NavActivateId == id && g.NavInputSource == ImGuiInputSource_Keyboard)); const bool user_clicked = hovered && io.MouseClicked[0]; - const bool user_nav_input_start = (g.ActiveId != id) && ((g.NavInputId == id) || (g.NavActivateId == id && g.NavInputSource == ImGuiInputSource_Keyboard)); const bool user_scroll_finish = is_multiline && state != NULL && g.ActiveId == 0 && g.ActiveIdPreviousFrame == GetWindowScrollbarID(draw_window, ImGuiAxis_Y); const bool user_scroll_active = is_multiline && state != NULL && g.ActiveId == GetWindowScrollbarID(draw_window, ImGuiAxis_Y); - bool clear_active_id = false; - bool select_all = (g.ActiveId != id) && ((flags & ImGuiInputTextFlags_AutoSelectAll) != 0 || user_nav_input_start) && (!is_multiline); + bool select_all = false; float scroll_y = is_multiline ? draw_window->Scroll.y : FLT_MAX; const bool init_changed_specs = (state != NULL && state->Stb.single_line != !is_multiline); - const bool init_make_active = (user_clicked || user_scroll_finish || user_nav_input_start || focus_requested_by_code || focus_requested_by_tabbing); + const bool init_make_active = (user_clicked || user_scroll_finish || input_requested_by_nav || input_requested_by_tabbing); const bool init_state = (init_make_active || user_scroll_active); if ((init_state && g.ActiveId != id) || init_changed_specs) { @@ -4073,13 +4096,20 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ state->ID = id; state->ScrollX = 0.0f; stb_textedit_initialize_state(&state->Stb, !is_multiline); - if (!is_multiline && focus_requested_by_code) + } + + if (!is_multiline) + { + if (flags & ImGuiInputTextFlags_AutoSelectAll) + select_all = true; + if (input_requested_by_nav && (!recycle_state || !(g.NavActivateFlags & ImGuiActivateFlags_TryToPreserveState))) + select_all = true; + if (input_requested_by_tabbing || (user_clicked && io.KeyCtrl)) select_all = true; } + if (flags & ImGuiInputTextFlags_AlwaysOverwrite) state->Stb.insert_mode = 1; // stb field name is indeed incorrect (see #2863) - if (!is_multiline && (focus_requested_by_tabbing || (user_clicked && io.KeyCtrl))) - select_all = true; } if (g.ActiveId != id && init_make_active) @@ -4112,7 +4142,7 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ // Lock the decision of whether we are going to take the path displaying the cursor or selection const bool render_cursor = (g.ActiveId == id) || (state && user_scroll_active); - bool render_selection = state && state->HasSelection() && (RENDER_SELECTION_WHEN_INACTIVE || render_cursor); + bool render_selection = state && (state->HasSelection() || select_all) && (RENDER_SELECTION_WHEN_INACTIVE || render_cursor); bool value_changed = false; bool enter_pressed = false; @@ -4157,8 +4187,6 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ state->Edited = false; state->BufCapacityA = buf_size; state->Flags = flags; - state->UserCallback = callback; - state->UserCallbackData = callback_user_data; // Although we are active we don't prevent mouse from hovering other elements unless we are interacting right now with the widget. // Down the line we should have a cleaner library-wide concept of Selected vs Active. @@ -4170,19 +4198,49 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ const float mouse_y = (is_multiline ? (io.MousePos.y - draw_window->DC.CursorPos.y) : (g.FontSize * 0.5f)); const bool is_osx = io.ConfigMacOSXBehaviors; - if (select_all || (hovered && !is_osx && io.MouseDoubleClicked[0])) + if (select_all) { state->SelectAll(); state->SelectedAllMouseLock = true; } - else if (hovered && is_osx && io.MouseDoubleClicked[0]) + else if (hovered && io.MouseClickedCount[0] >= 2 && !io.KeyShift) { - // Double-click select a word only, OS X style (by simulating keystrokes) - state->OnKeyPressed(STB_TEXTEDIT_K_WORDLEFT); - state->OnKeyPressed(STB_TEXTEDIT_K_WORDRIGHT | STB_TEXTEDIT_K_SHIFT); + stb_textedit_click(state, &state->Stb, mouse_x, mouse_y); + const int multiclick_count = (io.MouseClickedCount[0] - 2); + if ((multiclick_count % 2) == 0) + { + // Double-click: Select word + // We always use the "Mac" word advance for double-click select vs CTRL+Right which use the platform dependent variant: + // FIXME: There are likely many ways to improve this behavior, but there's no "right" behavior (depends on use-case, software, OS) + const bool is_bol = (state->Stb.cursor == 0) || ImStb::STB_TEXTEDIT_GETCHAR(state, state->Stb.cursor - 1) == '\n'; + if (STB_TEXT_HAS_SELECTION(&state->Stb) || !is_bol) + state->OnKeyPressed(STB_TEXTEDIT_K_WORDLEFT); + //state->OnKeyPressed(STB_TEXTEDIT_K_WORDRIGHT | STB_TEXTEDIT_K_SHIFT); + if (!STB_TEXT_HAS_SELECTION(&state->Stb)) + ImStb::stb_textedit_prep_selection_at_cursor(&state->Stb); + state->Stb.cursor = ImStb::STB_TEXTEDIT_MOVEWORDRIGHT_MAC(state, state->Stb.cursor); + state->Stb.select_end = state->Stb.cursor; + ImStb::stb_textedit_clamp(state, &state->Stb); + } + else + { + // Triple-click: Select line + const bool is_eol = ImStb::STB_TEXTEDIT_GETCHAR(state, state->Stb.cursor) == '\n'; + state->OnKeyPressed(STB_TEXTEDIT_K_LINESTART); + state->OnKeyPressed(STB_TEXTEDIT_K_LINEEND | STB_TEXTEDIT_K_SHIFT); + state->OnKeyPressed(STB_TEXTEDIT_K_RIGHT | STB_TEXTEDIT_K_SHIFT); + if (!is_eol && is_multiline) + { + ImSwap(state->Stb.select_start, state->Stb.select_end); + state->Stb.cursor = state->Stb.select_end; + } + state->CursorFollow = false; + } + state->CursorAnimReset(); } else if (io.MouseClicked[0] && !state->SelectedAllMouseLock) { + // FIXME: unselect on late click could be done release? if (hovered) { stb_textedit_click(state, &state->Stb, mouse_x, mouse_y); @@ -4213,7 +4271,7 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ // We ignore CTRL inputs, but need to allow ALT+CTRL as some keyboards (e.g. German) use AltGR (which _is_ Alt+Ctrl) to input certain characters. if (io.InputQueueCharacters.Size > 0) { - if (!ignore_char_inputs && !is_readonly && !user_nav_input_start) + if (!ignore_char_inputs && !is_readonly && !input_requested_by_nav) for (int n = 0; n < io.InputQueueCharacters.Size; n++) { // Insert character if they pass filtering @@ -4254,6 +4312,11 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ const bool is_undo = ((is_shortcut_key && IsKeyPressedMap(ImGuiKey_Z)) && !is_readonly && is_undoable); const bool is_redo = ((is_shortcut_key && IsKeyPressedMap(ImGuiKey_Y)) || (is_osx_shift_shortcut && IsKeyPressedMap(ImGuiKey_Z))) && !is_readonly && is_undoable; + // We allow validate/cancel with Nav source (gamepad) to makes it easier to undo an accidental NavInput press with no keyboard wired, but otherwise it isn't very useful. + const bool is_validate_enter = IsKeyPressedMap(ImGuiKey_Enter) || IsKeyPressedMap(ImGuiKey_KeyPadEnter); + const bool is_validate_nav = (IsNavInputTest(ImGuiNavInput_Activate, ImGuiInputReadMode_Pressed) && !IsKeyPressedMap(ImGuiKey_Space)) || IsNavInputTest(ImGuiNavInput_Input, ImGuiInputReadMode_Pressed); + const bool is_cancel = IsKeyPressedMap(ImGuiKey_Escape) || IsNavInputTest(ImGuiNavInput_Cancel, ImGuiInputReadMode_Pressed); + if (IsKeyPressedMap(ImGuiKey_LeftArrow)) { state->OnKeyPressed((is_startend_key_down ? STB_TEXTEDIT_K_LINESTART : is_wordmove_key_down ? STB_TEXTEDIT_K_WORDLEFT : STB_TEXTEDIT_K_LEFT) | k_mask); } else if (IsKeyPressedMap(ImGuiKey_RightArrow)) { state->OnKeyPressed((is_startend_key_down ? STB_TEXTEDIT_K_LINEEND : is_wordmove_key_down ? STB_TEXTEDIT_K_WORDRIGHT : STB_TEXTEDIT_K_RIGHT) | k_mask); } else if (IsKeyPressedMap(ImGuiKey_UpArrow) && is_multiline) { if (io.KeyCtrl) SetScrollY(draw_window, ImMax(draw_window->Scroll.y - g.FontSize, 0.0f)); else state->OnKeyPressed((is_startend_key_down ? STB_TEXTEDIT_K_TEXTSTART : STB_TEXTEDIT_K_UP) | k_mask); } @@ -4262,7 +4325,7 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ else if (IsKeyPressedMap(ImGuiKey_PageDown) && is_multiline) { state->OnKeyPressed(STB_TEXTEDIT_K_PGDOWN | k_mask); scroll_y += row_count_per_page * g.FontSize; } else if (IsKeyPressedMap(ImGuiKey_Home)) { state->OnKeyPressed(io.KeyCtrl ? STB_TEXTEDIT_K_TEXTSTART | k_mask : STB_TEXTEDIT_K_LINESTART | k_mask); } else if (IsKeyPressedMap(ImGuiKey_End)) { state->OnKeyPressed(io.KeyCtrl ? STB_TEXTEDIT_K_TEXTEND | k_mask : STB_TEXTEDIT_K_LINEEND | k_mask); } - else if (IsKeyPressedMap(ImGuiKey_Delete) && !is_readonly) { state->OnKeyPressed(STB_TEXTEDIT_K_DELETE | k_mask); } + else if (IsKeyPressedMap(ImGuiKey_Delete) && !is_readonly && !is_cut) { state->OnKeyPressed(STB_TEXTEDIT_K_DELETE | k_mask); } else if (IsKeyPressedMap(ImGuiKey_Backspace) && !is_readonly) { if (!state->HasSelection()) @@ -4274,7 +4337,7 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ } state->OnKeyPressed(STB_TEXTEDIT_K_BACKSPACE | k_mask); } - else if (IsKeyPressedMap(ImGuiKey_Enter) || IsKeyPressedMap(ImGuiKey_KeyPadEnter)) + else if (is_validate_enter) { bool ctrl_enter_for_new_line = (flags & ImGuiInputTextFlags_CtrlEnterForNewLine) != 0; if (!is_multiline || (ctrl_enter_for_new_line && !io.KeyCtrl) || (!ctrl_enter_for_new_line && io.KeyCtrl)) @@ -4288,7 +4351,12 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ state->OnKeyPressed((int)c); } } - else if (IsKeyPressedMap(ImGuiKey_Escape)) + else if (is_validate_nav) + { + IM_ASSERT(!is_validate_enter); + enter_pressed = clear_active_id = true; + } + else if (is_cancel) { clear_active_id = cancel_edit = true; } @@ -4356,11 +4424,11 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ } // Process callbacks and apply result back to user's buffer. + const char* apply_new_text = NULL; + int apply_new_text_length = 0; if (g.ActiveId == id) { IM_ASSERT(state != NULL); - const char* apply_new_text = NULL; - int apply_new_text_length = 0; if (cancel_edit) { // Restore initial value. Only return true if restoring to the initial value changes the current buffer contents. @@ -4436,8 +4504,9 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ callback_data.Flags = flags; callback_data.UserData = callback_user_data; + char* callback_buf = is_readonly ? buf : state->TextA.Data; callback_data.EventKey = event_key; - callback_data.Buf = state->TextA.Data; + callback_data.Buf = callback_buf; callback_data.BufTextLen = state->CurLenA; callback_data.BufSize = state->BufCapacityA; callback_data.BufDirty = false; @@ -4452,7 +4521,8 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ callback(&callback_data); // Read back what user may have modified - IM_ASSERT(callback_data.Buf == state->TextA.Data); // Invalid to modify those fields + callback_buf = is_readonly ? buf : state->TextA.Data; // Pointer may have been invalidated by a resize callback + IM_ASSERT(callback_data.Buf == callback_buf); // Invalid to modify those fields IM_ASSERT(callback_data.BufSize == state->BufCapacityA); IM_ASSERT(callback_data.Flags == flags); const bool buf_dirty = callback_data.BufDirty; @@ -4479,39 +4549,37 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ } } - // Copy result to user buffer - if (apply_new_text) - { - // We cannot test for 'backup_current_text_length != apply_new_text_length' here because we have no guarantee that the size - // of our owned buffer matches the size of the string object held by the user, and by design we allow InputText() to be used - // without any storage on user's side. - IM_ASSERT(apply_new_text_length >= 0); - if (is_resizable) - { - ImGuiInputTextCallbackData callback_data; - callback_data.EventFlag = ImGuiInputTextFlags_CallbackResize; - callback_data.Flags = flags; - callback_data.Buf = buf; - callback_data.BufTextLen = apply_new_text_length; - callback_data.BufSize = ImMax(buf_size, apply_new_text_length + 1); - callback_data.UserData = callback_user_data; - callback(&callback_data); - buf = callback_data.Buf; - buf_size = callback_data.BufSize; - apply_new_text_length = ImMin(callback_data.BufTextLen, buf_size - 1); - IM_ASSERT(apply_new_text_length <= buf_size); - } - //IMGUI_DEBUG_LOG("InputText(\"%s\"): apply_new_text length %d\n", label, apply_new_text_length); + // Clear temporary user storage + state->Flags = ImGuiInputTextFlags_None; + } - // If the underlying buffer resize was denied or not carried to the next frame, apply_new_text_length+1 may be >= buf_size. - ImStrncpy(buf, apply_new_text, ImMin(apply_new_text_length + 1, buf_size)); - value_changed = true; + // Copy result to user buffer. This can currently only happen when (g.ActiveId == id) + if (apply_new_text != NULL) + { + // We cannot test for 'backup_current_text_length != apply_new_text_length' here because we have no guarantee that the size + // of our owned buffer matches the size of the string object held by the user, and by design we allow InputText() to be used + // without any storage on user's side. + IM_ASSERT(apply_new_text_length >= 0); + if (is_resizable) + { + ImGuiInputTextCallbackData callback_data; + callback_data.EventFlag = ImGuiInputTextFlags_CallbackResize; + callback_data.Flags = flags; + callback_data.Buf = buf; + callback_data.BufTextLen = apply_new_text_length; + callback_data.BufSize = ImMax(buf_size, apply_new_text_length + 1); + callback_data.UserData = callback_user_data; + callback(&callback_data); + buf = callback_data.Buf; + buf_size = callback_data.BufSize; + apply_new_text_length = ImMin(callback_data.BufTextLen, buf_size - 1); + IM_ASSERT(apply_new_text_length <= buf_size); } + //IMGUI_DEBUG_LOG("InputText(\"%s\"): apply_new_text length %d\n", label, apply_new_text_length); - // Clear temporary user storage - state->Flags = ImGuiInputTextFlags_None; - state->UserCallback = NULL; - state->UserCallbackData = NULL; + // If the underlying buffer resize was denied or not carried to the next frame, apply_new_text_length+1 may be >= buf_size. + ImStrncpy(buf, apply_new_text, ImMin(apply_new_text_length + 1, buf_size)); + value_changed = true; } // Release active ID at the end of the function (so e.g. pressing Return still does a final application of the value) @@ -4633,7 +4701,7 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ // Test if cursor is vertically visible if (cursor_offset.y - g.FontSize < scroll_y) scroll_y = ImMax(0.0f, cursor_offset.y - g.FontSize); - else if (cursor_offset.y - inner_size.y >= scroll_y) + else if (cursor_offset.y - (inner_size.y - style.FramePadding.y * 2.0f) >= scroll_y) scroll_y = cursor_offset.y - inner_size.y + style.FramePadding.y * 2.0f; const float scroll_max_y = ImMax((text_size.y + style.FramePadding.y * 2.0f) - inner_size.y, 0.0f); scroll_y = ImClamp(scroll_y, 0.0f, scroll_max_y); @@ -4728,9 +4796,23 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ if (is_multiline) { + // For focus requests to work on our multiline we need to ensure our child ItemAdd() call specifies the ImGuiItemFlags_Inputable (ref issue #4761)... Dummy(ImVec2(text_size.x, text_size.y + style.FramePadding.y)); + ImGuiItemFlags backup_item_flags = g.CurrentItemFlags; + g.CurrentItemFlags |= ImGuiItemFlags_Inputable | ImGuiItemFlags_NoTabStop; EndChild(); + item_data_backup.StatusFlags |= (g.LastItemData.StatusFlags & ImGuiItemStatusFlags_HoveredWindow); + g.CurrentItemFlags = backup_item_flags; + + // ...and then we need to undo the group overriding last item data, which gets a bit messy as EndGroup() tries to forward scrollbar being active... + // FIXME: This quite messy/tricky, should attempt to get rid of the child window. EndGroup(); + if (g.LastItemData.ID == 0) + { + g.LastItemData.ID = id; + g.LastItemData.InFlags = item_data_backup.InFlags; + g.LastItemData.StatusFlags = item_data_backup.StatusFlags; + } } // Log as text @@ -4773,6 +4855,30 @@ bool ImGui::ColorEdit3(const char* label, float col[3], ImGuiColorEditFlags flag return ColorEdit4(label, col, flags | ImGuiColorEditFlags_NoAlpha); } +// ColorEdit supports RGB and HSV inputs. In case of RGB input resulting color may have undefined hue and/or saturation. +// Since widget displays both RGB and HSV values we must preserve hue and saturation to prevent these values resetting. +static void ColorEditRestoreHS(const float* col, float* H, float* S, float* V) +{ + // This check is optional. Suppose we have two color widgets side by side, both widgets display different colors, but both colors have hue and/or saturation undefined. + // With color check: hue/saturation is preserved in one widget. Editing color in one widget would reset hue/saturation in another one. + // Without color check: common hue/saturation would be displayed in all widgets that have hue/saturation undefined. + // g.ColorEditLastColor is stored as ImU32 RGB value: this essentially gives us color equality check with reduced precision. + // Tiny external color changes would not be detected and this check would still pass. This is OK, since we only restore hue/saturation _only_ if they are undefined, + // therefore this change flipping hue/saturation from undefined to a very tiny value would still be represented in color picker. + ImGuiContext& g = *GImGui; + if (g.ColorEditLastColor != ImGui::ColorConvertFloat4ToU32(ImVec4(col[0], col[1], col[2], 0))) + return; + + // When S == 0, H is undefined. + // When H == 1 it wraps around to 0. + if (*S == 0.0f || (*H == 0.0f && g.ColorEditLastHue == 1)) + *H = g.ColorEditLastHue; + + // When V == 0, S is undefined. + if (*V == 0.0f) + *S = g.ColorEditLastSat; +} + // Edit colors components (each component in 0.0f..1.0f range). // See enum ImGuiColorEditFlags_ for available options. e.g. Only access 3 floats if ImGuiColorEditFlags_NoAlpha flag is set. // With typical options: Left-click on color square to open color picker. Right-click to open option menu. CTRL-Click over input fields to edit them and TAB to go to next item. @@ -4828,13 +4934,7 @@ bool ImGui::ColorEdit4(const char* label, float col[4], ImGuiColorEditFlags flag { // Hue is lost when converting from greyscale rgb (saturation=0). Restore it. ColorConvertRGBtoHSV(f[0], f[1], f[2], f[0], f[1], f[2]); - if (memcmp(g.ColorEditLastColor, col, sizeof(float) * 3) == 0) - { - if (f[1] == 0) - f[0] = g.ColorEditLastHue; - if (f[2] == 0) - f[1] = g.ColorEditLastSat; - } + ColorEditRestoreHS(col, &f[0], &f[1], &f[2]); } int i[4] = { IM_F32_TO_INT8_UNBOUND(f[0]), IM_F32_TO_INT8_UNBOUND(f[1]), IM_F32_TO_INT8_UNBOUND(f[2]), IM_F32_TO_INT8_UNBOUND(f[3]) }; @@ -4969,7 +5069,7 @@ bool ImGui::ColorEdit4(const char* label, float col[4], ImGuiColorEditFlags flag g.ColorEditLastHue = f[0]; g.ColorEditLastSat = f[1]; ColorConvertHSVtoRGB(f[0], f[1], f[2], f[0], f[1], f[2]); - memcpy(g.ColorEditLastColor, f, sizeof(float) * 3); + g.ColorEditLastColor = ColorConvertFloat4ToU32(ImVec4(f[0], f[1], f[2], 0)); } if ((flags & ImGuiColorEditFlags_DisplayRGB) && (flags & ImGuiColorEditFlags_InputHSV)) ColorConvertRGBtoHSV(f[0], f[1], f[2], f[0], f[1], f[2]); @@ -5104,13 +5204,7 @@ bool ImGui::ColorPicker4(const char* label, float col[4], ImGuiColorEditFlags fl { // Hue is lost when converting from greyscale rgb (saturation=0). Restore it. ColorConvertRGBtoHSV(R, G, B, H, S, V); - if (memcmp(g.ColorEditLastColor, col, sizeof(float) * 3) == 0) - { - if (S == 0) - H = g.ColorEditLastHue; - if (V == 0) - S = g.ColorEditLastSat; - } + ColorEditRestoreHS(col, &H, &S, &V); } else if (flags & ImGuiColorEditFlags_InputHSV) { @@ -5163,6 +5257,10 @@ bool ImGui::ColorPicker4(const char* label, float col[4], ImGuiColorEditFlags fl { S = ImSaturate((io.MousePos.x - picker_pos.x) / (sv_picker_size - 1)); V = 1.0f - ImSaturate((io.MousePos.y - picker_pos.y) / (sv_picker_size - 1)); + + // Greatly reduces hue jitter and reset to 0 when hue == 255 and color is rapidly modified using SV square. + if (g.ColorEditLastColor == ColorConvertFloat4ToU32(ImVec4(col[0], col[1], col[2], 0))) + H = g.ColorEditLastHue; value_changed = value_changed_sv = true; } if (!(flags & ImGuiColorEditFlags_NoOptions)) @@ -5236,10 +5334,10 @@ bool ImGui::ColorPicker4(const char* label, float col[4], ImGuiColorEditFlags fl { if (flags & ImGuiColorEditFlags_InputRGB) { - ColorConvertHSVtoRGB(H >= 1.0f ? H - 10 * 1e-6f : H, S > 0.0f ? S : 10 * 1e-6f, V > 0.0f ? V : 1e-6f, col[0], col[1], col[2]); + ColorConvertHSVtoRGB(H, S, V, col[0], col[1], col[2]); g.ColorEditLastHue = H; g.ColorEditLastSat = S; - memcpy(g.ColorEditLastColor, col, sizeof(float) * 3); + g.ColorEditLastColor = ColorConvertFloat4ToU32(ImVec4(col[0], col[1], col[2], 0)); } else if (flags & ImGuiColorEditFlags_InputHSV) { @@ -5293,13 +5391,7 @@ bool ImGui::ColorPicker4(const char* label, float col[4], ImGuiColorEditFlags fl G = col[1]; B = col[2]; ColorConvertRGBtoHSV(R, G, B, H, S, V); - if (memcmp(g.ColorEditLastColor, col, sizeof(float) * 3) == 0) // Fix local Hue as display below will use it immediately. - { - if (S == 0) - H = g.ColorEditLastHue; - if (V == 0) - S = g.ColorEditLastSat; - } + ColorEditRestoreHS(col, &H, &S, &V); // Fix local Hue as display below will use it immediately. } else if (flags & ImGuiColorEditFlags_InputHSV) { @@ -5525,7 +5617,7 @@ void ImGui::ColorTooltip(const char* text, const float* col, ImGuiColorEditFlags { ImGuiContext& g = *GImGui; - BeginTooltipEx(0, ImGuiTooltipFlags_OverridePreviousTooltip); + BeginTooltipEx(ImGuiTooltipFlags_OverridePreviousTooltip, ImGuiWindowFlags_None); const char* text_end = text ? FindRenderedTextEnd(text, NULL) : text; if (text_end > text) { @@ -5896,7 +5988,7 @@ bool ImGui::TreeNodeBehavior(ImGuiID id, ImGuiTreeNodeFlags flags, const char* l toggled = true; if (flags & ImGuiTreeNodeFlags_OpenOnArrow) toggled |= is_mouse_x_over_arrow && !g.NavDisableMouseHover; // Lightweight equivalent of IsMouseHoveringRect() since ButtonBehavior() already did the job - if ((flags & ImGuiTreeNodeFlags_OpenOnDoubleClick) && g.IO.MouseDoubleClicked[0]) + if ((flags & ImGuiTreeNodeFlags_OpenOnDoubleClick) && g.IO.MouseClickedCount[0] == 2) toggled = true; } else if (pressed && g.DragDropHoldJustPressedId == id) @@ -5982,7 +6074,7 @@ void ImGui::TreePush(const char* str_id) ImGuiWindow* window = GetCurrentWindow(); Indent(); window->DC.TreeDepth++; - PushID(str_id ? str_id : "#TreePush"); + PushID(str_id); } void ImGui::TreePush(const void* ptr_id) @@ -5990,7 +6082,7 @@ void ImGui::TreePush(const void* ptr_id) ImGuiWindow* window = GetCurrentWindow(); Indent(); window->DC.TreeDepth++; - PushID(ptr_id ? ptr_id : (const void*)"#TreePush"); + PushID(ptr_id); } void ImGui::TreePushOverrideID(ImGuiID id) @@ -5999,7 +6091,7 @@ void ImGui::TreePushOverrideID(ImGuiID id) ImGuiWindow* window = g.CurrentWindow; Indent(); window->DC.TreeDepth++; - window->IDStack.push_back(id); + PushOverrideID(id); } void ImGui::TreePop() @@ -6153,20 +6245,8 @@ bool ImGui::Selectable(const char* label, bool selected, ImGuiSelectableFlags fl window->ClipRect.Max.x = window->ParentWorkRect.Max.x; } - bool item_add; const bool disabled_item = (flags & ImGuiSelectableFlags_Disabled) != 0; - if (disabled_item) - { - ImGuiItemFlags backup_item_flags = g.CurrentItemFlags; - g.CurrentItemFlags |= ImGuiItemFlags_Disabled; - item_add = ItemAdd(bb, id); - g.CurrentItemFlags = backup_item_flags; - } - else - { - item_add = ItemAdd(bb, id); - } - + const bool item_add = ItemAdd(bb, id, NULL, disabled_item ? ImGuiItemFlags_Disabled : ImGuiItemFlags_None); if (span_all_columns) { window->ClipRect.Min.x = backup_clip_rect_min_x; @@ -6178,7 +6258,7 @@ bool ImGui::Selectable(const char* label, bool selected, ImGuiSelectableFlags fl const bool disabled_global = (g.CurrentItemFlags & ImGuiItemFlags_Disabled) != 0; if (disabled_item && !disabled_global) // Only testing this as an optimization - BeginDisabled(true); + BeginDisabled(); // FIXME: We can standardize the behavior of those two, we could also keep the fast path of override ClipRect + full push on render only, // which would be advantageous since most selectable are not selected. @@ -6215,7 +6295,7 @@ bool ImGui::Selectable(const char* label, bool selected, ImGuiSelectableFlags fl { if (!g.NavDisableMouseHover && g.NavWindow == window && g.NavLayer == window->DC.NavLayerCurrent) { - SetNavID(id, window->DC.NavLayerCurrent, window->DC.NavFocusScopeIdCurrent, ImRect(bb.Min - window->Pos, bb.Max - window->Pos)); + SetNavID(id, window->DC.NavLayerCurrent, window->DC.NavFocusScopeIdCurrent, WindowRectAbsToRel(window, bb)); // (bb == NavRect) g.NavDisableHighlight = true; } } @@ -6480,7 +6560,7 @@ int ImGui::PlotEx(ImGuiPlotType plot_type, const char* label, float (*values_get float v0 = values_getter(data, (0 + values_offset) % values_count); float t0 = 0.0f; ImVec2 tp0 = ImVec2( t0, 1.0f - ImSaturate((v0 - scale_min) * inv_scale) ); // Point in the normalized space of our target rectangle - float histogram_zero_line_t = (scale_min * scale_max < 0.0f) ? (-scale_min * inv_scale) : (scale_min < 0.0f ? 0.0f : 1.0f); // Where does the zero line stands + float histogram_zero_line_t = (scale_min * scale_max < 0.0f) ? (1 + scale_min * inv_scale) : (scale_min < 0.0f ? 0.0f : 1.0f); // Where does the zero line stands const ImU32 col_base = GetColorU32((plot_type == ImGuiPlotType_Lines) ? ImGuiCol_PlotLines : ImGuiCol_PlotHistogram); const ImU32 col_hovered = GetColorU32((plot_type == ImGuiPlotType_Lines) ? ImGuiCol_PlotLinesHovered : ImGuiCol_PlotHistogramHovered); @@ -6696,10 +6776,11 @@ void ImGui::EndMenuBar() // Nav: When a move request within one of our child menu failed, capture the request to navigate among our siblings. if (NavMoveRequestButNoResultYet() && (g.NavMoveDir == ImGuiDir_Left || g.NavMoveDir == ImGuiDir_Right) && (g.NavWindow->Flags & ImGuiWindowFlags_ChildMenu)) { + // Try to find out if the request is for one of our child menu ImGuiWindow* nav_earliest_child = g.NavWindow; while (nav_earliest_child->ParentWindow && (nav_earliest_child->ParentWindow->Flags & ImGuiWindowFlags_ChildMenu)) nav_earliest_child = nav_earliest_child->ParentWindow; - if (nav_earliest_child->ParentWindow == window && nav_earliest_child->DC.ParentLayoutType == ImGuiLayoutType_Horizontal && (g.NavMoveRequestFlags & ImGuiNavMoveFlags_Forwarded) == 0) + if (nav_earliest_child->ParentWindow == window && nav_earliest_child->DC.ParentLayoutType == ImGuiLayoutType_Horizontal && (g.NavMoveFlags & ImGuiNavMoveFlags_Forwarded) == 0) { // To do so we claim focus back, restore NavId and then process the movement request for yet another frame. // This involve a one-frame delay which isn't very problematic in this situation. We could remove it by scoring in advance for multiple window (probably not worth bothering) @@ -6709,7 +6790,7 @@ void ImGui::EndMenuBar() SetNavID(window->NavLastIds[layer], layer, 0, window->NavRectRel[layer]); g.NavDisableHighlight = true; // Hide highlight for the current frame so we don't see the intermediary selection. g.NavDisableMouseHover = g.NavMousePosDirty = true; - NavMoveRequestForward(g.NavMoveDir, g.NavMoveClipDir, g.NavMoveRequestFlags); // Repeat + NavMoveRequestForward(g.NavMoveDir, g.NavMoveClipDir, g.NavMoveFlags, g.NavMoveScrollFlags); // Repeat } } @@ -6802,6 +6883,23 @@ void ImGui::EndMainMenuBar() End(); } +static bool IsRootOfOpenMenuSet() +{ + ImGuiContext& g = *GImGui; + ImGuiWindow* window = g.CurrentWindow; + if ((g.OpenPopupStack.Size <= g.BeginPopupStack.Size) || (window->Flags & ImGuiWindowFlags_ChildMenu)) + return false; + + // Initially we used 'OpenParentId' to differentiate multiple menu sets from each others (e.g. inside menu bar vs loose menu items) based on parent ID. + // This would however prevent the use of e.g. PuhsID() user code submitting menus. + // Previously this worked between popup and a first child menu because the first child menu always had the _ChildWindow flag, + // making hovering on parent popup possible while first child menu was focused - but this was generally a bug with other side effects. + // Instead we don't treat Popup specifically (in order to consistently support menu features in them), maybe the first child menu of a Popup + // doesn't have the _ChildWindow flag, and we rely on this IsRootOfOpenMenuSet() check to allow hovering between root window/popup and first chilld menu. + const ImGuiPopupData* upper_popup = &g.OpenPopupStack[g.BeginPopupStack.Size]; + return (/*upper_popup->OpenParentId == window->IDStack.back() &&*/ upper_popup->Window && (upper_popup->Window->Flags & ImGuiWindowFlags_ChildMenu)); +} + bool ImGui::BeginMenuEx(const char* label, const char* icon, bool enabled) { ImGuiWindow* window = GetCurrentWindow(); @@ -6814,8 +6912,9 @@ bool ImGui::BeginMenuEx(const char* label, const char* icon, bool enabled) bool menu_is_open = IsPopupOpen(id, ImGuiPopupFlags_None); // Sub-menus are ChildWindow so that mouse can be hovering across them (otherwise top-most popup menu would steal focus and not allow hovering on parent menu) + // The first menu in a hierarchy isn't so hovering doesn't get accross (otherwise e.g. resizing borders with ImGuiButtonFlags_FlattenChildren would react), but top-most BeginMenu() will bypass that limitation. ImGuiWindowFlags flags = ImGuiWindowFlags_ChildMenu | ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoSavedSettings | ImGuiWindowFlags_NoNavFocus; - if (window->Flags & (ImGuiWindowFlags_Popup | ImGuiWindowFlags_ChildMenu)) + if (window->Flags & ImGuiWindowFlags_ChildMenu) flags |= ImGuiWindowFlags_ChildWindow; // If a menu with same the ID was already submitted, we will append to it, matching the behavior of Begin(). @@ -6834,11 +6933,12 @@ bool ImGui::BeginMenuEx(const char* label, const char* icon, bool enabled) g.MenusIdSubmittedThisFrame.push_back(id); ImVec2 label_size = CalcTextSize(label, NULL, true); - bool pressed; - bool menuset_is_open = !(window->Flags & ImGuiWindowFlags_Popup) && (g.OpenPopupStack.Size > g.BeginPopupStack.Size && g.OpenPopupStack[g.BeginPopupStack.Size].OpenParentId == window->IDStack.back()); + + // Odd hack to allow hovering across menus of a same menu-set (otherwise we wouldn't be able to hover parent without always being a Child window) + const bool menuset_is_open = IsRootOfOpenMenuSet(); ImGuiWindow* backed_nav_window = g.NavWindow; if (menuset_is_open) - g.NavWindow = window; // Odd hack to allow hovering across menus of a same menu-set (otherwise we wouldn't be able to hover parent) + g.NavWindow = window; // The reference position stored in popup_pos will be used by Begin() to find a suitable position for the child menu, // However the final position is going to be different! It is chosen by FindBestWindowPosForPopup(). @@ -6848,6 +6948,7 @@ bool ImGui::BeginMenuEx(const char* label, const char* icon, bool enabled) if (!enabled) BeginDisabled(); const ImGuiMenuColumns* offsets = &window->DC.MenuColumns; + bool pressed; if (window->DC.LayoutType == ImGuiLayoutType_Horizontal) { // Menu inside an horizontal menu bar @@ -6865,7 +6966,7 @@ bool ImGui::BeginMenuEx(const char* label, const char* icon, bool enabled) } else { - // Menu inside a menu + // Menu inside a regular/vertical menu // (In a typical menu window where all items are BeginMenu() or MenuItem() calls, extra_w will always be 0.0f. // Only when they are other items sticking out we're going to add spacing, yet only register minimum width into the layout system. popup_pos = ImVec2(pos.x, pos.y - style.WindowPadding.y); @@ -6894,37 +6995,29 @@ bool ImGui::BeginMenuEx(const char* label, const char* icon, bool enabled) // Close menu when not hovering it anymore unless we are moving roughly in the direction of the menu // Implement http://bjk5.com/post/44698559168/breaking-down-amazons-mega-dropdown to avoid using timers, so menus feels more reactive. bool moving_toward_other_child_menu = false; - ImGuiWindow* child_menu_window = (g.BeginPopupStack.Size < g.OpenPopupStack.Size && g.OpenPopupStack[g.BeginPopupStack.Size].SourceWindow == window) ? g.OpenPopupStack[g.BeginPopupStack.Size].Window : NULL; if (g.HoveredWindow == window && child_menu_window != NULL && !(window->Flags & ImGuiWindowFlags_MenuBar)) { - // FIXME-DPI: Values should be derived from a master "scale" factor. + float ref_unit = g.FontSize; // FIXME-DPI ImRect next_window_rect = child_menu_window->Rect(); - ImVec2 ta = g.IO.MousePos - g.IO.MouseDelta; + ImVec2 ta = (g.IO.MousePos - g.IO.MouseDelta); ImVec2 tb = (window->Pos.x < child_menu_window->Pos.x) ? next_window_rect.GetTL() : next_window_rect.GetTR(); ImVec2 tc = (window->Pos.x < child_menu_window->Pos.x) ? next_window_rect.GetBL() : next_window_rect.GetBR(); - float extra = ImClamp(ImFabs(ta.x - tb.x) * 0.30f, 5.0f, 30.0f); // add a bit of extra slack. - ta.x += (window->Pos.x < child_menu_window->Pos.x) ? -0.5f : +0.5f; // to avoid numerical issues - tb.y = ta.y + ImMax((tb.y - extra) - ta.y, -100.0f); // triangle is maximum 200 high to limit the slope and the bias toward large sub-menus // FIXME: Multiply by fb_scale? - tc.y = ta.y + ImMin((tc.y + extra) - ta.y, +100.0f); + float extra = ImClamp(ImFabs(ta.x - tb.x) * 0.30f, ref_unit * 0.5f, ref_unit * 2.5f); // add a bit of extra slack. + ta.x += (window->Pos.x < child_menu_window->Pos.x) ? -0.5f : +0.5f; // to avoid numerical issues (FIXME: ??) + tb.y = ta.y + ImMax((tb.y - extra) - ta.y, -ref_unit * 8.0f); // triangle is maximum 200 high to limit the slope and the bias toward large sub-menus // FIXME: Multiply by fb_scale? + tc.y = ta.y + ImMin((tc.y + extra) - ta.y, +ref_unit * 8.0f); moving_toward_other_child_menu = ImTriangleContainsPoint(ta, tb, tc, g.IO.MousePos); - //GetForegroundDrawList()->AddTriangleFilled(ta, tb, tc, moving_within_opened_triangle ? IM_COL32(0,128,0,128) : IM_COL32(128,0,0,128)); // [DEBUG] + //GetForegroundDrawList()->AddTriangleFilled(ta, tb, tc, moving_toward_other_child_menu ? IM_COL32(0,128,0,128) : IM_COL32(128,0,0,128)); // [DEBUG] } - - // FIXME: Hovering a disabled BeginMenu or MenuItem won't close us if (menu_is_open && !hovered && g.HoveredWindow == window && g.HoveredIdPreviousFrame != 0 && g.HoveredIdPreviousFrame != id && !moving_toward_other_child_menu) want_close = true; - if (!menu_is_open && hovered && pressed) // Click to open + // Open + if (!menu_is_open && pressed) // Click/activate to open want_open = true; else if (!menu_is_open && hovered && !moving_toward_other_child_menu) // Hover to open want_open = true; - - if (g.NavActivateId == id) - { - want_close = menu_is_open; - want_open = !menu_is_open; - } if (g.NavId == id && g.NavMoveDir == ImGuiDir_Right) // Nav-Right to open { want_open = true; @@ -6972,7 +7065,9 @@ bool ImGui::BeginMenuEx(const char* label, const char* icon, bool enabled) if (menu_is_open) { SetNextWindowPos(popup_pos, ImGuiCond_Always); // Note: this is super misleading! The value will serve as reference for FindBestWindowPosForPopup(), not actual pos. + PushStyleVar(ImGuiStyleVar_ChildRounding, style.PopupRounding); // First level will use _PopupRounding, subsequent will use _ChildRounding menu_is_open = BeginPopupEx(id, flags); // menu_is_open can be 'false' when the popup is completely clipped (e.g. zero size display) + PopStyleVar(); } else { @@ -6994,11 +7089,12 @@ void ImGui::EndMenu() // However, it means that with the current code, a BeginMenu() from outside another menu or a menu-bar won't be closable with the Left direction. ImGuiContext& g = *GImGui; ImGuiWindow* window = g.CurrentWindow; - if (g.NavWindow && g.NavWindow->ParentWindow == window && g.NavMoveDir == ImGuiDir_Left && NavMoveRequestButNoResultYet() && window->DC.LayoutType == ImGuiLayoutType_Vertical) - { - ClosePopupToLevel(g.BeginPopupStack.Size, true); - NavMoveRequestCancel(); - } + if (g.NavMoveDir == ImGuiDir_Left && NavMoveRequestButNoResultYet() && window->DC.LayoutType == ImGuiLayoutType_Vertical) + if (g.NavWindow && (g.NavWindow->RootWindowForNav->Flags & ImGuiWindowFlags_Popup) && g.NavWindow->RootWindowForNav->ParentWindow == window) + { + ClosePopupToLevel(g.BeginPopupStack.Size, true); + NavMoveRequestCancel(); + } EndPopup(); } @@ -7014,13 +7110,19 @@ bool ImGui::MenuItemEx(const char* label, const char* icon, const char* shortcut ImVec2 pos = window->DC.CursorPos; ImVec2 label_size = CalcTextSize(label, NULL, true); + const bool menuset_is_open = IsRootOfOpenMenuSet(); + ImGuiWindow* backed_nav_window = g.NavWindow; + if (menuset_is_open) + g.NavWindow = window; + // We've been using the equivalent of ImGuiSelectableFlags_SetNavIdOnHover on all Selectable() since early Nav system days (commit 43ee5d73), // but I am unsure whether this should be kept at all. For now moved it to be an opt-in feature used by menus only. bool pressed; PushID(label); if (!enabled) - BeginDisabled(true); - const ImGuiSelectableFlags flags = ImGuiSelectableFlags_SelectOnRelease | ImGuiSelectableFlags_SetNavIdOnHover; + BeginDisabled(); + + const ImGuiSelectableFlags selectable_flags = ImGuiSelectableFlags_SelectOnRelease | ImGuiSelectableFlags_SetNavIdOnHover; const ImGuiMenuColumns* offsets = &window->DC.MenuColumns; if (window->DC.LayoutType == ImGuiLayoutType_Horizontal) { @@ -7028,10 +7130,11 @@ bool ImGui::MenuItemEx(const char* label, const char* icon, const char* shortcut // Note that in this situation: we don't render the shortcut, we render a highlight instead of the selected tick mark. float w = label_size.x; window->DC.CursorPos.x += IM_FLOOR(style.ItemSpacing.x * 0.5f); + ImVec2 text_pos(window->DC.CursorPos.x + offsets->OffsetLabel, window->DC.CursorPos.y + window->DC.CurrLineTextBaseOffset); PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(style.ItemSpacing.x * 2.0f, style.ItemSpacing.y)); - pressed = Selectable("", selected, flags, ImVec2(w, 0.0f)); + pressed = Selectable("", selected, selectable_flags, ImVec2(w, 0.0f)); PopStyleVar(); - RenderText(pos + ImVec2(offsets->OffsetLabel, 0.0f), label); + RenderText(text_pos, label); window->DC.CursorPos.x += IM_FLOOR(style.ItemSpacing.x * (-1.0f + 0.5f)); // -1 spacing to compensate the spacing added when Selectable() did a SameLine(). It would also work to call SameLine() ourselves after the PopStyleVar(). } else @@ -7044,7 +7147,7 @@ bool ImGui::MenuItemEx(const char* label, const char* icon, const char* shortcut float checkmark_w = IM_FLOOR(g.FontSize * 1.20f); float min_w = window->DC.MenuColumns.DeclColumns(icon_w, label_size.x, shortcut_w, checkmark_w); // Feedback for next frame float stretch_w = ImMax(0.0f, GetContentRegionAvail().x - min_w); - pressed = Selectable("", false, flags | ImGuiSelectableFlags_SpanAvailWidth, ImVec2(min_w, 0.0f)); + pressed = Selectable("", false, selectable_flags | ImGuiSelectableFlags_SpanAvailWidth, ImVec2(min_w, 0.0f)); RenderText(pos + ImVec2(offsets->OffsetLabel, 0.0f), label); if (icon_w > 0.0f) RenderText(pos + ImVec2(offsets->OffsetIcon, 0.0f), icon); @@ -7061,6 +7164,8 @@ bool ImGui::MenuItemEx(const char* label, const char* icon, const char* shortcut if (!enabled) EndDisabled(); PopID(); + if (menuset_is_open) + g.NavWindow = backed_nav_window; return pressed; } @@ -7204,7 +7309,7 @@ bool ImGui::BeginTabBarEx(ImGuiTabBar* tab_bar, const ImRect& tab_bar_bb, ImG // Ensure correct ordering when toggling ImGuiTabBarFlags_Reorderable flag, or when a new tab was added while being not reorderable if ((flags & ImGuiTabBarFlags_Reorderable) != (tab_bar->Flags & ImGuiTabBarFlags_Reorderable) || (tab_bar->TabsAddedNew && !(flags & ImGuiTabBarFlags_Reorderable))) - if (tab_bar->Tabs.Size > 1 && (flags & ImGuiTabBarFlags_DockNode) == 0) // FIXME: TabBar with DockNode can now be hybrid + if ((flags & ImGuiTabBarFlags_DockNode) == 0) // FIXME: TabBar with DockNode can now be hybrid ImQsort(tab_bar->Tabs.Data, tab_bar->Tabs.Size, sizeof(ImGuiTabItem), TabItemComparerByBeginOrder); tab_bar->TabsAddedNew = false; @@ -7926,9 +8031,7 @@ bool ImGui::TabItemEx(ImGuiTabBar* tab_bar, const char* label, bool* p_open, IMGUI_TEST_ENGINE_ITEM_INFO(id, label, g.LastItemData.StatusFlags); if (p_open && !*p_open) { - PushItemFlag(ImGuiItemFlags_NoNav | ImGuiItemFlags_NoNavDefaultFocus, true); - ItemAdd(ImRect(), id); - PopItemFlag(); + ItemAdd(ImRect(), id, NULL, ImGuiItemFlags_NoNav | ImGuiItemFlags_NoNavDefaultFocus); return false; } @@ -8006,9 +8109,7 @@ bool ImGui::TabItemEx(ImGuiTabBar* tab_bar, const char* label, bool* p_open, // and then gets submitted again, the tabs will have 'tab_appearing=true' but 'tab_is_new=false'. if (tab_appearing && (!tab_bar_appearing || tab_is_new)) { - PushItemFlag(ImGuiItemFlags_NoNav | ImGuiItemFlags_NoNavDefaultFocus, true); - ItemAdd(ImRect(), id); - PopItemFlag(); + ItemAdd(ImRect(), id, NULL, ImGuiItemFlags_NoNav | ImGuiItemFlags_NoNavDefaultFocus); if (is_tab_button) return false; return tab_contents_visible; @@ -8165,6 +8266,11 @@ bool ImGui::TabItemEx(ImGuiTabBar* tab_bar, const char* label, bool* p_open, TabBarCloseTab(tab_bar, tab); } + // Forward Hovered state so IsItemHovered() after Begin() can work (even though we are technically hovering our parent) + // That state is copied to window->DockTabItemStatusFlags by our caller. + if (docked_window && (hovered || g.HoveredId == close_button_id)) + g.LastItemData.StatusFlags |= ImGuiItemStatusFlags_HoveredWindow; + // Restore main window position so user can draw there if (want_clip_rect) PopClipRect(); diff --git a/imgui-sys/third-party/imgui-docking/imgui/misc/freetype/imgui_freetype.cpp b/imgui-sys/third-party/imgui-docking/imgui/misc/freetype/imgui_freetype.cpp index a8ec51b37..a72ec8c83 100644 --- a/imgui-sys/third-party/imgui-docking/imgui/misc/freetype/imgui_freetype.cpp +++ b/imgui-sys/third-party/imgui-docking/imgui/misc/freetype/imgui_freetype.cpp @@ -226,6 +226,12 @@ namespace uint32_t glyph_index = FT_Get_Char_Index(Face, codepoint); if (glyph_index == 0) return NULL; + + // If this crash for you: FreeType 2.11.0 has a crash bug on some bitmap/colored fonts. + // - https://gitlab.freedesktop.org/freetype/freetype/-/issues/1076 + // - https://github.com/ocornut/imgui/issues/4567 + // - https://github.com/ocornut/imgui/issues/4566 + // You can use FreeType 2.10, or the patched version of 2.11.0 in VcPkg, or probably any upcoming FreeType version. FT_Error error = FT_Load_Glyph(Face, glyph_index, LoadFlags); if (error) return NULL; diff --git a/imgui-sys/third-party/imgui-master/imgui/imconfig.h b/imgui-sys/third-party/imgui-master/imgui/imconfig.h index a0c86caad..7082c5507 100644 --- a/imgui-sys/third-party/imgui-master/imgui/imconfig.h +++ b/imgui-sys/third-party/imgui-master/imgui/imconfig.h @@ -33,7 +33,7 @@ // It is very strongly recommended to NOT disable the demo windows during development. Please read comments in imgui_demo.cpp. //#define IMGUI_DISABLE // Disable everything: all headers and source files will be empty. //#define IMGUI_DISABLE_DEMO_WINDOWS // Disable demo windows: ShowDemoWindow()/ShowStyleEditor() will be empty. Not recommended. -//#define IMGUI_DISABLE_METRICS_WINDOW // Disable metrics/debugger window: ShowMetricsWindow() will be empty. +//#define IMGUI_DISABLE_METRICS_WINDOW // Disable metrics/debugger and other debug tools: ShowMetricsWindow() and ShowStackToolWindow() will be empty. //---- Don't implement some functions to reduce linkage requirements. //#define IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCTIONS // [Win32] Don't implement default clipboard handler. Won't use and link with OpenClipboard/GetClipboardData/CloseClipboard etc. (user32.lib/.a, kernel32.lib/.a) diff --git a/imgui-sys/third-party/imgui-master/imgui/imgui.cpp b/imgui-sys/third-party/imgui-master/imgui/imgui.cpp index ab27f1307..d7653d41f 100644 --- a/imgui-sys/third-party/imgui-master/imgui/imgui.cpp +++ b/imgui-sys/third-party/imgui-master/imgui/imgui.cpp @@ -1,4 +1,4 @@ -// dear imgui, v1.84 +// dear imgui, v1.86 // (main code and documentation) // Help: @@ -15,7 +15,10 @@ // - Wiki https://github.com/ocornut/imgui/wiki (lots of good stuff there) // - Glossary https://github.com/ocornut/imgui/wiki/Glossary // - Issues & support https://github.com/ocornut/imgui/issues -// - Discussions https://github.com/ocornut/imgui/discussions + +// Getting Started? +// - For first-time users having issues compiling/linking/running or issues loading fonts: +// please post in https://github.com/ocornut/imgui/discussions if you cannot find a solution in resources above. // Developed by Omar Cornut and every direct or indirect contributors to the GitHub. // See LICENSE.txt for copyright and licensing details (standard MIT License). @@ -79,6 +82,7 @@ CODE // [SECTION] VIEWPORTS // [SECTION] PLATFORM DEPENDENT HELPERS // [SECTION] METRICS/DEBUGGER WINDOW +// [SECTION] OTHER DEBUG TOOLS (ITEM PICKER, STACK TOOL) */ @@ -376,6 +380,9 @@ CODE When you are not sure about an old symbol or function name, try using the Search/Find function of your IDE to look for comments or references in all imgui files. You can read releases logs https://github.com/ocornut/imgui/releases for more details. + - 2021/12/20 (1.86) - backends: removed obsolete Marmalade backend (imgui_impl_marmalade.cpp) + example. Find last supported version at https://github.com/ocornut/imgui/wiki/Bindings + - 2021/11/04 (1.86) - removed CalcListClipping() function. Prefer using ImGuiListClipper which can return non-contiguous ranges. Please open an issue if you think you really need this function. + - 2021/08/23 (1.85) - removed GetWindowContentRegionWidth() function. keep inline redirection helper. can use 'GetWindowContentRegionMax().x - GetWindowContentRegionMin().x' instead for generally 'GetContentRegionAvail().x' is more useful. - 2021/07/26 (1.84) - commented out redirecting functions/enums names that were marked obsolete in 1.67 and 1.69 (March 2019): - ImGui::GetOverlayDrawList() -> use ImGui::GetForegroundDrawList() - ImFont::GlyphRangesBuilder -> use ImFontGlyphRangesBuilder @@ -718,9 +725,11 @@ CODE Q&A: Usage ---------- - Q: Why is my widget not reacting when I click on it? - Q: How can I have widgets with an empty label? - Q: How can I have multiple widgets with the same label? + Q: About the ID Stack system.. + - Why is my widget not reacting when I click on it? + - How can I have widgets with an empty label? + - How can I have multiple widgets with the same label? + - How can I have multiple windows with the same label? Q: How can I display an image? What is ImTextureID, how does it works? Q: How can I use my own math types instead of ImVec2/ImVec4? Q: How can I interact with standard C++ types (such as std::string and std::vector)? @@ -906,34 +915,41 @@ namespace ImGui static void NavUpdate(); static void NavUpdateWindowing(); static void NavUpdateWindowingOverlay(); -static void NavUpdateMoveResult(); -static void NavUpdateInitResult(); +static void NavUpdateCancelRequest(); +static void NavUpdateCreateMoveRequest(); +static void NavUpdateCreateTabbingRequest(); static float NavUpdatePageUpPageDown(); static inline void NavUpdateAnyRequestFlag(); +static void NavUpdateCreateWrappingRequest(); static void NavEndFrame(); -static bool NavScoreItem(ImGuiNavItemData* result, ImRect cand); -static void NavApplyItemToResult(ImGuiNavItemData* result, ImGuiWindow* window, ImGuiID id, const ImRect& nav_bb_rel); -static void NavProcessItem(ImGuiWindow* window, const ImRect& nav_bb, ImGuiID id); +static bool NavScoreItem(ImGuiNavItemData* result); +static void NavApplyItemToResult(ImGuiNavItemData* result); +static void NavProcessItem(); +static void NavProcessItemForTabbingRequest(ImGuiID id); static ImVec2 NavCalcPreferredRefPos(); static void NavSaveLastChildNavWindowIntoParent(ImGuiWindow* nav_window); static ImGuiWindow* NavRestoreLastChildNavWindow(ImGuiWindow* window); static void NavRestoreLayer(ImGuiNavLayer layer); +static void NavRestoreHighlightAfterMove(); static int FindWindowFocusIndex(ImGuiWindow* window); -// Error Checking +// Error Checking and Debug Tools static void ErrorCheckNewFrameSanityChecks(); static void ErrorCheckEndFrameSanityChecks(); +static void UpdateDebugToolItemPicker(); +static void UpdateDebugToolStackQueries(); // Misc static void UpdateSettings(); static void UpdateMouseInputs(); static void UpdateMouseWheel(); -static void UpdateTabFocus(); -static void UpdateDebugToolItemPicker(); static bool UpdateWindowManualResize(ImGuiWindow* window, const ImVec2& size_auto_fit, int* border_held, int resize_grip_count, ImU32 resize_grip_col[4], const ImRect& visibility_rect); static void RenderWindowOuterBorders(ImGuiWindow* window); static void RenderWindowDecorations(ImGuiWindow* window, const ImRect& title_bar_rect, bool title_bar_is_highlight, int resize_grip_count, const ImU32 resize_grip_col[4], float resize_grip_draw_size); static void RenderWindowTitleBarContents(ImGuiWindow* window, const ImRect& title_bar_rect, const char* name, bool* p_open); +static void RenderDimmedBackgroundBehindWindow(ImGuiWindow* window, ImU32 col); +static void RenderDimmedBackgrounds(); +static ImGuiWindow* FindBlockingModal(ImGuiWindow* window); // Viewports static void UpdateViewportsNewFrame(); @@ -1181,13 +1197,8 @@ void ImGuiIO::ClearInputCharacters() InputQueueCharacters.resize(0); } -void ImGuiIO::AddFocusEvent(bool focused) +void ImGuiIO::ClearInputKeys() { - if (focused) - return; - - // Clear buttons state when focus is lost - // (this is useful so e.g. releasing Alt after focus loss on Alt-Tab doesn't trigger the Alt menu toggle) memset(KeysDown, 0, sizeof(KeysDown)); for (int n = 0; n < IM_ARRAYSIZE(KeysDownDuration); n++) KeysDownDuration[n] = KeysDownDurationPrev[n] = -1.0f; @@ -1197,6 +1208,13 @@ void ImGuiIO::AddFocusEvent(bool focused) NavInputsDownDuration[n] = NavInputsDownDurationPrev[n] = -1.0f; } +void ImGuiIO::AddFocusEvent(bool focused) +{ + // We intentionally overwrite this and process in NewFrame(), in order to give a chance + // to multi-viewports backends to queue AddFocusEvent(false),AddFocusEvent(true) in same frame. + AppFocusLost = !focused; +} + //----------------------------------------------------------------------------- // [SECTION] MISC HELPERS/UTILITIES (Geometry functions) //----------------------------------------------------------------------------- @@ -1932,7 +1950,7 @@ void ImGuiStorage::BuildSortByKey() { struct StaticFunc { - static int IMGUI_CDECL PairCompareByID(const void* lhs, const void* rhs) + static int IMGUI_CDECL PairComparerByID(const void* lhs, const void* rhs) { // We can't just do a subtraction because qsort uses signed integers and subtracting our ID doesn't play well with that. if (((const ImGuiStoragePair*)lhs)->key > ((const ImGuiStoragePair*)rhs)->key) return +1; @@ -1940,8 +1958,7 @@ void ImGuiStorage::BuildSortByKey() return 0; } }; - if (Data.Size > 1) - ImQsort(Data.Data, (size_t)Data.Size, sizeof(ImGuiStoragePair), StaticFunc::PairCompareByID); + ImQsort(Data.Data, (size_t)Data.Size, sizeof(ImGuiStoragePair), StaticFunc::PairComparerByID); } int ImGuiStorage::GetInt(ImGuiID key, int default_val) const @@ -2233,9 +2250,10 @@ static bool GetSkipItemForListClipping() return (g.CurrentTable ? g.CurrentTable->HostSkipItems : g.CurrentWindow->SkipItems); } -// Helper to calculate coarse clipping of large list of evenly sized items. -// NB: Prefer using the ImGuiListClipper higher-level helper if you can! Read comments and instructions there on how those use this sort of pattern. -// NB: 'items_count' is only used to clamp the result, if you don't know your count you can use INT_MAX +#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS +// Legacy helper to calculate coarse clipping of large list of evenly sized items. +// This legacy API is not ideal because it assume we will return a single contiguous rectangle. +// Prefer using ImGuiListClipper which can returns non-contiguous ranges. void ImGui::CalcListClipping(int items_count, float items_height, int* out_items_display_start, int* out_items_display_end) { ImGuiContext& g = *GImGui; @@ -2253,21 +2271,24 @@ void ImGui::CalcListClipping(int items_count, float items_height, int* out_items return; } - // We create the union of the ClipRect and the NavScoringRect which at worst should be 1 page away from ClipRect - ImRect unclipped_rect = window->ClipRect; - if (g.NavMoveRequest) - unclipped_rect.Add(g.NavScoringRect); + // We create the union of the ClipRect and the scoring rect which at worst should be 1 page away from ClipRect + // We don't include g.NavId's rectangle in there (unless g.NavJustMovedToId is set) because the rectangle enlargement can get costly. + ImRect rect = window->ClipRect; + if (g.NavMoveScoringItems) + rect.Add(g.NavScoringNoClipRect); if (g.NavJustMovedToId && window->NavLastIds[0] == g.NavJustMovedToId) - unclipped_rect.Add(ImRect(window->Pos + window->NavRectRel[0].Min, window->Pos + window->NavRectRel[0].Max)); + rect.Add(WindowRectRelToAbs(window, window->NavRectRel[0])); // Could store and use NavJustMovedToRectRel const ImVec2 pos = window->DC.CursorPos; - int start = (int)((unclipped_rect.Min.y - pos.y) / items_height); - int end = (int)((unclipped_rect.Max.y - pos.y) / items_height); + int start = (int)((rect.Min.y - pos.y) / items_height); + int end = (int)((rect.Max.y - pos.y) / items_height); // When performing a navigation request, ensure we have one item extra in the direction we are moving to - if (g.NavMoveRequest && g.NavMoveClipDir == ImGuiDir_Up) + // FIXME: Verify this works with tabbing + const bool is_nav_request = (g.NavMoveScoringItems && g.NavWindow && g.NavWindow->RootWindowForNav == window->RootWindowForNav); + if (is_nav_request && g.NavMoveClipDir == ImGuiDir_Up) start--; - if (g.NavMoveRequest && g.NavMoveClipDir == ImGuiDir_Down) + if (is_nav_request && g.NavMoveClipDir == ImGuiDir_Down) end++; start = ImClamp(start, 0, items_count); @@ -2275,17 +2296,42 @@ void ImGui::CalcListClipping(int items_count, float items_height, int* out_items *out_items_display_start = start; *out_items_display_end = end; } +#endif + +static void ImGuiListClipper_SortAndFuseRanges(ImVector& ranges, int offset = 0) +{ + if (ranges.Size - offset <= 1) + return; + + // Helper to order ranges and fuse them together if possible (bubble sort is fine as we are only sorting 2-3 entries) + for (int sort_end = ranges.Size - offset - 1; sort_end > 0; --sort_end) + for (int i = offset; i < sort_end + offset; ++i) + if (ranges[i].Min > ranges[i + 1].Min) + ImSwap(ranges[i], ranges[i + 1]); + + // Now fuse ranges together as much as possible. + for (int i = 1 + offset; i < ranges.Size; i++) + { + IM_ASSERT(!ranges[i].PosToIndexConvert && !ranges[i - 1].PosToIndexConvert); + if (ranges[i - 1].Max < ranges[i].Min) + continue; + ranges[i - 1].Min = ImMin(ranges[i - 1].Min, ranges[i].Min); + ranges[i - 1].Max = ImMax(ranges[i - 1].Max, ranges[i].Max); + ranges.erase(ranges.Data + i); + i--; + } +} -static void SetCursorPosYAndSetupForPrevLine(float pos_y, float line_height) +static void ImGuiListClipper_SeekCursorAndSetupPrevLine(float pos_y, float line_height) { // Set cursor position and a few other things so that SetScrollHereY() and Columns() can work when seeking cursor. // FIXME: It is problematic that we have to do that here, because custom/equivalent end-user code would stumble on the same issue. - // The clipper should probably have a 4th step to display the last item in a regular manner. + // The clipper should probably have a final step to display the last item in a regular manner, maybe with an opt-out flag for data sets which may have costly seek? ImGuiContext& g = *GImGui; ImGuiWindow* window = g.CurrentWindow; float off_y = pos_y - window->DC.CursorPos.y; window->DC.CursorPos.y = pos_y; - window->DC.CursorMaxPos.y = ImMax(window->DC.CursorMaxPos.y, pos_y); + window->DC.CursorMaxPos.y = ImMax(window->DC.CursorMaxPos.y, pos_y - g.Style.ItemSpacing.y); window->DC.CursorPosPrevLine.y = window->DC.CursorPos.y - line_height; // Setting those fields so that SetScrollHereY() can properly function after the end of our clipper usage. window->DC.PrevLineSize.y = (line_height - g.Style.ItemSpacing.y); // If we end up needing more accurate data (to e.g. use SameLine) we may as well make the clipper have a fourth step to let user process and display the last item in their list. if (ImGuiOldColumns* columns = window->DC.CurrentColumns) @@ -2301,6 +2347,15 @@ static void SetCursorPosYAndSetupForPrevLine(float pos_y, float line_height) } } +static void ImGuiListClipper_SeekCursorForItem(ImGuiListClipper* clipper, int item_n) +{ + // StartPosY starts from ItemsFrozen hence the subtraction + // Perform the add and multiply with double to allow seeking through larger ranges + ImGuiListClipperData* data = (ImGuiListClipperData*)clipper->TempData; + float pos_y = (float)((double)clipper->StartPosY + data->LossynessOffset + (double)(item_n - data->ItemsFrozen) * clipper->ItemsHeight); + ImGuiListClipper_SeekCursorAndSetupPrevLine(pos_y, clipper->ItemsHeight); +} + ImGuiListClipper::ImGuiListClipper() { memset(this, 0, sizeof(*this)); @@ -2309,7 +2364,7 @@ ImGuiListClipper::ImGuiListClipper() ImGuiListClipper::~ImGuiListClipper() { - IM_ASSERT(ItemsCount == -1 && "Forgot to call End(), or to Step() until false?"); + End(); } // Use case A: Begin() called from constructor with items_height<0, then called again from Step() in StepNo 1 @@ -2327,28 +2382,54 @@ void ImGuiListClipper::Begin(int items_count, float items_height) StartPosY = window->DC.CursorPos.y; ItemsHeight = items_height; ItemsCount = items_count; - ItemsFrozen = 0; - StepNo = 0; DisplayStart = -1; DisplayEnd = 0; + + // Acquire temporary buffer + if (++g.ClipperTempDataStacked > g.ClipperTempData.Size) + g.ClipperTempData.resize(g.ClipperTempDataStacked, ImGuiListClipperData()); + ImGuiListClipperData* data = &g.ClipperTempData[g.ClipperTempDataStacked - 1]; + data->Reset(this); + data->LossynessOffset = window->DC.CursorStartPosLossyness.y; + TempData = data; } void ImGuiListClipper::End() { - if (ItemsCount < 0) // Already ended - return; - - // In theory here we should assert that ImGui::GetCursorPosY() == StartPosY + DisplayEnd * ItemsHeight, but it feels saner to just seek at the end and not assert/crash the user. - if (ItemsCount < INT_MAX && DisplayStart >= 0) - SetCursorPosYAndSetupForPrevLine(StartPosY + (ItemsCount - ItemsFrozen) * ItemsHeight, ItemsHeight); + // In theory here we should assert that we are already at the right position, but it seems saner to just seek at the end and not assert/crash the user. + ImGuiContext& g = *GImGui; + if (ItemsCount >= 0 && ItemsCount < INT_MAX && DisplayStart >= 0) + ImGuiListClipper_SeekCursorForItem(this, ItemsCount); ItemsCount = -1; - StepNo = 3; + + // Restore temporary buffer and fix back pointers which may be invalidated when nesting + if (ImGuiListClipperData* data = (ImGuiListClipperData*)TempData) + { + IM_ASSERT(data->ListClipper == this); + data->StepNo = data->Ranges.Size; + if (--g.ClipperTempDataStacked > 0) + { + data = &g.ClipperTempData[g.ClipperTempDataStacked - 1]; + data->ListClipper->TempData = data; + } + TempData = NULL; + } +} + +void ImGuiListClipper::ForceDisplayRangeByIndices(int item_min, int item_max) +{ + ImGuiListClipperData* data = (ImGuiListClipperData*)TempData; + IM_ASSERT(DisplayStart < 0); // Only allowed after Begin() and if there has not been a specified range yet. + IM_ASSERT(item_min <= item_max); + if (item_min < item_max) + data->Ranges.push_back(ImGuiListClipperRange::FromIndices(item_min, item_max)); } bool ImGuiListClipper::Step() { ImGuiContext& g = *GImGui; ImGuiWindow* window = g.CurrentWindow; + ImGuiListClipperData* data = (ImGuiListClipperData*)TempData; ImGuiTable* table = g.CurrentTable; if (table && table->IsInsideRow) @@ -2356,95 +2437,117 @@ bool ImGuiListClipper::Step() // No items if (ItemsCount == 0 || GetSkipItemForListClipping()) + return (void)End(), false; + + // While we are in frozen row state, keep displaying items one by one, unclipped + // FIXME: Could be stored as a table-agnostic state. + if (data->StepNo == 0 && table != NULL && !table->IsUnfrozenRows) { - End(); - return false; + DisplayStart = data->ItemsFrozen; + DisplayEnd = data->ItemsFrozen + 1; + if (DisplayStart >= ItemsCount) + return (void)End(), false; + data->ItemsFrozen++; + return true; } // Step 0: Let you process the first element (regardless of it being visible or not, so we can measure the element height) - if (StepNo == 0) + bool calc_clipping = false; + if (data->StepNo == 0) { - // While we are in frozen row state, keep displaying items one by one, unclipped - // FIXME: Could be stored as a table-agnostic state. - if (table != NULL && !table->IsUnfrozenRows) - { - DisplayStart = ItemsFrozen; - DisplayEnd = ItemsFrozen + 1; - ItemsFrozen++; - return true; - } - StartPosY = window->DC.CursorPos.y; if (ItemsHeight <= 0.0f) { - // Submit the first item so we can measure its height (generally it is 0..1) - DisplayStart = ItemsFrozen; - DisplayEnd = ItemsFrozen + 1; - StepNo = 1; + // Submit the first item (or range) so we can measure its height (generally the first range is 0..1) + data->Ranges.push_front(ImGuiListClipperRange::FromIndices(data->ItemsFrozen, data->ItemsFrozen + 1)); + DisplayStart = ImMax(data->Ranges[0].Min, data->ItemsFrozen); + DisplayEnd = ImMin(data->Ranges[0].Max, ItemsCount); + if (DisplayStart == DisplayEnd) + return (void)End(), false; + data->StepNo = 1; return true; } - - // Already has item height (given by user in Begin): skip to calculating step - DisplayStart = DisplayEnd; - StepNo = 2; + calc_clipping = true; // If on the first step with known item height, calculate clipping. } - // Step 1: the clipper infer height from first element - if (StepNo == 1) + // Step 1: Let the clipper infer height from first range + if (ItemsHeight <= 0.0f) { - IM_ASSERT(ItemsHeight <= 0.0f); + IM_ASSERT(data->StepNo == 1); if (table) - { - const float pos_y1 = table->RowPosY1; // Using this instead of StartPosY to handle clipper straddling the frozen row - const float pos_y2 = table->RowPosY2; // Using this instead of CursorPos.y to take account of tallest cell. - ItemsHeight = pos_y2 - pos_y1; - window->DC.CursorPos.y = pos_y2; - } - else - { - ItemsHeight = window->DC.CursorPos.y - StartPosY; - } + IM_ASSERT(table->RowPosY1 == StartPosY && table->RowPosY2 == window->DC.CursorPos.y); + + ItemsHeight = (window->DC.CursorPos.y - StartPosY) / (float)(DisplayEnd - DisplayStart); + bool affected_by_floating_point_precision = ImIsFloatAboveGuaranteedIntegerPrecision(StartPosY) || ImIsFloatAboveGuaranteedIntegerPrecision(window->DC.CursorPos.y); + if (affected_by_floating_point_precision) + ItemsHeight = window->DC.PrevLineSize.y + g.Style.ItemSpacing.y; // FIXME: Technically wouldn't allow multi-line entries. + IM_ASSERT(ItemsHeight > 0.0f && "Unable to calculate item height! First item hasn't moved the cursor vertically!"); - StepNo = 2; + calc_clipping = true; // If item height had to be calculated, calculate clipping afterwards. } - // Reached end of list - if (DisplayEnd >= ItemsCount) + // Step 0 or 1: Calculate the actual ranges of visible elements. + const int already_submitted = DisplayEnd; + if (calc_clipping) { - End(); - return false; + if (g.LogEnabled) + { + // If logging is active, do not perform any clipping + data->Ranges.push_back(ImGuiListClipperRange::FromIndices(0, ItemsCount)); + } + else + { + // Add range selected to be included for navigation + const bool is_nav_request = (g.NavMoveScoringItems && g.NavWindow && g.NavWindow->RootWindowForNav == window->RootWindowForNav); + if (is_nav_request) + data->Ranges.push_back(ImGuiListClipperRange::FromPositions(g.NavScoringNoClipRect.Min.y, g.NavScoringNoClipRect.Max.y, 0, 0)); + if (is_nav_request && (g.NavMoveFlags & ImGuiNavMoveFlags_Tabbing) && g.NavTabbingDir == -1) + data->Ranges.push_back(ImGuiListClipperRange::FromIndices(ItemsCount - 1, ItemsCount)); + + // Add focused/active item + ImRect nav_rect_abs = ImGui::WindowRectRelToAbs(window, window->NavRectRel[0]); + if (g.NavId != 0 && window->NavLastIds[0] == g.NavId) + data->Ranges.push_back(ImGuiListClipperRange::FromPositions(nav_rect_abs.Min.y, nav_rect_abs.Max.y, 0, 0)); + + // Add visible range + const int off_min = (is_nav_request && g.NavMoveClipDir == ImGuiDir_Up) ? -1 : 0; + const int off_max = (is_nav_request && g.NavMoveClipDir == ImGuiDir_Down) ? 1 : 0; + data->Ranges.push_back(ImGuiListClipperRange::FromPositions(window->ClipRect.Min.y, window->ClipRect.Max.y, off_min, off_max)); + } + + // Convert position ranges to item index ranges + // - Very important: when a starting position is after our maximum item, we set Min to (ItemsCount - 1). This allows us to handle most forms of wrapping. + // - Due to how Selectable extra padding they tend to be "unaligned" with exact unit in the item list, + // which with the flooring/ceiling tend to lead to 2 items instead of one being submitted. + for (int i = 0; i < data->Ranges.Size; i++) + if (data->Ranges[i].PosToIndexConvert) + { + int m1 = (int)(((double)data->Ranges[i].Min - window->DC.CursorPos.y - data->LossynessOffset) / ItemsHeight); + int m2 = (int)((((double)data->Ranges[i].Max - window->DC.CursorPos.y - data->LossynessOffset) / ItemsHeight) + 0.999999f); + data->Ranges[i].Min = ImClamp(already_submitted + m1 + data->Ranges[i].PosToIndexOffsetMin, already_submitted, ItemsCount - 1); + data->Ranges[i].Max = ImClamp(already_submitted + m2 + data->Ranges[i].PosToIndexOffsetMax, data->Ranges[i].Min + 1, ItemsCount); + data->Ranges[i].PosToIndexConvert = false; + } + ImGuiListClipper_SortAndFuseRanges(data->Ranges, data->StepNo); } - // Step 2: calculate the actual range of elements to display, and position the cursor before the first element - if (StepNo == 2) + // Step 0+ (if item height is given in advance) or 1+: Display the next range in line. + if (data->StepNo < data->Ranges.Size) { - IM_ASSERT(ItemsHeight > 0.0f); - - int already_submitted = DisplayEnd; - ImGui::CalcListClipping(ItemsCount - already_submitted, ItemsHeight, &DisplayStart, &DisplayEnd); - DisplayStart += already_submitted; - DisplayEnd += already_submitted; - - // Seek cursor - if (DisplayStart > already_submitted) - SetCursorPosYAndSetupForPrevLine(StartPosY + (DisplayStart - ItemsFrozen) * ItemsHeight, ItemsHeight); - - StepNo = 3; + DisplayStart = ImMax(data->Ranges[data->StepNo].Min, already_submitted); + DisplayEnd = ImMin(data->Ranges[data->StepNo].Max, ItemsCount); + if (DisplayStart > already_submitted) //-V1051 + ImGuiListClipper_SeekCursorForItem(this, DisplayStart); + data->StepNo++; return true; } - // Step 3: the clipper validate that we have reached the expected Y position (corresponding to element DisplayEnd), + // After the last step: Let the clipper validate that we have reached the expected Y position (corresponding to element DisplayEnd), // Advance the cursor to the end of the list and then returns 'false' to end the loop. - if (StepNo == 3) - { - // Seek cursor - if (ItemsCount < INT_MAX) - SetCursorPosYAndSetupForPrevLine(StartPosY + (ItemsCount - ItemsFrozen) * ItemsHeight, ItemsHeight); // advance cursor - ItemsCount = -1; - return false; - } + if (ItemsCount < INT_MAX) + ImGuiListClipper_SeekCursorForItem(this, ItemsCount); + ItemsCount = -1; - IM_ASSERT(0); return false; } @@ -2961,10 +3064,9 @@ ImGuiID ImGuiWindow::GetID(const char* str, const char* str_end) ImGuiID seed = IDStack.back(); ImGuiID id = ImHashStr(str, str_end ? (str_end - str) : 0, seed); ImGui::KeepAliveID(id); -#ifdef IMGUI_ENABLE_TEST_ENGINE ImGuiContext& g = *GImGui; - IMGUI_TEST_ENGINE_ID_INFO2(id, ImGuiDataType_String, str, str_end); -#endif + if (g.DebugHookIdInfo == id) + ImGui::DebugHookIdInfo(id, ImGuiDataType_String, str, str_end); return id; } @@ -2973,10 +3075,9 @@ ImGuiID ImGuiWindow::GetID(const void* ptr) ImGuiID seed = IDStack.back(); ImGuiID id = ImHashData(&ptr, sizeof(void*), seed); ImGui::KeepAliveID(id); -#ifdef IMGUI_ENABLE_TEST_ENGINE ImGuiContext& g = *GImGui; - IMGUI_TEST_ENGINE_ID_INFO(id, ImGuiDataType_Pointer, ptr); -#endif + if (g.DebugHookIdInfo == id) + ImGui::DebugHookIdInfo(id, ImGuiDataType_Pointer, ptr, NULL); return id; } @@ -2985,10 +3086,9 @@ ImGuiID ImGuiWindow::GetID(int n) ImGuiID seed = IDStack.back(); ImGuiID id = ImHashData(&n, sizeof(n), seed); ImGui::KeepAliveID(id); -#ifdef IMGUI_ENABLE_TEST_ENGINE ImGuiContext& g = *GImGui; - IMGUI_TEST_ENGINE_ID_INFO(id, ImGuiDataType_S32, (intptr_t)n); -#endif + if (g.DebugHookIdInfo == id) + ImGui::DebugHookIdInfo(id, ImGuiDataType_S32, (void*)(intptr_t)n, NULL); return id; } @@ -2996,10 +3096,9 @@ ImGuiID ImGuiWindow::GetIDNoKeepAlive(const char* str, const char* str_end) { ImGuiID seed = IDStack.back(); ImGuiID id = ImHashStr(str, str_end ? (str_end - str) : 0, seed); -#ifdef IMGUI_ENABLE_TEST_ENGINE ImGuiContext& g = *GImGui; - IMGUI_TEST_ENGINE_ID_INFO2(id, ImGuiDataType_String, str, str_end); -#endif + if (g.DebugHookIdInfo == id) + ImGui::DebugHookIdInfo(id, ImGuiDataType_String, str, str_end); return id; } @@ -3007,10 +3106,9 @@ ImGuiID ImGuiWindow::GetIDNoKeepAlive(const void* ptr) { ImGuiID seed = IDStack.back(); ImGuiID id = ImHashData(&ptr, sizeof(void*), seed); -#ifdef IMGUI_ENABLE_TEST_ENGINE ImGuiContext& g = *GImGui; - IMGUI_TEST_ENGINE_ID_INFO(id, ImGuiDataType_Pointer, ptr); -#endif + if (g.DebugHookIdInfo == id) + ImGui::DebugHookIdInfo(id, ImGuiDataType_Pointer, ptr, NULL); return id; } @@ -3018,10 +3116,9 @@ ImGuiID ImGuiWindow::GetIDNoKeepAlive(int n) { ImGuiID seed = IDStack.back(); ImGuiID id = ImHashData(&n, sizeof(n), seed); -#ifdef IMGUI_ENABLE_TEST_ENGINE ImGuiContext& g = *GImGui; - IMGUI_TEST_ENGINE_ID_INFO(id, ImGuiDataType_S32, (intptr_t)n); -#endif + if (g.DebugHookIdInfo == id) + ImGui::DebugHookIdInfo(id, ImGuiDataType_S32, (void*)(intptr_t)n, NULL); return id; } @@ -3029,7 +3126,7 @@ ImGuiID ImGuiWindow::GetIDNoKeepAlive(int n) ImGuiID ImGuiWindow::GetIDFromRectangle(const ImRect& r_abs) { ImGuiID seed = IDStack.back(); - const int r_rel[4] = { (int)(r_abs.Min.x - Pos.x), (int)(r_abs.Min.y - Pos.y), (int)(r_abs.Max.x - Pos.x), (int)(r_abs.Max.y - Pos.y) }; + ImRect r_rel = ImGui::WindowRectAbsToRel(this, r_abs); ImGuiID id = ImHashData(&r_rel, sizeof(r_rel), seed); ImGui::KeepAliveID(id); return id; @@ -3102,7 +3199,7 @@ void ImGui::SetActiveID(ImGuiID id, ImGuiWindow* window) if (id) { g.ActiveIdIsAlive = id; - g.ActiveIdSource = (g.NavActivateId == id || g.NavInputId == id || g.NavJustTabbedId == id || g.NavJustMovedToId == id) ? ImGuiInputSource_Nav : ImGuiInputSource_Mouse; + g.ActiveIdSource = (g.NavActivateId == id || g.NavActivateInputId == id || g.NavJustMovedToId == id) ? ImGuiInputSource_Nav : ImGuiInputSource_Mouse; } // Clear declaration of inputs claimed by the widget @@ -3186,42 +3283,46 @@ bool ImGui::IsItemHovered(ImGuiHoveredFlags flags) { if ((g.LastItemData.InFlags & ImGuiItemFlags_Disabled) && !(flags & ImGuiHoveredFlags_AllowWhenDisabled)) return false; - return IsItemFocused(); + if (!IsItemFocused()) + return false; } - - // Test for bounding box overlap, as updated as ItemAdd() - ImGuiItemStatusFlags status_flags = g.LastItemData.StatusFlags; - if (!(status_flags & ImGuiItemStatusFlags_HoveredRect)) - return false; - IM_ASSERT((flags & (ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_ChildWindows)) == 0); // Flags not supported by this function - - // Test if we are hovering the right window (our window could be behind another window) - // [2021/03/02] Reworked / reverted the revert, finally. Note we want e.g. BeginGroup/ItemAdd/EndGroup to work as well. (#3851) - // [2017/10/16] Reverted commit 344d48be3 and testing RootWindow instead. I believe it is correct to NOT test for RootWindow but this leaves us unable - // to use IsItemHovered() after EndChild() itself. Until a solution is found I believe reverting to the test from 2017/09/27 is safe since this was - // the test that has been running for a long while. - if (g.HoveredWindow != window && (status_flags & ImGuiItemStatusFlags_HoveredWindow) == 0) - if ((flags & ImGuiHoveredFlags_AllowWhenOverlapped) == 0) + else + { + // Test for bounding box overlap, as updated as ItemAdd() + ImGuiItemStatusFlags status_flags = g.LastItemData.StatusFlags; + if (!(status_flags & ImGuiItemStatusFlags_HoveredRect)) return false; + IM_ASSERT((flags & (ImGuiHoveredFlags_AnyWindow | ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_ChildWindows | ImGuiHoveredFlags_NoPopupHierarchy)) == 0); // Flags not supported by this function + + // Test if we are hovering the right window (our window could be behind another window) + // [2021/03/02] Reworked / reverted the revert, finally. Note we want e.g. BeginGroup/ItemAdd/EndGroup to work as well. (#3851) + // [2017/10/16] Reverted commit 344d48be3 and testing RootWindow instead. I believe it is correct to NOT test for RootWindow but this leaves us unable + // to use IsItemHovered() after EndChild() itself. Until a solution is found I believe reverting to the test from 2017/09/27 is safe since this was + // the test that has been running for a long while. + if (g.HoveredWindow != window && (status_flags & ImGuiItemStatusFlags_HoveredWindow) == 0) + if ((flags & ImGuiHoveredFlags_AllowWhenOverlapped) == 0) + return false; + + // Test if another item is active (e.g. being dragged) + if ((flags & ImGuiHoveredFlags_AllowWhenBlockedByActiveItem) == 0) + if (g.ActiveId != 0 && g.ActiveId != g.LastItemData.ID && !g.ActiveIdAllowOverlap && g.ActiveId != window->MoveId) + return false; - // Test if another item is active (e.g. being dragged) - if ((flags & ImGuiHoveredFlags_AllowWhenBlockedByActiveItem) == 0) - if (g.ActiveId != 0 && g.ActiveId != g.LastItemData.ID && !g.ActiveIdAllowOverlap && g.ActiveId != window->MoveId) + // Test if interactions on this window are blocked by an active popup or modal. + // The ImGuiHoveredFlags_AllowWhenBlockedByPopup flag will be tested here. + if (!IsWindowContentHoverable(window, flags)) return false; - // Test if interactions on this window are blocked by an active popup or modal. - // The ImGuiHoveredFlags_AllowWhenBlockedByPopup flag will be tested here. - if (!IsWindowContentHoverable(window, flags)) - return false; + // Test if the item is disabled + if ((g.LastItemData.InFlags & ImGuiItemFlags_Disabled) && !(flags & ImGuiHoveredFlags_AllowWhenDisabled)) + return false; - // Test if the item is disabled - if ((g.LastItemData.InFlags & ImGuiItemFlags_Disabled) && !(flags & ImGuiHoveredFlags_AllowWhenDisabled)) - return false; + // Special handling for calling after Begin() which represent the title bar or tab. + // When the window is collapsed (SkipItems==true) that last item will never be overwritten so we need to detect the case. + if (g.LastItemData.ID == window->MoveId && window->WriteAccessed) + return false; + } - // Special handling for calling after Begin() which represent the title bar or tab. - // When the window is collapsed (SkipItems==true) that last item will never be overwritten so we need to detect the case. - if (g.LastItemData.ID == window->MoveId && window->WriteAccessed) - return false; return true; } @@ -3279,62 +3380,26 @@ bool ImGui::ItemHoverable(const ImRect& bb, ImGuiID id) return true; } -bool ImGui::IsClippedEx(const ImRect& bb, ImGuiID id, bool clip_even_when_logged) +bool ImGui::IsClippedEx(const ImRect& bb, ImGuiID id) { ImGuiContext& g = *GImGui; ImGuiWindow* window = g.CurrentWindow; if (!bb.Overlaps(window->ClipRect)) if (id == 0 || (id != g.ActiveId && id != g.NavId)) - if (clip_even_when_logged || !g.LogEnabled) + if (!g.LogEnabled) return true; return false; } -// Called by ItemAdd() -// Process TAB/Shift+TAB. Be mindful that this function may _clear_ the ActiveID when tabbing out. -void ImGui::ItemFocusable(ImGuiWindow* window, ImGuiID id) +// This is also inlined in ItemAdd() +// Note: if ImGuiItemStatusFlags_HasDisplayRect is set, user needs to set window->DC.LastItemDisplayRect! +void ImGui::SetLastItemData(ImGuiID item_id, ImGuiItemFlags in_flags, ImGuiItemStatusFlags item_flags, const ImRect& item_rect) { ImGuiContext& g = *GImGui; - IM_ASSERT(id != 0 && id == g.LastItemData.ID); - - // Increment counters - // FIXME: ImGuiItemFlags_Disabled should disable more. - const bool is_tab_stop = (g.LastItemData.InFlags & (ImGuiItemFlags_NoTabStop | ImGuiItemFlags_Disabled)) == 0; - window->DC.FocusCounterRegular++; - if (is_tab_stop) - { - window->DC.FocusCounterTabStop++; - if (g.NavId == id) - g.NavIdTabCounter = window->DC.FocusCounterTabStop; - } - - // Process TAB/Shift-TAB to tab *OUT* of the currently focused item. - // (Note that we can always TAB out of a widget that doesn't allow tabbing in) - if (g.ActiveId == id && g.TabFocusPressed && !IsActiveIdUsingKey(ImGuiKey_Tab) && g.TabFocusRequestNextWindow == NULL) - { - g.TabFocusRequestNextWindow = window; - g.TabFocusRequestNextCounterTabStop = window->DC.FocusCounterTabStop + (g.IO.KeyShift ? (is_tab_stop ? -1 : 0) : +1); // Modulo on index will be applied at the end of frame once we've got the total counter of items. - } - - // Handle focus requests - if (g.TabFocusRequestCurrWindow == window) - { - if (window->DC.FocusCounterRegular == g.TabFocusRequestCurrCounterRegular) - { - g.LastItemData.StatusFlags |= ImGuiItemStatusFlags_FocusedByCode; - return; - } - if (is_tab_stop && window->DC.FocusCounterTabStop == g.TabFocusRequestCurrCounterTabStop) - { - g.NavJustTabbedId = id; - g.LastItemData.StatusFlags |= ImGuiItemStatusFlags_FocusedByTabbing; - return; - } - - // If another item is about to be focused, we clear our own active id - if (g.ActiveId == id) - ClearActiveID(); - } + g.LastItemData.ID = item_id; + g.LastItemData.InFlags = in_flags; + g.LastItemData.StatusFlags = item_flags; + g.LastItemData.Rect = item_rect; } float ImGui::CalcWrapWidthForPos(const ImVec2& pos, float wrap_pos_x) @@ -3663,7 +3728,7 @@ void ImGui::UpdateMouseMovingWindowEndFrame() // Find the top-most window between HoveredWindow and the top-most Modal Window. // This is where we can trim the popup stack. ImGuiWindow* modal = GetTopMostPopupModal(); - bool hovered_window_above_modal = g.HoveredWindow && IsWindowAbove(g.HoveredWindow, modal); + bool hovered_window_above_modal = g.HoveredWindow && (modal == NULL || IsWindowAbove(g.HoveredWindow, modal)); ClosePopupsOverWindow(hovered_window_above_modal ? g.HoveredWindow : modal, true); } } @@ -3679,13 +3744,15 @@ static void ImGui::UpdateMouseInputs() // Round mouse position to avoid spreading non-rounded position (e.g. UpdateManualResize doesn't support them well) if (IsMousePosValid(&g.IO.MousePos)) - g.IO.MousePos = g.LastValidMousePos = ImFloor(g.IO.MousePos); + g.IO.MousePos = g.MouseLastValidPos = ImFloor(g.IO.MousePos); // If mouse just appeared or disappeared (usually denoted by -FLT_MAX components) we cancel out movement in MouseDelta if (IsMousePosValid(&g.IO.MousePos) && IsMousePosValid(&g.IO.MousePosPrev)) g.IO.MouseDelta = g.IO.MousePos - g.IO.MousePosPrev; else g.IO.MouseDelta = ImVec2(0.0f, 0.0f); + + // If mouse moved we re-enable mouse hovering in case it was disabled by gamepad/keyboard. In theory should use a >0.0f threshold but would need to reset in everywhere we set this to true. if (g.IO.MouseDelta.x != 0.0f || g.IO.MouseDelta.y != 0.0f) g.NavDisableMouseHover = false; @@ -3693,25 +3760,26 @@ static void ImGui::UpdateMouseInputs() for (int i = 0; i < IM_ARRAYSIZE(g.IO.MouseDown); i++) { g.IO.MouseClicked[i] = g.IO.MouseDown[i] && g.IO.MouseDownDuration[i] < 0.0f; + g.IO.MouseClickedCount[i] = 0; // Will be filled below g.IO.MouseReleased[i] = !g.IO.MouseDown[i] && g.IO.MouseDownDuration[i] >= 0.0f; g.IO.MouseDownDurationPrev[i] = g.IO.MouseDownDuration[i]; g.IO.MouseDownDuration[i] = g.IO.MouseDown[i] ? (g.IO.MouseDownDuration[i] < 0.0f ? 0.0f : g.IO.MouseDownDuration[i] + g.IO.DeltaTime) : -1.0f; - g.IO.MouseDoubleClicked[i] = false; if (g.IO.MouseClicked[i]) { + bool is_repeated_click = false; if ((float)(g.Time - g.IO.MouseClickedTime[i]) < g.IO.MouseDoubleClickTime) { ImVec2 delta_from_click_pos = IsMousePosValid(&g.IO.MousePos) ? (g.IO.MousePos - g.IO.MouseClickedPos[i]) : ImVec2(0.0f, 0.0f); if (ImLengthSqr(delta_from_click_pos) < g.IO.MouseDoubleClickMaxDist * g.IO.MouseDoubleClickMaxDist) - g.IO.MouseDoubleClicked[i] = true; - g.IO.MouseClickedTime[i] = -g.IO.MouseDoubleClickTime * 2.0f; // Mark as "old enough" so the third click isn't turned into a double-click + is_repeated_click = true; } + if (is_repeated_click) + g.IO.MouseClickedLastCount[i]++; else - { - g.IO.MouseClickedTime[i] = g.Time; - } + g.IO.MouseClickedLastCount[i] = 1; + g.IO.MouseClickedTime[i] = g.Time; g.IO.MouseClickedPos[i] = g.IO.MousePos; - g.IO.MouseDownWasDoubleClick[i] = g.IO.MouseDoubleClicked[i]; + g.IO.MouseClickedCount[i] = g.IO.MouseClickedLastCount[i]; g.IO.MouseDragMaxDistanceAbs[i] = ImVec2(0.0f, 0.0f); g.IO.MouseDragMaxDistanceSqr[i] = 0.0f; } @@ -3723,9 +3791,12 @@ static void ImGui::UpdateMouseInputs() g.IO.MouseDragMaxDistanceAbs[i].x = ImMax(g.IO.MouseDragMaxDistanceAbs[i].x, delta_from_click_pos.x < 0.0f ? -delta_from_click_pos.x : delta_from_click_pos.x); g.IO.MouseDragMaxDistanceAbs[i].y = ImMax(g.IO.MouseDragMaxDistanceAbs[i].y, delta_from_click_pos.y < 0.0f ? -delta_from_click_pos.y : delta_from_click_pos.y); } - if (!g.IO.MouseDown[i] && !g.IO.MouseReleased[i]) - g.IO.MouseDownWasDoubleClick[i] = false; - if (g.IO.MouseClicked[i]) // Clicking any mouse button reactivate mouse hovering which may have been deactivated by gamepad/keyboard navigation + + // We provide io.MouseDoubleClicked[] as a legacy service + g.IO.MouseDoubleClicked[i] = (g.IO.MouseClickedCount[i] == 2); + + // Clicking any mouse button reactivate mouse hovering which may have been deactivated by gamepad/keyboard navigation + if (g.IO.MouseClicked[i]) g.NavDisableMouseHover = false; } } @@ -3825,48 +3896,11 @@ void ImGui::UpdateMouseWheel() } } -void ImGui::UpdateTabFocus() -{ - ImGuiContext& g = *GImGui; - - // Pressing TAB activate widget focus - g.TabFocusPressed = (g.NavWindow && g.NavWindow->Active && !(g.NavWindow->Flags & ImGuiWindowFlags_NoNavInputs) && !g.IO.KeyCtrl && IsKeyPressedMap(ImGuiKey_Tab)); - if (g.ActiveId == 0 && g.TabFocusPressed) - { - // - This path is only taken when no widget are active/tabbed-into yet. - // Subsequent tabbing will be processed by FocusableItemRegister() - // - Note that SetKeyboardFocusHere() sets the Next fields mid-frame. To be consistent we also - // manipulate the Next fields here even though they will be turned into Curr fields below. - g.TabFocusRequestNextWindow = g.NavWindow; - g.TabFocusRequestNextCounterRegular = INT_MAX; - if (g.NavId != 0 && g.NavIdTabCounter != INT_MAX) - g.TabFocusRequestNextCounterTabStop = g.NavIdTabCounter + (g.IO.KeyShift ? -1 : 0); - else - g.TabFocusRequestNextCounterTabStop = g.IO.KeyShift ? -1 : 0; - } - - // Turn queued focus request into current one - g.TabFocusRequestCurrWindow = NULL; - g.TabFocusRequestCurrCounterRegular = g.TabFocusRequestCurrCounterTabStop = INT_MAX; - if (g.TabFocusRequestNextWindow != NULL) - { - ImGuiWindow* window = g.TabFocusRequestNextWindow; - g.TabFocusRequestCurrWindow = window; - if (g.TabFocusRequestNextCounterRegular != INT_MAX && window->DC.FocusCounterRegular != -1) - g.TabFocusRequestCurrCounterRegular = ImModPositive(g.TabFocusRequestNextCounterRegular, window->DC.FocusCounterRegular + 1); - if (g.TabFocusRequestNextCounterTabStop != INT_MAX && window->DC.FocusCounterTabStop != -1) - g.TabFocusRequestCurrCounterTabStop = ImModPositive(g.TabFocusRequestNextCounterTabStop, window->DC.FocusCounterTabStop + 1); - g.TabFocusRequestNextWindow = NULL; - g.TabFocusRequestNextCounterRegular = g.TabFocusRequestNextCounterTabStop = INT_MAX; - } - - g.NavIdTabCounter = INT_MAX; -} - // The reason this is exposed in imgui_internal.h is: on touch-based system that don't have hovering, we want to dispatch inputs to the right target (imgui vs imgui+app) void ImGui::UpdateHoveredWindowAndCaptureFlags() { ImGuiContext& g = *GImGui; + ImGuiIO& io = g.IO; g.WindowsHoverPadding = ImMax(g.Style.TouchExtraPadding, ImVec2(WINDOWS_HOVER_PADDING, WINDOWS_HOVER_PADDING)); // Find the window hovered by mouse: @@ -3878,52 +3912,65 @@ void ImGui::UpdateHoveredWindowAndCaptureFlags() // Modal windows prevents mouse from hovering behind them. ImGuiWindow* modal_window = GetTopMostPopupModal(); - if (modal_window && g.HoveredWindow && !IsWindowChildOf(g.HoveredWindow->RootWindow, modal_window)) + if (modal_window && g.HoveredWindow && !IsWindowWithinBeginStackOf(g.HoveredWindow->RootWindow, modal_window)) clear_hovered_windows = true; // Disabled mouse? - if (g.IO.ConfigFlags & ImGuiConfigFlags_NoMouse) + if (io.ConfigFlags & ImGuiConfigFlags_NoMouse) clear_hovered_windows = true; - // We track click ownership. When clicked outside of a window the click is owned by the application and won't report hovering nor request capture even while dragging over our windows afterward. - int mouse_earliest_button_down = -1; + // We track click ownership. When clicked outside of a window the click is owned by the application and + // won't report hovering nor request capture even while dragging over our windows afterward. + const bool has_open_popup = (g.OpenPopupStack.Size > 0); + const bool has_open_modal = (modal_window != NULL); + int mouse_earliest_down = -1; bool mouse_any_down = false; - for (int i = 0; i < IM_ARRAYSIZE(g.IO.MouseDown); i++) + for (int i = 0; i < IM_ARRAYSIZE(io.MouseDown); i++) { - if (g.IO.MouseClicked[i]) - g.IO.MouseDownOwned[i] = (g.HoveredWindow != NULL) || (g.OpenPopupStack.Size > 0); - mouse_any_down |= g.IO.MouseDown[i]; - if (g.IO.MouseDown[i]) - if (mouse_earliest_button_down == -1 || g.IO.MouseClickedTime[i] < g.IO.MouseClickedTime[mouse_earliest_button_down]) - mouse_earliest_button_down = i; + if (io.MouseClicked[i]) + { + io.MouseDownOwned[i] = (g.HoveredWindow != NULL) || has_open_popup; + io.MouseDownOwnedUnlessPopupClose[i] = (g.HoveredWindow != NULL) || has_open_modal; + } + mouse_any_down |= io.MouseDown[i]; + if (io.MouseDown[i]) + if (mouse_earliest_down == -1 || io.MouseClickedTime[i] < io.MouseClickedTime[mouse_earliest_down]) + mouse_earliest_down = i; } - const bool mouse_avail_to_imgui = (mouse_earliest_button_down == -1) || g.IO.MouseDownOwned[mouse_earliest_button_down]; + const bool mouse_avail = (mouse_earliest_down == -1) || io.MouseDownOwned[mouse_earliest_down]; + const bool mouse_avail_unless_popup_close = (mouse_earliest_down == -1) || io.MouseDownOwnedUnlessPopupClose[mouse_earliest_down]; // If mouse was first clicked outside of ImGui bounds we also cancel out hovering. // FIXME: For patterns of drag and drop across OS windows, we may need to rework/remove this test (first committed 311c0ca9 on 2015/02) const bool mouse_dragging_extern_payload = g.DragDropActive && (g.DragDropSourceFlags & ImGuiDragDropFlags_SourceExtern) != 0; - if (!mouse_avail_to_imgui && !mouse_dragging_extern_payload) + if (!mouse_avail && !mouse_dragging_extern_payload) clear_hovered_windows = true; if (clear_hovered_windows) g.HoveredWindow = g.HoveredWindowUnderMovingWindow = NULL; - // Update io.WantCaptureMouse for the user application (true = dispatch mouse info to imgui, false = dispatch mouse info to Dear ImGui + app) + // Update io.WantCaptureMouse for the user application (true = dispatch mouse info to Dear ImGui only, false = dispatch mouse to Dear ImGui + underlying app) + // Update io.WantCaptureMouseAllowPopupClose (experimental) to give a chance for app to react to popup closure with a drag if (g.WantCaptureMouseNextFrame != -1) - g.IO.WantCaptureMouse = (g.WantCaptureMouseNextFrame != 0); + { + io.WantCaptureMouse = io.WantCaptureMouseUnlessPopupClose = (g.WantCaptureMouseNextFrame != 0); + } else - g.IO.WantCaptureMouse = (mouse_avail_to_imgui && (g.HoveredWindow != NULL || mouse_any_down)) || (g.OpenPopupStack.Size > 0); + { + io.WantCaptureMouse = (mouse_avail && (g.HoveredWindow != NULL || mouse_any_down)) || has_open_popup; + io.WantCaptureMouseUnlessPopupClose = (mouse_avail_unless_popup_close && (g.HoveredWindow != NULL || mouse_any_down)) || has_open_modal; + } - // Update io.WantCaptureKeyboard for the user application (true = dispatch keyboard info to imgui, false = dispatch keyboard info to Dear ImGui + app) + // Update io.WantCaptureKeyboard for the user application (true = dispatch keyboard info to Dear ImGui only, false = dispatch keyboard info to Dear ImGui + underlying app) if (g.WantCaptureKeyboardNextFrame != -1) - g.IO.WantCaptureKeyboard = (g.WantCaptureKeyboardNextFrame != 0); + io.WantCaptureKeyboard = (g.WantCaptureKeyboardNextFrame != 0); else - g.IO.WantCaptureKeyboard = (g.ActiveId != 0) || (modal_window != NULL); - if (g.IO.NavActive && (g.IO.ConfigFlags & ImGuiConfigFlags_NavEnableKeyboard) && !(g.IO.ConfigFlags & ImGuiConfigFlags_NavNoCaptureKeyboard)) - g.IO.WantCaptureKeyboard = true; + io.WantCaptureKeyboard = (g.ActiveId != 0) || (modal_window != NULL); + if (io.NavActive && (io.ConfigFlags & ImGuiConfigFlags_NavEnableKeyboard) && !(io.ConfigFlags & ImGuiConfigFlags_NavNoCaptureKeyboard)) + io.WantCaptureKeyboard = true; // Update io.WantTextInput flag, this is to allow systems without a keyboard (e.g. mobile, hand-held) to show a software keyboard if possible - g.IO.WantTextInput = (g.WantTextInputNextFrame != -1) ? (g.WantTextInputNextFrame != 0) : false; + io.WantTextInput = (g.WantTextInputNextFrame != -1) ? (g.WantTextInputNextFrame != 0) : false; } ImGuiKeyModFlags ImGui::GetMergedKeyModFlags() @@ -4049,6 +4096,18 @@ void ImGui::NewFrame() g.DragDropWithinTarget = false; g.DragDropHoldJustPressedId = 0; + // Close popups on focus lost (currently wip/opt-in) + //if (g.IO.AppFocusLost) + // ClosePopupsExceptModals(); + + // Clear buttons state when focus is lost + // (this is useful so e.g. releasing Alt after focus loss on Alt-Tab doesn't trigger the Alt menu toggle) + if (g.IO.AppFocusLost) + { + g.IO.ClearInputKeys(); + g.IO.AppFocusLost = false; + } + // Update keyboard input state // Synchronize io.KeyMods with individual modifiers io.KeyXXX bools g.IO.KeyMods = GetMergedKeyModFlags(); @@ -4082,9 +4141,6 @@ void ImGui::NewFrame() // Mouse wheel scrolling, scale UpdateMouseWheel(); - // Update legacy TAB focus - UpdateTabFocus(); - // Mark all windows as not visible and compact unused memory. IM_ASSERT(g.WindowsFocusOrder.Size <= g.Windows.Size); const float memory_compact_start_time = (g.GcCompactAll || g.IO.ConfigMemoryCompactTimer < 0.0f) ? FLT_MAX : (float)g.Time - g.IO.ConfigMemoryCompactTimer; @@ -4105,9 +4161,9 @@ void ImGui::NewFrame() for (int i = 0; i < g.TablesLastTimeActive.Size; i++) if (g.TablesLastTimeActive[i] >= 0.0f && g.TablesLastTimeActive[i] < memory_compact_start_time) TableGcCompactTransientBuffers(g.Tables.GetByIndex(i)); - for (int i = 0; i < g.TablesTempDataStack.Size; i++) - if (g.TablesTempDataStack[i].LastTimeActive >= 0.0f && g.TablesTempDataStack[i].LastTimeActive < memory_compact_start_time) - TableGcCompactTransientBuffers(&g.TablesTempDataStack[i]); + for (int i = 0; i < g.TablesTempData.Size; i++) + if (g.TablesTempData[i].LastTimeActive >= 0.0f && g.TablesTempData[i].LastTimeActive < memory_compact_start_time) + TableGcCompactTransientBuffers(&g.TablesTempData[i]); if (g.GcCompactAll) GcCompactTransientMiscBuffers(); g.GcCompactAll = false; @@ -4124,8 +4180,9 @@ void ImGui::NewFrame() g.ItemFlagsStack.push_back(ImGuiItemFlags_None); g.GroupStack.resize(0); - // [DEBUG] Item picker tool - start with DebugStartItemPicker() - useful to visually select an item and break into its call-stack. + // [DEBUG] Update debug features UpdateDebugToolItemPicker(); + UpdateDebugToolStackQueries(); // Create implicit/fallback window - which we will only render it if the user has added something to it. // We don't use "Debug" to avoid colliding with user trying to create a "Debug" window with custom flags. @@ -4138,31 +4195,6 @@ void ImGui::NewFrame() CallContextHooks(&g, ImGuiContextHookType_NewFramePost); } -// [DEBUG] Item picker tool - start with DebugStartItemPicker() - useful to visually select an item and break into its call-stack. -void ImGui::UpdateDebugToolItemPicker() -{ - ImGuiContext& g = *GImGui; - g.DebugItemPickerBreakId = 0; - if (g.DebugItemPickerActive) - { - const ImGuiID hovered_id = g.HoveredIdPreviousFrame; - SetMouseCursor(ImGuiMouseCursor_Hand); - if (IsKeyPressedMap(ImGuiKey_Escape)) - g.DebugItemPickerActive = false; - if (IsMouseClicked(0) && hovered_id) - { - g.DebugItemPickerBreakId = hovered_id; - g.DebugItemPickerActive = false; - } - SetNextWindowBgAlpha(0.60f); - BeginTooltip(); - Text("HoveredId: 0x%08X", hovered_id); - Text("Press ESC to abort picking."); - TextColored(GetStyleColorVec4(hovered_id ? ImGuiCol_Text : ImGuiCol_TextDisabled), "Click to break in debugger!"); - EndTooltip(); - } -} - void ImGui::Initialize(ImGuiContext* context) { ImGuiContext& g = *context; @@ -4244,8 +4276,10 @@ void ImGui::Shutdown(ImGuiContext* context) g.CurrentTabBarStack.clear(); g.ShrinkWidthBuffer.clear(); + g.ClipperTempData.clear_destruct(); + g.Tables.Clear(); - g.TablesTempDataStack.clear_destruct(); + g.TablesTempData.clear_destruct(); g.DrawChannelsTempMergeBuffer.clear(); g.ClipboardHandlerData.clear(); @@ -4286,8 +4320,7 @@ static void AddWindowToSortBuffer(ImVector* out_sorted_windows, Im if (window->Active) { int count = window->DC.ChildWindows.Size; - if (count > 1) - ImQsort(window->DC.ChildWindows.Data, (size_t)count, sizeof(ImGuiWindow*), ChildWindowComparer); + ImQsort(window->DC.ChildWindows.Data, (size_t)count, sizeof(ImGuiWindow*), ChildWindowComparer); for (int i = 0; i < count; i++) { ImGuiWindow* child = window->DC.ChildWindows[i]; @@ -4347,11 +4380,15 @@ static void AddWindowToDrawData(ImGuiWindow* window, int layer) } } +static inline int GetWindowDisplayLayer(ImGuiWindow* window) +{ + return (window->Flags & ImGuiWindowFlags_Tooltip) ? 1 : 0; +} + // Layer is locked for the root window, however child windows may use a different viewport (e.g. extruding menu) -static void AddRootWindowToDrawData(ImGuiWindow* window) +static inline void AddRootWindowToDrawData(ImGuiWindow* window) { - int layer = (window->Flags & ImGuiWindowFlags_Tooltip) ? 1 : 0; - AddWindowToDrawData(window, layer); + AddWindowToDrawData(window, GetWindowDisplayLayer(window)); } void ImDrawDataBuilder::FlattenIntoSingleLayer() @@ -4410,6 +4447,84 @@ void ImGui::PopClipRect() window->ClipRect = window->DrawList->_ClipRectStack.back(); } +static void ImGui::RenderDimmedBackgroundBehindWindow(ImGuiWindow* window, ImU32 col) +{ + if ((col & IM_COL32_A_MASK) == 0) + return; + + ImGuiViewportP* viewport = (ImGuiViewportP*)GetMainViewport(); + ImRect viewport_rect = viewport->GetMainRect(); + + // Draw behind window by moving the draw command at the FRONT of the draw list + { + // We've already called AddWindowToDrawData() which called DrawList->ChannelsMerge() on DockNodeHost windows, + // and draw list have been trimmed already, hence the explicit recreation of a draw command if missing. + ImDrawList* draw_list = window->RootWindow->DrawList; + if (draw_list->CmdBuffer.Size == 0) + draw_list->AddDrawCmd(); + draw_list->PushClipRect(viewport_rect.Min - ImVec2(1, 1), viewport_rect.Max + ImVec2(1, 1), false); // Ensure ImDrawCmd are not merged + draw_list->AddRectFilled(viewport_rect.Min, viewport_rect.Max, col); + ImDrawCmd cmd = draw_list->CmdBuffer.back(); + IM_ASSERT(cmd.ElemCount == 6); + draw_list->CmdBuffer.pop_back(); + draw_list->CmdBuffer.push_front(cmd); + draw_list->PopClipRect(); + } +} + +ImGuiWindow* ImGui::FindBottomMostVisibleWindowWithinBeginStack(ImGuiWindow* parent_window) +{ + ImGuiContext& g = *GImGui; + ImGuiWindow* bottom_most_visible_window = parent_window; + for (int i = FindWindowDisplayIndex(parent_window); i >= 0; i--) + { + ImGuiWindow* window = g.Windows[i]; + if (window->Flags & ImGuiWindowFlags_ChildWindow) + continue; + if (!IsWindowWithinBeginStackOf(window, parent_window)) + break; + if (IsWindowActiveAndVisible(window) && GetWindowDisplayLayer(window) <= GetWindowDisplayLayer(parent_window)) + bottom_most_visible_window = window; + } + return bottom_most_visible_window; +} + +static void ImGui::RenderDimmedBackgrounds() +{ + ImGuiContext& g = *GImGui; + ImGuiWindow* modal_window = GetTopMostAndVisiblePopupModal(); + const bool dim_bg_for_modal = (modal_window != NULL); + const bool dim_bg_for_window_list = (g.NavWindowingTargetAnim != NULL && g.NavWindowingTargetAnim->Active); + if (!dim_bg_for_modal && !dim_bg_for_window_list) + return; + + if (dim_bg_for_modal) + { + // Draw dimming behind modal or a begin stack child, whichever comes first in draw order. + ImGuiWindow* dim_behind_window = FindBottomMostVisibleWindowWithinBeginStack(modal_window); + RenderDimmedBackgroundBehindWindow(dim_behind_window, GetColorU32(ImGuiCol_ModalWindowDimBg, g.DimBgRatio)); + } + else if (dim_bg_for_window_list) + { + // Draw dimming behind CTRL+Tab target window + RenderDimmedBackgroundBehindWindow(g.NavWindowingTargetAnim, GetColorU32(ImGuiCol_NavWindowingDimBg, g.DimBgRatio)); + + // Draw border around CTRL+Tab target window + ImGuiWindow* window = g.NavWindowingTargetAnim; + ImGuiViewport* viewport = GetMainViewport(); + float distance = g.FontSize; + ImRect bb = window->Rect(); + bb.Expand(distance); + if (bb.GetWidth() >= viewport->Size.x && bb.GetHeight() >= viewport->Size.y) + bb.Expand(-distance - 1.0f); // If a window fits the entire viewport, adjust its highlight inward + if (window->DrawList->CmdBuffer.Size == 0) + window->DrawList->AddDrawCmd(); + window->DrawList->PushClipRect(viewport->Pos, viewport->Pos + viewport->Size); + window->DrawList->AddRect(bb.Min, bb.Max, GetColorU32(ImGuiCol_NavWindowingHighlight, g.NavWindowingHighlightAlpha), window->WindowRounding, 0, 3.0f); + window->DrawList->PopClipRect(); + } +} + // This is normally called by Render(). You may want to call it directly if you want to avoid calling Render() but the gain will be very minimal. void ImGui::EndFrame() { @@ -4504,6 +4619,7 @@ void ImGui::Render() if (g.FrameCountEnded != g.FrameCount) EndFrame(); + const bool first_render_of_frame = (g.FrameCountRendered != g.FrameCount); g.FrameCountRendered = g.FrameCount; g.IO.MetricsRenderWindows = 0; @@ -4518,6 +4634,10 @@ void ImGui::Render() AddDrawListToDrawData(&viewport->DrawDataBuilder.Layers[0], GetBackgroundDrawList(viewport)); } + // Draw modal/window whitening backgrounds + if (first_render_of_frame) + RenderDimmedBackgrounds(); + // Add ImDrawList to render ImGuiWindow* windows_to_render_top_most[2]; windows_to_render_top_most[0] = (g.NavWindowingTarget && !(g.NavWindowingTarget->Flags & ImGuiWindowFlags_NoBringToFrontOnFocus)) ? g.NavWindowingTarget->RootWindow : NULL; @@ -4541,7 +4661,7 @@ void ImGui::Render() viewport->DrawDataBuilder.FlattenIntoSingleLayer(); // Draw software mouse cursor if requested by io.MouseDrawCursor flag - if (g.IO.MouseDrawCursor) + if (g.IO.MouseDrawCursor && first_render_of_frame) RenderMouseCursor(GetForegroundDrawList(viewport), g.IO.MousePos, g.Style.MouseCursorScale, g.MouseCursor, IM_COL32_WHITE, IM_COL32_BLACK, IM_COL32(0, 0, 0, 48)); // Add foreground ImDrawList (for each active viewport) @@ -4764,7 +4884,14 @@ bool ImGui::IsMouseDoubleClicked(ImGuiMouseButton button) { ImGuiContext& g = *GImGui; IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown)); - return g.IO.MouseDoubleClicked[button]; + return g.IO.MouseClickedCount[button] == 2; +} + +int ImGui::GetMouseClickedCount(ImGuiMouseButton button) +{ + ImGuiContext& g = *GImGui; + IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown)); + return g.IO.MouseClickedCount[button]; } // Return if a mouse click/drag went past the given threshold. Valid to call during the MouseReleased frame. @@ -5097,7 +5224,7 @@ void ImGui::EndChild() ItemAdd(bb, window->ChildId); RenderNavHighlight(bb, window->ChildId); - // When browsing a window that has no activable items (scroll only) we keep a highlight on the child + // When browsing a window that has no activable items (scroll only) we keep a highlight on the child (pass g.NavId to trick into always displaying) if (window->DC.NavLayersActiveMask == 0 && window == g.NavWindow) RenderNavHighlight(ImRect(bb.Min - ImVec2(2, 2), bb.Max + ImVec2(2, 2)), g.NavId, ImGuiNavHighlightFlags_TypeThin); } @@ -5160,6 +5287,29 @@ static void ApplyWindowSettings(ImGuiWindow* window, ImGuiWindowSettings* settin window->Collapsed = settings->Collapsed; } +static void UpdateWindowInFocusOrderList(ImGuiWindow* window, bool just_created, ImGuiWindowFlags new_flags) +{ + ImGuiContext& g = *GImGui; + + const bool new_is_explicit_child = (new_flags & ImGuiWindowFlags_ChildWindow) != 0; + const bool child_flag_changed = new_is_explicit_child != window->IsExplicitChild; + if ((just_created || child_flag_changed) && !new_is_explicit_child) + { + IM_ASSERT(!g.WindowsFocusOrder.contains(window)); + g.WindowsFocusOrder.push_back(window); + window->FocusOrder = (short)(g.WindowsFocusOrder.Size - 1); + } + else if (!just_created && child_flag_changed && new_is_explicit_child) + { + IM_ASSERT(g.WindowsFocusOrder[window->FocusOrder] == window); + for (int n = window->FocusOrder + 1; n < g.WindowsFocusOrder.Size; n++) + g.WindowsFocusOrder[n]->FocusOrder--; + g.WindowsFocusOrder.erase(g.WindowsFocusOrder.Data + window->FocusOrder); + window->FocusOrder = -1; + } + window->IsExplicitChild = new_is_explicit_child; +} + static ImGuiWindow* CreateNewWindow(const char* name, ImGuiWindowFlags flags) { ImGuiContext& g = *GImGui; @@ -5199,16 +5349,12 @@ static ImGuiWindow* CreateNewWindow(const char* name, ImGuiWindowFlags flags) window->AutoFitOnlyGrows = (window->AutoFitFramesX > 0) || (window->AutoFitFramesY > 0); } - if (!(flags & ImGuiWindowFlags_ChildWindow)) - { - g.WindowsFocusOrder.push_back(window); - window->FocusOrder = (short)(g.WindowsFocusOrder.Size - 1); - } - if (flags & ImGuiWindowFlags_NoBringToFrontOnFocus) g.Windows.push_front(window); // Quite slow but rare and only once else g.Windows.push_back(window); + UpdateWindowInFocusOrderList(window, true, window->Flags); + return window; } @@ -5315,11 +5461,11 @@ ImVec2 ImGui::CalcWindowNextAutoFitSize(ImGuiWindow* window) return size_final; } -static ImGuiCol GetWindowBgColorIdxFromFlags(ImGuiWindowFlags flags) +static ImGuiCol GetWindowBgColorIdx(ImGuiWindow* window) { - if (flags & (ImGuiWindowFlags_Tooltip | ImGuiWindowFlags_Popup)) + if (window->Flags & (ImGuiWindowFlags_Tooltip | ImGuiWindowFlags_Popup)) return ImGuiCol_PopupBg; - if (flags & ImGuiWindowFlags_ChildWindow) + if (window->Flags & ImGuiWindowFlags_ChildWindow) return ImGuiCol_ChildBg; return ImGuiCol_WindowBg; } @@ -5444,7 +5590,7 @@ static bool ImGui::UpdateWindowManualResize(ImGuiWindow* window, const ImVec2& s if (hovered || held) g.MouseCursor = (resize_grip_n & 1) ? ImGuiMouseCursor_ResizeNESW : ImGuiMouseCursor_ResizeNWSE; - if (held && g.IO.MouseDoubleClicked[0] && resize_grip_n == 0) + if (held && g.IO.MouseClickedCount[0] == 2 && resize_grip_n == 0) { // Manual auto-fit when double-clicking size_target = CalcWindowSizeAfterConstraint(window, size_auto_fit); @@ -5474,7 +5620,7 @@ static bool ImGui::UpdateWindowManualResize(ImGuiWindow* window, const ImVec2& s bool hovered, held; ImRect border_rect = GetResizeBorderRect(window, border_n, grip_hover_inner_size, WINDOWS_HOVER_PADDING); ImGuiID border_id = window->GetID(border_n + 4); // == GetWindowResizeBorderID() - ButtonBehavior(border_rect, border_id, &hovered, &held, ImGuiButtonFlags_FlattenChildren); + ButtonBehavior(border_rect, border_id, &hovered, &held, ImGuiButtonFlags_FlattenChildren | ImGuiButtonFlags_NoNavFocus); //GetForegroundDrawLists(window)->AddRect(border_rect.Min, border_rect.Max, IM_COL32(255, 255, 0, 255)); if ((hovered && g.HoveredIdTimer > WINDOWS_RESIZE_FROM_EDGES_FEEDBACK_TIMER) || held) { @@ -5502,7 +5648,7 @@ static bool ImGui::UpdateWindowManualResize(ImGuiWindow* window, const ImVec2& s { ImVec2 nav_resize_delta; if (g.NavInputSource == ImGuiInputSource_Keyboard && g.IO.KeyShift) - nav_resize_delta = GetNavInputAmount2d(ImGuiNavDirSourceFlags_Keyboard, ImGuiInputReadMode_Down); + nav_resize_delta = GetNavInputAmount2d(ImGuiNavDirSourceFlags_RawKeyboard, ImGuiInputReadMode_Down); if (g.NavInputSource == ImGuiInputSource_Gamepad) nav_resize_delta = GetNavInputAmount2d(ImGuiNavDirSourceFlags_PadDPad, ImGuiInputReadMode_Down); if (nav_resize_delta.x != 0.0f || nav_resize_delta.y != 0.0f) @@ -5597,7 +5743,7 @@ void ImGui::RenderWindowDecorations(ImGuiWindow* window, const ImRect& title_bar // Window background if (!(flags & ImGuiWindowFlags_NoBackground)) { - ImU32 bg_col = GetColorU32(GetWindowBgColorIdxFromFlags(flags)); + ImU32 bg_col = GetColorU32(GetWindowBgColorIdx(window)); bool override_alpha = false; float alpha = 1.0f; if (g.NextWindowData.Flags & ImGuiNextWindowDataFlags_HasBgAlpha) @@ -5663,6 +5809,7 @@ void ImGui::RenderWindowTitleBarContents(ImGuiWindow* window, const ImRect& titl const bool has_collapse_button = !(flags & ImGuiWindowFlags_NoCollapse) && (style.WindowMenuButtonPosition != ImGuiDir_None); // Close & Collapse button are on the Menu NavLayer and don't default focus (unless there's nothing else on that layer) + // FIXME-NAV: Might want (or not?) to set the equivalent of ImGuiButtonFlags_NoNavFocus so that mouse clicks on standard title bar items don't necessarily set nav/keyboard ref? const ImGuiItemFlags item_flags_backup = g.CurrentItemFlags; g.CurrentItemFlags |= ImGuiItemFlags_NoNavDefaultFocus; window->DC.NavLayerCurrent = ImGuiNavLayer_Menu; @@ -5743,9 +5890,11 @@ void ImGui::RenderWindowTitleBarContents(ImGuiWindow* window, const ImRect& titl void ImGui::UpdateWindowParentAndRootLinks(ImGuiWindow* window, ImGuiWindowFlags flags, ImGuiWindow* parent_window) { window->ParentWindow = parent_window; - window->RootWindow = window->RootWindowForTitleBarHighlight = window->RootWindowForNav = window; + window->RootWindow = window->RootWindowPopupTree = window->RootWindowForTitleBarHighlight = window->RootWindowForNav = window; if (parent_window && (flags & ImGuiWindowFlags_ChildWindow) && !(flags & ImGuiWindowFlags_Tooltip)) window->RootWindow = parent_window->RootWindow; + if (parent_window && (flags & ImGuiWindowFlags_Popup)) + window->RootWindowPopupTree = parent_window->RootWindowPopupTree; if (parent_window && !(flags & ImGuiWindowFlags_Modal) && (flags & (ImGuiWindowFlags_ChildWindow | ImGuiWindowFlags_Popup))) window->RootWindowForTitleBarHighlight = parent_window->RootWindowForTitleBarHighlight; while (window->RootWindowForNav->Flags & ImGuiWindowFlags_NavFlattened) @@ -5755,6 +5904,36 @@ void ImGui::UpdateWindowParentAndRootLinks(ImGuiWindow* window, ImGuiWindowFlags } } +// When a modal popup is open, newly created windows that want focus (i.e. are not popups and do not specify ImGuiWindowFlags_NoFocusOnAppearing) +// should be positioned behind that modal window, unless the window was created inside the modal begin-stack. +// In case of multiple stacked modals newly created window honors begin stack order and does not go below its own modal parent. +// - Window // FindBlockingModal() returns Modal1 +// - Window // .. returns Modal1 +// - Modal1 // .. returns Modal2 +// - Window // .. returns Modal2 +// - Window // .. returns Modal2 +// - Modal2 // .. returns Modal2 +static ImGuiWindow* ImGui::FindBlockingModal(ImGuiWindow* window) +{ + ImGuiContext& g = *GImGui; + if (g.OpenPopupStack.Size <= 0) + return NULL; + + // Find a modal that has common parent with specified window. Specified window should be positioned behind that modal. + for (int i = g.OpenPopupStack.Size - 1; i >= 0; i--) + { + ImGuiWindow* popup_window = g.OpenPopupStack.Data[i].Window; + if (popup_window == NULL || !popup_window->WasActive || !(popup_window->Flags & ImGuiWindowFlags_Modal)) // Check WasActive, because this code may run before popup renders on current frame. + continue; + if (IsWindowWithinBeginStackOf(window, popup_window)) // Window is rendered over last modal, no render order change needed. + break; + for (ImGuiWindow* parent = popup_window->ParentWindowInBeginStack->RootWindow; parent != NULL; parent = parent->ParentWindowInBeginStack->RootWindow) + if (IsWindowWithinBeginStackOf(window, parent)) + return popup_window; // Place window above its begin stack parent. + } + return NULL; +} + // Push a new Dear ImGui window to add widgets to. // - A default window called "Debug" is automatically stacked at the beginning of every frame so you can use widgets without explicitly calling a Begin/End pair. // - Begin/End can be called multiple times during the frame with the same window name to append content. @@ -5775,6 +5954,8 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) const bool window_just_created = (window == NULL); if (window_just_created) window = CreateNewWindow(name, flags); + else + UpdateWindowInFocusOrderList(window, window_just_created, flags); // Automatically disable manual moving/resizing when NoInputs is set if ((flags & ImGuiWindowFlags_NoInputs) == ImGuiWindowFlags_NoInputs) @@ -5824,13 +6005,15 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) // Add to stack // We intentionally set g.CurrentWindow to NULL to prevent usage until when the viewport is set, then will call SetCurrentWindow() + g.CurrentWindow = window; ImGuiWindowStackData window_stack_data; window_stack_data.Window = window; window_stack_data.ParentLastItemDataBackup = g.LastItemData; + window_stack_data.StackSizesOnBegin.SetToCurrentState(); g.CurrentWindowStack.push_back(window_stack_data); - g.CurrentWindow = window; - window->DC.StackSizesOnBegin.SetToCurrentState(); g.CurrentWindow = NULL; + if (flags & ImGuiWindowFlags_ChildMenu) + g.BeginMenuCount++; if (flags & ImGuiWindowFlags_Popup) { @@ -5842,7 +6025,10 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) // Update ->RootWindow and others pointers (before any possible call to FocusWindow) if (first_begin_of_the_frame) + { UpdateWindowParentAndRootLinks(window, flags, parent_window); + window->ParentWindowInBeginStack = parent_window_in_stack; + } // Process SetNextWindow***() calls // (FIXME: Consider splitting the HasXXX flags into X/Y components @@ -5977,7 +6163,7 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) { // We don't use a regular button+id to test for double-click on title bar (mostly due to legacy reason, could be fixed), so verify that we don't have items over the title bar. ImRect title_bar_rect = window->TitleBarRect(); - if (g.HoveredWindow == window && g.HoveredId == 0 && g.HoveredIdPreviousFrame == 0 && IsMouseHoveringRect(title_bar_rect.Min, title_bar_rect.Max) && g.IO.MouseDoubleClicked[0]) + if (g.HoveredWindow == window && g.HoveredId == 0 && g.HoveredIdPreviousFrame == 0 && IsMouseHoveringRect(title_bar_rect.Min, title_bar_rect.Max) && g.IO.MouseClickedCount[0] == 2) window->WantCollapseToggle = true; if (window->WantCollapseToggle) { @@ -6097,6 +6283,22 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) want_focus = true; else if ((flags & (ImGuiWindowFlags_ChildWindow | ImGuiWindowFlags_Tooltip)) == 0) want_focus = true; + + ImGuiWindow* modal = GetTopMostPopupModal(); + if (modal != NULL && !IsWindowWithinBeginStackOf(window, modal)) + { + // Avoid focusing a window that is created outside of active modal. This will prevent active modal from being closed. + // Since window is not focused it would reappear at the same display position like the last time it was visible. + // In case of completely new windows it would go to the top (over current modal), but input to such window would still be blocked by modal. + // Position window behind a modal that is not a begin-parent of this window. + want_focus = false; + if (window == window->RootWindow) + { + ImGuiWindow* blocking_modal = FindBlockingModal(window); + IM_ASSERT(blocking_modal != NULL); + BringWindowToDisplayBehind(window, blocking_modal); + } + } } // Handle manual resize: Resize Grips, Borders, Gamepad @@ -6147,7 +6349,7 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) // Inner rectangle // Not affected by window border size. Used by: // - InnerClipRect - // - ScrollToBringRectIntoView() + // - ScrollToRectEx() // - NavUpdatePageUpPageDown() // - Scrollbar() window->InnerRect.Min.x = window->Pos.x; @@ -6194,34 +6396,21 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) window->DrawList->PushTextureID(g.Font->ContainerAtlas->TexID); PushClipRect(host_rect.Min, host_rect.Max, false); - // Draw modal window background (darkens what is behind them, all viewports) - const bool dim_bg_for_modal = (flags & ImGuiWindowFlags_Modal) && window == GetTopMostPopupModal() && window->HiddenFramesCannotSkipItems <= 0; - const bool dim_bg_for_window_list = g.NavWindowingTargetAnim && (window == g.NavWindowingTargetAnim->RootWindow); - if (dim_bg_for_modal || dim_bg_for_window_list) - { - const ImU32 dim_bg_col = GetColorU32(dim_bg_for_modal ? ImGuiCol_ModalWindowDimBg : ImGuiCol_NavWindowingDimBg, g.DimBgRatio); - window->DrawList->AddRectFilled(viewport_rect.Min, viewport_rect.Max, dim_bg_col); - } - - // Draw navigation selection/windowing rectangle background - if (dim_bg_for_window_list && window == g.NavWindowingTargetAnim) - { - ImRect bb = window->Rect(); - bb.Expand(g.FontSize); - if (!bb.Contains(viewport_rect)) // Avoid drawing if the window covers all the viewport anyway - window->DrawList->AddRectFilled(bb.Min, bb.Max, GetColorU32(ImGuiCol_NavWindowingHighlight, g.NavWindowingHighlightAlpha * 0.25f), g.Style.WindowRounding); - } - - // Since 1.71, child window can render their decoration (bg color, border, scrollbars, etc.) within their parent to save a draw call. + // Child windows can render their decoration (bg color, border, scrollbars, etc.) within their parent to save a draw call (since 1.71) // When using overlapping child windows, this will break the assumption that child z-order is mapped to submission order. - // We disable this when the parent window has zero vertices, which is a common pattern leading to laying out multiple overlapping child. - // We also disabled this when we have dimming overlay behind this specific one child. - // FIXME: More code may rely on explicit sorting of overlapping child window and would need to disable this somehow. Please get in contact if you are affected. + // FIXME: User code may rely on explicit sorting of overlapping child window and would need to disable this somehow. Please get in contact if you are affected (github #4493) { bool render_decorations_in_parent = false; if ((flags & ImGuiWindowFlags_ChildWindow) && !(flags & ImGuiWindowFlags_Popup) && !window_is_child_tooltip) - if (window->DrawList->CmdBuffer.back().ElemCount == 0 && parent_window->DrawList->VtxBuffer.Size > 0) + { + // - We test overlap with the previous child window only (testing all would end up being O(log N) not a good investment here) + // - We disable this when the parent window has zero vertices, which is a common pattern leading to laying out multiple overlapping childs + ImGuiWindow* previous_child = parent_window->DC.ChildWindows.Size >= 2 ? parent_window->DC.ChildWindows[parent_window->DC.ChildWindows.Size - 2] : NULL; + bool previous_child_overlapping = previous_child ? previous_child->Rect().Overlaps(window->Rect()) : false; + bool parent_is_empty = parent_window->DrawList->VtxBuffer.Size > 0; + if (window->DrawList->CmdBuffer.back().ElemCount == 0 && parent_is_empty && !previous_child_overlapping) render_decorations_in_parent = true; + } if (render_decorations_in_parent) window->DrawList = parent_window->DrawList; @@ -6234,20 +6423,6 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) window->DrawList = &window->DrawListInst; } - // Draw navigation selection/windowing rectangle border - if (g.NavWindowingTargetAnim == window) - { - float rounding = ImMax(window->WindowRounding, g.Style.WindowRounding); - ImRect bb = window->Rect(); - bb.Expand(g.FontSize); - if (bb.Contains(viewport_rect)) // If a window fits the entire viewport, adjust its highlight inward - { - bb.Expand(-g.FontSize - 1.0f); - rounding = window->WindowRounding; - } - window->DrawList->AddRect(bb.Min, bb.Max, GetColorU32(ImGuiCol_NavWindowingHighlight, g.NavWindowingHighlightAlpha), rounding, 0, 3.0f); - } - // UPDATE RECTANGLES (2- THOSE AFFECTED BY SCROLLING) // Work rectangle. @@ -6279,7 +6454,13 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) window->DC.Indent.x = 0.0f + window->WindowPadding.x - window->Scroll.x; window->DC.GroupOffset.x = 0.0f; window->DC.ColumnsOffset.x = 0.0f; - window->DC.CursorStartPos = window->Pos + ImVec2(window->DC.Indent.x + window->DC.ColumnsOffset.x, decoration_up_height + window->WindowPadding.y - window->Scroll.y); + + // Record the loss of precision of CursorStartPos which can happen due to really large scrolling amount. + // This is used by clipper to compensate and fix the most common use case of large scroll area. Easy and cheap, next best thing compared to switching everything to double or ImU64. + double start_pos_highp_x = (double)window->Pos.x + window->WindowPadding.x - (double)window->Scroll.x + window->DC.ColumnsOffset.x; + double start_pos_highp_y = (double)window->Pos.y + window->WindowPadding.y - (double)window->Scroll.y + decoration_up_height; + window->DC.CursorStartPos = ImVec2((float)start_pos_highp_x, (float)start_pos_highp_y); + window->DC.CursorStartPosLossyness = ImVec2((float)(start_pos_highp_x - window->DC.CursorStartPos.x), (float)(start_pos_highp_y - window->DC.CursorStartPos.y)); window->DC.CursorPos = window->DC.CursorStartPos; window->DC.CursorPosPrevLine = window->DC.CursorPos; window->DC.CursorMaxPos = window->DC.CursorStartPos; @@ -6302,7 +6483,6 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) window->DC.CurrentColumns = NULL; window->DC.LayoutType = ImGuiLayoutType_Vertical; window->DC.ParentLayoutType = parent_window ? parent_window->DC.LayoutType : ImGuiLayoutType_Vertical; - window->DC.FocusCounterRegular = window->DC.FocusCounterTabStop = -1; window->DC.ItemWidth = window->ItemWidthDefault; window->DC.TextWrapPos = -1.0f; // disabled @@ -6340,10 +6520,7 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) // We fill last item data based on Title Bar/Tab, in order for IsItemHovered() and IsItemActive() to be usable after Begin(). // This is useful to allow creating context menus on title bar only, etc. - g.LastItemData.ID = window->MoveId; - g.LastItemData.InFlags = g.CurrentItemFlags; - g.LastItemData.StatusFlags = IsMouseHoveringRect(title_bar_rect.Min, title_bar_rect.Max, false) ? ImGuiItemStatusFlags_HoveredRect : 0; - g.LastItemData.Rect = title_bar_rect; + SetLastItemData(window->MoveId, g.CurrentItemFlags, IsMouseHoveringRect(title_bar_rect.Min, title_bar_rect.Max, false) ? ImGuiItemStatusFlags_HoveredRect : 0, title_bar_rect); #ifdef IMGUI_ENABLE_TEST_ENGINE if (!(window->Flags & ImGuiWindowFlags_NoTitleBar)) @@ -6375,9 +6552,12 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) // Mark them as collapsed so commands are skipped earlier (we can't manually collapse them because they have no title bar). IM_ASSERT((flags & ImGuiWindowFlags_NoTitleBar) != 0); if (!(flags & ImGuiWindowFlags_AlwaysAutoResize) && window->AutoFitFramesX <= 0 && window->AutoFitFramesY <= 0) // FIXME: Doesn't make sense for ChildWindow?? - if (!g.LogEnabled) + { + const bool nav_request = (flags & ImGuiWindowFlags_NavFlattened) && (g.NavAnyRequest && g.NavWindow && g.NavWindow->RootWindowForNav == window->RootWindowForNav); + if (!g.LogEnabled && !nav_request) if (window->OuterRectClipped.Min.x >= window->OuterRectClipped.Max.x || window->OuterRectClipped.Min.y >= window->OuterRectClipped.Max.y) window->HiddenFramesCanSkipItems = 1; + } // Hide along with parent or if parent is collapsed if (parent_window && (parent_window->Collapsed || parent_window->HiddenFramesCanSkipItems > 0)) @@ -6391,7 +6571,8 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) window->HiddenFramesCanSkipItems = 1; // Update the Hidden flag - window->Hidden = (window->HiddenFramesCanSkipItems > 0) || (window->HiddenFramesCannotSkipItems > 0) || (window->HiddenFramesForRenderOnly > 0); + bool hidden_regular = (window->HiddenFramesCanSkipItems > 0) || (window->HiddenFramesCannotSkipItems > 0); + window->Hidden = hidden_regular || (window->HiddenFramesForRenderOnly > 0); // Disable inputs for requested number of frames if (window->DisableInputsFrames > 0) @@ -6402,7 +6583,7 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) // Update the SkipItems flag, used to early out of all items functions (no layout required) bool skip_items = false; - if (window->Collapsed || !window->Active || window->Hidden) + if (window->Collapsed || !window->Active || hidden_regular) if (window->AutoFitFramesX <= 0 && window->AutoFitFramesY <= 0 && window->HiddenFramesCannotSkipItems <= 0) skip_items = true; window->SkipItems = skip_items; @@ -6439,10 +6620,12 @@ void ImGui::End() // Pop from window stack g.LastItemData = g.CurrentWindowStack.back().ParentLastItemDataBackup; - g.CurrentWindowStack.pop_back(); + if (window->Flags & ImGuiWindowFlags_ChildMenu) + g.BeginMenuCount--; if (window->Flags & ImGuiWindowFlags_Popup) g.BeginPopupStack.pop_back(); - window->DC.StackSizesOnBegin.CompareWithCurrentState(); + g.CurrentWindowStack.back().StackSizesOnBegin.CompareWithCurrentState(); + g.CurrentWindowStack.pop_back(); SetCurrentWindow(g.CurrentWindowStack.Size == 0 ? NULL : g.CurrentWindowStack.back().Window); } @@ -6496,6 +6679,34 @@ void ImGui::BringWindowToDisplayBack(ImGuiWindow* window) } } +void ImGui::BringWindowToDisplayBehind(ImGuiWindow* window, ImGuiWindow* behind_window) +{ + IM_ASSERT(window != NULL && behind_window != NULL); + ImGuiContext& g = *GImGui; + window = window->RootWindow; + behind_window = behind_window->RootWindow; + int pos_wnd = FindWindowDisplayIndex(window); + int pos_beh = FindWindowDisplayIndex(behind_window); + if (pos_wnd < pos_beh) + { + size_t copy_bytes = (pos_beh - pos_wnd - 1) * sizeof(ImGuiWindow*); + memmove(&g.Windows.Data[pos_wnd], &g.Windows.Data[pos_wnd + 1], copy_bytes); + g.Windows[pos_beh - 1] = window; + } + else + { + size_t copy_bytes = (pos_wnd - pos_beh) * sizeof(ImGuiWindow*); + memmove(&g.Windows.Data[pos_beh + 1], &g.Windows.Data[pos_beh], copy_bytes); + g.Windows[pos_beh] = window; + } +} + +int ImGui::FindWindowDisplayIndex(ImGuiWindow* window) +{ + ImGuiContext& g = *GImGui; + return g.Windows.index_from_ptr(g.Windows.find(window)); +} + // Moving window to front of display and set focus (which happens to be back of our sorted list) void ImGui::FocusWindow(ImGuiWindow* window) { @@ -6510,7 +6721,7 @@ void ImGui::FocusWindow(ImGuiWindow* window) g.NavFocusScopeId = 0; g.NavIdIsAlive = false; g.NavLayer = ImGuiNavLayer_Main; - g.NavInitRequest = g.NavMoveRequest = false; + g.NavInitRequest = g.NavMoveSubmitted = g.NavMoveScoringItems = false; NavUpdateAnyRequestFlag(); //IMGUI_DEBUG_LOG("FocusWindow(\"%s\")\n", window ? window->Name : NULL); } @@ -6543,8 +6754,18 @@ void ImGui::FocusWindow(ImGuiWindow* window) void ImGui::FocusTopMostWindowUnderOne(ImGuiWindow* under_this_window, ImGuiWindow* ignore_window) { ImGuiContext& g = *GImGui; - - const int start_idx = ((under_this_window != NULL) ? FindWindowFocusIndex(under_this_window) : g.WindowsFocusOrder.Size) - 1; + int start_idx = g.WindowsFocusOrder.Size - 1; + if (under_this_window != NULL) + { + // Aim at root window behind us, if we are in a child window that's our own root (see #4640) + int offset = -1; + while (under_this_window->Flags & ImGuiWindowFlags_ChildWindow) + { + under_this_window = under_this_window->ParentWindow; + offset = 0; + } + start_idx = FindWindowFocusIndex(under_this_window) + offset; + } for (int i = start_idx; i >= 0; i--) { // We may later decide to test for different NoXXXInputs based on the active navigation input (mouse vs nav) but that may feel more confusing to the user. @@ -6618,7 +6839,7 @@ void ImGui::PopItemFlag() } // BeginDisabled()/EndDisabled() -// - Those can be nested but this cannot be used to enable an already disabled section (a single BeginDisabled(true) in the stack is enough to keep things disabled) +// - Those can be nested but it cannot be used to enable an already disabled section (a single BeginDisabled(true) in the stack is enough to keep everything disabled) // - Visually this is currently altering alpha, but it is expected that in a future styling system this would work differently. // - Feedback welcome at https://github.com/ocornut/imgui/issues/211 // - BeginDisabled(false) essentially does nothing useful but is provided to facilitate use of boolean expressions. If you can avoid calling BeginDisabled(False)/EndDisabled() best to avoid it. @@ -6635,11 +6856,14 @@ void ImGui::BeginDisabled(bool disabled) if (was_disabled || disabled) g.CurrentItemFlags |= ImGuiItemFlags_Disabled; g.ItemFlagsStack.push_back(g.CurrentItemFlags); + g.DisabledStackSize++; } void ImGui::EndDisabled() { ImGuiContext& g = *GImGui; + IM_ASSERT(g.DisabledStackSize > 0); + g.DisabledStackSize--; bool was_disabled = (g.CurrentItemFlags & ImGuiItemFlags_Disabled) != 0; //PopItemFlag(); g.ItemFlagsStack.pop_back(); @@ -6683,22 +6907,57 @@ void ImGui::PopTextWrapPos() window->DC.TextWrapPosStack.pop_back(); } -bool ImGui::IsWindowChildOf(ImGuiWindow* window, ImGuiWindow* potential_parent) +static ImGuiWindow* GetCombinedRootWindow(ImGuiWindow* window, bool popup_hierarchy) { - if (window->RootWindow == potential_parent) + ImGuiWindow* last_window = NULL; + while (last_window != window) + { + last_window = window; + window = window->RootWindow; + if (popup_hierarchy) + window = window->RootWindowPopupTree; + } + return window; +} + +bool ImGui::IsWindowChildOf(ImGuiWindow* window, ImGuiWindow* potential_parent, bool popup_hierarchy) +{ + ImGuiWindow* window_root = GetCombinedRootWindow(window, popup_hierarchy); + if (window_root == potential_parent) return true; while (window != NULL) { if (window == potential_parent) return true; + if (window == window_root) // end of chain + return false; window = window->ParentWindow; } return false; } +bool ImGui::IsWindowWithinBeginStackOf(ImGuiWindow* window, ImGuiWindow* potential_parent) +{ + if (window->RootWindow == potential_parent) + return true; + while (window != NULL) + { + if (window == potential_parent) + return true; + window = window->ParentWindowInBeginStack; + } + return false; +} + bool ImGui::IsWindowAbove(ImGuiWindow* potential_above, ImGuiWindow* potential_below) { ImGuiContext& g = *GImGui; + + // It would be saner to ensure that display layer is always reflected in the g.Windows[] order, which would likely requires altering all manipulations of that array + const int display_layer_delta = GetWindowDisplayLayer(potential_above) - GetWindowDisplayLayer(potential_below); + if (display_layer_delta != 0) + return display_layer_delta > 0; + for (int i = g.Windows.Size - 1; i >= 0; i--) { ImGuiWindow* candidate_window = g.Windows[i]; @@ -6712,39 +6971,33 @@ bool ImGui::IsWindowAbove(ImGuiWindow* potential_above, ImGuiWindow* potential_b bool ImGui::IsWindowHovered(ImGuiHoveredFlags flags) { - IM_ASSERT((flags & ImGuiHoveredFlags_AllowWhenOverlapped) == 0); // Flags not supported by this function + IM_ASSERT((flags & (ImGuiHoveredFlags_AllowWhenOverlapped | ImGuiHoveredFlags_AllowWhenDisabled)) == 0); // Flags not supported by this function ImGuiContext& g = *GImGui; - if (g.HoveredWindow == NULL) + ImGuiWindow* ref_window = g.HoveredWindow; + ImGuiWindow* cur_window = g.CurrentWindow; + if (ref_window == NULL) return false; if ((flags & ImGuiHoveredFlags_AnyWindow) == 0) { - ImGuiWindow* window = g.CurrentWindow; - switch (flags & (ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_ChildWindows)) - { - case ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_ChildWindows: - if (g.HoveredWindow->RootWindow != window->RootWindow) - return false; - break; - case ImGuiHoveredFlags_RootWindow: - if (g.HoveredWindow != window->RootWindow) - return false; - break; - case ImGuiHoveredFlags_ChildWindows: - if (!IsWindowChildOf(g.HoveredWindow, window)) - return false; - break; - default: - if (g.HoveredWindow != window) - return false; - break; - } + IM_ASSERT(cur_window); // Not inside a Begin()/End() + const bool popup_hierarchy = (flags & ImGuiHoveredFlags_NoPopupHierarchy) == 0; + if (flags & ImGuiHoveredFlags_RootWindow) + cur_window = GetCombinedRootWindow(cur_window, popup_hierarchy); + + bool result; + if (flags & ImGuiHoveredFlags_ChildWindows) + result = IsWindowChildOf(ref_window, cur_window, popup_hierarchy); + else + result = (ref_window == cur_window); + if (!result) + return false; } - if (!IsWindowContentHoverable(g.HoveredWindow, flags)) + if (!IsWindowContentHoverable(ref_window, flags)) return false; if (!(flags & ImGuiHoveredFlags_AllowWhenBlockedByActiveItem)) - if (g.ActiveId != 0 && !g.ActiveIdAllowOverlap && g.ActiveId != g.HoveredWindow->MoveId) + if (g.ActiveId != 0 && !g.ActiveIdAllowOverlap && g.ActiveId != ref_window->MoveId) return false; return true; } @@ -6752,22 +7005,23 @@ bool ImGui::IsWindowHovered(ImGuiHoveredFlags flags) bool ImGui::IsWindowFocused(ImGuiFocusedFlags flags) { ImGuiContext& g = *GImGui; + ImGuiWindow* ref_window = g.NavWindow; + ImGuiWindow* cur_window = g.CurrentWindow; + if (ref_window == NULL) + return false; if (flags & ImGuiFocusedFlags_AnyWindow) - return g.NavWindow != NULL; + return true; - IM_ASSERT(g.CurrentWindow); // Not inside a Begin()/End() - switch (flags & (ImGuiFocusedFlags_RootWindow | ImGuiFocusedFlags_ChildWindows)) - { - case ImGuiFocusedFlags_RootWindow | ImGuiFocusedFlags_ChildWindows: - return g.NavWindow && g.NavWindow->RootWindow == g.CurrentWindow->RootWindow; - case ImGuiFocusedFlags_RootWindow: - return g.NavWindow == g.CurrentWindow->RootWindow; - case ImGuiFocusedFlags_ChildWindows: - return g.NavWindow && IsWindowChildOf(g.NavWindow, g.CurrentWindow); - default: - return g.NavWindow == g.CurrentWindow; - } + IM_ASSERT(cur_window); // Not inside a Begin()/End() + const bool popup_hierarchy = (flags & ImGuiFocusedFlags_NoPopupHierarchy) == 0; + if (flags & ImGuiHoveredFlags_RootWindow) + cur_window = GetCombinedRootWindow(cur_window, popup_hierarchy); + + if (flags & ImGuiHoveredFlags_ChildWindows) + return IsWindowChildOf(ref_window, cur_window, popup_hierarchy); + else + return (ref_window == cur_window); } // Can we focus this window with CTRL+TAB (or PadMenu + PadFocusPrev/PadFocusNext) @@ -7037,6 +7291,7 @@ void ImGui::ActivateItem(ImGuiID id) { ImGuiContext& g = *GImGui; g.NavNextActivateId = id; + g.NavNextActivateFlags = ImGuiActivateFlags_None; } void ImGui::PushFocusScope(ImGuiID id) @@ -7058,12 +7313,21 @@ void ImGui::PopFocusScope() void ImGui::SetKeyboardFocusHere(int offset) { - IM_ASSERT(offset >= -1); // -1 is allowed but not below ImGuiContext& g = *GImGui; ImGuiWindow* window = g.CurrentWindow; - g.TabFocusRequestNextWindow = window; - g.TabFocusRequestNextCounterRegular = window->DC.FocusCounterRegular + 1 + offset; - g.TabFocusRequestNextCounterTabStop = INT_MAX; + IM_ASSERT(offset >= -1); // -1 is allowed but not below + g.NavWindow = window; + ImGuiScrollFlags scroll_flags = window->Appearing ? ImGuiScrollFlags_KeepVisibleEdgeX | ImGuiScrollFlags_AlwaysCenterY : ImGuiScrollFlags_KeepVisibleEdgeX | ImGuiScrollFlags_KeepVisibleEdgeY; + NavMoveRequestSubmit(ImGuiDir_None, offset < 0 ? ImGuiDir_Up : ImGuiDir_Down, ImGuiNavMoveFlags_Tabbing | ImGuiNavMoveFlags_FocusApi, scroll_flags); // FIXME-NAV: Once we refactor tabbing, add LegacyApi flag to not activate non-inputable. + if (offset == -1) + { + NavMoveRequestResolveWithLastItem(&g.NavMoveResultLocal); + } + else + { + g.NavTabbingDir = 1; + g.NavTabbingCounter = offset + 1; + } } void ImGui::SetItemDefaultFocus() @@ -7072,15 +7336,17 @@ void ImGui::SetItemDefaultFocus() ImGuiWindow* window = g.CurrentWindow; if (!window->Appearing) return; - if (g.NavWindow == window->RootWindowForNav && (g.NavInitRequest || g.NavInitResultId != 0) && g.NavLayer == window->DC.NavLayerCurrent) - { - g.NavInitRequest = false; - g.NavInitResultId = g.LastItemData.ID; - g.NavInitResultRectRel = ImRect(g.LastItemData.Rect.Min - window->Pos, g.LastItemData.Rect.Max - window->Pos); - NavUpdateAnyRequestFlag(); - if (!IsItemVisible()) - SetScrollHereY(); - } + if (g.NavWindow != window->RootWindowForNav || (!g.NavInitRequest && g.NavInitResultId == 0) || g.NavLayer != window->DC.NavLayerCurrent) + return; + + g.NavInitRequest = false; + g.NavInitResultId = g.LastItemData.ID; + g.NavInitResultRectRel = WindowRectAbsToRel(window, g.LastItemData.Rect); + NavUpdateAnyRequestFlag(); + + // Scroll could be done in NavInitRequestApplyResult() via a opt-in flag (we however don't want regular init requests to scroll) + if (!IsItemVisible()) + ScrollToRectEx(window, g.LastItemData.Rect, ImGuiScrollFlags_None); } void ImGui::SetStateStorage(ImGuiStorage* tree) @@ -7132,6 +7398,8 @@ void ImGui::PushOverrideID(ImGuiID id) { ImGuiContext& g = *GImGui; ImGuiWindow* window = g.CurrentWindow; + if (g.DebugHookIdInfo == id) + DebugHookIdInfo(id, ImGuiDataType_ID, NULL, NULL); window->IDStack.push_back(id); } @@ -7141,11 +7409,10 @@ void ImGui::PushOverrideID(ImGuiID id) ImGuiID ImGui::GetIDWithSeed(const char* str, const char* str_end, ImGuiID seed) { ImGuiID id = ImHashStr(str, str_end ? (str_end - str) : 0, seed); - ImGui::KeepAliveID(id); -#ifdef IMGUI_ENABLE_TEST_ENGINE + KeepAliveID(id); ImGuiContext& g = *GImGui; - IMGUI_TEST_ENGINE_ID_INFO2(id, ImGuiDataType_String, str, str_end); -#endif + if (g.DebugHookIdInfo == id) + DebugHookIdInfo(id, ImGuiDataType_String, str, str_end); return id; } @@ -7290,53 +7557,13 @@ void ImGui::ErrorCheckEndFrameRecover(ImGuiErrorLogCallback log_callback, voi { // PVS-Studio V1044 is "Loop break conditions do not depend on the number of iterations" ImGuiContext& g = *GImGui; - while (g.CurrentWindowStack.Size > 0) + while (g.CurrentWindowStack.Size > 0) //-V1044 { - while (g.CurrentTable && (g.CurrentTable->OuterWindow == g.CurrentWindow || g.CurrentTable->InnerWindow == g.CurrentWindow)) - { - if (log_callback) log_callback(user_data, "Recovered from missing EndTable() in '%s'", g.CurrentTable->OuterWindow->Name); - EndTable(); - } + ErrorCheckEndWindowRecover(log_callback, user_data); ImGuiWindow* window = g.CurrentWindow; - IM_ASSERT(window != NULL); - while (g.CurrentTabBar != NULL) //-V1044 - { - if (log_callback) log_callback(user_data, "Recovered from missing EndTabBar() in '%s'", window->Name); - EndTabBar(); - } - while (window->DC.TreeDepth > 0) - { - if (log_callback) log_callback(user_data, "Recovered from missing TreePop() in '%s'", window->Name); - TreePop(); - } - while (g.GroupStack.Size > window->DC.StackSizesOnBegin.SizeOfGroupStack) - { - if (log_callback) log_callback(user_data, "Recovered from missing EndGroup() in '%s'", window->Name); - EndGroup(); - } - while (window->IDStack.Size > 1) - { - if (log_callback) log_callback(user_data, "Recovered from missing PopID() in '%s'", window->Name); - PopID(); - } - while (g.ColorStack.Size > window->DC.StackSizesOnBegin.SizeOfColorStack) - { - if (log_callback) log_callback(user_data, "Recovered from missing PopStyleColor() in '%s' for ImGuiCol_%s", window->Name, GetStyleColorName(g.ColorStack.back().Col)); - PopStyleColor(); - } - while (g.StyleVarStack.Size > window->DC.StackSizesOnBegin.SizeOfStyleVarStack) - { - if (log_callback) log_callback(user_data, "Recovered from missing PopStyleVar() in '%s'", window->Name); - PopStyleVar(); - } - while (g.FocusScopeStack.Size > window->DC.StackSizesOnBegin.SizeOfFocusScopeStack) - { - if (log_callback) log_callback(user_data, "Recovered from missing PopFocusScope() in '%s'", window->Name); - PopFocusScope(); - } if (g.CurrentWindowStack.Size == 1) { - IM_ASSERT(g.CurrentWindow->IsFallbackWindow); + IM_ASSERT(window->IsFallbackWindow); break; } IM_ASSERT(window == g.CurrentWindow); @@ -7353,6 +7580,66 @@ void ImGui::ErrorCheckEndFrameRecover(ImGuiErrorLogCallback log_callback, voi } } +// Must be called before End()/EndChild() +void ImGui::ErrorCheckEndWindowRecover(ImGuiErrorLogCallback log_callback, void* user_data) +{ + ImGuiContext& g = *GImGui; + while (g.CurrentTable && (g.CurrentTable->OuterWindow == g.CurrentWindow || g.CurrentTable->InnerWindow == g.CurrentWindow)) + { + if (log_callback) log_callback(user_data, "Recovered from missing EndTable() in '%s'", g.CurrentTable->OuterWindow->Name); + EndTable(); + } + + ImGuiWindow* window = g.CurrentWindow; + ImGuiStackSizes* stack_sizes = &g.CurrentWindowStack.back().StackSizesOnBegin; + IM_ASSERT(window != NULL); + while (g.CurrentTabBar != NULL) //-V1044 + { + if (log_callback) log_callback(user_data, "Recovered from missing EndTabBar() in '%s'", window->Name); + EndTabBar(); + } + while (window->DC.TreeDepth > 0) + { + if (log_callback) log_callback(user_data, "Recovered from missing TreePop() in '%s'", window->Name); + TreePop(); + } + while (g.GroupStack.Size > stack_sizes->SizeOfGroupStack) //-V1044 + { + if (log_callback) log_callback(user_data, "Recovered from missing EndGroup() in '%s'", window->Name); + EndGroup(); + } + while (window->IDStack.Size > 1) + { + if (log_callback) log_callback(user_data, "Recovered from missing PopID() in '%s'", window->Name); + PopID(); + } + while (g.DisabledStackSize > stack_sizes->SizeOfDisabledStack) //-V1044 + { + if (log_callback) log_callback(user_data, "Recovered from missing EndDisabled() in '%s'", window->Name); + EndDisabled(); + } + while (g.ColorStack.Size > stack_sizes->SizeOfColorStack) + { + if (log_callback) log_callback(user_data, "Recovered from missing PopStyleColor() in '%s' for ImGuiCol_%s", window->Name, GetStyleColorName(g.ColorStack.back().Col)); + PopStyleColor(); + } + while (g.ItemFlagsStack.Size > stack_sizes->SizeOfItemFlagsStack) //-V1044 + { + if (log_callback) log_callback(user_data, "Recovered from missing PopItemFlag() in '%s'", window->Name); + PopItemFlag(); + } + while (g.StyleVarStack.Size > stack_sizes->SizeOfStyleVarStack) //-V1044 + { + if (log_callback) log_callback(user_data, "Recovered from missing PopStyleVar() in '%s'", window->Name); + PopStyleVar(); + } + while (g.FocusScopeStack.Size > stack_sizes->SizeOfFocusScopeStack) //-V1044 + { + if (log_callback) log_callback(user_data, "Recovered from missing PopFocusScope() in '%s'", window->Name); + PopFocusScope(); + } +} + // Save current stack sizes for later compare void ImGuiStackSizes::SetToCurrentState() { @@ -7364,7 +7651,9 @@ void ImGuiStackSizes::SetToCurrentState() SizeOfFontStack = (short)g.FontStack.Size; SizeOfFocusScopeStack = (short)g.FocusScopeStack.Size; SizeOfGroupStack = (short)g.GroupStack.Size; + SizeOfItemFlagsStack = (short)g.ItemFlagsStack.Size; SizeOfBeginPopupStack = (short)g.BeginPopupStack.Size; + SizeOfDisabledStack = (short)g.DisabledStackSize; } // Compare to detect usage errors @@ -7382,6 +7671,8 @@ void ImGuiStackSizes::CompareWithCurrentState() // For color, style and font stacks there is an incentive to use Push/Begin/Pop/.../End patterns, so we relax our checks a little to allow them. IM_ASSERT(SizeOfGroupStack == g.GroupStack.Size && "BeginGroup/EndGroup Mismatch!"); IM_ASSERT(SizeOfBeginPopupStack == g.BeginPopupStack.Size && "BeginPopup/EndPopup or BeginMenu/EndMenu Mismatch!"); + IM_ASSERT(SizeOfDisabledStack == g.DisabledStackSize && "BeginDisabled/EndDisabled Mismatch!"); + IM_ASSERT(SizeOfItemFlagsStack >= g.ItemFlagsStack.Size && "PushItemFlag/PopItemFlag Mismatch!"); IM_ASSERT(SizeOfColorStack >= g.ColorStack.Size && "PushStyleColor/PopStyleColor Mismatch!"); IM_ASSERT(SizeOfStyleVarStack >= g.StyleVarStack.Size && "PushStyleVar/PopStyleVar Mismatch!"); IM_ASSERT(SizeOfFontStack >= g.FontStack.Size && "PushFont/PopFont Mismatch!"); @@ -7416,7 +7707,6 @@ void ImGuiStackSizes::CompareWithCurrentState() // - GetContentRegionMaxAbs() [Internal] // - GetContentRegionAvail(), // - GetWindowContentRegionMin(), GetWindowContentRegionMax() -// - GetWindowContentRegionWidth() // - BeginGroup() // - EndGroup() // Also see in imgui_widgets: tab bars, columns. @@ -7466,15 +7756,17 @@ void ImGui::ItemSize(const ImRect& bb, float text_baseline_y) // Declare item bounding box for clipping and interaction. // Note that the size can be different than the one provided to ItemSize(). Typically, widgets that spread over available surface // declare their minimum size requirement to ItemSize() and provide a larger region to ItemAdd() which is used drawing/interaction. -bool ImGui::ItemAdd(const ImRect& bb, ImGuiID id, const ImRect* nav_bb_arg, ImGuiItemAddFlags flags) +bool ImGui::ItemAdd(const ImRect& bb, ImGuiID id, const ImRect* nav_bb_arg, ImGuiItemFlags extra_flags) { ImGuiContext& g = *GImGui; ImGuiWindow* window = g.CurrentWindow; // Set item data + // (DisplayRect is left untouched, made valid when ImGuiItemStatusFlags_HasDisplayRect is set) g.LastItemData.ID = id; g.LastItemData.Rect = bb; - g.LastItemData.InFlags = g.CurrentItemFlags; + g.LastItemData.NavRect = nav_bb_arg ? *nav_bb_arg : bb; + g.LastItemData.InFlags = g.CurrentItemFlags | extra_flags; g.LastItemData.StatusFlags = ImGuiItemStatusFlags_None; // Directional navigation processing @@ -7493,7 +7785,12 @@ bool ImGui::ItemAdd(const ImRect& bb, ImGuiID id, const ImRect* nav_bb_arg, ImGu if (g.NavId == id || g.NavAnyRequest) if (g.NavWindow->RootWindowForNav == window->RootWindowForNav) if (window == g.NavWindow || ((window->Flags | g.NavWindow->Flags) & ImGuiWindowFlags_NavFlattened)) - NavProcessItem(window, nav_bb_arg ? *nav_bb_arg : bb, id); + NavProcessItem(); + + // [DEBUG] People keep stumbling on this problem and using "" as identifier in the root of a window instead of "##something". + // Empty identifier are valid and useful in a small amount of cases, but 99.9% of the time you want to use "##something". + // READ THE FAQ: https://dearimgui.org/faq + IM_ASSERT(id != window->ID && "Cannot have an empty ID at the root of a window. If you need an empty label, use ## and read the FAQ about how the ID Stack works!"); // [DEBUG] Item Picker tool, when enabling the "extended" version we perform the check in ItemAdd() #ifdef IMGUI_DEBUG_TOOL_ITEM_PICKER_EX @@ -7512,16 +7809,11 @@ bool ImGui::ItemAdd(const ImRect& bb, ImGuiID id, const ImRect* nav_bb_arg, ImGu #endif // Clipping test - const bool is_clipped = IsClippedEx(bb, id, false); + const bool is_clipped = IsClippedEx(bb, id); if (is_clipped) return false; //if (g.IO.KeyAlt) window->DrawList->AddRect(bb.Min, bb.Max, IM_COL32(255,255,0,120)); // [DEBUG] - // Tab stop handling (previously was using internal ItemFocusable() api) - // FIXME-NAV: We would now want to move this above the clipping test, but this would require being able to scroll and currently this would mean an extra frame. (#4079, #343) - if (flags & ImGuiItemAddFlags_Focusable) - ItemFocusable(window, id); - // We need to calculate this now to take account of the current clipping rectangle (as items like Selectable may change them) if (IsMouseHoveringRect(bb.Min, bb.Max)) g.LastItemData.StatusFlags |= ImGuiItemStatusFlags_HoveredRect; @@ -7784,14 +8076,9 @@ ImVec2 ImGui::GetWindowContentRegionMax() return window->ContentRegionRect.Max - window->Pos; } -float ImGui::GetWindowContentRegionWidth() -{ - ImGuiWindow* window = GImGui->CurrentWindow; - return window->ContentRegionRect.GetWidth(); -} - // Lock horizontal starting position + capture group bounding box into one "item" (so you can use IsItemHovered() or layout primitives such as SameLine() on whole group, etc.) // Groups are currently a mishmash of functionalities which should perhaps be clarified and separated. +// FIXME-OPT: Could we safely early out on ->SkipItems? void ImGui::BeginGroup() { ImGuiContext& g = *GImGui; @@ -7847,7 +8134,7 @@ void ImGui::EndGroup() window->DC.CurrLineTextBaseOffset = ImMax(window->DC.PrevLineTextBaseOffset, group_data.BackupCurrLineTextBaseOffset); // FIXME: Incorrect, we should grab the base offset from the *first line* of the group but it is hard to obtain now. ItemSize(group_bb.GetSize()); - ItemAdd(group_bb, 0); + ItemAdd(group_bb, 0, NULL, ImGuiItemFlags_NoTabStop); // If the current ActiveId was declared within the boundary of our group, we copy it to LastItemId so IsItemActive(), IsItemDeactivated() etc. will be functional on the entire group. // It would be be neater if we replaced window.DC.LastItemId by e.g. 'bool LastItemIsActive', but would put a little more burden on individual widgets. @@ -7936,32 +8223,80 @@ static ImVec2 CalcNextScrollFromScrollTargetAndClamp(ImGuiWindow* window) return scroll; } +void ImGui::ScrollToItem(ImGuiScrollFlags flags) +{ + ImGuiContext& g = *GImGui; + ImGuiWindow* window = g.CurrentWindow; + ScrollToRectEx(window, g.LastItemData.NavRect, flags); +} + +void ImGui::ScrollToRect(ImGuiWindow* window, const ImRect& item_rect, ImGuiScrollFlags flags) +{ + ScrollToRectEx(window, item_rect, flags); +} + // Scroll to keep newly navigated item fully into view -ImVec2 ImGui::ScrollToBringRectIntoView(ImGuiWindow* window, const ImRect& item_rect) +ImVec2 ImGui::ScrollToRectEx(ImGuiWindow* window, const ImRect& item_rect, ImGuiScrollFlags flags) { ImGuiContext& g = *GImGui; ImRect window_rect(window->InnerRect.Min - ImVec2(1, 1), window->InnerRect.Max + ImVec2(1, 1)); //GetForegroundDrawList(window)->AddRect(window_rect.Min, window_rect.Max, IM_COL32_WHITE); // [DEBUG] - ImVec2 delta_scroll; - if (!window_rect.Contains(item_rect)) + // Check that only one behavior is selected per axis + IM_ASSERT((flags & ImGuiScrollFlags_MaskX_) == 0 || ImIsPowerOfTwo(flags & ImGuiScrollFlags_MaskX_)); + IM_ASSERT((flags & ImGuiScrollFlags_MaskY_) == 0 || ImIsPowerOfTwo(flags & ImGuiScrollFlags_MaskY_)); + + // Defaults + ImGuiScrollFlags in_flags = flags; + if ((flags & ImGuiScrollFlags_MaskX_) == 0 && window->ScrollbarX) + flags |= ImGuiScrollFlags_KeepVisibleEdgeX; + if ((flags & ImGuiScrollFlags_MaskY_) == 0) + flags |= window->Appearing ? ImGuiScrollFlags_AlwaysCenterY : ImGuiScrollFlags_KeepVisibleEdgeY; + + const bool fully_visible_x = item_rect.Min.x >= window_rect.Min.x && item_rect.Max.x <= window_rect.Max.x; + const bool fully_visible_y = item_rect.Min.y >= window_rect.Min.y && item_rect.Max.y <= window_rect.Max.y; + const bool can_be_fully_visible_x = (item_rect.GetWidth() + g.Style.ItemSpacing.x * 2.0f) <= window_rect.GetWidth(); + const bool can_be_fully_visible_y = (item_rect.GetHeight() + g.Style.ItemSpacing.y * 2.0f) <= window_rect.GetHeight(); + + if ((flags & ImGuiScrollFlags_KeepVisibleEdgeX) && !fully_visible_x) { - if (window->ScrollbarX && item_rect.Min.x < window_rect.Min.x) - SetScrollFromPosX(window, item_rect.Min.x - window->Pos.x - g.Style.ItemSpacing.x, 0.0f); - else if (window->ScrollbarX && item_rect.Max.x >= window_rect.Max.x) - SetScrollFromPosX(window, item_rect.Max.x - window->Pos.x + g.Style.ItemSpacing.x, 1.0f); - if (item_rect.Min.y < window_rect.Min.y) - SetScrollFromPosY(window, item_rect.Min.y - window->Pos.y - g.Style.ItemSpacing.y, 0.0f); - else if (item_rect.Max.y >= window_rect.Max.y) - SetScrollFromPosY(window, item_rect.Max.y - window->Pos.y + g.Style.ItemSpacing.y, 1.0f); + if (item_rect.Min.x < window_rect.Min.x || !can_be_fully_visible_x) + SetScrollFromPosX(window, item_rect.Min.x - g.Style.ItemSpacing.x - window->Pos.x, 0.0f); + else if (item_rect.Max.x >= window_rect.Max.x) + SetScrollFromPosX(window, item_rect.Max.x + g.Style.ItemSpacing.x - window->Pos.x, 1.0f); + } + else if (((flags & ImGuiScrollFlags_KeepVisibleCenterX) && !fully_visible_x) || (flags & ImGuiScrollFlags_AlwaysCenterX)) + { + float target_x = can_be_fully_visible_x ? ImFloor((item_rect.Min.x + item_rect.Max.x - window->InnerRect.GetWidth()) * 0.5f) : item_rect.Min.x; + SetScrollFromPosX(window, target_x - window->Pos.x, 0.0f); + } - ImVec2 next_scroll = CalcNextScrollFromScrollTargetAndClamp(window); - delta_scroll = next_scroll - window->Scroll; + if ((flags & ImGuiScrollFlags_KeepVisibleEdgeY) && !fully_visible_y) + { + if (item_rect.Min.y < window_rect.Min.y || !can_be_fully_visible_y) + SetScrollFromPosY(window, item_rect.Min.y - g.Style.ItemSpacing.y - window->Pos.y, 0.0f); + else if (item_rect.Max.y >= window_rect.Max.y) + SetScrollFromPosY(window, item_rect.Max.y + g.Style.ItemSpacing.y - window->Pos.y, 1.0f); + } + else if (((flags & ImGuiScrollFlags_KeepVisibleCenterY) && !fully_visible_y) || (flags & ImGuiScrollFlags_AlwaysCenterY)) + { + float target_y = can_be_fully_visible_y ? ImFloor((item_rect.Min.y + item_rect.Max.y - window->InnerRect.GetHeight()) * 0.5f) : item_rect.Min.y; + SetScrollFromPosY(window, target_y - window->Pos.y, 0.0f); } + ImVec2 next_scroll = CalcNextScrollFromScrollTargetAndClamp(window); + ImVec2 delta_scroll = next_scroll - window->Scroll; + // Also scroll parent window to keep us into view if necessary - if (window->Flags & ImGuiWindowFlags_ChildWindow) - delta_scroll += ScrollToBringRectIntoView(window->ParentWindow, ImRect(item_rect.Min - delta_scroll, item_rect.Max - delta_scroll)); + if (!(flags & ImGuiScrollFlags_NoScrollParent) && (window->Flags & ImGuiWindowFlags_ChildWindow)) + { + // FIXME-SCROLL: May be an option? + if ((in_flags & (ImGuiScrollFlags_AlwaysCenterX | ImGuiScrollFlags_KeepVisibleCenterX)) != 0) + in_flags = (in_flags & ~ImGuiScrollFlags_MaskX_) | ImGuiScrollFlags_KeepVisibleEdgeX; + if ((in_flags & (ImGuiScrollFlags_AlwaysCenterY | ImGuiScrollFlags_KeepVisibleCenterY)) != 0) + in_flags = (in_flags & ~ImGuiScrollFlags_MaskY_) | ImGuiScrollFlags_KeepVisibleEdgeY; + delta_scroll += ScrollToRectEx(window->ParentWindow, ImRect(item_rect.Min - delta_scroll, item_rect.Max - delta_scroll), in_flags); + } return delta_scroll; } @@ -8088,10 +8423,10 @@ void ImGui::SetScrollHereY(float center_y_ratio) void ImGui::BeginTooltip() { - BeginTooltipEx(ImGuiWindowFlags_None, ImGuiTooltipFlags_None); + BeginTooltipEx(ImGuiTooltipFlags_None, ImGuiWindowFlags_None); } -void ImGui::BeginTooltipEx(ImGuiWindowFlags extra_flags, ImGuiTooltipFlags tooltip_flags) +void ImGui::BeginTooltipEx(ImGuiTooltipFlags tooltip_flags, ImGuiWindowFlags extra_window_flags) { ImGuiContext& g = *GImGui; @@ -8120,7 +8455,7 @@ void ImGui::BeginTooltipEx(ImGuiWindowFlags extra_flags, ImGuiTooltipFlags toolt ImFormatString(window_name, IM_ARRAYSIZE(window_name), "##Tooltip_%02d", ++g.TooltipOverrideCount); } ImGuiWindowFlags flags = ImGuiWindowFlags_Tooltip | ImGuiWindowFlags_NoInputs | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoSavedSettings | ImGuiWindowFlags_AlwaysAutoResize; - Begin(window_name, NULL, flags | extra_flags); + Begin(window_name, NULL, flags | extra_window_flags); } void ImGui::EndTooltip() @@ -8131,7 +8466,7 @@ void ImGui::EndTooltip() void ImGui::SetTooltipV(const char* fmt, va_list args) { - BeginTooltipEx(0, ImGuiTooltipFlags_OverridePreviousTooltip); + BeginTooltipEx(ImGuiTooltipFlags_OverridePreviousTooltip, ImGuiWindowFlags_None); TextV(fmt, args); EndTooltip(); } @@ -8199,6 +8534,16 @@ ImGuiWindow* ImGui::GetTopMostPopupModal() return NULL; } +ImGuiWindow* ImGui::GetTopMostAndVisiblePopupModal() +{ + ImGuiContext& g = *GImGui; + for (int n = g.OpenPopupStack.Size - 1; n >= 0; n--) + if (ImGuiWindow* popup = g.OpenPopupStack.Data[n].Window) + if ((popup->Flags & ImGuiWindowFlags_Modal) && IsWindowActiveAndVisible(popup)) + return popup; + return NULL; +} + void ImGui::OpenPopup(const char* str_id, ImGuiPopupFlags popup_flags) { ImGuiContext& g = *GImGui; @@ -8291,7 +8636,7 @@ void ImGui::ClosePopupsOverWindow(ImGuiWindow* ref_window, bool restore_focus_to bool ref_window_is_descendent_of_popup = false; for (int n = popup_count_to_keep; n < g.OpenPopupStack.Size; n++) if (ImGuiWindow* popup_window = g.OpenPopupStack[n].Window) - if (popup_window->RootWindow == ref_window->RootWindow) + if (IsWindowWithinBeginStackOf(ref_window, popup_window)) { ref_window_is_descendent_of_popup = true; break; @@ -8307,6 +8652,21 @@ void ImGui::ClosePopupsOverWindow(ImGuiWindow* ref_window, bool restore_focus_to } } +void ImGui::ClosePopupsExceptModals() +{ + ImGuiContext& g = *GImGui; + + int popup_count_to_keep; + for (popup_count_to_keep = g.OpenPopupStack.Size; popup_count_to_keep > 0; popup_count_to_keep--) + { + ImGuiWindow* window = g.OpenPopupStack[popup_count_to_keep - 1].Window; + if (!window || window->Flags & ImGuiWindowFlags_Modal) + break; + } + if (popup_count_to_keep < g.OpenPopupStack.Size) // This test is not required but it allows to set a convenient breakpoint on the statement below + ClosePopupToLevel(popup_count_to_keep, true); +} + void ImGui::ClosePopupToLevel(int remaining, bool restore_focus_to_window_under_popup) { ImGuiContext& g = *GImGui; @@ -8349,7 +8709,7 @@ void ImGui::CloseCurrentPopup() ImGuiWindow* parent_popup_window = g.OpenPopupStack[popup_idx - 1].Window; bool close_parent = false; if (popup_window && (popup_window->Flags & ImGuiWindowFlags_ChildMenu)) - if (parent_popup_window == NULL || !(parent_popup_window->Flags & ImGuiWindowFlags_Modal)) + if (parent_popup_window && !(parent_popup_window->Flags & ImGuiWindowFlags_MenuBar)) close_parent = true; if (!close_parent) break; @@ -8377,7 +8737,7 @@ bool ImGui::BeginPopupEx(ImGuiID id, ImGuiWindowFlags flags) char name[20]; if (flags & ImGuiWindowFlags_ChildMenu) - ImFormatString(name, IM_ARRAYSIZE(name), "##Menu_%02d", g.BeginPopupStack.Size); // Recycle windows based on depth + ImFormatString(name, IM_ARRAYSIZE(name), "##Menu_%02d", g.BeginMenuCount); // Recycle windows based on depth else ImFormatString(name, IM_ARRAYSIZE(name), "##Popup_%08x", id); // Not recycling, so we can close/open during the same frame @@ -8442,7 +8802,7 @@ void ImGui::EndPopup() IM_ASSERT(window->Flags & ImGuiWindowFlags_Popup); // Mismatched BeginPopup()/EndPopup() calls IM_ASSERT(g.BeginPopupStack.Size > 0); - // Make all menus and popups wrap around for now, may need to expose that policy. + // Make all menus and popups wrap around for now, may need to expose that policy (e.g. focus scope could include wrap/loop policy flags used by new move requests) if (g.NavWindow == window) NavMoveRequestTryWrapping(window, ImGuiNavMoveFlags_LoopY); @@ -8662,6 +9022,7 @@ ImVec2 ImGui::FindBestWindowPosForPopup(ImGuiWindow* window) //----------------------------------------------------------------------------- // FIXME-NAV: The existence of SetNavID vs SetFocusID properly needs to be clarified/reworked. +// In our terminology those should be interchangeable. Those two functions are merely a legacy artifact, so at minimum naming should be clarified. void ImGui::SetNavID(ImGuiID id, ImGuiNavLayer nav_layer, ImGuiID focus_scope_id, const ImRect& rect_rel) { ImGuiContext& g = *GImGui; @@ -8672,8 +9033,6 @@ void ImGui::SetNavID(ImGuiID id, ImGuiNavLayer nav_layer, ImGuiID focus_scope_id g.NavFocusScopeId = focus_scope_id; g.NavWindow->NavLastIds[nav_layer] = id; g.NavWindow->NavRectRel[nav_layer] = rect_rel; - //g.NavDisableHighlight = false; - //g.NavDisableMouseHover = g.NavMousePosDirty = true; } void ImGui::SetFocusID(ImGuiID id, ImGuiWindow* window) @@ -8692,7 +9051,7 @@ void ImGui::SetFocusID(ImGuiID id, ImGuiWindow* window) g.NavFocusScopeId = window->DC.NavFocusScopeIdCurrent; window->NavLastIds[nav_layer] = id; if (g.LastItemData.ID == id) - window->NavRectRel[nav_layer] = ImRect(g.LastItemData.Rect.Min - window->Pos, g.LastItemData.Rect.Max - window->Pos); + window->NavRectRel[nav_layer] = WindowRectAbsToRel(window, g.LastItemData.NavRect); if (g.ActiveIdSource == ImGuiInputSource_Nav) g.NavDisableMouseHover = true; @@ -8723,7 +9082,7 @@ static void inline NavClampRectToVisibleAreaForMoveDir(ImGuiDir move_dir, ImRect r.Min.y = ImClamp(r.Min.y, clip_rect.Min.y, clip_rect.Max.y); r.Max.y = ImClamp(r.Max.y, clip_rect.Min.y, clip_rect.Max.y); } - else + else // FIXME: PageUp/PageDown are leaving move_dir == None { r.Min.x = ImClamp(r.Min.x, clip_rect.Min.x, clip_rect.Max.x); r.Max.x = ImClamp(r.Max.x, clip_rect.Min.x, clip_rect.Max.x); @@ -8731,15 +9090,17 @@ static void inline NavClampRectToVisibleAreaForMoveDir(ImGuiDir move_dir, ImRect } // Scoring function for gamepad/keyboard directional navigation. Based on https://gist.github.com/rygorous/6981057 -static bool ImGui::NavScoreItem(ImGuiNavItemData* result, ImRect cand) +static bool ImGui::NavScoreItem(ImGuiNavItemData* result) { ImGuiContext& g = *GImGui; ImGuiWindow* window = g.CurrentWindow; if (g.NavLayer != window->DC.NavLayerCurrent) return false; - const ImRect& curr = g.NavScoringRect; // Current modified source rect (NB: we've applied Max.x = Min.x in NavUpdate() to inhibit the effect of having varied item width) - g.NavScoringCount++; + // FIXME: Those are not good variables names + ImRect cand = g.LastItemData.NavRect; // Current item nav rectangle + const ImRect curr = g.NavScoringRect; // Current modified source rect (NB: we've applied Max.x = Min.x in NavUpdate() to inhibit the effect of having varied item width) + g.NavScoringDebugCount++; // When entering through a NavFlattened border, we consider child window items as fully clipped for scoring if (window->ParentWindow == g.NavWindow) @@ -8801,24 +9162,24 @@ static bool ImGui::NavScoreItem(ImGuiNavItemData* result, ImRect cand) draw_list->AddRect(curr.Min, curr.Max, IM_COL32(255,200,0,100)); draw_list->AddRect(cand.Min, cand.Max, IM_COL32(255,255,0,200)); draw_list->AddRectFilled(cand.Max - ImVec2(4, 4), cand.Max + CalcTextSize(buf) + ImVec2(4, 4), IM_COL32(40,0,0,150)); - draw_list->AddText(g.IO.FontDefault, 13.0f, cand.Max, ~0U, buf); + draw_list->AddText(cand.Max, ~0U, buf); } else if (g.IO.KeyCtrl) // Hold to preview score in matching quadrant. Press C to rotate. { - if (IsKeyPressedMap(ImGuiKey_C)) { g.NavMoveDirLast = (ImGuiDir)((g.NavMoveDirLast + 1) & 3); g.IO.KeysDownDuration[g.IO.KeyMap[ImGuiKey_C]] = 0.01f; } if (quadrant == g.NavMoveDir) { ImFormatString(buf, IM_ARRAYSIZE(buf), "%.0f/%.0f", dist_box, dist_center); ImDrawList* draw_list = GetForegroundDrawList(window); draw_list->AddRectFilled(cand.Min, cand.Max, IM_COL32(255, 0, 0, 200)); - draw_list->AddText(g.IO.FontDefault, 13.0f, cand.Min, IM_COL32(255, 255, 255, 255), buf); + draw_list->AddText(cand.Min, IM_COL32(255, 255, 255, 255), buf); } } #endif // Is it in the quadrant we're interesting in moving to? bool new_best = false; - if (quadrant == g.NavMoveDir) + const ImGuiDir move_dir = g.NavMoveDir; + if (quadrant == move_dir) { // Does it beat the current best candidate? if (dist_box < result->DistBox) @@ -8840,7 +9201,7 @@ static bool ImGui::NavScoreItem(ImGuiNavItemData* result, ImRect cand) // Still tied! we need to be extra-careful to make sure everything gets linked properly. We consistently break ties by symbolically moving "later" items // (with higher index) to the right/downwards by an infinitesimal amount since we the current "best" button already (so it must have a lower index), // this is fairly easy. This rule ensures that all buttons with dx==dy==0 will end up being linked in order of appearance along the x axis. - if (((g.NavMoveDir == ImGuiDir_Up || g.NavMoveDir == ImGuiDir_Down) ? dby : dbx) < 0.0f) // moving bj to the right/down decreases distance + if (((move_dir == ImGuiDir_Up || move_dir == ImGuiDir_Down) ? dby : dbx) < 0.0f) // moving bj to the right/down decreases distance new_best = true; } } @@ -8853,7 +9214,7 @@ static bool ImGui::NavScoreItem(ImGuiNavItemData* result, ImRect cand) // Disabling it may lead to disconnected graphs when nodes are very spaced out on different axis. Perhaps consider offering this as an option? if (result->DistBox == FLT_MAX && dist_axial < result->DistAxial) // Check axial match if (g.NavLayer == ImGuiNavLayer_Menu && !(g.NavWindow->Flags & ImGuiWindowFlags_ChildMenu)) - if ((g.NavMoveDir == ImGuiDir_Left && dax < 0.0f) || (g.NavMoveDir == ImGuiDir_Right && dax > 0.0f) || (g.NavMoveDir == ImGuiDir_Up && day < 0.0f) || (g.NavMoveDir == ImGuiDir_Down && day > 0.0f)) + if ((move_dir == ImGuiDir_Left && dax < 0.0f) || (move_dir == ImGuiDir_Right && dax > 0.0f) || (move_dir == ImGuiDir_Up && day < 0.0f) || (move_dir == ImGuiDir_Down && day > 0.0f)) { result->DistAxial = dist_axial; new_best = true; @@ -8862,23 +9223,26 @@ static bool ImGui::NavScoreItem(ImGuiNavItemData* result, ImRect cand) return new_best; } -static void ImGui::NavApplyItemToResult(ImGuiNavItemData* result, ImGuiWindow* window, ImGuiID id, const ImRect& nav_bb_rel) +static void ImGui::NavApplyItemToResult(ImGuiNavItemData* result) { + ImGuiContext& g = *GImGui; + ImGuiWindow* window = g.CurrentWindow; result->Window = window; - result->ID = id; + result->ID = g.LastItemData.ID; result->FocusScopeId = window->DC.NavFocusScopeIdCurrent; - result->RectRel = nav_bb_rel; + result->InFlags = g.LastItemData.InFlags; + result->RectRel = WindowRectAbsToRel(window, g.LastItemData.NavRect); } // We get there when either NavId == id, or when g.NavAnyRequest is set (which is updated by NavUpdateAnyRequestFlag above) -static void ImGui::NavProcessItem(ImGuiWindow* window, const ImRect& nav_bb, const ImGuiID id) +// This is called after LastItemData is set. +static void ImGui::NavProcessItem() { ImGuiContext& g = *GImGui; - //if (!g.IO.NavActive) // [2017/10/06] Removed this possibly redundant test but I am not sure of all the side-effects yet. Some of the feature here will need to work regardless of using a _NoNavInputs flag. - // return; - + ImGuiWindow* window = g.CurrentWindow; + const ImGuiID id = g.LastItemData.ID; + const ImRect nav_bb = g.LastItemData.NavRect; const ImGuiItemFlags item_flags = g.LastItemData.InFlags; - const ImRect nav_bb_rel(nav_bb.Min - window->Pos, nav_bb.Max - window->Pos); // Process Init Request if (g.NavInitRequest && g.NavLayer == window->DC.NavLayerCurrent) @@ -8888,7 +9252,7 @@ static void ImGui::NavProcessItem(ImGuiWindow* window, const ImRect& nav_bb, con if (candidate_for_nav_default_focus || g.NavInitResultId == 0) { g.NavInitResultId = id; - g.NavInitResultRectRel = nav_bb_rel; + g.NavInitResultRectRel = WindowRectAbsToRel(window, nav_bb); } if (candidate_for_nav_default_focus) { @@ -8898,27 +9262,32 @@ static void ImGui::NavProcessItem(ImGuiWindow* window, const ImRect& nav_bb, con } // Process Move Request (scoring for navigation) - // FIXME-NAV: Consider policy for double scoring (scoring from NavScoringRectScreen + scoring from a rect wrapped according to current wrapping policy) - if ((g.NavId != id || (g.NavMoveRequestFlags & ImGuiNavMoveFlags_AllowCurrentNavId)) && !(item_flags & (ImGuiItemFlags_Disabled | ImGuiItemFlags_NoNav))) + // FIXME-NAV: Consider policy for double scoring (scoring from NavScoringRect + scoring from a rect wrapped according to current wrapping policy) + if (g.NavMoveScoringItems) { - ImGuiNavItemData* result = (window == g.NavWindow) ? &g.NavMoveResultLocal : &g.NavMoveResultOther; -#if IMGUI_DEBUG_NAV_SCORING - // [DEBUG] Score all items in NavWindow at all times - if (!g.NavMoveRequest) - g.NavMoveDir = g.NavMoveDirLast; - bool new_best = NavScoreItem(result, nav_bb) && g.NavMoveRequest; -#else - bool new_best = g.NavMoveRequest && NavScoreItem(result, nav_bb); -#endif - if (new_best) - NavApplyItemToResult(result, window, id, nav_bb_rel); - - // Features like PageUp/PageDown need to maintain a separate score for the visible set of items. - const float VISIBLE_RATIO = 0.70f; - if ((g.NavMoveRequestFlags & ImGuiNavMoveFlags_AlsoScoreVisibleSet) && window->ClipRect.Overlaps(nav_bb)) - if (ImClamp(nav_bb.Max.y, window->ClipRect.Min.y, window->ClipRect.Max.y) - ImClamp(nav_bb.Min.y, window->ClipRect.Min.y, window->ClipRect.Max.y) >= (nav_bb.Max.y - nav_bb.Min.y) * VISIBLE_RATIO) - if (NavScoreItem(&g.NavMoveResultLocalVisibleSet, nav_bb)) - NavApplyItemToResult(&g.NavMoveResultLocalVisibleSet, window, id, nav_bb_rel); + const bool is_tab_stop = (item_flags & ImGuiItemFlags_Inputable) && (item_flags & (ImGuiItemFlags_NoTabStop | ImGuiItemFlags_Disabled)) == 0; + const bool is_tabbing = (g.NavMoveFlags & ImGuiNavMoveFlags_Tabbing) != 0; + if (is_tabbing) + { + if (is_tab_stop || (g.NavMoveFlags & ImGuiNavMoveFlags_FocusApi)) + NavProcessItemForTabbingRequest(id); + } + else if ((g.NavId != id || (g.NavMoveFlags & ImGuiNavMoveFlags_AllowCurrentNavId)) && !(item_flags & (ImGuiItemFlags_Disabled | ImGuiItemFlags_NoNav))) + { + ImGuiNavItemData* result = (window == g.NavWindow) ? &g.NavMoveResultLocal : &g.NavMoveResultOther; + if (!is_tabbing) + { + if (NavScoreItem(result)) + NavApplyItemToResult(result); + + // Features like PageUp/PageDown need to maintain a separate score for the visible set of items. + const float VISIBLE_RATIO = 0.70f; + if ((g.NavMoveFlags & ImGuiNavMoveFlags_AlsoScoreVisibleSet) && window->ClipRect.Overlaps(nav_bb)) + if (ImClamp(nav_bb.Max.y, window->ClipRect.Min.y, window->ClipRect.Max.y) - ImClamp(nav_bb.Min.y, window->ClipRect.Min.y, window->ClipRect.Max.y) >= (nav_bb.Max.y - nav_bb.Min.y) * VISIBLE_RATIO) + if (NavScoreItem(&g.NavMoveResultLocalVisible)) + NavApplyItemToResult(&g.NavMoveResultLocalVisible); + } + } } // Update window-relative bounding box of navigated item @@ -8928,43 +9297,124 @@ static void ImGui::NavProcessItem(ImGuiWindow* window, const ImRect& nav_bb, con g.NavLayer = window->DC.NavLayerCurrent; g.NavFocusScopeId = window->DC.NavFocusScopeIdCurrent; g.NavIdIsAlive = true; - window->NavRectRel[window->DC.NavLayerCurrent] = nav_bb_rel; // Store item bounding box (relative to window position) + window->NavRectRel[window->DC.NavLayerCurrent] = WindowRectAbsToRel(window, nav_bb); // Store item bounding box (relative to window position) + } +} + +// Handle "scoring" of an item for a tabbing/focusing request initiated by NavUpdateCreateTabbingRequest(). +// Note that SetKeyboardFocusHere() API calls are considered tabbing requests! +// - Case 1: no nav/active id: set result to first eligible item, stop storing. +// - Case 2: tab forward: on ref id set counter, on counter elapse store result +// - Case 3: tab forward wrap: set result to first eligible item (preemptively), on ref id set counter, on next frame if counter hasn't elapsed store result. // FIXME-TABBING: Could be done as a next-frame forwarded request +// - Case 4: tab backward: store all results, on ref id pick prev, stop storing +// - Case 5: tab backward wrap: store all results, on ref id if no result keep storing until last // FIXME-TABBING: Could be done as next-frame forwarded requested +void ImGui::NavProcessItemForTabbingRequest(ImGuiID id) +{ + ImGuiContext& g = *GImGui; + + // Always store in NavMoveResultLocal (unlike directional request which uses NavMoveResultOther on sibling/flattened windows) + ImGuiNavItemData* result = &g.NavMoveResultLocal; + if (g.NavTabbingDir == +1) + { + // Tab Forward or SetKeyboardFocusHere() with >= 0 + if (g.NavTabbingResultFirst.ID == 0) + NavApplyItemToResult(&g.NavTabbingResultFirst); + if (--g.NavTabbingCounter == 0) + NavMoveRequestResolveWithLastItem(result); + else if (g.NavId == id) + g.NavTabbingCounter = 1; + } + else if (g.NavTabbingDir == -1) + { + // Tab Backward + if (g.NavId == id) + { + if (result->ID) + { + g.NavMoveScoringItems = false; + NavUpdateAnyRequestFlag(); + } + } + else + { + NavApplyItemToResult(result); + } + } + else if (g.NavTabbingDir == 0) + { + // Tab Init + if (g.NavTabbingResultFirst.ID == 0) + NavMoveRequestResolveWithLastItem(&g.NavTabbingResultFirst); } } bool ImGui::NavMoveRequestButNoResultYet() { ImGuiContext& g = *GImGui; - return g.NavMoveRequest && g.NavMoveResultLocal.ID == 0 && g.NavMoveResultOther.ID == 0; + return g.NavMoveScoringItems && g.NavMoveResultLocal.ID == 0 && g.NavMoveResultOther.ID == 0; +} + +// FIXME: ScoringRect is not set +void ImGui::NavMoveRequestSubmit(ImGuiDir move_dir, ImGuiDir clip_dir, ImGuiNavMoveFlags move_flags, ImGuiScrollFlags scroll_flags) +{ + ImGuiContext& g = *GImGui; + IM_ASSERT(g.NavWindow != NULL); + + if (move_flags & ImGuiNavMoveFlags_Tabbing) + move_flags |= ImGuiNavMoveFlags_AllowCurrentNavId; + + g.NavMoveSubmitted = g.NavMoveScoringItems = true; + g.NavMoveDir = move_dir; + g.NavMoveDirForDebug = move_dir; + g.NavMoveClipDir = clip_dir; + g.NavMoveFlags = move_flags; + g.NavMoveScrollFlags = scroll_flags; + g.NavMoveForwardToNextFrame = false; + g.NavMoveKeyMods = g.IO.KeyMods; + g.NavTabbingCounter = 0; + g.NavMoveResultLocal.Clear(); + g.NavMoveResultLocalVisible.Clear(); + g.NavMoveResultOther.Clear(); + NavUpdateAnyRequestFlag(); +} + +void ImGui::NavMoveRequestResolveWithLastItem(ImGuiNavItemData* result) +{ + ImGuiContext& g = *GImGui; + g.NavMoveScoringItems = false; // Ensure request doesn't need more processing + NavApplyItemToResult(result); + NavUpdateAnyRequestFlag(); } void ImGui::NavMoveRequestCancel() { ImGuiContext& g = *GImGui; - g.NavMoveRequest = false; + g.NavMoveSubmitted = g.NavMoveScoringItems = false; NavUpdateAnyRequestFlag(); } -void ImGui::NavMoveRequestForward(ImGuiDir move_dir, ImGuiDir clip_dir, const ImRect& bb_rel, ImGuiNavMoveFlags move_flags) +// Forward will reuse the move request again on the next frame (generally with modifications done to it) +void ImGui::NavMoveRequestForward(ImGuiDir move_dir, ImGuiDir clip_dir, ImGuiNavMoveFlags move_flags, ImGuiScrollFlags scroll_flags) { ImGuiContext& g = *GImGui; - IM_ASSERT(g.NavMoveRequestForward == ImGuiNavForward_None); + IM_ASSERT(g.NavMoveForwardToNextFrame == false); NavMoveRequestCancel(); + g.NavMoveForwardToNextFrame = true; g.NavMoveDir = move_dir; g.NavMoveClipDir = clip_dir; - g.NavMoveRequestForward = ImGuiNavForward_ForwardQueued; - g.NavMoveRequestFlags = move_flags; - g.NavWindow->NavRectRel[g.NavLayer] = bb_rel; + g.NavMoveFlags = move_flags | ImGuiNavMoveFlags_Forwarded; + g.NavMoveScrollFlags = scroll_flags; } -void ImGui::NavMoveRequestTryWrapping(ImGuiWindow* window, ImGuiNavMoveFlags move_flags) +// Navigation wrap-around logic is delayed to the end of the frame because this operation is only valid after entire +// popup is assembled and in case of appended popups it is not clear which EndPopup() call is final. +void ImGui::NavMoveRequestTryWrapping(ImGuiWindow* window, ImGuiNavMoveFlags wrap_flags) { ImGuiContext& g = *GImGui; - - // Navigation wrap-around logic is delayed to the end of the frame because this operation is only valid after entire - // popup is assembled and in case of appended popups it is not clear which EndPopup() call is final. - g.NavWrapRequestWindow = window; - g.NavWrapRequestFlags = move_flags; + IM_ASSERT(wrap_flags != 0); // Call with _WrapX, _WrapY, _LoopX, _LoopY + // In theory we should test for NavMoveRequestButNoResultYet() but there's no point doing it, NavEndFrame() will do the same test + if (g.NavWindow == window && g.NavMoveScoringItems && g.NavLayer == ImGuiNavLayer_Main) + g.NavMoveFlags |= wrap_flags; } // FIXME: This could be replaced by updating a frame number in each window when (window == NavWindow) and (NavLayer == 0). @@ -8996,8 +9446,6 @@ void ImGui::NavRestoreLayer(ImGuiNavLayer layer) if (window->NavLastIds[layer] != 0) { SetNavID(window->NavLastIds[layer], layer, 0, window->NavRectRel[layer]); - g.NavDisableHighlight = false; - g.NavDisableMouseHover = g.NavMousePosDirty = true; } else { @@ -9006,10 +9454,17 @@ void ImGui::NavRestoreLayer(ImGuiNavLayer layer) } } +void ImGui::NavRestoreHighlightAfterMove() +{ + ImGuiContext& g = *GImGui; + g.NavDisableHighlight = false; + g.NavDisableMouseHover = g.NavMousePosDirty = true; +} + static inline void ImGui::NavUpdateAnyRequestFlag() { ImGuiContext& g = *GImGui; - g.NavAnyRequest = g.NavMoveRequest || g.NavInitRequest || (IMGUI_DEBUG_NAV_SCORING && g.NavWindow != NULL); + g.NavAnyRequest = g.NavMoveScoringItems || g.NavInitRequest || (IMGUI_DEBUG_NAV_SCORING && g.NavWindow != NULL); if (g.NavAnyRequest) IM_ASSERT(g.NavWindow != NULL); } @@ -9049,18 +9504,25 @@ void ImGui::NavInitWindow(ImGuiWindow* window, bool force_reinit) static ImVec2 ImGui::NavCalcPreferredRefPos() { ImGuiContext& g = *GImGui; - if (g.NavDisableHighlight || !g.NavDisableMouseHover || !g.NavWindow) + ImGuiWindow* window = g.NavWindow; + if (g.NavDisableHighlight || !g.NavDisableMouseHover || !window) { // Mouse (we need a fallback in case the mouse becomes invalid after being used) if (IsMousePosValid(&g.IO.MousePos)) return g.IO.MousePos; - return g.LastValidMousePos; + return g.MouseLastValidPos; } else { - // When navigation is active and mouse is disabled, decide on an arbitrary position around the bottom left of the currently navigated item. - const ImRect& rect_rel = g.NavWindow->NavRectRel[g.NavLayer]; - ImVec2 pos = g.NavWindow->Pos + ImVec2(rect_rel.Min.x + ImMin(g.Style.FramePadding.x * 4, rect_rel.GetWidth()), rect_rel.Max.y - ImMin(g.Style.FramePadding.y, rect_rel.GetHeight())); + // When navigation is active and mouse is disabled, pick a position around the bottom left of the currently navigated item + // Take account of upcoming scrolling (maybe set mouse pos should be done in EndFrame?) + ImRect rect_rel = WindowRectRelToAbs(window, window->NavRectRel[g.NavLayer]); + if (window->LastFrameActive != g.FrameCount && (window->ScrollTarget.x != FLT_MAX || window->ScrollTarget.y != FLT_MAX)) + { + ImVec2 next_scroll = CalcNextScrollFromScrollTargetAndClamp(window); + rect_rel.Translate(window->Scroll - next_scroll); + } + ImVec2 pos = ImVec2(rect_rel.Min.x + ImMin(g.Style.FramePadding.x * 4, rect_rel.GetWidth()), rect_rel.Max.y - ImMin(g.Style.FramePadding.y, rect_rel.GetHeight())); ImGuiViewport* viewport = GetMainViewport(); return ImFloor(ImClamp(pos, viewport->Pos, viewport->Pos + viewport->Size)); // ImFloor() is important because non-integer mouse position application in backend might be lossy and result in undesirable non-zero delta. } @@ -9091,6 +9553,8 @@ float ImGui::GetNavInputAmount(ImGuiNavInput n, ImGuiInputReadMode mode) ImVec2 ImGui::GetNavInputAmount2d(ImGuiNavDirSourceFlags dir_sources, ImGuiInputReadMode mode, float slow_factor, float fast_factor) { ImVec2 delta(0.0f, 0.0f); + if (dir_sources & ImGuiNavDirSourceFlags_RawKeyboard) + delta += ImVec2((float)IsKeyDown(GetKeyIndex(ImGuiKey_RightArrow)) - (float)IsKeyDown(GetKeyIndex(ImGuiKey_LeftArrow)), (float)IsKeyDown(GetKeyIndex(ImGuiKey_DownArrow)) - (float)IsKeyDown(GetKeyIndex(ImGuiKey_UpArrow))); if (dir_sources & ImGuiNavDirSourceFlags_Keyboard) delta += ImVec2(GetNavInputAmount(ImGuiNavInput_KeyRight_, mode) - GetNavInputAmount(ImGuiNavInput_KeyLeft_, mode), GetNavInputAmount(ImGuiNavInput_KeyDown_, mode) - GetNavInputAmount(ImGuiNavInput_KeyUp_, mode)); if (dir_sources & ImGuiNavDirSourceFlags_PadDPad) @@ -9110,16 +9574,12 @@ static void ImGui::NavUpdate() ImGuiIO& io = g.IO; io.WantSetMousePos = false; - g.NavWrapRequestWindow = NULL; - g.NavWrapRequestFlags = ImGuiNavMoveFlags_None; -#if 0 - if (g.NavScoringCount > 0) IMGUI_DEBUG_LOG("NavScoringCount %d for '%s' layer %d (Init:%d, Move:%d)\n", g.FrameCount, g.NavScoringCount, g.NavWindow ? g.NavWindow->Name : "NULL", g.NavLayer, g.NavInitRequest || g.NavInitResultId != 0, g.NavMoveRequest); -#endif + //if (g.NavScoringDebugCount > 0) IMGUI_DEBUG_LOG("NavScoringDebugCount %d for '%s' layer %d (Init:%d, Move:%d)\n", g.NavScoringDebugCount, g.NavWindow ? g.NavWindow->Name : "NULL", g.NavLayer, g.NavInitRequest || g.NavInitResultId != 0, g.NavMoveRequest); // Set input source as Gamepad when buttons are pressed (as some features differs when used with Gamepad vs Keyboard) // (do it before we map Keyboard input!) - bool nav_keyboard_active = (io.ConfigFlags & ImGuiConfigFlags_NavEnableKeyboard) != 0; - bool nav_gamepad_active = (io.ConfigFlags & ImGuiConfigFlags_NavEnableGamepad) != 0 && (io.BackendFlags & ImGuiBackendFlags_HasGamepad) != 0; + const bool nav_keyboard_active = (io.ConfigFlags & ImGuiConfigFlags_NavEnableKeyboard) != 0; + const bool nav_gamepad_active = (io.ConfigFlags & ImGuiConfigFlags_NavEnableGamepad) != 0 && (io.BackendFlags & ImGuiBackendFlags_HasGamepad) != 0; if (nav_gamepad_active && g.NavInputSource != ImGuiInputSource_Gamepad) { if (io.NavInputs[ImGuiNavInput_Activate] > 0.0f || io.NavInputs[ImGuiNavInput_Input] > 0.0f || io.NavInputs[ImGuiNavInput_Cancel] > 0.0f || io.NavInputs[ImGuiNavInput_Menu] > 0.0f @@ -9150,42 +9610,27 @@ static void ImGui::NavUpdate() // Process navigation init request (select first/default focus) if (g.NavInitResultId != 0) - NavUpdateInitResult(); + NavInitRequestApplyResult(); g.NavInitRequest = false; g.NavInitRequestFromMove = false; g.NavInitResultId = 0; g.NavJustMovedToId = 0; // Process navigation move request - if (g.NavMoveRequest) - NavUpdateMoveResult(); - - // When a forwarded move request failed, we restore the highlight that we disabled during the forward frame - if (g.NavMoveRequestForward == ImGuiNavForward_ForwardActive) - { - IM_ASSERT(g.NavMoveRequest); - if (g.NavMoveResultLocal.ID == 0 && g.NavMoveResultOther.ID == 0) - g.NavDisableHighlight = false; - g.NavMoveRequestForward = ImGuiNavForward_None; - } + if (g.NavMoveSubmitted) + NavMoveRequestApplyResult(); + g.NavTabbingCounter = 0; + g.NavMoveSubmitted = g.NavMoveScoringItems = false; - // Apply application mouse position movement, after we had a chance to process move request result. + // Schedule mouse position update (will be done at the bottom of this function, after 1) processing all move requests and 2) updating scrolling) + bool set_mouse_pos = false; if (g.NavMousePosDirty && g.NavIdIsAlive) - { - // Set mouse position given our knowledge of the navigated item position from last frame - if ((io.ConfigFlags & ImGuiConfigFlags_NavEnableSetMousePos) && (io.BackendFlags & ImGuiBackendFlags_HasSetMousePos)) - if (!g.NavDisableHighlight && g.NavDisableMouseHover && g.NavWindow) - { - io.MousePos = io.MousePosPrev = NavCalcPreferredRefPos(); - io.WantSetMousePos = true; - } - g.NavMousePosDirty = false; - } - g.NavIdIsAlive = false; - g.NavJustTabbedId = 0; - IM_ASSERT(g.NavLayer == 0 || g.NavLayer == 1); + if (!g.NavDisableHighlight && g.NavDisableMouseHover && g.NavWindow) + set_mouse_pos = true; + g.NavMousePosDirty = false; + IM_ASSERT(g.NavLayer == ImGuiNavLayer_Main || g.NavLayer == ImGuiNavLayer_Menu); - // Store our return window (for returning from Layer 1 to Layer 0) and clear it as soon as we step back in our own Layer 0 + // Store our return window (for returning from Menu Layer to Main Layer) and clear it as soon as we step back in our own Layer 0 if (g.NavWindow) NavSaveLastChildNavWindowIntoParent(g.NavWindow); if (g.NavWindow && g.NavWindow->NavLastChildNavWindow != NULL && g.NavLayer == ImGuiNavLayer_Main) @@ -9199,117 +9644,55 @@ static void ImGui::NavUpdate() io.NavVisible = (io.NavActive && g.NavId != 0 && !g.NavDisableHighlight) || (g.NavWindowingTarget != NULL); // Process NavCancel input (to close a popup, get back to parent, clear focus) - if (IsNavInputTest(ImGuiNavInput_Cancel, ImGuiInputReadMode_Pressed)) + NavUpdateCancelRequest(); + + // Process manual activation request + g.NavActivateId = g.NavActivateDownId = g.NavActivatePressedId = g.NavActivateInputId = 0; + g.NavActivateFlags = ImGuiActivateFlags_None; + if (g.NavId != 0 && !g.NavDisableHighlight && !g.NavWindowingTarget && g.NavWindow && !(g.NavWindow->Flags & ImGuiWindowFlags_NoNavInputs)) { - IMGUI_DEBUG_LOG_NAV("[nav] ImGuiNavInput_Cancel\n"); - if (g.ActiveId != 0) - { - if (!IsActiveIdUsingNavInput(ImGuiNavInput_Cancel)) - ClearActiveID(); - } - else if (g.NavLayer != ImGuiNavLayer_Main) + bool activate_down = IsNavInputDown(ImGuiNavInput_Activate); + bool input_down = IsNavInputDown(ImGuiNavInput_Input); + bool activate_pressed = activate_down && IsNavInputTest(ImGuiNavInput_Activate, ImGuiInputReadMode_Pressed); + bool input_pressed = input_down && IsNavInputTest(ImGuiNavInput_Input, ImGuiInputReadMode_Pressed); + if (g.ActiveId == 0 && activate_pressed) { - // Leave the "menu" layer - NavRestoreLayer(ImGuiNavLayer_Main); + g.NavActivateId = g.NavId; + g.NavActivateFlags = ImGuiActivateFlags_PreferTweak; } - else if (g.NavWindow && g.NavWindow != g.NavWindow->RootWindow && !(g.NavWindow->Flags & ImGuiWindowFlags_Popup) && g.NavWindow->ParentWindow) + if ((g.ActiveId == 0 || g.ActiveId == g.NavId) && input_pressed) { - // Exit child window - ImGuiWindow* child_window = g.NavWindow; - ImGuiWindow* parent_window = g.NavWindow->ParentWindow; - IM_ASSERT(child_window->ChildId != 0); - ImRect child_rect = child_window->Rect(); - FocusWindow(parent_window); - SetNavID(child_window->ChildId, ImGuiNavLayer_Main, 0, ImRect(child_rect.Min - parent_window->Pos, child_rect.Max - parent_window->Pos)); + g.NavActivateInputId = g.NavId; + g.NavActivateFlags = ImGuiActivateFlags_PreferInput; } - else if (g.OpenPopupStack.Size > 0) - { - // Close open popup/menu - if (!(g.OpenPopupStack.back().Window->Flags & ImGuiWindowFlags_Modal)) - ClosePopupToLevel(g.OpenPopupStack.Size - 1, true); - } - else - { - // Clear NavLastId for popups but keep it for regular child window so we can leave one and come back where we were - if (g.NavWindow && ((g.NavWindow->Flags & ImGuiWindowFlags_Popup) || !(g.NavWindow->Flags & ImGuiWindowFlags_ChildWindow))) - g.NavWindow->NavLastIds[0] = 0; - g.NavId = g.NavFocusScopeId = 0; - } - } - - // Process manual activation request - g.NavActivateId = g.NavActivateDownId = g.NavActivatePressedId = g.NavInputId = 0; - if (g.NavId != 0 && !g.NavDisableHighlight && !g.NavWindowingTarget && g.NavWindow && !(g.NavWindow->Flags & ImGuiWindowFlags_NoNavInputs)) - { - bool activate_down = IsNavInputDown(ImGuiNavInput_Activate); - bool activate_pressed = activate_down && IsNavInputTest(ImGuiNavInput_Activate, ImGuiInputReadMode_Pressed); - if (g.ActiveId == 0 && activate_pressed) - g.NavActivateId = g.NavId; if ((g.ActiveId == 0 || g.ActiveId == g.NavId) && activate_down) g.NavActivateDownId = g.NavId; if ((g.ActiveId == 0 || g.ActiveId == g.NavId) && activate_pressed) g.NavActivatePressedId = g.NavId; - if ((g.ActiveId == 0 || g.ActiveId == g.NavId) && IsNavInputTest(ImGuiNavInput_Input, ImGuiInputReadMode_Pressed)) - g.NavInputId = g.NavId; } if (g.NavWindow && (g.NavWindow->Flags & ImGuiWindowFlags_NoNavInputs)) g.NavDisableHighlight = true; if (g.NavActivateId != 0) IM_ASSERT(g.NavActivateDownId == g.NavActivateId); - g.NavMoveRequest = false; // Process programmatic activation request + // FIXME-NAV: Those should eventually be queued (unlike focus they don't cancel each others) if (g.NavNextActivateId != 0) - g.NavActivateId = g.NavActivateDownId = g.NavActivatePressedId = g.NavInputId = g.NavNextActivateId; - g.NavNextActivateId = 0; - - // Initiate directional inputs request - if (g.NavMoveRequestForward == ImGuiNavForward_None) { - g.NavMoveDir = ImGuiDir_None; - g.NavMoveRequestFlags = ImGuiNavMoveFlags_None; - if (g.NavWindow && !g.NavWindowingTarget && !(g.NavWindow->Flags & ImGuiWindowFlags_NoNavInputs)) - { - const ImGuiInputReadMode read_mode = ImGuiInputReadMode_Repeat; - if (!IsActiveIdUsingNavDir(ImGuiDir_Left) && (IsNavInputTest(ImGuiNavInput_DpadLeft, read_mode) || IsNavInputTest(ImGuiNavInput_KeyLeft_, read_mode))) { g.NavMoveDir = ImGuiDir_Left; } - if (!IsActiveIdUsingNavDir(ImGuiDir_Right) && (IsNavInputTest(ImGuiNavInput_DpadRight, read_mode) || IsNavInputTest(ImGuiNavInput_KeyRight_, read_mode))) { g.NavMoveDir = ImGuiDir_Right; } - if (!IsActiveIdUsingNavDir(ImGuiDir_Up) && (IsNavInputTest(ImGuiNavInput_DpadUp, read_mode) || IsNavInputTest(ImGuiNavInput_KeyUp_, read_mode))) { g.NavMoveDir = ImGuiDir_Up; } - if (!IsActiveIdUsingNavDir(ImGuiDir_Down) && (IsNavInputTest(ImGuiNavInput_DpadDown, read_mode) || IsNavInputTest(ImGuiNavInput_KeyDown_, read_mode))) { g.NavMoveDir = ImGuiDir_Down; } - } - g.NavMoveClipDir = g.NavMoveDir; - } - else - { - // Forwarding previous request (which has been modified, e.g. wrap around menus rewrite the requests with a starting rectangle at the other side of the window) - // (Preserve g.NavMoveRequestFlags, g.NavMoveClipDir which were set by the NavMoveRequestForward() function) - IM_ASSERT(g.NavMoveDir != ImGuiDir_None && g.NavMoveClipDir != ImGuiDir_None); - IM_ASSERT(g.NavMoveRequestForward == ImGuiNavForward_ForwardQueued); - IMGUI_DEBUG_LOG_NAV("[nav] NavMoveRequestForward %d\n", g.NavMoveDir); - g.NavMoveRequestForward = ImGuiNavForward_ForwardActive; + if (g.NavNextActivateFlags & ImGuiActivateFlags_PreferInput) + g.NavActivateInputId = g.NavNextActivateId; + else + g.NavActivateId = g.NavActivateDownId = g.NavActivatePressedId = g.NavNextActivateId; + g.NavActivateFlags = g.NavNextActivateFlags; } + g.NavNextActivateId = 0; - // Update PageUp/PageDown/Home/End scroll - // FIXME-NAV: Consider enabling those keys even without the master ImGuiConfigFlags_NavEnableKeyboard flag? - float nav_scoring_rect_offset_y = 0.0f; - if (nav_keyboard_active) - nav_scoring_rect_offset_y = NavUpdatePageUpPageDown(); - - // If we initiate a movement request and have no current NavId, we initiate a InitDefautRequest that will be used as a fallback if the direction fails to find a match - if (g.NavMoveDir != ImGuiDir_None) - { - g.NavMoveRequest = true; - g.NavMoveRequestKeyMods = io.KeyMods; - g.NavMoveDirLast = g.NavMoveDir; - } - if (g.NavMoveRequest && g.NavId == 0) - { - IMGUI_DEBUG_LOG_NAV("[nav] NavInitRequest: from move, window \"%s\", layer=%d\n", g.NavWindow->Name, g.NavLayer); - g.NavInitRequest = g.NavInitRequestFromMove = true; - // Reassigning with same value, we're being explicit here. - g.NavInitResultId = 0; // -V1048 - g.NavDisableHighlight = false; - } + // Process move requests + NavUpdateCreateMoveRequest(); + if (g.NavMoveDir == ImGuiDir_None) + NavUpdateCreateTabbingRequest(); NavUpdateAnyRequestFlag(); + g.NavIdIsAlive = false; // Scrolling if (g.NavWindow && !(g.NavWindow->Flags & ImGuiWindowFlags_NoNavInputs) && !g.NavWindowingTarget) @@ -9317,12 +9700,13 @@ static void ImGui::NavUpdate() // *Fallback* manual-scroll with Nav directional keys when window has no navigable item ImGuiWindow* window = g.NavWindow; const float scroll_speed = IM_ROUND(window->CalcFontSize() * 100 * io.DeltaTime); // We need round the scrolling speed because sub-pixel scroll isn't reliably supported. - if (window->DC.NavLayersActiveMask == 0x00 && window->DC.NavHasScroll && g.NavMoveRequest) + const ImGuiDir move_dir = g.NavMoveDir; + if (window->DC.NavLayersActiveMask == 0x00 && window->DC.NavHasScroll && move_dir != ImGuiDir_None) { - if (g.NavMoveDir == ImGuiDir_Left || g.NavMoveDir == ImGuiDir_Right) - SetScrollX(window, ImFloor(window->Scroll.x + ((g.NavMoveDir == ImGuiDir_Left) ? -1.0f : +1.0f) * scroll_speed)); - if (g.NavMoveDir == ImGuiDir_Up || g.NavMoveDir == ImGuiDir_Down) - SetScrollY(window, ImFloor(window->Scroll.y + ((g.NavMoveDir == ImGuiDir_Up) ? -1.0f : +1.0f) * scroll_speed)); + if (move_dir == ImGuiDir_Left || move_dir == ImGuiDir_Right) + SetScrollX(window, ImFloor(window->Scroll.x + ((move_dir == ImGuiDir_Left) ? -1.0f : +1.0f) * scroll_speed)); + if (move_dir == ImGuiDir_Up || move_dir == ImGuiDir_Down) + SetScrollY(window, ImFloor(window->Scroll.y + ((move_dir == ImGuiDir_Up) ? -1.0f : +1.0f) * scroll_speed)); } // *Normal* Manual scroll with NavScrollXXX keys @@ -9334,48 +9718,35 @@ static void ImGui::NavUpdate() SetScrollY(window, ImFloor(window->Scroll.y + scroll_dir.y * scroll_speed)); } - // Reset search results - g.NavMoveResultLocal.Clear(); - g.NavMoveResultLocalVisibleSet.Clear(); - g.NavMoveResultOther.Clear(); + // Always prioritize mouse highlight if navigation is disabled + if (!nav_keyboard_active && !nav_gamepad_active) + { + g.NavDisableHighlight = true; + g.NavDisableMouseHover = set_mouse_pos = false; + } - // When using gamepad, we project the reference nav bounding box into window visible area. - // This is to allow resuming navigation inside the visible area after doing a large amount of scrolling, since with gamepad every movements are relative - // (can't focus a visible object like we can with the mouse). - if (g.NavMoveRequest && g.NavInputSource == ImGuiInputSource_Gamepad && g.NavLayer == ImGuiNavLayer_Main) + // Update mouse position if requested + // (This will take into account the possibility that a Scroll was queued in the window to offset our absolute mouse position before scroll has been applied) + if (set_mouse_pos && (io.ConfigFlags & ImGuiConfigFlags_NavEnableSetMousePos) && (io.BackendFlags & ImGuiBackendFlags_HasSetMousePos)) { - ImGuiWindow* window = g.NavWindow; - ImRect window_rect_rel(window->InnerRect.Min - window->Pos - ImVec2(1, 1), window->InnerRect.Max - window->Pos + ImVec2(1, 1)); - if (!window_rect_rel.Contains(window->NavRectRel[g.NavLayer])) - { - IMGUI_DEBUG_LOG_NAV("[nav] NavMoveRequest: clamp NavRectRel\n"); - float pad = window->CalcFontSize() * 0.5f; - window_rect_rel.Expand(ImVec2(-ImMin(window_rect_rel.GetWidth(), pad), -ImMin(window_rect_rel.GetHeight(), pad))); // Terrible approximation for the intent of starting navigation from first fully visible item - window->NavRectRel[g.NavLayer].ClipWithFull(window_rect_rel); - g.NavId = g.NavFocusScopeId = 0; - } + io.MousePos = io.MousePosPrev = NavCalcPreferredRefPos(); + io.WantSetMousePos = true; + //IMGUI_DEBUG_LOG("SetMousePos: (%.1f,%.1f)\n", io.MousePos.x, io.MousePos.y); } - // For scoring we use a single segment on the left side our current item bounding box (not touching the edge to avoid box overlap with zero-spaced items) - ImRect nav_rect_rel = g.NavWindow && !g.NavWindow->NavRectRel[g.NavLayer].IsInverted() ? g.NavWindow->NavRectRel[g.NavLayer] : ImRect(0, 0, 0, 0); - g.NavScoringRect = g.NavWindow ? ImRect(g.NavWindow->Pos + nav_rect_rel.Min, g.NavWindow->Pos + nav_rect_rel.Max) : ImRect(0, 0, 0, 0); - g.NavScoringRect.TranslateY(nav_scoring_rect_offset_y); - g.NavScoringRect.Min.x = ImMin(g.NavScoringRect.Min.x + 1.0f, g.NavScoringRect.Max.x); - g.NavScoringRect.Max.x = g.NavScoringRect.Min.x; - IM_ASSERT(!g.NavScoringRect.IsInverted()); // Ensure if we have a finite, non-inverted bounding box here will allows us to remove extraneous ImFabs() calls in NavScoreItem(). - //GetForegroundDrawList()->AddRect(g.NavScoringRectScreen.Min, g.NavScoringRectScreen.Max, IM_COL32(255,200,0,255)); // [DEBUG] - g.NavScoringCount = 0; + // [DEBUG] + g.NavScoringDebugCount = 0; #if IMGUI_DEBUG_NAV_RECTS if (g.NavWindow) { ImDrawList* draw_list = GetForegroundDrawList(g.NavWindow); - if (1) { for (int layer = 0; layer < 2; layer++) draw_list->AddRect(g.NavWindow->Pos + g.NavWindow->NavRectRel[layer].Min, g.NavWindow->Pos + g.NavWindow->NavRectRel[layer].Max, IM_COL32(255,200,0,255)); } // [DEBUG] + if (1) { for (int layer = 0; layer < 2; layer++) { ImRect r = WindowRectRelToAbs(g.NavWindow, g.NavWindow->NavRectRel[layer]); draw_list->AddRect(r.Min, r.Max, IM_COL32(255,200,0,255)); } } // [DEBUG] if (1) { ImU32 col = (!g.NavWindow->Hidden) ? IM_COL32(255,0,255,255) : IM_COL32(255,0,0,255); ImVec2 p = NavCalcPreferredRefPos(); char buf[32]; ImFormatString(buf, 32, "%d", g.NavLayer); draw_list->AddCircleFilled(p, 3.0f, col); draw_list->AddText(NULL, 13.0f, p + ImVec2(8,-4), col, buf); } } #endif } -static void ImGui::NavUpdateInitResult() +void ImGui::NavInitRequestApplyResult() { // In very rare cases g.NavWindow may be null (e.g. clearing focus after requesting an init request, which does happen when releasing Alt while clicking on void) ImGuiContext& g = *GImGui; @@ -9386,35 +9757,169 @@ static void ImGui::NavUpdateInitResult() // FIXME-NAV: On _NavFlattened windows, g.NavWindow will only be updated during subsequent frame. Not a problem currently. IMGUI_DEBUG_LOG_NAV("[nav] NavInitRequest: result NavID 0x%08X in Layer %d Window \"%s\"\n", g.NavInitResultId, g.NavLayer, g.NavWindow->Name); SetNavID(g.NavInitResultId, g.NavLayer, 0, g.NavInitResultRectRel); + g.NavIdIsAlive = true; // Mark as alive from previous frame as we got a result if (g.NavInitRequestFromMove) - { - g.NavDisableHighlight = false; - g.NavDisableMouseHover = g.NavMousePosDirty = true; - } + NavRestoreHighlightAfterMove(); } -// Apply result from previous frame navigation directional move request -static void ImGui::NavUpdateMoveResult() +void ImGui::NavUpdateCreateMoveRequest() { ImGuiContext& g = *GImGui; - if (g.NavMoveResultLocal.ID == 0 && g.NavMoveResultOther.ID == 0) + ImGuiIO& io = g.IO; + ImGuiWindow* window = g.NavWindow; + + if (g.NavMoveForwardToNextFrame && window != NULL) { - // In a situation when there is no results but NavId != 0, re-enable the Navigation highlight (because g.NavId is not considered as a possible result) - if (g.NavId != 0) + // Forwarding previous request (which has been modified, e.g. wrap around menus rewrite the requests with a starting rectangle at the other side of the window) + // (preserve most state, which were already set by the NavMoveRequestForward() function) + IM_ASSERT(g.NavMoveDir != ImGuiDir_None && g.NavMoveClipDir != ImGuiDir_None); + IM_ASSERT(g.NavMoveFlags & ImGuiNavMoveFlags_Forwarded); + IMGUI_DEBUG_LOG_NAV("[nav] NavMoveRequestForward %d\n", g.NavMoveDir); + } + else + { + // Initiate directional inputs request + g.NavMoveDir = ImGuiDir_None; + g.NavMoveFlags = ImGuiNavMoveFlags_None; + g.NavMoveScrollFlags = ImGuiScrollFlags_None; + if (window && !g.NavWindowingTarget && !(window->Flags & ImGuiWindowFlags_NoNavInputs)) { - g.NavDisableHighlight = false; - g.NavDisableMouseHover = true; + const ImGuiInputReadMode read_mode = ImGuiInputReadMode_Repeat; + if (!IsActiveIdUsingNavDir(ImGuiDir_Left) && (IsNavInputTest(ImGuiNavInput_DpadLeft, read_mode) || IsNavInputTest(ImGuiNavInput_KeyLeft_, read_mode))) { g.NavMoveDir = ImGuiDir_Left; } + if (!IsActiveIdUsingNavDir(ImGuiDir_Right) && (IsNavInputTest(ImGuiNavInput_DpadRight, read_mode) || IsNavInputTest(ImGuiNavInput_KeyRight_, read_mode))) { g.NavMoveDir = ImGuiDir_Right; } + if (!IsActiveIdUsingNavDir(ImGuiDir_Up) && (IsNavInputTest(ImGuiNavInput_DpadUp, read_mode) || IsNavInputTest(ImGuiNavInput_KeyUp_, read_mode))) { g.NavMoveDir = ImGuiDir_Up; } + if (!IsActiveIdUsingNavDir(ImGuiDir_Down) && (IsNavInputTest(ImGuiNavInput_DpadDown, read_mode) || IsNavInputTest(ImGuiNavInput_KeyDown_, read_mode))) { g.NavMoveDir = ImGuiDir_Down; } } - return; + g.NavMoveClipDir = g.NavMoveDir; + g.NavScoringNoClipRect = ImRect(+FLT_MAX, +FLT_MAX, -FLT_MAX, -FLT_MAX); + } + + // Update PageUp/PageDown/Home/End scroll + // FIXME-NAV: Consider enabling those keys even without the master ImGuiConfigFlags_NavEnableKeyboard flag? + const bool nav_keyboard_active = (io.ConfigFlags & ImGuiConfigFlags_NavEnableKeyboard) != 0; + float scoring_rect_offset_y = 0.0f; + if (window && g.NavMoveDir == ImGuiDir_None && nav_keyboard_active) + scoring_rect_offset_y = NavUpdatePageUpPageDown(); + if (scoring_rect_offset_y != 0.0f) + { + g.NavScoringNoClipRect = window->InnerRect; + g.NavScoringNoClipRect.TranslateY(scoring_rect_offset_y); + } + + // [DEBUG] Always send a request +#if IMGUI_DEBUG_NAV_SCORING + if (io.KeyCtrl && IsKeyPressedMap(ImGuiKey_C)) + g.NavMoveDirForDebug = (ImGuiDir)((g.NavMoveDirForDebug + 1) & 3); + if (io.KeyCtrl && g.NavMoveDir == ImGuiDir_None) + { + g.NavMoveDir = g.NavMoveDirForDebug; + g.NavMoveFlags |= ImGuiNavMoveFlags_DebugNoResult; + } +#endif + + // Submit + g.NavMoveForwardToNextFrame = false; + if (g.NavMoveDir != ImGuiDir_None) + NavMoveRequestSubmit(g.NavMoveDir, g.NavMoveClipDir, g.NavMoveFlags, g.NavMoveScrollFlags); + + // Moving with no reference triggers a init request (will be used as a fallback if the direction fails to find a match) + if (g.NavMoveSubmitted && g.NavId == 0) + { + IMGUI_DEBUG_LOG_NAV("[nav] NavInitRequest: from move, window \"%s\", layer=%d\n", g.NavWindow->Name, g.NavLayer); + g.NavInitRequest = g.NavInitRequestFromMove = true; + g.NavInitResultId = 0; + g.NavDisableHighlight = false; + } + + // When using gamepad, we project the reference nav bounding box into window visible area. + // This is to allow resuming navigation inside the visible area after doing a large amount of scrolling, since with gamepad every movements are relative + // (can't focus a visible object like we can with the mouse). + if (g.NavMoveSubmitted && g.NavInputSource == ImGuiInputSource_Gamepad && g.NavLayer == ImGuiNavLayer_Main && window != NULL) + { + ImRect window_rect_rel = WindowRectAbsToRel(window, ImRect(window->InnerRect.Min - ImVec2(1, 1), window->InnerRect.Max + ImVec2(1, 1))); + if (!window_rect_rel.Contains(window->NavRectRel[g.NavLayer])) + { + IMGUI_DEBUG_LOG_NAV("[nav] NavMoveRequest: clamp NavRectRel\n"); + float pad = window->CalcFontSize() * 0.5f; + window_rect_rel.Expand(ImVec2(-ImMin(window_rect_rel.GetWidth(), pad), -ImMin(window_rect_rel.GetHeight(), pad))); // Terrible approximation for the intent of starting navigation from first fully visible item + window->NavRectRel[g.NavLayer].ClipWithFull(window_rect_rel); + g.NavId = g.NavFocusScopeId = 0; + } + } + + // For scoring we use a single segment on the left side our current item bounding box (not touching the edge to avoid box overlap with zero-spaced items) + ImRect scoring_rect; + if (window != NULL) + { + ImRect nav_rect_rel = !window->NavRectRel[g.NavLayer].IsInverted() ? window->NavRectRel[g.NavLayer] : ImRect(0, 0, 0, 0); + scoring_rect = WindowRectRelToAbs(window, nav_rect_rel); + scoring_rect.TranslateY(scoring_rect_offset_y); + scoring_rect.Min.x = ImMin(scoring_rect.Min.x + 1.0f, scoring_rect.Max.x); + scoring_rect.Max.x = scoring_rect.Min.x; + IM_ASSERT(!scoring_rect.IsInverted()); // Ensure if we have a finite, non-inverted bounding box here will allows us to remove extraneous ImFabs() calls in NavScoreItem(). + //GetForegroundDrawList()->AddRect(scoring_rect.Min, scoring_rect.Max, IM_COL32(255,200,0,255)); // [DEBUG] + //if (!g.NavScoringNoClipRect.IsInverted()) { GetForegroundDrawList()->AddRect(g.NavScoringNoClipRect.Min, g.NavScoringNoClipRect.Max, IM_COL32(255, 200, 0, 255)); } // [DEBUG] } + g.NavScoringRect = scoring_rect; + g.NavScoringNoClipRect.Add(scoring_rect); +} + +void ImGui::NavUpdateCreateTabbingRequest() +{ + ImGuiContext& g = *GImGui; + ImGuiWindow* window = g.NavWindow; + IM_ASSERT(g.NavMoveDir == ImGuiDir_None); + if (window == NULL || g.NavWindowingTarget != NULL || (window->Flags & ImGuiWindowFlags_NoNavInputs)) + return; + + const bool tab_pressed = IsKeyPressedMap(ImGuiKey_Tab, true) && !IsActiveIdUsingKey(ImGuiKey_Tab) && !g.IO.KeyCtrl && !g.IO.KeyAlt; + if (!tab_pressed) + return; + + // Initiate tabbing request + // (this is ALWAYS ENABLED, regardless of ImGuiConfigFlags_NavEnableKeyboard flag!) + // Initially this was designed to use counters and modulo arithmetic, but that could not work with unsubmitted items (list clipper). Instead we use a strategy close to other move requests. + // See NavProcessItemForTabbingRequest() for a description of the various forward/backward tabbing cases with and without wrapping. + //// FIXME: We use (g.ActiveId == 0) but (g.NavDisableHighlight == false) might be righter once we can tab through anything + g.NavTabbingDir = g.IO.KeyShift ? -1 : (g.ActiveId == 0) ? 0 : +1; + ImGuiScrollFlags scroll_flags = window->Appearing ? ImGuiScrollFlags_KeepVisibleEdgeX | ImGuiScrollFlags_AlwaysCenterY : ImGuiScrollFlags_KeepVisibleEdgeX | ImGuiScrollFlags_KeepVisibleEdgeY; + ImGuiDir clip_dir = (g.NavTabbingDir < 0) ? ImGuiDir_Up : ImGuiDir_Down; + NavMoveRequestSubmit(ImGuiDir_None, clip_dir, ImGuiNavMoveFlags_Tabbing, scroll_flags); // FIXME-NAV: Once we refactor tabbing, add LegacyApi flag to not activate non-inputable. + g.NavTabbingResultFirst.Clear(); + g.NavTabbingCounter = -1; +} + +// Apply result from previous frame navigation directional move request. Always called from NavUpdate() +void ImGui::NavMoveRequestApplyResult() +{ + ImGuiContext& g = *GImGui; +#if IMGUI_DEBUG_NAV_SCORING + if (g.NavMoveFlags & ImGuiNavMoveFlags_DebugNoResult) // [DEBUG] Scoring all items in NavWindow at all times + return; +#endif // Select which result to use - ImGuiNavItemData* result = (g.NavMoveResultLocal.ID != 0) ? &g.NavMoveResultLocal : &g.NavMoveResultOther; + ImGuiNavItemData* result = (g.NavMoveResultLocal.ID != 0) ? &g.NavMoveResultLocal : (g.NavMoveResultOther.ID != 0) ? &g.NavMoveResultOther : NULL; + + // Tabbing forward wrap + if (g.NavMoveFlags & ImGuiNavMoveFlags_Tabbing) + if ((g.NavTabbingCounter == 1 || g.NavTabbingDir == 0) && g.NavTabbingResultFirst.ID) + result = &g.NavTabbingResultFirst; + + // In a situation when there is no results but NavId != 0, re-enable the Navigation highlight (because g.NavId is not considered as a possible result) + if (result == NULL) + { + if (g.NavMoveFlags & ImGuiNavMoveFlags_Tabbing) + g.NavMoveFlags |= ImGuiNavMoveFlags_DontSetNavHighlight; + if (g.NavId != 0 && (g.NavMoveFlags & ImGuiNavMoveFlags_DontSetNavHighlight) == 0) + NavRestoreHighlightAfterMove(); + return; + } // PageUp/PageDown behavior first jumps to the bottom/top mostly visible item, _otherwise_ use the result from the previous/next page. - if (g.NavMoveRequestFlags & ImGuiNavMoveFlags_AlsoScoreVisibleSet) - if (g.NavMoveResultLocalVisibleSet.ID != 0 && g.NavMoveResultLocalVisibleSet.ID != g.NavId) - result = &g.NavMoveResultLocalVisibleSet; + if (g.NavMoveFlags & ImGuiNavMoveFlags_AlsoScoreVisibleSet) + if (g.NavMoveResultLocalVisible.ID != 0 && g.NavMoveResultLocalVisible.ID != g.NavId) + result = &g.NavMoveResultLocalVisible; // Maybe entering a flattened child from the outside? In this case solve the tie using the regular scoring rules. if (result != &g.NavMoveResultOther && g.NavMoveResultOther.ID != 0 && g.NavMoveResultOther.Window->ParentWindow == g.NavWindow) @@ -9425,109 +9930,178 @@ static void ImGui::NavUpdateMoveResult() // Scroll to keep newly navigated item fully into view. if (g.NavLayer == ImGuiNavLayer_Main) { - ImVec2 delta_scroll; - if (g.NavMoveRequestFlags & ImGuiNavMoveFlags_ScrollToEdge) + if (g.NavMoveFlags & ImGuiNavMoveFlags_ScrollToEdgeY) { + // FIXME: Should remove this float scroll_target = (g.NavMoveDir == ImGuiDir_Up) ? result->Window->ScrollMax.y : 0.0f; - delta_scroll.y = result->Window->Scroll.y - scroll_target; SetScrollY(result->Window, scroll_target); } else { - ImRect rect_abs = ImRect(result->RectRel.Min + result->Window->Pos, result->RectRel.Max + result->Window->Pos); - delta_scroll = ScrollToBringRectIntoView(result->Window, rect_abs); + ImRect rect_abs = WindowRectRelToAbs(result->Window, result->RectRel); + ScrollToRectEx(result->Window, rect_abs, g.NavMoveScrollFlags); } - - // Offset our result position so mouse position can be applied immediately after in NavUpdate() - result->RectRel.TranslateX(-delta_scroll.x); - result->RectRel.TranslateY(-delta_scroll.y); } - ClearActiveID(); g.NavWindow = result->Window; + if (g.ActiveId != result->ID) + ClearActiveID(); if (g.NavId != result->ID) { // Don't set NavJustMovedToId if just landed on the same spot (which may happen with ImGuiNavMoveFlags_AllowCurrentNavId) g.NavJustMovedToId = result->ID; g.NavJustMovedToFocusScopeId = result->FocusScopeId; - g.NavJustMovedToKeyMods = g.NavMoveRequestKeyMods; + g.NavJustMovedToKeyMods = g.NavMoveKeyMods; } + + // Focus IMGUI_DEBUG_LOG_NAV("[nav] NavMoveRequest: result NavID 0x%08X in Layer %d Window \"%s\"\n", result->ID, g.NavLayer, g.NavWindow->Name); SetNavID(result->ID, g.NavLayer, result->FocusScopeId, result->RectRel); - g.NavDisableHighlight = false; - g.NavDisableMouseHover = g.NavMousePosDirty = true; + + // Tabbing: Activates Inputable or Focus non-Inputable + if ((g.NavMoveFlags & ImGuiNavMoveFlags_Tabbing) && (result->InFlags & ImGuiItemFlags_Inputable)) + { + g.NavNextActivateId = result->ID; + g.NavNextActivateFlags = ImGuiActivateFlags_PreferInput | ImGuiActivateFlags_TryToPreserveState; + g.NavMoveFlags |= ImGuiNavMoveFlags_DontSetNavHighlight; + } + + // Activate + if (g.NavMoveFlags & ImGuiNavMoveFlags_Activate) + { + g.NavNextActivateId = result->ID; + g.NavNextActivateFlags = ImGuiActivateFlags_None; + } + + // Enable nav highlight + if ((g.NavMoveFlags & ImGuiNavMoveFlags_DontSetNavHighlight) == 0) + NavRestoreHighlightAfterMove(); +} + +// Process NavCancel input (to close a popup, get back to parent, clear focus) +// FIXME: In order to support e.g. Escape to clear a selection we'll need: +// - either to store the equivalent of ActiveIdUsingKeyInputMask for a FocusScope and test for it. +// - either to move most/all of those tests to the epilogue/end functions of the scope they are dealing with (e.g. exit child window in EndChild()) or in EndFrame(), to allow an earlier intercept +static void ImGui::NavUpdateCancelRequest() +{ + ImGuiContext& g = *GImGui; + if (!IsNavInputTest(ImGuiNavInput_Cancel, ImGuiInputReadMode_Pressed)) + return; + + IMGUI_DEBUG_LOG_NAV("[nav] ImGuiNavInput_Cancel\n"); + if (g.ActiveId != 0) + { + if (!IsActiveIdUsingNavInput(ImGuiNavInput_Cancel)) + ClearActiveID(); + } + else if (g.NavLayer != ImGuiNavLayer_Main) + { + // Leave the "menu" layer + NavRestoreLayer(ImGuiNavLayer_Main); + NavRestoreHighlightAfterMove(); + } + else if (g.NavWindow && g.NavWindow != g.NavWindow->RootWindow && !(g.NavWindow->Flags & ImGuiWindowFlags_Popup) && g.NavWindow->ParentWindow) + { + // Exit child window + ImGuiWindow* child_window = g.NavWindow; + ImGuiWindow* parent_window = g.NavWindow->ParentWindow; + IM_ASSERT(child_window->ChildId != 0); + ImRect child_rect = child_window->Rect(); + FocusWindow(parent_window); + SetNavID(child_window->ChildId, ImGuiNavLayer_Main, 0, WindowRectAbsToRel(parent_window, child_rect)); + NavRestoreHighlightAfterMove(); + } + else if (g.OpenPopupStack.Size > 0) + { + // Close open popup/menu + if (!(g.OpenPopupStack.back().Window->Flags & ImGuiWindowFlags_Modal)) + ClosePopupToLevel(g.OpenPopupStack.Size - 1, true); + } + else + { + // Clear NavLastId for popups but keep it for regular child window so we can leave one and come back where we were + if (g.NavWindow && ((g.NavWindow->Flags & ImGuiWindowFlags_Popup) || !(g.NavWindow->Flags & ImGuiWindowFlags_ChildWindow))) + g.NavWindow->NavLastIds[0] = 0; + g.NavId = g.NavFocusScopeId = 0; + } } // Handle PageUp/PageDown/Home/End keys +// Called from NavUpdateCreateMoveRequest() which will use our output to create a move request +// FIXME-NAV: This doesn't work properly with NavFlattened siblings as we use NavWindow rectangle for reference +// FIXME-NAV: how to get Home/End to aim at the beginning/end of a 2D grid? static float ImGui::NavUpdatePageUpPageDown() { ImGuiContext& g = *GImGui; ImGuiIO& io = g.IO; - if (g.NavMoveDir != ImGuiDir_None || g.NavWindow == NULL) - return 0.0f; - if ((g.NavWindow->Flags & ImGuiWindowFlags_NoNavInputs) || g.NavWindowingTarget != NULL || g.NavLayer != ImGuiNavLayer_Main) + ImGuiWindow* window = g.NavWindow; + if ((window->Flags & ImGuiWindowFlags_NoNavInputs) || g.NavWindowingTarget != NULL) return 0.0f; - ImGuiWindow* window = g.NavWindow; const bool page_up_held = IsKeyDown(io.KeyMap[ImGuiKey_PageUp]) && !IsActiveIdUsingKey(ImGuiKey_PageUp); const bool page_down_held = IsKeyDown(io.KeyMap[ImGuiKey_PageDown]) && !IsActiveIdUsingKey(ImGuiKey_PageDown); const bool home_pressed = IsKeyPressed(io.KeyMap[ImGuiKey_Home]) && !IsActiveIdUsingKey(ImGuiKey_Home); const bool end_pressed = IsKeyPressed(io.KeyMap[ImGuiKey_End]) && !IsActiveIdUsingKey(ImGuiKey_End); - if (page_up_held != page_down_held || home_pressed != end_pressed) // If either (not both) are pressed + if (page_up_held == page_down_held && home_pressed == end_pressed) // Proceed if either (not both) are pressed, otherwise early out + return 0.0f; + + if (g.NavLayer != ImGuiNavLayer_Main) + NavRestoreLayer(ImGuiNavLayer_Main); + + if (window->DC.NavLayersActiveMask == 0x00 && window->DC.NavHasScroll) + { + // Fallback manual-scroll when window has no navigable item + if (IsKeyPressed(io.KeyMap[ImGuiKey_PageUp], true)) + SetScrollY(window, window->Scroll.y - window->InnerRect.GetHeight()); + else if (IsKeyPressed(io.KeyMap[ImGuiKey_PageDown], true)) + SetScrollY(window, window->Scroll.y + window->InnerRect.GetHeight()); + else if (home_pressed) + SetScrollY(window, 0.0f); + else if (end_pressed) + SetScrollY(window, window->ScrollMax.y); + } + else { - if (window->DC.NavLayersActiveMask == 0x00 && window->DC.NavHasScroll) + ImRect& nav_rect_rel = window->NavRectRel[g.NavLayer]; + const float page_offset_y = ImMax(0.0f, window->InnerRect.GetHeight() - window->CalcFontSize() * 1.0f + nav_rect_rel.GetHeight()); + float nav_scoring_rect_offset_y = 0.0f; + if (IsKeyPressed(io.KeyMap[ImGuiKey_PageUp], true)) { - // Fallback manual-scroll when window has no navigable item - if (IsKeyPressed(io.KeyMap[ImGuiKey_PageUp], true)) - SetScrollY(window, window->Scroll.y - window->InnerRect.GetHeight()); - else if (IsKeyPressed(io.KeyMap[ImGuiKey_PageDown], true)) - SetScrollY(window, window->Scroll.y + window->InnerRect.GetHeight()); - else if (home_pressed) - SetScrollY(window, 0.0f); - else if (end_pressed) - SetScrollY(window, window->ScrollMax.y); + nav_scoring_rect_offset_y = -page_offset_y; + g.NavMoveDir = ImGuiDir_Down; // Because our scoring rect is offset up, we request the down direction (so we can always land on the last item) + g.NavMoveClipDir = ImGuiDir_Up; + g.NavMoveFlags = ImGuiNavMoveFlags_AllowCurrentNavId | ImGuiNavMoveFlags_AlsoScoreVisibleSet; } - else + else if (IsKeyPressed(io.KeyMap[ImGuiKey_PageDown], true)) { - ImRect& nav_rect_rel = window->NavRectRel[g.NavLayer]; - const float page_offset_y = ImMax(0.0f, window->InnerRect.GetHeight() - window->CalcFontSize() * 1.0f + nav_rect_rel.GetHeight()); - float nav_scoring_rect_offset_y = 0.0f; - if (IsKeyPressed(io.KeyMap[ImGuiKey_PageUp], true)) - { - nav_scoring_rect_offset_y = -page_offset_y; - g.NavMoveDir = ImGuiDir_Down; // Because our scoring rect is offset up, we request the down direction (so we can always land on the last item) - g.NavMoveClipDir = ImGuiDir_Up; - g.NavMoveRequestFlags = ImGuiNavMoveFlags_AllowCurrentNavId | ImGuiNavMoveFlags_AlsoScoreVisibleSet; - } - else if (IsKeyPressed(io.KeyMap[ImGuiKey_PageDown], true)) - { - nav_scoring_rect_offset_y = +page_offset_y; - g.NavMoveDir = ImGuiDir_Up; // Because our scoring rect is offset down, we request the up direction (so we can always land on the last item) - g.NavMoveClipDir = ImGuiDir_Down; - g.NavMoveRequestFlags = ImGuiNavMoveFlags_AllowCurrentNavId | ImGuiNavMoveFlags_AlsoScoreVisibleSet; - } - else if (home_pressed) - { - // FIXME-NAV: handling of Home/End is assuming that the top/bottom most item will be visible with Scroll.y == 0/ScrollMax.y - // Scrolling will be handled via the ImGuiNavMoveFlags_ScrollToEdge flag, we don't scroll immediately to avoid scrolling happening before nav result. - // Preserve current horizontal position if we have any. - nav_rect_rel.Min.y = nav_rect_rel.Max.y = -window->Scroll.y; - if (nav_rect_rel.IsInverted()) - nav_rect_rel.Min.x = nav_rect_rel.Max.x = 0.0f; - g.NavMoveDir = ImGuiDir_Down; - g.NavMoveRequestFlags = ImGuiNavMoveFlags_AllowCurrentNavId | ImGuiNavMoveFlags_ScrollToEdge; - } - else if (end_pressed) - { - nav_rect_rel.Min.y = nav_rect_rel.Max.y = window->ScrollMax.y + window->SizeFull.y - window->Scroll.y; - if (nav_rect_rel.IsInverted()) - nav_rect_rel.Min.x = nav_rect_rel.Max.x = 0.0f; - g.NavMoveDir = ImGuiDir_Up; - g.NavMoveRequestFlags = ImGuiNavMoveFlags_AllowCurrentNavId | ImGuiNavMoveFlags_ScrollToEdge; - } - return nav_scoring_rect_offset_y; + nav_scoring_rect_offset_y = +page_offset_y; + g.NavMoveDir = ImGuiDir_Up; // Because our scoring rect is offset down, we request the up direction (so we can always land on the last item) + g.NavMoveClipDir = ImGuiDir_Down; + g.NavMoveFlags = ImGuiNavMoveFlags_AllowCurrentNavId | ImGuiNavMoveFlags_AlsoScoreVisibleSet; + } + else if (home_pressed) + { + // FIXME-NAV: handling of Home/End is assuming that the top/bottom most item will be visible with Scroll.y == 0/ScrollMax.y + // Scrolling will be handled via the ImGuiNavMoveFlags_ScrollToEdgeY flag, we don't scroll immediately to avoid scrolling happening before nav result. + // Preserve current horizontal position if we have any. + nav_rect_rel.Min.y = nav_rect_rel.Max.y = 0.0f; + if (nav_rect_rel.IsInverted()) + nav_rect_rel.Min.x = nav_rect_rel.Max.x = 0.0f; + g.NavMoveDir = ImGuiDir_Down; + g.NavMoveFlags = ImGuiNavMoveFlags_AllowCurrentNavId | ImGuiNavMoveFlags_ScrollToEdgeY; + // FIXME-NAV: MoveClipDir left to _None, intentional? + } + else if (end_pressed) + { + nav_rect_rel.Min.y = nav_rect_rel.Max.y = window->ContentSize.y; + if (nav_rect_rel.IsInverted()) + nav_rect_rel.Min.x = nav_rect_rel.Max.x = 0.0f; + g.NavMoveDir = ImGuiDir_Up; + g.NavMoveFlags = ImGuiNavMoveFlags_AllowCurrentNavId | ImGuiNavMoveFlags_ScrollToEdgeY; + // FIXME-NAV: MoveClipDir left to _None, intentional? } + return nav_scoring_rect_offset_y; } return 0.0f; } @@ -9541,57 +10115,66 @@ static void ImGui::NavEndFrame() NavUpdateWindowingOverlay(); // Perform wrap-around in menus - ImGuiWindow* window = g.NavWrapRequestWindow; - ImGuiNavMoveFlags move_flags = g.NavWrapRequestFlags; - if (window != NULL && g.NavWindow == window && NavMoveRequestButNoResultYet() && g.NavMoveRequestForward == ImGuiNavForward_None && g.NavLayer == ImGuiNavLayer_Main) - { - IM_ASSERT(move_flags != 0); // No points calling this with no wrapping - ImRect bb_rel = window->NavRectRel[0]; + // FIXME-NAV: Wrap may need to apply a weight bias on the other axis. e.g. 4x4 grid with 2 last items missing on last item won't handle LoopY/WrapY correctly. + // FIXME-NAV: Wrap (not Loop) support could be handled by the scoring function and then WrapX would function without an extra frame. + const ImGuiNavMoveFlags wanted_flags = ImGuiNavMoveFlags_WrapX | ImGuiNavMoveFlags_LoopX | ImGuiNavMoveFlags_WrapY | ImGuiNavMoveFlags_LoopY; + if (g.NavWindow && NavMoveRequestButNoResultYet() && (g.NavMoveFlags & wanted_flags) && (g.NavMoveFlags & ImGuiNavMoveFlags_Forwarded) == 0) + NavUpdateCreateWrappingRequest(); +} - ImGuiDir clip_dir = g.NavMoveDir; - if (g.NavMoveDir == ImGuiDir_Left && (move_flags & (ImGuiNavMoveFlags_WrapX | ImGuiNavMoveFlags_LoopX))) +static void ImGui::NavUpdateCreateWrappingRequest() +{ + ImGuiContext& g = *GImGui; + ImGuiWindow* window = g.NavWindow; + + bool do_forward = false; + ImRect bb_rel = window->NavRectRel[g.NavLayer]; + ImGuiDir clip_dir = g.NavMoveDir; + const ImGuiNavMoveFlags move_flags = g.NavMoveFlags; + if (g.NavMoveDir == ImGuiDir_Left && (move_flags & (ImGuiNavMoveFlags_WrapX | ImGuiNavMoveFlags_LoopX))) + { + bb_rel.Min.x = bb_rel.Max.x = window->ContentSize.x + window->WindowPadding.x; + if (move_flags & ImGuiNavMoveFlags_WrapX) { - bb_rel.Min.x = bb_rel.Max.x = - ImMax(window->SizeFull.x, window->ContentSize.x + window->WindowPadding.x * 2.0f) - window->Scroll.x; - if (move_flags & ImGuiNavMoveFlags_WrapX) - { - bb_rel.TranslateY(-bb_rel.GetHeight()); - clip_dir = ImGuiDir_Up; - } - NavMoveRequestForward(g.NavMoveDir, clip_dir, bb_rel, move_flags); + bb_rel.TranslateY(-bb_rel.GetHeight()); // Previous row + clip_dir = ImGuiDir_Up; } - if (g.NavMoveDir == ImGuiDir_Right && (move_flags & (ImGuiNavMoveFlags_WrapX | ImGuiNavMoveFlags_LoopX))) + do_forward = true; + } + if (g.NavMoveDir == ImGuiDir_Right && (move_flags & (ImGuiNavMoveFlags_WrapX | ImGuiNavMoveFlags_LoopX))) + { + bb_rel.Min.x = bb_rel.Max.x = -window->WindowPadding.x; + if (move_flags & ImGuiNavMoveFlags_WrapX) { - bb_rel.Min.x = bb_rel.Max.x = -window->Scroll.x; - if (move_flags & ImGuiNavMoveFlags_WrapX) - { - bb_rel.TranslateY(+bb_rel.GetHeight()); - clip_dir = ImGuiDir_Down; - } - NavMoveRequestForward(g.NavMoveDir, clip_dir, bb_rel, move_flags); + bb_rel.TranslateY(+bb_rel.GetHeight()); // Next row + clip_dir = ImGuiDir_Down; } - if (g.NavMoveDir == ImGuiDir_Up && (move_flags & (ImGuiNavMoveFlags_WrapY | ImGuiNavMoveFlags_LoopY))) + do_forward = true; + } + if (g.NavMoveDir == ImGuiDir_Up && (move_flags & (ImGuiNavMoveFlags_WrapY | ImGuiNavMoveFlags_LoopY))) + { + bb_rel.Min.y = bb_rel.Max.y = window->ContentSize.y + window->WindowPadding.y; + if (move_flags & ImGuiNavMoveFlags_WrapY) { - bb_rel.Min.y = bb_rel.Max.y = - ImMax(window->SizeFull.y, window->ContentSize.y + window->WindowPadding.y * 2.0f) - window->Scroll.y; - if (move_flags & ImGuiNavMoveFlags_WrapY) - { - bb_rel.TranslateX(-bb_rel.GetWidth()); - clip_dir = ImGuiDir_Left; - } - NavMoveRequestForward(g.NavMoveDir, clip_dir, bb_rel, move_flags); + bb_rel.TranslateX(-bb_rel.GetWidth()); // Previous column + clip_dir = ImGuiDir_Left; } - if (g.NavMoveDir == ImGuiDir_Down && (move_flags & (ImGuiNavMoveFlags_WrapY | ImGuiNavMoveFlags_LoopY))) + do_forward = true; + } + if (g.NavMoveDir == ImGuiDir_Down && (move_flags & (ImGuiNavMoveFlags_WrapY | ImGuiNavMoveFlags_LoopY))) + { + bb_rel.Min.y = bb_rel.Max.y = -window->WindowPadding.y; + if (move_flags & ImGuiNavMoveFlags_WrapY) { - bb_rel.Min.y = bb_rel.Max.y = -window->Scroll.y; - if (move_flags & ImGuiNavMoveFlags_WrapY) - { - bb_rel.TranslateX(+bb_rel.GetWidth()); - clip_dir = ImGuiDir_Right; - } - NavMoveRequestForward(g.NavMoveDir, clip_dir, bb_rel, move_flags); + bb_rel.TranslateX(+bb_rel.GetWidth()); // Next column + clip_dir = ImGuiDir_Right; } + do_forward = true; } + if (!do_forward) + return; + window->NavRectRel[g.NavLayer] = bb_rel; + NavMoveRequestForward(g.NavMoveDir, clip_dir, move_flags, g.NavMoveScrollFlags); } static int ImGui::FindWindowFocusIndex(ImGuiWindow* window) @@ -9599,6 +10182,7 @@ static int ImGui::FindWindowFocusIndex(ImGuiWindow* window) ImGuiContext& g = *GImGui; IM_UNUSED(g); int order = window->FocusOrder; + IM_ASSERT(window->RootWindow == window); // No child window (not testing _ChildWindow because of docking) IM_ASSERT(g.WindowsFocusOrder[order] == window); return order; } @@ -9652,9 +10236,9 @@ static void ImGui::NavUpdateWindowing() g.NavWindowingTargetAnim = NULL; } - // Start CTRL-TAB or Square+L/R window selection - bool start_windowing_with_gamepad = allow_windowing && !g.NavWindowingTarget && IsNavInputTest(ImGuiNavInput_Menu, ImGuiInputReadMode_Pressed); - bool start_windowing_with_keyboard = allow_windowing && !g.NavWindowingTarget && io.KeyCtrl && IsKeyPressedMap(ImGuiKey_Tab) && (io.ConfigFlags & ImGuiConfigFlags_NavEnableKeyboard); + // Start CTRL+Tab or Square+L/R window selection + const bool start_windowing_with_gamepad = allow_windowing && !g.NavWindowingTarget && IsNavInputTest(ImGuiNavInput_Menu, ImGuiInputReadMode_Pressed); + const bool start_windowing_with_keyboard = allow_windowing && !g.NavWindowingTarget && io.KeyCtrl && IsKeyPressedMap(ImGuiKey_Tab); if (start_windowing_with_gamepad || start_windowing_with_keyboard) if (ImGuiWindow* window = g.NavWindow ? g.NavWindow : FindWindowNavFocusable(g.WindowsFocusOrder.Size - 1, -INT_MAX, -1)) { @@ -9705,7 +10289,8 @@ static void ImGui::NavUpdateWindowing() // Keyboard: Press and Release ALT to toggle menu layer // - Testing that only Alt is tested prevents Alt+Shift or AltGR from toggling menu layer. // - AltGR is normally Alt+Ctrl but we can't reliably detect it (not all backends/systems/layout emit it as Alt+Ctrl). But even on keyboards without AltGR we don't want Alt+Ctrl to open menu anyway. - if (io.KeyMods == ImGuiKeyModFlags_Alt && (io.KeyModsPrev & ImGuiKeyModFlags_Alt) == 0) + const bool nav_keyboard_active = (io.ConfigFlags & ImGuiConfigFlags_NavEnableKeyboard) != 0; + if (nav_keyboard_active && io.KeyMods == ImGuiKeyModFlags_Alt && (io.KeyModsPrev & ImGuiKeyModFlags_Alt) == 0) { g.NavWindowingToggleLayer = true; g.NavInputSource = ImGuiInputSource_Keyboard; @@ -9733,7 +10318,7 @@ static void ImGui::NavUpdateWindowing() { ImVec2 move_delta; if (g.NavInputSource == ImGuiInputSource_Keyboard && !io.KeyShift) - move_delta = GetNavInputAmount2d(ImGuiNavDirSourceFlags_Keyboard, ImGuiInputReadMode_Down); + move_delta = GetNavInputAmount2d(ImGuiNavDirSourceFlags_RawKeyboard, ImGuiInputReadMode_Down); if (g.NavInputSource == ImGuiInputSource_Gamepad) move_delta = GetNavInputAmount2d(ImGuiNavDirSourceFlags_PadLStick, ImGuiInputReadMode_Down); if (move_delta.x != 0.0f || move_delta.y != 0.0f) @@ -9751,8 +10336,7 @@ static void ImGui::NavUpdateWindowing() if (apply_focus_window && (g.NavWindow == NULL || apply_focus_window != g.NavWindow->RootWindow)) { ClearActiveID(); - g.NavDisableHighlight = false; - g.NavDisableMouseHover = true; + NavRestoreHighlightAfterMove(); apply_focus_window = NavRestoreLastChildNavWindow(apply_focus_window); ClosePopupsOverWindow(apply_focus_window, false); FocusWindow(apply_focus_window); @@ -9790,14 +10374,17 @@ static void ImGui::NavUpdateWindowing() FocusWindow(new_nav_window); new_nav_window->NavLastChildNavWindow = old_nav_window; } - g.NavDisableHighlight = false; - g.NavDisableMouseHover = true; - // Reinitialize navigation when entering menu bar with the Alt key. + // Toggle layer const ImGuiNavLayer new_nav_layer = (g.NavWindow->DC.NavLayersActiveMask & (1 << ImGuiNavLayer_Menu)) ? (ImGuiNavLayer)((int)g.NavLayer ^ 1) : ImGuiNavLayer_Main; - if (new_nav_layer == ImGuiNavLayer_Menu) - g.NavWindow->NavLastIds[new_nav_layer] = 0; - NavRestoreLayer(new_nav_layer); + if (new_nav_layer != g.NavLayer) + { + // Reinitialize navigation when entering menu bar with the Alt key (FIXME: could be a properly of the layer?) + if (new_nav_layer == ImGuiNavLayer_Menu) + g.NavWindow->NavLastIds[new_nav_layer] = 0; + NavRestoreLayer(new_nav_layer); + NavRestoreHighlightAfterMove(); + } } } @@ -9890,31 +10477,29 @@ bool ImGui::BeginDragDropSource(ImGuiDragDropFlags flags) return false; if (g.ActiveIdMouseButton != -1) mouse_button = g.ActiveIdMouseButton; - if (g.IO.MouseDown[mouse_button] == false) + if (g.IO.MouseDown[mouse_button] == false || window->SkipItems) return false; g.ActiveIdAllowOverlap = false; } else { // Uncommon path: items without ID - if (g.IO.MouseDown[mouse_button] == false) + if (g.IO.MouseDown[mouse_button] == false || window->SkipItems) + return false; + if ((g.LastItemData.StatusFlags & ImGuiItemStatusFlags_HoveredRect) == 0 && (g.ActiveId == 0 || g.ActiveIdWindow != window)) return false; // If you want to use BeginDragDropSource() on an item with no unique identifier for interaction, such as Text() or Image(), you need to: - // A) Read the explanation below, B) Use the ImGuiDragDropFlags_SourceAllowNullID flag, C) Swallow your programmer pride. + // A) Read the explanation below, B) Use the ImGuiDragDropFlags_SourceAllowNullID flag. if (!(flags & ImGuiDragDropFlags_SourceAllowNullID)) { IM_ASSERT(0); return false; } - // Early out - if ((g.LastItemData.StatusFlags & ImGuiItemStatusFlags_HoveredRect) == 0 && (g.ActiveId == 0 || g.ActiveIdWindow != window)) - return false; - - // Magic fallback (=somehow reprehensible) to handle items with no assigned ID, e.g. Text(), Image() + // Magic fallback to handle items with no assigned ID, e.g. Text(), Image() // We build a throwaway ID based on current ID stack + relative AABB of items in window. - // THE IDENTIFIER WON'T SURVIVE ANY REPOSITIONING OF THE WIDGET, so if your widget moves your dragging operation will be canceled. + // THE IDENTIFIER WON'T SURVIVE ANY REPOSITIONING/RESIZINGG OF THE WIDGET, so if your widget moves your dragging operation will be canceled. // We don't need to maintain/call ClearActiveID() as releasing the button will early out this function and trigger !ActiveIdIsAlive. // Rely on keeping other window->LastItemXXX fields intact. source_id = g.LastItemData.ID = window->GetIDFromRectangle(g.LastItemData.Rect); @@ -10077,7 +10662,7 @@ bool ImGui::BeginDragDropTarget() if (!(g.LastItemData.StatusFlags & ImGuiItemStatusFlags_HoveredRect)) return false; ImGuiWindow* hovered_window = g.HoveredWindowUnderMovingWindow; - if (hovered_window == NULL || window->RootWindow != hovered_window->RootWindow) + if (hovered_window == NULL || window->RootWindow != hovered_window->RootWindow || window->SkipItems) return false; const ImRect& display_rect = (g.LastItemData.StatusFlags & ImGuiItemStatusFlags_HasDisplayRect) ? g.LastItemData.DisplayRect : g.LastItemData.Rect; @@ -10931,6 +11516,7 @@ static void ImeSetInputScreenPosFn_DefaultImpl(int, int) {} // - DebugNodeWindow() [Internal] // - DebugNodeWindowSettings() [Internal] // - DebugNodeWindowsList() [Internal] +// - DebugNodeWindowsListByBeginStackParent() [Internal] //----------------------------------------------------------------------------- #ifndef IMGUI_DISABLE_METRICS_WINDOW @@ -11006,22 +11592,23 @@ namespace ImGui { void ShowFontAtlas(ImFontAtlas* atlas); } void ImGui::ShowMetricsWindow(bool* p_open) { - if (!Begin("Dear ImGui Metrics/Debugger", p_open)) + ImGuiContext& g = *GImGui; + ImGuiIO& io = g.IO; + ImGuiMetricsConfig* cfg = &g.DebugMetricsConfig; + if (cfg->ShowStackTool) + ShowStackToolWindow(&cfg->ShowStackTool); + + if (!Begin("Dear ImGui Metrics/Debugger", p_open) || GetCurrentWindow()->BeginCount > 1) { End(); return; } - ImGuiContext& g = *GImGui; - ImGuiIO& io = g.IO; - ImGuiMetricsConfig* cfg = &g.DebugMetricsConfig; - // Basic info Text("Dear ImGui %s", GetVersion()); Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate); Text("%d vertices, %d indices (%d triangles)", io.MetricsRenderVertices, io.MetricsRenderIndices, io.MetricsRenderIndices / 3); - Text("%d active windows (%d visible)", io.MetricsActiveWindows, io.MetricsRenderWindows); - Text("%d active allocations", io.MetricsActiveAllocations); + Text("%d visible windows, %d active allocations", io.MetricsRenderWindows, io.MetricsActiveAllocations); //SameLine(); if (SmallButton("GC")) { g.GcCompactAll = true; } Separator(); @@ -11075,11 +11662,10 @@ void ImGui::ShowMetricsWindow(bool* p_open) // Tools if (TreeNode("Tools")) { - // The Item Picker tool is super useful to visually select an item and break into the call-stack of where it was submitted. - if (Button("Item Picker..")) - DebugStartItemPicker(); + // Stack Tool is your best friend! + Checkbox("Show stack tool", &cfg->ShowStackTool); SameLine(); - MetricsHelpMarker("Will call the IM_DEBUG_BREAK() macro to break in debugger.\nWarning: If you don't have a debugger attached, this will probably crash."); + MetricsHelpMarker("You can also call ImGui::ShowStackToolWindow() from your code."); Checkbox("Show windows begin order", &cfg->ShowWindowsBeginOrder); Checkbox("Show windows rectangles", &cfg->ShowWindowsRects); @@ -11097,8 +11683,6 @@ void ImGui::ShowMetricsWindow(bool* p_open) } Unindent(); } - Checkbox("Show ImDrawCmd mesh when hovering", &cfg->ShowDrawCmdMesh); - Checkbox("Show ImDrawCmd bounding boxes when hovering", &cfg->ShowDrawCmdBoundingBoxes); Checkbox("Show tables rectangles", &cfg->ShowTablesRects); SameLine(); @@ -11145,12 +11729,37 @@ void ImGui::ShowMetricsWindow(bool* p_open) } } + // The Item Picker tool is super useful to visually select an item and break into the call-stack of where it was submitted. + if (Button("Item Picker..")) + DebugStartItemPicker(); + SameLine(); + MetricsHelpMarker("Will call the IM_DEBUG_BREAK() macro to break in debugger.\nWarning: If you don't have a debugger attached, this will probably crash."); + TreePop(); } // Windows - DebugNodeWindowsList(&g.Windows, "Windows"); - //DebugNodeWindowsList(&g.WindowsFocusOrder, "WindowsFocusOrder"); + if (TreeNode("Windows", "Windows (%d)", g.Windows.Size)) + { + //SetNextItemOpen(true, ImGuiCond_Once); + DebugNodeWindowsList(&g.Windows, "By display order"); + DebugNodeWindowsList(&g.WindowsFocusOrder, "By focus order (root windows)"); + if (TreeNode("By submission order (begin stack)")) + { + // Here we display windows in their submitted order/hierarchy, however note that the Begin stack doesn't constitute a Parent<>Child relationship! + ImVector& temp_buffer = g.WindowsTempSortBuffer; + temp_buffer.resize(0); + for (int i = 0; i < g.Windows.Size; i++) + if (g.Windows[i]->LastFrameActive + 1 >= g.FrameCount) + temp_buffer.push_back(g.Windows[i]); + struct Func { static int IMGUI_CDECL WindowComparerByBeginOrder(const void* lhs, const void* rhs) { return ((int)(*(const ImGuiWindow* const *)lhs)->BeginOrderWithinContext - (*(const ImGuiWindow* const*)rhs)->BeginOrderWithinContext); } }; + ImQsort(temp_buffer.Data, (size_t)temp_buffer.Size, sizeof(ImGuiWindow*), Func::WindowComparerByBeginOrder); + DebugNodeWindowsListByBeginStackParent(temp_buffer.Data, temp_buffer.Size, NULL); + TreePop(); + } + + TreePop(); + } // DrawLists int drawlist_count = 0; @@ -11158,6 +11767,8 @@ void ImGui::ShowMetricsWindow(bool* p_open) drawlist_count += g.Viewports[viewport_i]->DrawDataBuilder.GetDrawListCount(); if (TreeNode("DrawLists", "DrawLists (%d)", drawlist_count)) { + Checkbox("Show ImDrawCmd mesh when hovering", &cfg->ShowDrawCmdMesh); + Checkbox("Show ImDrawCmd bounding boxes when hovering", &cfg->ShowDrawCmdBoundingBoxes); for (int viewport_i = 0; viewport_i < g.Viewports.Size; viewport_i++) { ImGuiViewportP* viewport = g.Viewports[viewport_i]; @@ -11306,7 +11917,8 @@ void ImGui::ShowMetricsWindow(bool* p_open) Text("NavId: 0x%08X, NavLayer: %d", g.NavId, g.NavLayer); Text("NavInputSource: %s", input_source_names[g.NavInputSource]); Text("NavActive: %d, NavVisible: %d", g.IO.NavActive, g.IO.NavVisible); - Text("NavActivateId: 0x%08X, NavInputId: 0x%08X", g.NavActivateId, g.NavInputId); + Text("NavActivateId/DownId/PressedId/InputId: %08X/%08X/%08X/%08X", g.NavActivateId, g.NavActivateDownId, g.NavActivatePressedId, g.NavActivateInputId); + Text("NavActivateFlags: %04X", g.NavActivateFlags); Text("NavDisableHighlight: %d, NavDisableMouseHover: %d", g.NavDisableHighlight, g.NavDisableMouseHover); Text("NavFocusScopeId = 0x%08X", g.NavFocusScopeId); Text("NavWindowingTarget: '%s'", g.NavWindowingTarget ? g.NavWindowingTarget->Name : "NULL"); @@ -11426,7 +12038,7 @@ void ImGui::DebugNodeDrawList(ImGuiWindow* window, const ImDrawList* draw_list, } ImDrawList* fg_draw_list = GetForegroundDrawList(window); // Render additional visuals into the top-most draw list - if (window && IsItemHovered()) + if (window && IsItemHovered() && fg_draw_list) fg_draw_list->AddRect(window->Pos, window->Pos + window->Size, IM_COL32(255, 255, 0, 255)); if (!node_open) return; @@ -11771,7 +12383,6 @@ void ImGui::DebugNodeWindowsList(ImVector* windows, const char* la { if (!TreeNode(label, "%s (%d)", label, windows->Size)) return; - Text("(In front-to-back order:)"); for (int i = windows->Size - 1; i >= 0; i--) // Iterate front to back { PushID((*windows)[i]); @@ -11781,6 +12392,206 @@ void ImGui::DebugNodeWindowsList(ImVector* windows, const char* la TreePop(); } +// FIXME-OPT: This is technically suboptimal, but it is simpler this way. +void ImGui::DebugNodeWindowsListByBeginStackParent(ImGuiWindow** windows, int windows_size, ImGuiWindow* parent_in_begin_stack) +{ + for (int i = 0; i < windows_size; i++) + { + ImGuiWindow* window = windows[i]; + if (window->ParentWindowInBeginStack != parent_in_begin_stack) + continue; + char buf[20]; + ImFormatString(buf, IM_ARRAYSIZE(buf), "[%04d] Window", window->BeginOrderWithinContext); + //BulletText("[%04d] Window '%s'", window->BeginOrderWithinContext, window->Name); + DebugNodeWindow(window, buf); + Indent(); + DebugNodeWindowsListByBeginStackParent(windows + i + 1, windows_size - i - 1, window); + Unindent(); + } +} + +//----------------------------------------------------------------------------- +// [SECTION] OTHER DEBUG TOOLS (ITEM PICKER, STACK TOOL) +//----------------------------------------------------------------------------- + +// [DEBUG] Item picker tool - start with DebugStartItemPicker() - useful to visually select an item and break into its call-stack. +void ImGui::UpdateDebugToolItemPicker() +{ + ImGuiContext& g = *GImGui; + g.DebugItemPickerBreakId = 0; + if (!g.DebugItemPickerActive) + return; + + const ImGuiID hovered_id = g.HoveredIdPreviousFrame; + SetMouseCursor(ImGuiMouseCursor_Hand); + if (IsKeyPressedMap(ImGuiKey_Escape)) + g.DebugItemPickerActive = false; + if (IsMouseClicked(0) && hovered_id) + { + g.DebugItemPickerBreakId = hovered_id; + g.DebugItemPickerActive = false; + } + SetNextWindowBgAlpha(0.60f); + BeginTooltip(); + Text("HoveredId: 0x%08X", hovered_id); + Text("Press ESC to abort picking."); + TextColored(GetStyleColorVec4(hovered_id ? ImGuiCol_Text : ImGuiCol_TextDisabled), "Click to break in debugger!"); + EndTooltip(); +} + +// [DEBUG] Stack Tool: update queries. Called by NewFrame() +void ImGui::UpdateDebugToolStackQueries() +{ + ImGuiContext& g = *GImGui; + ImGuiStackTool* tool = &g.DebugStackTool; + + // Clear hook when stack tool is not visible + g.DebugHookIdInfo = 0; + if (g.FrameCount != tool->LastActiveFrame + 1) + return; + + // Update queries. The steps are: -1: query Stack, >= 0: query each stack item + // We can only perform 1 ID Info query every frame. This is designed so the GetID() tests are cheap and constant-time + const ImGuiID query_id = g.HoveredIdPreviousFrame ? g.HoveredIdPreviousFrame : g.ActiveId; + if (tool->QueryId != query_id) + { + tool->QueryId = query_id; + tool->StackLevel = -1; + tool->Results.resize(0); + } + if (query_id == 0) + return; + + // Advance to next stack level when we got our result, or after 2 frames (in case we never get a result) + int stack_level = tool->StackLevel; + if (stack_level >= 0 && stack_level < tool->Results.Size) + if (tool->Results[stack_level].QuerySuccess || tool->Results[stack_level].QueryFrameCount > 2) + tool->StackLevel++; + + // Update hook + stack_level = tool->StackLevel; + if (stack_level == -1) + g.DebugHookIdInfo = query_id; + if (stack_level >= 0 && stack_level < tool->Results.Size) + { + g.DebugHookIdInfo = tool->Results[stack_level].ID; + tool->Results[stack_level].QueryFrameCount++; + } +} + +// [DEBUG] Stack tool: hooks called by GetID() family functions +void ImGui::DebugHookIdInfo(ImGuiID id, ImGuiDataType data_type, const void* data_id, const void* data_id_end) +{ + ImGuiContext& g = *GImGui; + ImGuiWindow* window = g.CurrentWindow; + ImGuiStackTool* tool = &g.DebugStackTool; + + // Step 0: stack query + // This assume that the ID was computed with the current ID stack, which tends to be the case for our widget. + if (tool->StackLevel == -1) + { + tool->StackLevel++; + tool->Results.resize(window->IDStack.Size + 1, ImGuiStackLevelInfo()); + for (int n = 0; n < window->IDStack.Size + 1; n++) + tool->Results[n].ID = (n < window->IDStack.Size) ? window->IDStack[n] : id; + return; + } + + // Step 1+: query for individual level + IM_ASSERT(tool->StackLevel >= 0); + if (tool->StackLevel != window->IDStack.Size) + return; + ImGuiStackLevelInfo* info = &tool->Results[tool->StackLevel]; + IM_ASSERT(info->ID == id && info->QueryFrameCount > 0); + + int data_len; + switch (data_type) + { + case ImGuiDataType_S32: + ImFormatString(info->Desc, IM_ARRAYSIZE(info->Desc), "%d", (int)(intptr_t)data_id); + break; + case ImGuiDataType_String: + data_len = data_id_end ? (int)((const char*)data_id_end - (const char*)data_id) : (int)strlen((const char*)data_id); + ImFormatString(info->Desc, IM_ARRAYSIZE(info->Desc), "\"%.*s\"", data_len, (const char*)data_id); + break; + case ImGuiDataType_Pointer: + ImFormatString(info->Desc, IM_ARRAYSIZE(info->Desc), "(void*)0x%p", data_id); + break; + case ImGuiDataType_ID: + if (info->Desc[0] == 0) // PushOverrideID() is often used to avoid hashing twice, which would lead to 2 calls to DebugHookIdInfo(). We prioritize the first one. + ImFormatString(info->Desc, IM_ARRAYSIZE(info->Desc), "0x%08X [override]", id); + break; + default: + IM_ASSERT(0); + } + info->QuerySuccess = true; +} + +// Stack Tool: Display UI +void ImGui::ShowStackToolWindow(bool* p_open) +{ + ImGuiContext& g = *GImGui; + if (!(g.NextWindowData.Flags & ImGuiNextWindowDataFlags_HasSize)) + SetNextWindowSize(ImVec2(0.0f, GetFontSize() * 8.0f), ImGuiCond_FirstUseEver); + if (!Begin("Dear ImGui Stack Tool", p_open) || GetCurrentWindow()->BeginCount > 1) + { + End(); + return; + } + + // Display hovered/active status + const ImGuiID hovered_id = g.HoveredIdPreviousFrame; + const ImGuiID active_id = g.ActiveId; +#ifdef IMGUI_ENABLE_TEST_ENGINE + Text("HoveredId: 0x%08X (\"%s\"), ActiveId: 0x%08X (\"%s\")", hovered_id, hovered_id ? ImGuiTestEngine_FindItemDebugLabel(&g, hovered_id) : "", active_id, active_id ? ImGuiTestEngine_FindItemDebugLabel(&g, active_id) : ""); +#else + Text("HoveredId: 0x%08X, ActiveId: 0x%08X", hovered_id, active_id); +#endif + SameLine(); + MetricsHelpMarker("Hover an item with the mouse to display elements of the ID Stack leading to the item's final ID.\nEach level of the stack correspond to a PushID() call.\nAll levels of the stack are hashed together to make the final ID of a widget (ID displayed at the bottom level of the stack).\nRead FAQ entry about the ID stack for details."); + + // Display decorated stack + ImGuiStackTool* tool = &g.DebugStackTool; + tool->LastActiveFrame = g.FrameCount; + if (tool->Results.Size > 0 && BeginTable("##table", 3, ImGuiTableFlags_Borders)) + { + const float id_width = CalcTextSize("0xDDDDDDDD").x; + TableSetupColumn("Seed", ImGuiTableColumnFlags_WidthFixed, id_width); + TableSetupColumn("PushID", ImGuiTableColumnFlags_WidthStretch); + TableSetupColumn("Result", ImGuiTableColumnFlags_WidthFixed, id_width); + TableHeadersRow(); + for (int n = 0; n < tool->Results.Size; n++) + { + ImGuiStackLevelInfo* info = &tool->Results[n]; + TableNextColumn(); + Text("0x%08X", (n > 0) ? tool->Results[n - 1].ID : 0); + + TableNextColumn(); + ImGuiWindow* window = (info->Desc[0] == 0 && n == 0) ? FindWindowByID(info->ID) : NULL; + if (window) // Source: window name (because the root ID don't call GetID() and so doesn't get hooked) + Text("\"%s\" [window]", window->Name); + else if (info->QuerySuccess) // Source: GetID() hooks (prioritize over ItemInfo() because we frequently use patterns like: PushID(str), Button("") where they both have same id) + TextUnformatted(info->Desc); + else if (tool->StackLevel >= tool->Results.Size) // Only start using fallback below when all queries are done, so during queries we don't flickering ??? markers. + { +#ifdef IMGUI_ENABLE_TEST_ENGINE + if (const char* label = ImGuiTestEngine_FindItemDebugLabel(&g, info->ID)) // Source: ImGuiTestEngine's ItemInfo() + Text("??? \"%s\"", label); + else +#endif + TextUnformatted("???"); + } + + TableNextColumn(); + Text("0x%08X", info->ID); + if (n == tool->Results.Size - 1) + TableSetBgColor(ImGuiTableBgTarget_CellBg, GetColorU32(ImGuiCol_Header)); + } + EndTable(); + } + End(); +} + #else void ImGui::ShowMetricsWindow(bool*) {} @@ -11796,7 +12607,12 @@ void ImGui::DebugNodeWindowSettings(ImGuiWindowSettings*) {} void ImGui::DebugNodeWindowsList(ImVector*, const char*) {} void ImGui::DebugNodeViewport(ImGuiViewportP*) {} -#endif +void ImGui::ShowStackToolWindow(bool*) {} +void ImGui::DebugHookIdInfo(ImGuiID, ImGuiDataType, const void*, const void*) {} +void ImGui::UpdateDebugToolItemPicker() {} +void ImGui::UpdateDebugToolStackQueries() {} + +#endif // #ifndef IMGUI_DISABLE_METRICS_WINDOW //----------------------------------------------------------------------------- diff --git a/imgui-sys/third-party/imgui-master/imgui/imgui.h b/imgui-sys/third-party/imgui-master/imgui/imgui.h index b56cb8524..e986e6c0f 100644 --- a/imgui-sys/third-party/imgui-master/imgui/imgui.h +++ b/imgui-sys/third-party/imgui-master/imgui/imgui.h @@ -1,4 +1,4 @@ -// dear imgui, v1.84 +// dear imgui, v1.86 // (headers) // Help: @@ -15,7 +15,10 @@ // - Wiki https://github.com/ocornut/imgui/wiki (lots of good stuff there) // - Glossary https://github.com/ocornut/imgui/wiki/Glossary // - Issues & support https://github.com/ocornut/imgui/issues -// - Discussions https://github.com/ocornut/imgui/discussions + +// Getting Started? +// - For first-time users having issues compiling/linking/running or issues loading fonts: +// please post in https://github.com/ocornut/imgui/discussions if you cannot find a solution in resources above. /* @@ -60,8 +63,8 @@ Index of this file: // Version // (Integer encoded as XYYZZ for use in #if preprocessor conditionals. Work in progress versions typically starts at XYY99 then bounce up to XYY00, XYY01 etc. when release tagging happens) -#define IMGUI_VERSION "1.84.2" -#define IMGUI_VERSION_NUM 18405 +#define IMGUI_VERSION "1.86" +#define IMGUI_VERSION_NUM 18600 #define IMGUI_CHECKVERSION() ImGui::DebugCheckVersionAndDataLayout(IMGUI_VERSION, sizeof(ImGuiIO), sizeof(ImGuiStyle), sizeof(ImVec2), sizeof(ImVec4), sizeof(ImDrawVert), sizeof(ImDrawIdx)) #define IMGUI_HAS_TABLE @@ -89,7 +92,7 @@ Index of this file: #endif // Helper Macros - IM_FMTARGS, IM_FMTLIST: Apply printf-style warnings to our formatting functions. -#if !defined(IMGUI_USE_STB_SPRINTF) && defined(__MINGW32__) +#if !defined(IMGUI_USE_STB_SPRINTF) && defined(__MINGW32__) && !defined(__clang__) #define IM_FMTARGS(FMT) __attribute__((format(gnu_printf, FMT, FMT+1))) #define IM_FMTLIST(FMT) __attribute__((format(gnu_printf, FMT, 0))) #elif !defined(IMGUI_USE_STB_SPRINTF) && (defined(__clang__) || defined(__GNUC__)) @@ -149,7 +152,7 @@ struct ImGuiContext; // Dear ImGui context (opaque structure, unl struct ImGuiIO; // Main configuration and I/O between your application and ImGui struct ImGuiInputTextCallbackData; // Shared state of InputText() when using custom ImGuiInputTextCallback (rare/advanced use) struct ImGuiListClipper; // Helper to manually clip large list of items -struct ImGuiOnceUponAFrame; // Helper for running a block of code not more than once a frame, used by IMGUI_ONCE_UPON_A_FRAME macro +struct ImGuiOnceUponAFrame; // Helper for running a block of code not more than once a frame struct ImGuiPayload; // User data payload for drag and drop operations struct ImGuiSizeCallbackData; // Callback data when using SetNextWindowSizeConstraints() (rare/advanced use) struct ImGuiStorage; // Helper for key->value storage @@ -304,6 +307,7 @@ namespace ImGui // Demo, Debug, Information IMGUI_API void ShowDemoWindow(bool* p_open = NULL); // create Demo window. demonstrate most ImGui features. call this to learn about the library! try to make it always available in your application! IMGUI_API void ShowMetricsWindow(bool* p_open = NULL); // create Metrics/Debugger window. display Dear ImGui internals: windows, draw commands, various internal state, etc. + IMGUI_API void ShowStackToolWindow(bool* p_open = NULL); // create Stack Tool window. hover items with mouse to query information about the source of their unique ID. IMGUI_API void ShowAboutWindow(bool* p_open = NULL); // create About window. display Dear ImGui version, credits and build/system information. IMGUI_API void ShowStyleEditor(ImGuiStyle* ref = NULL); // add style editor block (not a window). you can pass in a reference ImGuiStyle structure to compare to, revert to and save to (else it uses the default style) IMGUI_API bool ShowStyleSelector(const char* label); // add style selector block (not a window), essentially a combo listing the default styles. @@ -379,9 +383,8 @@ namespace ImGui // - Those functions are bound to be redesigned (they are confusing, incomplete and the Min/Max return values are in local window coordinates which increases confusion) IMGUI_API ImVec2 GetContentRegionAvail(); // == GetContentRegionMax() - GetCursorPos() IMGUI_API ImVec2 GetContentRegionMax(); // current content boundaries (typically window boundaries including scrolling, or current column boundaries), in windows coordinates - IMGUI_API ImVec2 GetWindowContentRegionMin(); // content boundaries min (roughly (0,0)-Scroll), in window coordinates - IMGUI_API ImVec2 GetWindowContentRegionMax(); // content boundaries max (roughly (0,0)+Size-Scroll) where Size can be override with SetNextWindowContentSize(), in window coordinates - IMGUI_API float GetWindowContentRegionWidth(); // + IMGUI_API ImVec2 GetWindowContentRegionMin(); // content boundaries min for the full window (roughly (0,0)-Scroll), in window coordinates + IMGUI_API ImVec2 GetWindowContentRegionMax(); // content boundaries max for the full window (roughly (0,0)+Size-Scroll) where Size can be override with SetNextWindowContentSize(), in window coordinates // Windows Scrolling IMGUI_API float GetScrollX(); // get scrolling amount [0 .. GetScrollMaxX()] @@ -520,12 +523,12 @@ namespace ImGui IMGUI_API bool Combo(const char* label, int* current_item, bool(*items_getter)(void* data, int idx, const char** out_text), void* data, int items_count, int popup_max_height_in_items = -1); // Widgets: Drag Sliders - // - CTRL+Click on any drag box to turn them into an input box. Manually input values aren't clamped and can go off-bounds. + // - CTRL+Click on any drag box to turn them into an input box. Manually input values aren't clamped by default and can go off-bounds. Use ImGuiSliderFlags_AlwaysClamp to always clamp. // - For all the Float2/Float3/Float4/Int2/Int3/Int4 versions of every functions, note that a 'float v[X]' function argument is the same as 'float* v', the array syntax is just a way to document the number of elements that are expected to be accessible. You can pass address of your first element out of a contiguous set, e.g. &myvector.x // - Adjust format string to decorate the value with a prefix, a suffix, or adapt the editing and display precision e.g. "%.3f" -> 1.234; "%5.2f secs" -> 01.23 secs; "Biscuit: %.0f" -> Biscuit: 1; etc. // - Format string may also be set to NULL or use the default format ("%f" or "%d"). // - Speed are per-pixel of mouse movement (v_speed=0.2f: mouse needs to move by 5 pixels to increase value by 1). For gamepad/keyboard navigation, minimum speed is Max(v_speed, minimum_step_at_given_precision). - // - Use v_min < v_max to clamp edits to given limits. Note that CTRL+Click manual input can override those limits. + // - Use v_min < v_max to clamp edits to given limits. Note that CTRL+Click manual input can override those limits if ImGuiSliderFlags_AlwaysClamp is not used. // - Use v_max = FLT_MAX / INT_MAX etc to avoid clamping to a maximum, same with v_min = -FLT_MAX / INT_MIN to avoid clamping to a minimum. // - We use the same sets of flags for DragXXX() and SliderXXX() functions as the features are the same and it makes it easier to swap them. // - Legacy: Pre-1.78 there are DragXXX() function signatures that takes a final `float power=1.0f' argument instead of the `ImGuiSliderFlags flags=0' argument. @@ -544,7 +547,7 @@ namespace ImGui IMGUI_API bool DragScalarN(const char* label, ImGuiDataType data_type, void* p_data, int components, float v_speed = 1.0f, const void* p_min = NULL, const void* p_max = NULL, const char* format = NULL, ImGuiSliderFlags flags = 0); // Widgets: Regular Sliders - // - CTRL+Click on any slider to turn them into an input box. Manually input values aren't clamped and can go off-bounds. + // - CTRL+Click on any slider to turn them into an input box. Manually input values aren't clamped by default and can go off-bounds. Use ImGuiSliderFlags_AlwaysClamp to always clamp. // - Adjust format string to decorate the value with a prefix, a suffix, or adapt the editing and display precision e.g. "%.3f" -> 1.234; "%5.2f secs" -> 01.23 secs; "Biscuit: %.0f" -> Biscuit: 1; etc. // - Format string may also be set to NULL or use the default format ("%f" or "%d"). // - Legacy: Pre-1.78 there are SliderXXX() function signatures that takes a final `float power=1.0f' argument instead of the `ImGuiSliderFlags flags=0' argument. @@ -813,6 +816,7 @@ namespace ImGui // Disabling [BETA API] // - Disable all user interactions and dim items visuals (applying style.DisabledAlpha over current colors) + // - Those can be nested but it cannot be used to enable an already disabled section (a single BeginDisabled(true) in the stack is enough to keep everything disabled) // - BeginDisabled(false) essentially does nothing useful but is provided to facilitate use of boolean expressions. If you can avoid calling BeginDisabled(False)/EndDisabled() best to avoid it. IMGUI_API void BeginDisabled(bool disabled = true); IMGUI_API void EndDisabled(); @@ -865,7 +869,6 @@ namespace ImGui IMGUI_API const char* GetStyleColorName(ImGuiCol idx); // get a string corresponding to the enum value (for display, saving, etc.). IMGUI_API void SetStateStorage(ImGuiStorage* storage); // replace current window storage with our own (if you want to manipulate it yourself, typically clear subsection of it) IMGUI_API ImGuiStorage* GetStateStorage(); - IMGUI_API void CalcListClipping(int items_count, float items_height, int* out_items_display_start, int* out_items_display_end); // calculate coarse clipping for large list of evenly sized items. Prefer using the ImGuiListClipper higher-level helper if you can. IMGUI_API bool BeginChildFrame(ImGuiID id, const ImVec2& size, ImGuiWindowFlags flags = 0); // helper to create a child window / scrolling region that looks like a normal widget frame IMGUI_API void EndChildFrame(); // always call EndChildFrame() regardless of BeginChildFrame() return values (which indicates a collapsed/clipped window) @@ -893,9 +896,10 @@ namespace ImGui // - You can also use regular integer: it is forever guaranteed that 0=Left, 1=Right, 2=Middle. // - Dragging operations are only reported after mouse has moved a certain distance away from the initial clicking position (see 'lock_threshold' and 'io.MouseDraggingThreshold') IMGUI_API bool IsMouseDown(ImGuiMouseButton button); // is mouse button held? - IMGUI_API bool IsMouseClicked(ImGuiMouseButton button, bool repeat = false); // did mouse button clicked? (went from !Down to Down) + IMGUI_API bool IsMouseClicked(ImGuiMouseButton button, bool repeat = false); // did mouse button clicked? (went from !Down to Down). Same as GetMouseClickedCount() == 1. IMGUI_API bool IsMouseReleased(ImGuiMouseButton button); // did mouse button released? (went from Down to !Down) - IMGUI_API bool IsMouseDoubleClicked(ImGuiMouseButton button); // did mouse button double-clicked? (note that a double-click will also report IsMouseClicked() == true) + IMGUI_API bool IsMouseDoubleClicked(ImGuiMouseButton button); // did mouse button double-clicked? Same as GetMouseClickedCount() == 2. (note that a double-click will also report IsMouseClicked() == true) + IMGUI_API int GetMouseClickedCount(ImGuiMouseButton button); // return the number of successive mouse-clicks at the time where a click happen (otherwise 0). IMGUI_API bool IsMouseHoveringRect(const ImVec2& r_min, const ImVec2& r_max, bool clip = true);// is mouse hovering given bounding rect (in screen space). clipped by current clipping settings, but disregarding of other consideration of focus/window ordering/popup-block. IMGUI_API bool IsMousePosValid(const ImVec2* mouse_pos = NULL); // by convention we use (-FLT_MAX,-FLT_MAX) to denote that there is no mouse available IMGUI_API bool IsAnyMouseDown(); // is any mouse button held? @@ -950,7 +954,7 @@ enum ImGuiWindowFlags_ ImGuiWindowFlags_NoMove = 1 << 2, // Disable user moving the window ImGuiWindowFlags_NoScrollbar = 1 << 3, // Disable scrollbars (window can still scroll with mouse or programmatically) ImGuiWindowFlags_NoScrollWithMouse = 1 << 4, // Disable user vertically scrolling with mouse wheel. On child window, mouse wheel will be forwarded to the parent unless NoScrollbar is also set. - ImGuiWindowFlags_NoCollapse = 1 << 5, // Disable user collapsing window by double-clicking on it + ImGuiWindowFlags_NoCollapse = 1 << 5, // Disable user collapsing window by double-clicking on it. Also referred to as Window Menu Button (e.g. within a docking node). ImGuiWindowFlags_AlwaysAutoResize = 1 << 6, // Resize every window to its content every frame ImGuiWindowFlags_NoBackground = 1 << 7, // Disable drawing background color (WindowBg, etc.) and outside border. Similar as using SetNextWindowBgAlpha(0.0f). ImGuiWindowFlags_NoSavedSettings = 1 << 8, // Never load/save settings in .ini file @@ -970,7 +974,7 @@ enum ImGuiWindowFlags_ ImGuiWindowFlags_NoInputs = ImGuiWindowFlags_NoMouseInputs | ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus, // [Internal] - ImGuiWindowFlags_NavFlattened = 1 << 23, // [BETA] Allow gamepad/keyboard navigation to cross over parent border to this child (only use on child that have no scrolling!) + ImGuiWindowFlags_NavFlattened = 1 << 23, // [BETA] On child window: allow gamepad/keyboard navigation to cross over parent border to this child or between sibling child windows. ImGuiWindowFlags_ChildWindow = 1 << 24, // Don't use! For internal use by BeginChild() ImGuiWindowFlags_Tooltip = 1 << 25, // Don't use! For internal use by BeginTooltip() ImGuiWindowFlags_Popup = 1 << 26, // Don't use! For internal use by BeginPopup() @@ -1261,9 +1265,11 @@ enum ImGuiTableBgTarget_ enum ImGuiFocusedFlags_ { ImGuiFocusedFlags_None = 0, - ImGuiFocusedFlags_ChildWindows = 1 << 0, // IsWindowFocused(): Return true if any children of the window is focused - ImGuiFocusedFlags_RootWindow = 1 << 1, // IsWindowFocused(): Test from root window (top most parent of the current hierarchy) - ImGuiFocusedFlags_AnyWindow = 1 << 2, // IsWindowFocused(): Return true if any window is focused. Important: If you are trying to tell how to dispatch your low-level inputs, do NOT use this. Use 'io.WantCaptureMouse' instead! Please read the FAQ! + ImGuiFocusedFlags_ChildWindows = 1 << 0, // Return true if any children of the window is focused + ImGuiFocusedFlags_RootWindow = 1 << 1, // Test from root window (top most parent of the current hierarchy) + ImGuiFocusedFlags_AnyWindow = 1 << 2, // Return true if any window is focused. Important: If you are trying to tell how to dispatch your low-level inputs, do NOT use this. Use 'io.WantCaptureMouse' instead! Please read the FAQ! + ImGuiFocusedFlags_NoPopupHierarchy = 1 << 3, // Do not consider popup hierarchy (do not treat popup emitter as parent of popup) (when used with _ChildWindows or _RootWindow) + //ImGuiFocusedFlags_DockHierarchy = 1 << 4, // Consider docking hierarchy (treat dockspace host as parent of docked window) (when used with _ChildWindows or _RootWindow) ImGuiFocusedFlags_RootAndChildWindows = ImGuiFocusedFlags_RootWindow | ImGuiFocusedFlags_ChildWindows }; @@ -1276,11 +1282,13 @@ enum ImGuiHoveredFlags_ ImGuiHoveredFlags_ChildWindows = 1 << 0, // IsWindowHovered() only: Return true if any children of the window is hovered ImGuiHoveredFlags_RootWindow = 1 << 1, // IsWindowHovered() only: Test from root window (top most parent of the current hierarchy) ImGuiHoveredFlags_AnyWindow = 1 << 2, // IsWindowHovered() only: Return true if any window is hovered - ImGuiHoveredFlags_AllowWhenBlockedByPopup = 1 << 3, // Return true even if a popup window is normally blocking access to this item/window - //ImGuiHoveredFlags_AllowWhenBlockedByModal = 1 << 4, // Return true even if a modal popup window is normally blocking access to this item/window. FIXME-TODO: Unavailable yet. - ImGuiHoveredFlags_AllowWhenBlockedByActiveItem = 1 << 5, // Return true even if an active item is blocking access to this item/window. Useful for Drag and Drop patterns. - ImGuiHoveredFlags_AllowWhenOverlapped = 1 << 6, // Return true even if the position is obstructed or overlapped by another window - ImGuiHoveredFlags_AllowWhenDisabled = 1 << 7, // Return true even if the item is disabled + ImGuiHoveredFlags_NoPopupHierarchy = 1 << 3, // IsWindowHovered() only: Do not consider popup hierarchy (do not treat popup emitter as parent of popup) (when used with _ChildWindows or _RootWindow) + //ImGuiHoveredFlags_DockHierarchy = 1 << 4, // IsWindowHovered() only: Consider docking hierarchy (treat dockspace host as parent of docked window) (when used with _ChildWindows or _RootWindow) + ImGuiHoveredFlags_AllowWhenBlockedByPopup = 1 << 5, // Return true even if a popup window is normally blocking access to this item/window + //ImGuiHoveredFlags_AllowWhenBlockedByModal = 1 << 6, // Return true even if a modal popup window is normally blocking access to this item/window. FIXME-TODO: Unavailable yet. + ImGuiHoveredFlags_AllowWhenBlockedByActiveItem = 1 << 7, // Return true even if an active item is blocking access to this item/window. Useful for Drag and Drop patterns. + ImGuiHoveredFlags_AllowWhenOverlapped = 1 << 8, // IsItemHovered() only: Return true even if the position is obstructed or overlapped by another window + ImGuiHoveredFlags_AllowWhenDisabled = 1 << 9, // IsItemHovered() only: Return true even if the item is disabled ImGuiHoveredFlags_RectOnly = ImGuiHoveredFlags_AllowWhenBlockedByPopup | ImGuiHoveredFlags_AllowWhenBlockedByActiveItem | ImGuiHoveredFlags_AllowWhenOverlapped, ImGuiHoveredFlags_RootAndChildWindows = ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_ChildWindows }; @@ -1734,7 +1742,7 @@ struct ImVector inline void pop_back() { IM_ASSERT(Size > 0); Size--; } inline void push_front(const T& v) { if (Size == 0) push_back(v); else insert(Data, v); } inline T* erase(const T* it) { IM_ASSERT(it >= Data && it < Data + Size); const ptrdiff_t off = it - Data; memmove(Data + off, Data + off + 1, ((size_t)Size - (size_t)off - 1) * sizeof(T)); Size--; return Data + off; } - inline T* erase(const T* it, const T* it_last){ IM_ASSERT(it >= Data && it < Data + Size && it_last > it && it_last <= Data + Size); const ptrdiff_t count = it_last - it; const ptrdiff_t off = it - Data; memmove(Data + off, Data + off + count, ((size_t)Size - (size_t)off - count) * sizeof(T)); Size -= (int)count; return Data + off; } + inline T* erase(const T* it, const T* it_last){ IM_ASSERT(it >= Data && it < Data + Size && it_last > it && it_last <= Data + Size); const ptrdiff_t count = it_last - it; const ptrdiff_t off = it - Data; memmove(Data + off, Data + off + count, ((size_t)Size - (size_t)off - (size_t)count) * sizeof(T)); Size -= (int)count; return Data + off; } inline T* erase_unsorted(const T* it) { IM_ASSERT(it >= Data && it < Data + Size); const ptrdiff_t off = it - Data; if (it < Data + Size - 1) memcpy(Data + off, Data + Size - 1, sizeof(T)); Size--; return Data + off; } inline T* insert(const T* it, const T& v) { IM_ASSERT(it >= Data && it <= Data + Size); const ptrdiff_t off = it - Data; if (Size == Capacity) reserve(_grow_capacity(Size + 1)); if (off < (int)Size) memmove(Data + off + 1, Data + off, ((size_t)Size - (size_t)off) * sizeof(T)); memcpy(&Data[off], &v, sizeof(v)); Size++; return Data + off; } inline bool contains(const T& v) const { const T* data = Data; const T* data_end = Data + Size; while (data < data_end) if (*data++ == v) return true; return false; } @@ -1887,8 +1895,9 @@ struct ImGuiIO IMGUI_API void AddInputCharacter(unsigned int c); // Queue new character input IMGUI_API void AddInputCharacterUTF16(ImWchar16 c); // Queue new character input from an UTF-16 character, it can be a surrogate IMGUI_API void AddInputCharactersUTF8(const char* str); // Queue new characters input from an UTF-8 string - IMGUI_API void ClearInputCharacters(); // Clear the text input buffer manually IMGUI_API void AddFocusEvent(bool focused); // Notifies Dear ImGui when hosting platform windows lose or gain input focus + IMGUI_API void ClearInputCharacters(); // [Internal] Clear the text input buffer manually + IMGUI_API void ClearInputKeys(); // [Internal] Release all keys //------------------------------------------------------------------ // Output - Updated by NewFrame() or EndFrame()/Render() @@ -1915,16 +1924,19 @@ struct ImGuiIO // [Internal] Dear ImGui will maintain those fields. Forward compatibility not guaranteed! //------------------------------------------------------------------ + bool WantCaptureMouseUnlessPopupClose;// Alternative to WantCaptureMouse: (WantCaptureMouse == true && WantCaptureMouseUnlessPopupClose == false) when a click over void is expected to close a popup. ImGuiKeyModFlags KeyMods; // Key mods flags (same as io.KeyCtrl/KeyShift/KeyAlt/KeySuper but merged into flags), updated by NewFrame() ImGuiKeyModFlags KeyModsPrev; // Previous key mods ImVec2 MousePosPrev; // Previous mouse position (note that MouseDelta is not necessary == MousePos-MousePosPrev, in case either position is invalid) ImVec2 MouseClickedPos[5]; // Position at time of clicking double MouseClickedTime[5]; // Time of last click (used to figure out double-click) - bool MouseClicked[5]; // Mouse button went from !Down to Down - bool MouseDoubleClicked[5]; // Has mouse button been double-clicked? + bool MouseClicked[5]; // Mouse button went from !Down to Down (same as MouseClickedCount[x] != 0) + bool MouseDoubleClicked[5]; // Has mouse button been double-clicked? (same as MouseClickedCount[x] == 2) + ImU16 MouseClickedCount[5]; // == 0 (not clicked), == 1 (same as MouseClicked[]), == 2 (double-clicked), == 3 (triple-clicked) etc. when going from !Down to Down + ImU16 MouseClickedLastCount[5]; // Count successive number of clicks. Stays valid after mouse release. Reset after another click is done. bool MouseReleased[5]; // Mouse button went from Down to !Down - bool MouseDownOwned[5]; // Track if button was clicked inside a dear imgui window. We don't request mouse capture from the application if click started outside ImGui bounds. - bool MouseDownWasDoubleClick[5]; // Track if button down was a double-click + bool MouseDownOwned[5]; // Track if button was clicked inside a dear imgui window or over void blocked by a popup. We don't request mouse capture from the application if click started outside ImGui bounds. + bool MouseDownOwnedUnlessPopupClose[5];//Track if button was clicked inside a dear imgui window. float MouseDownDuration[5]; // Duration the mouse button has been down (0.0f == just clicked) float MouseDownDurationPrev[5]; // Previous time the mouse button has been down ImVec2 MouseDragMaxDistanceAbs[5]; // Maximum distance, absolute, on each axis, of how much mouse has traveled from the clicking point @@ -1934,6 +1946,7 @@ struct ImGuiIO float NavInputsDownDuration[ImGuiNavInput_COUNT]; float NavInputsDownDurationPrev[ImGuiNavInput_COUNT]; float PenPressure; // Touch/Pen pressure (0.0f to 1.0f, should be >0.0f only when MouseDown[0] == true). Helper storage currently unused by Dear ImGui. + bool AppFocusLost; ImWchar16 InputQueueSurrogate; // For AddInputCharacterUTF16 ImVector InputQueueCharacters; // Queue of _characters_ input (obtained by platform backend). Fill using AddInputCharacter() helper. @@ -2158,10 +2171,12 @@ struct ImGuiStorage }; // Helper: Manually clip large list of items. -// If you are submitting lots of evenly spaced items and you have a random access to the list, you can perform coarse -// clipping based on visibility to save yourself from processing those items at all. +// If you have lots evenly spaced items and you have a random access to the list, you can perform coarse +// clipping based on visibility to only submit items that are in view. // The clipper calculates the range of visible items and advance the cursor to compensate for the non-visible items we have skipped. -// (Dear ImGui already clip items based on their bounds but it needs to measure text size to do so, whereas manual coarse clipping before submission makes this cost and your own data fetching/submission cost almost null) +// (Dear ImGui already clip items based on their bounds but: it needs to first layout the item to do so, and generally +// fetching/submitting your own data incurs additional cost. Coarse clipping using ImGuiListClipper allows you to easily +// scale using lists with tens of thousands of items without a problem) // Usage: // ImGuiListClipper clipper; // clipper.Begin(1000); // We have 1000 elements, evenly spaced. @@ -2170,30 +2185,30 @@ struct ImGuiStorage // ImGui::Text("line number %d", i); // Generally what happens is: // - Clipper lets you process the first element (DisplayStart = 0, DisplayEnd = 1) regardless of it being visible or not. -// - User code submit one element. +// - User code submit that one element. // - Clipper can measure the height of the first element // - Clipper calculate the actual range of elements to display based on the current clipping rectangle, position the cursor before the first visible element. // - User code submit visible elements. +// - The clipper also handles various subtleties related to keyboard/gamepad navigation, wrapping etc. struct ImGuiListClipper { - int DisplayStart; - int DisplayEnd; - - // [Internal] - int ItemsCount; - int StepNo; - int ItemsFrozen; - float ItemsHeight; - float StartPosY; + int DisplayStart; // First item to display, updated by each call to Step() + int DisplayEnd; // End of items to display (exclusive) + int ItemsCount; // [Internal] Number of items + float ItemsHeight; // [Internal] Height of item after a first step and item submission can calculate it + float StartPosY; // [Internal] Cursor position at the time of Begin() or after table frozen rows are all processed + void* TempData; // [Internal] Internal data + // items_count: Use INT_MAX if you don't know how many items you have (in which case the cursor won't be advanced in the final step) + // items_height: Use -1.0f to be calculated automatically on first step. Otherwise pass in the distance between your items, typically GetTextLineHeightWithSpacing() or GetFrameHeightWithSpacing(). IMGUI_API ImGuiListClipper(); IMGUI_API ~ImGuiListClipper(); + IMGUI_API void Begin(int items_count, float items_height = -1.0f); + IMGUI_API void End(); // Automatically called on the last call of Step() that returns false. + IMGUI_API bool Step(); // Call until it returns false. The DisplayStart/DisplayEnd fields will be set and you can process/draw those items. - // items_count: Use INT_MAX if you don't know how many items you have (in which case the cursor won't be advanced in the final step) - // items_height: Use -1.0f to be calculated automatically on first step. Otherwise pass in the distance between your items, typically GetTextLineHeightWithSpacing() or GetFrameHeightWithSpacing(). - IMGUI_API void Begin(int items_count, float items_height = -1.0f); // Automatically called by constructor if you passed 'items_count' or by Step() in Step 1. - IMGUI_API void End(); // Automatically called on the last call of Step() that returns false. - IMGUI_API bool Step(); // Call until it returns false. The DisplayStart/DisplayEnd fields will be set and you can process/draw those items. + // Call ForceDisplayRangeByIndices() before first call to Step() if you need a range of items to be displayed regardless of visibility. + IMGUI_API void ForceDisplayRangeByIndices(int item_min, int item_max); // item_max is exclusive e.g. use (42, 42+1) to make item 42 always visible BUT due to alignment/padding of certain items it is likely that an extra item may be included on either end of the display range. #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS inline ImGuiListClipper(int items_count, float items_height = -1.0f) { memset(this, 0, sizeof(*this)); ItemsCount = -1; Begin(items_count, items_height); } // [removed in 1.79] @@ -2816,6 +2831,10 @@ struct ImGuiViewport #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS namespace ImGui { + // OBSOLETED in 1.86 (from November 2021) + IMGUI_API void CalcListClipping(int items_count, float items_height, int* out_items_display_start, int* out_items_display_end); // Calculate coarse clipping for large list of evenly sized items. Prefer using ImGuiListClipper. + // OBSOLETED in 1.85 (from August 2021) + static inline float GetWindowContentRegionWidth() { return GetWindowContentRegionMax().x - GetWindowContentRegionMin().x; } // OBSOLETED in 1.81 (from February 2021) IMGUI_API bool ListBoxHeader(const char* label, int items_count, int height_in_items = -1); // Helper to calculate size from items_count and height_in_items static inline bool ListBoxHeader(const char* label, const ImVec2& size = ImVec2(0, 0)) { return BeginListBox(label, size); } diff --git a/imgui-sys/third-party/imgui-master/imgui/imgui_demo.cpp b/imgui-sys/third-party/imgui-master/imgui/imgui_demo.cpp index d75989d69..9cbc503a3 100644 --- a/imgui-sys/third-party/imgui-master/imgui/imgui_demo.cpp +++ b/imgui-sys/third-party/imgui-master/imgui/imgui_demo.cpp @@ -1,4 +1,4 @@ -// dear imgui, v1.84 +// dear imgui, v1.86 // (demo code) // Help: @@ -200,6 +200,14 @@ static void HelpMarker(const char* desc) } } +// Helper to wire demo markers located in code to a interactive browser +typedef void (*ImGuiDemoMarkerCallback)(const char* file, int line, const char* section, void* user_data); +extern ImGuiDemoMarkerCallback GImGuiDemoMarkerCallback; +extern void* GImGuiDemoMarkerCallbackUserData; +ImGuiDemoMarkerCallback GImGuiDemoMarkerCallback = NULL; +void* GImGuiDemoMarkerCallbackUserData = NULL; +#define IMGUI_DEMO_MARKER(section) do { if (GImGuiDemoMarkerCallback != NULL) GImGuiDemoMarkerCallback(__FILE__, __LINE__, section, GImGuiDemoMarkerCallbackUserData); } while (0) + // Helper to display basic user controls. void ImGui::ShowUserGuide() { @@ -210,7 +218,8 @@ void ImGui::ShowUserGuide() "(double-click to auto fit window to its contents)."); ImGui::BulletText("CTRL+Click on a slider or drag box to input value as text."); ImGui::BulletText("TAB/SHIFT+TAB to cycle through keyboard editable fields."); - if (io.FontAllowUserScaling) + ImGui::BulletText("CTRL+Tab to select a window."); + if (io.FontAllowUserScaling) ImGui::BulletText("CTRL+Mouse Wheel to zoom window contents."); ImGui::BulletText("While inputing text:\n"); ImGui::Indent(); @@ -228,7 +237,6 @@ void ImGui::ShowUserGuide() ImGui::BulletText("Return to input text into a widget."); ImGui::BulletText("Escape to deactivate a widget, close popup, exit child window."); ImGui::BulletText("Alt to jump to the menu layer of a window."); - ImGui::BulletText("CTRL+Tab to select a window."); ImGui::Unindent(); } @@ -294,10 +302,12 @@ void ImGui::ShowDemoWindow(bool* p_open) // Dear ImGui Apps (accessible from the "Tools" menu) static bool show_app_metrics = false; + static bool show_app_stack_tool = false; static bool show_app_style_editor = false; static bool show_app_about = false; if (show_app_metrics) { ImGui::ShowMetricsWindow(&show_app_metrics); } + if (show_app_stack_tool) { ImGui::ShowStackToolWindow(&show_app_stack_tool); } if (show_app_about) { ImGui::ShowAboutWindow(&show_app_about); } if (show_app_style_editor) { @@ -359,11 +369,13 @@ void ImGui::ShowDemoWindow(bool* p_open) { if (ImGui::BeginMenu("Menu")) { + IMGUI_DEMO_MARKER("Menu/File"); ShowExampleMenuFile(); ImGui::EndMenu(); } if (ImGui::BeginMenu("Examples")) { + IMGUI_DEMO_MARKER("Menu/Examples"); ImGui::MenuItem("Main menu bar", NULL, &show_app_main_menu_bar); ImGui::MenuItem("Console", NULL, &show_app_console); ImGui::MenuItem("Log", NULL, &show_app_log); @@ -379,9 +391,14 @@ void ImGui::ShowDemoWindow(bool* p_open) ImGui::MenuItem("Documents", NULL, &show_app_documents); ImGui::EndMenu(); } + //if (ImGui::MenuItem("MenuItem")) {} // You can also use MenuItem() inside a menu bar! if (ImGui::BeginMenu("Tools")) { + IMGUI_DEMO_MARKER("Menu/Tools"); +#ifndef IMGUI_DISABLE_METRICS_WINDOW ImGui::MenuItem("Metrics/Debugger", NULL, &show_app_metrics); + ImGui::MenuItem("Stack Tool", NULL, &show_app_stack_tool); +#endif ImGui::MenuItem("Style Editor", NULL, &show_app_style_editor); ImGui::MenuItem("About Dear ImGui", NULL, &show_app_about); ImGui::EndMenu(); @@ -392,6 +409,7 @@ void ImGui::ShowDemoWindow(bool* p_open) ImGui::Text("dear imgui says hello. (%s)", IMGUI_VERSION); ImGui::Spacing(); + IMGUI_DEMO_MARKER("Help"); if (ImGui::CollapsingHeader("Help")) { ImGui::Text("ABOUT THIS DEMO:"); @@ -414,6 +432,7 @@ void ImGui::ShowDemoWindow(bool* p_open) ImGui::ShowUserGuide(); } + IMGUI_DEMO_MARKER("Configuration"); if (ImGui::CollapsingHeader("Configuration")) { ImGuiIO& io = ImGui::GetIO(); @@ -454,6 +473,7 @@ void ImGui::ShowDemoWindow(bool* p_open) ImGui::Separator(); } + IMGUI_DEMO_MARKER("Configuration/Backend Flags"); if (ImGui::TreeNode("Backend Flags")) { HelpMarker( @@ -470,6 +490,7 @@ void ImGui::ShowDemoWindow(bool* p_open) ImGui::Separator(); } + IMGUI_DEMO_MARKER("Configuration/Style"); if (ImGui::TreeNode("Style")) { HelpMarker("The same contents can be accessed in 'Tools->Style Editor' or by calling the ShowStyleEditor() function."); @@ -478,6 +499,7 @@ void ImGui::ShowDemoWindow(bool* p_open) ImGui::Separator(); } + IMGUI_DEMO_MARKER("Configuration/Capture, Logging"); if (ImGui::TreeNode("Capture/Logging")) { HelpMarker( @@ -497,6 +519,7 @@ void ImGui::ShowDemoWindow(bool* p_open) } } + IMGUI_DEMO_MARKER("Window options"); if (ImGui::CollapsingHeader("Window options")) { if (ImGui::BeginTable("split", 3)) @@ -530,6 +553,7 @@ void ImGui::ShowDemoWindow(bool* p_open) static void ShowDemoWindowWidgets() { + IMGUI_DEMO_MARKER("Widgets"); if (!ImGui::CollapsingHeader("Widgets")) return; @@ -537,8 +561,10 @@ static void ShowDemoWindowWidgets() if (disable_all) ImGui::BeginDisabled(); + IMGUI_DEMO_MARKER("Widgets/Basic"); if (ImGui::TreeNode("Basic")) { + IMGUI_DEMO_MARKER("Widgets/Basic/Button"); static int clicked = 0; if (ImGui::Button("Button")) clicked++; @@ -548,15 +574,18 @@ static void ShowDemoWindowWidgets() ImGui::Text("Thanks for clicking me!"); } + IMGUI_DEMO_MARKER("Widgets/Basic/Checkbox"); static bool check = true; ImGui::Checkbox("checkbox", &check); + IMGUI_DEMO_MARKER("Widgets/Basic/RadioButton"); static int e = 0; ImGui::RadioButton("radio a", &e, 0); ImGui::SameLine(); ImGui::RadioButton("radio b", &e, 1); ImGui::SameLine(); ImGui::RadioButton("radio c", &e, 2); // Color buttons, demonstrate using PushID() to add unique identifier in the ID stack, and changing style. + IMGUI_DEMO_MARKER("Widgets/Basic/Buttons (Colored)"); for (int i = 0; i < 7; i++) { if (i > 0) @@ -578,6 +607,7 @@ static void ShowDemoWindowWidgets() ImGui::SameLine(); // Arrow buttons with Repeater + IMGUI_DEMO_MARKER("Widgets/Basic/Buttons (Repeating)"); static int counter = 0; float spacing = ImGui::GetStyle().ItemInnerSpacing.x; ImGui::PushButtonRepeat(true); @@ -588,6 +618,7 @@ static void ShowDemoWindowWidgets() ImGui::SameLine(); ImGui::Text("%d", counter); + IMGUI_DEMO_MARKER("Widgets/Basic/Tooltips"); ImGui::Text("Hover over me"); if (ImGui::IsItemHovered()) ImGui::SetTooltip("I am a tooltip"); @@ -604,12 +635,12 @@ static void ShowDemoWindowWidgets() } ImGui::Separator(); - ImGui::LabelText("label", "Value"); { // Using the _simplified_ one-liner Combo() api here // See "Combo" section for examples of how to use the more flexible BeginCombo()/EndCombo() api. + IMGUI_DEMO_MARKER("Widgets/Basic/Combo"); const char* items[] = { "AAAA", "BBBB", "CCCC", "DDDD", "EEEE", "FFFF", "GGGG", "HHHH", "IIIIIII", "JJJJ", "KKKKKKK" }; static int item_current = 0; ImGui::Combo("combo", &item_current, items, IM_ARRAYSIZE(items)); @@ -620,6 +651,7 @@ static void ShowDemoWindowWidgets() { // To wire InputText() with std::string or any other custom string type, // see the "Text Input > Resize Callback" section of this demo, and the misc/cpp/imgui_stdlib.h file. + IMGUI_DEMO_MARKER("Widgets/Basic/InputText"); static char str0[128] = "Hello, world!"; ImGui::InputText("input text", str0, IM_ARRAYSIZE(str0)); ImGui::SameLine(); HelpMarker( @@ -638,6 +670,7 @@ static void ShowDemoWindowWidgets() static char str1[128] = ""; ImGui::InputTextWithHint("input text (w/ hint)", "enter text here", str1, IM_ARRAYSIZE(str1)); + IMGUI_DEMO_MARKER("Widgets/Basic/InputInt, InputFloat"); static int i0 = 123; ImGui::InputInt("input int", &i0); ImGui::SameLine(); HelpMarker( @@ -662,6 +695,7 @@ static void ShowDemoWindowWidgets() } { + IMGUI_DEMO_MARKER("Widgets/Basic/DragInt, DragFloat"); static int i1 = 50, i2 = 42; ImGui::DragInt("drag int", &i1, 1); ImGui::SameLine(); HelpMarker( @@ -677,6 +711,7 @@ static void ShowDemoWindowWidgets() } { + IMGUI_DEMO_MARKER("Widgets/Basic/SliderInt, SliderFloat"); static int i1 = 0; ImGui::SliderInt("slider int", &i1, -1, 3); ImGui::SameLine(); HelpMarker("CTRL+click to input value."); @@ -685,12 +720,14 @@ static void ShowDemoWindowWidgets() ImGui::SliderFloat("slider float", &f1, 0.0f, 1.0f, "ratio = %.3f"); ImGui::SliderFloat("slider float (log)", &f2, -10.0f, 10.0f, "%.4f", ImGuiSliderFlags_Logarithmic); + IMGUI_DEMO_MARKER("Widgets/Basic/SliderAngle"); static float angle = 0.0f; ImGui::SliderAngle("slider angle", &angle); // Using the format string to display a name instead of an integer. // Here we completely omit '%d' from the format string, so it'll only display a name. // This technique can also be used with DragInt(). + IMGUI_DEMO_MARKER("Widgets/Basic/Slider (enum)"); enum Element { Element_Fire, Element_Earth, Element_Air, Element_Water, Element_COUNT }; static int elem = Element_Fire; const char* elems_names[Element_COUNT] = { "Fire", "Earth", "Air", "Water" }; @@ -700,6 +737,7 @@ static void ShowDemoWindowWidgets() } { + IMGUI_DEMO_MARKER("Widgets/Basic/ColorEdit3, ColorEdit4"); static float col1[3] = { 1.0f, 0.0f, 0.2f }; static float col2[4] = { 0.4f, 0.7f, 0.0f, 0.5f }; ImGui::ColorEdit3("color 1", col1); @@ -715,6 +753,7 @@ static void ShowDemoWindowWidgets() { // Using the _simplified_ one-liner ListBox() api here // See "List boxes" section for examples of how to use the more flexible BeginListBox()/EndListBox() api. + IMGUI_DEMO_MARKER("Widgets/Basic/ListBox"); const char* items[] = { "Apple", "Banana", "Cherry", "Kiwi", "Mango", "Orange", "Pineapple", "Strawberry", "Watermelon" }; static int item_current = 1; ImGui::ListBox("listbox", &item_current, items, IM_ARRAYSIZE(items), 4); @@ -731,8 +770,10 @@ static void ShowDemoWindowWidgets() // if (once) // ImGui::Text("This will be displayed only once."); + IMGUI_DEMO_MARKER("Widgets/Trees"); if (ImGui::TreeNode("Trees")) { + IMGUI_DEMO_MARKER("Widgets/Trees/Basic trees"); if (ImGui::TreeNode("Basic trees")) { for (int i = 0; i < 5; i++) @@ -753,6 +794,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Trees/Advanced, with Selectable nodes"); if (ImGui::TreeNode("Advanced, with Selectable nodes")) { HelpMarker( @@ -780,6 +822,7 @@ static void ShowDemoWindowWidgets() for (int i = 0; i < 6; i++) { // Disable the default "open on single-click behavior" + set Selected flag according to our selection. + // To alter selection we use IsItemClicked() && !IsItemToggledOpen(), so clicking on an arrow doesn't alter selection. ImGuiTreeNodeFlags node_flags = base_flags; const bool is_selected = (selection_mask & (1 << i)) != 0; if (is_selected) @@ -788,7 +831,7 @@ static void ShowDemoWindowWidgets() { // Items 0..2 are Tree Node bool node_open = ImGui::TreeNodeEx((void*)(intptr_t)i, node_flags, "Selectable Node %d", i); - if (ImGui::IsItemClicked()) + if (ImGui::IsItemClicked() && !ImGui::IsItemToggledOpen()) node_clicked = i; if (test_drag_and_drop && ImGui::BeginDragDropSource()) { @@ -809,7 +852,7 @@ static void ShowDemoWindowWidgets() // use BulletText() or advance the cursor by GetTreeNodeToLabelSpacing() and call Text(). node_flags |= ImGuiTreeNodeFlags_Leaf | ImGuiTreeNodeFlags_NoTreePushOnOpen; // ImGuiTreeNodeFlags_Bullet ImGui::TreeNodeEx((void*)(intptr_t)i, node_flags, "Selectable Leaf %d", i); - if (ImGui::IsItemClicked()) + if (ImGui::IsItemClicked() && !ImGui::IsItemToggledOpen()) node_clicked = i; if (test_drag_and_drop && ImGui::BeginDragDropSource()) { @@ -835,6 +878,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Collapsing Headers"); if (ImGui::TreeNode("Collapsing Headers")) { static bool closable_group = true; @@ -858,6 +902,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Bullets"); if (ImGui::TreeNode("Bullets")) { ImGui::BulletText("Bullet point 1"); @@ -872,8 +917,10 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Text"); if (ImGui::TreeNode("Text")) { + IMGUI_DEMO_MARKER("Widgets/Text/Colored Text"); if (ImGui::TreeNode("Colorful Text")) { // Using shortcut. You can use PushStyleColor()/PopStyleColor() for more flexibility. @@ -884,6 +931,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Text/Word Wrapping"); if (ImGui::TreeNode("Word Wrapping")) { // Using shortcut. You can use PushTextWrapPos()/PopTextWrapPos() for more flexibility. @@ -917,6 +965,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Text/UTF-8 Text"); if (ImGui::TreeNode("UTF-8 Text")) { // UTF-8 test with Japanese characters @@ -943,6 +992,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Images"); if (ImGui::TreeNode("Images")) { ImGuiIO& io = ImGui::GetIO(); @@ -996,6 +1046,8 @@ static void ShowDemoWindowWidgets() ImGui::EndTooltip(); } } + + IMGUI_DEMO_MARKER("Widgets/Images/Textured buttons"); ImGui::TextWrapped("And now some textured buttons.."); static int pressed_count = 0; for (int i = 0; i < 8; i++) @@ -1017,6 +1069,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Combo"); if (ImGui::TreeNode("Combo")) { // Expose flags as checkbox for the demo @@ -1067,6 +1120,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/List Boxes"); if (ImGui::TreeNode("List boxes")) { // Using the generic BeginListBox() API, you have full control over how to display the combo contents. @@ -1109,6 +1163,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Selectables"); if (ImGui::TreeNode("Selectables")) { // Selectable() has 2 overloads: @@ -1117,6 +1172,7 @@ static void ShowDemoWindowWidgets() // - The one taking "bool* p_selected" as a read-write selection information (convenient in some cases) // The earlier is more flexible, as in real application your selection may be stored in many different ways // and not necessarily inside a bool value (e.g. in flags within objects, as an external list, etc). + IMGUI_DEMO_MARKER("Widgets/Selectables/Basic"); if (ImGui::TreeNode("Basic")) { static bool selection[5] = { false, true, false, false, false }; @@ -1129,6 +1185,7 @@ static void ShowDemoWindowWidgets() selection[4] = !selection[4]; ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Selectables/Single Selection"); if (ImGui::TreeNode("Selection State: Single Selection")) { static int selected = -1; @@ -1141,6 +1198,7 @@ static void ShowDemoWindowWidgets() } ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Selectables/Multiple Selection"); if (ImGui::TreeNode("Selection State: Multiple Selection")) { HelpMarker("Hold CTRL and click to select multiple items."); @@ -1158,6 +1216,7 @@ static void ShowDemoWindowWidgets() } ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Selectables/Rendering more text into the same line"); if (ImGui::TreeNode("Rendering more text into the same line")) { // Using the Selectable() override that takes "bool* p_selected" parameter, @@ -1168,6 +1227,7 @@ static void ShowDemoWindowWidgets() ImGui::Selectable("Hello.h", &selected[2]); ImGui::SameLine(300); ImGui::Text(" 2,345 bytes"); ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Selectables/In columns"); if (ImGui::TreeNode("In columns")) { static bool selected[10] = {}; @@ -1202,6 +1262,7 @@ static void ShowDemoWindowWidgets() } ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Selectables/Grid"); if (ImGui::TreeNode("Grid")) { static char selected[4][4] = { { 1, 0, 0, 0 }, { 0, 1, 0, 0 }, { 0, 0, 1, 0 }, { 0, 0, 0, 1 } }; @@ -1234,6 +1295,7 @@ static void ShowDemoWindowWidgets() ImGui::PopStyleVar(); ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Selectables/Alignment"); if (ImGui::TreeNode("Alignment")) { HelpMarker( @@ -1261,8 +1323,10 @@ static void ShowDemoWindowWidgets() // To wire InputText() with std::string or any other custom string type, // see the "Text Input > Resize Callback" section of this demo, and the misc/cpp/imgui_stdlib.h file. + IMGUI_DEMO_MARKER("Widgets/Text Input"); if (ImGui::TreeNode("Text Input")) { + IMGUI_DEMO_MARKER("Widgets/Text Input/Multi-line Text Input"); if (ImGui::TreeNode("Multi-line Text Input")) { // Note: we are using a fixed-sized buffer for simplicity here. See ImGuiInputTextFlags_CallbackResize @@ -1288,6 +1352,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Text Input/Filtered Text Input"); if (ImGui::TreeNode("Filtered Text Input")) { struct TextFilters @@ -1310,6 +1375,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Text Input/Password input"); if (ImGui::TreeNode("Password Input")) { static char password[64] = "password123"; @@ -1376,6 +1442,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Text Input/Resize Callback"); if (ImGui::TreeNode("Resize Callback")) { // To wire InputText() with std::string or any other custom string type, @@ -1422,8 +1489,10 @@ static void ShowDemoWindowWidgets() } // Tabs + IMGUI_DEMO_MARKER("Widgets/Tabs"); if (ImGui::TreeNode("Tabs")) { + IMGUI_DEMO_MARKER("Widgets/Tabs/Basic"); if (ImGui::TreeNode("Basic")) { ImGuiTabBarFlags tab_bar_flags = ImGuiTabBarFlags_None; @@ -1450,6 +1519,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Tabs/Advanced & Close Button"); if (ImGui::TreeNode("Advanced & Close Button")) { // Expose a couple of the available flags. In most cases you may just call BeginTabBar() with no flags (0). @@ -1492,6 +1562,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Tabs/TabItemButton & Leading-Trailing flags"); if (ImGui::TreeNode("TabItemButton & Leading/Trailing flags")) { static ImVector active_tabs; @@ -1561,16 +1632,19 @@ static void ShowDemoWindowWidgets() } // Plot/Graph widgets are not very good. - // Consider writing your own, or using a third-party one, see: - // - ImPlot https://github.com/epezent/implot - // - others https://github.com/ocornut/imgui/wiki/Useful-Extensions - if (ImGui::TreeNode("Plots Widgets")) + // Consider using a third-party library such as ImPlot: https://github.com/epezent/implot + // (see others https://github.com/ocornut/imgui/wiki/Useful-Extensions) + IMGUI_DEMO_MARKER("Widgets/Plotting"); + if (ImGui::TreeNode("Plotting")) { static bool animate = true; ImGui::Checkbox("Animate", &animate); + // Plot as lines and plot as histogram + IMGUI_DEMO_MARKER("Widgets/Plotting/PlotLines, PlotHistogram"); static float arr[] = { 0.6f, 0.1f, 1.0f, 0.5f, 0.92f, 0.1f, 0.2f }; ImGui::PlotLines("Frame Times", arr, IM_ARRAYSIZE(arr)); + ImGui::PlotHistogram("Histogram", arr, IM_ARRAYSIZE(arr), 0, NULL, 0.0f, 1.0f, ImVec2(0, 80.0f)); // Fill an array of contiguous float values to plot // Tip: If your float aren't contiguous but part of a structure, you can pass a pointer to your first float @@ -1600,7 +1674,6 @@ static void ShowDemoWindowWidgets() sprintf(overlay, "avg %f", average); ImGui::PlotLines("Lines", values, IM_ARRAYSIZE(values), values_offset, overlay, -1.0f, 1.0f, ImVec2(0, 80.0f)); } - ImGui::PlotHistogram("Histogram", arr, IM_ARRAYSIZE(arr), 0, NULL, 0.0f, 1.0f, ImVec2(0, 80.0f)); // Use functions to generate output // FIXME: This is rather awkward because current plot API only pass in indices. @@ -1622,6 +1695,7 @@ static void ShowDemoWindowWidgets() ImGui::Separator(); // Animate a simple progress bar + IMGUI_DEMO_MARKER("Widgets/Plotting/ProgressBar"); static float progress = 0.0f, progress_dir = 1.0f; if (animate) { @@ -1643,6 +1717,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Color"); if (ImGui::TreeNode("Color/Picker Widgets")) { static ImVec4 color = ImVec4(114.0f / 255.0f, 144.0f / 255.0f, 154.0f / 255.0f, 200.0f / 255.0f); @@ -1659,18 +1734,22 @@ static void ShowDemoWindowWidgets() ImGui::Checkbox("With HDR", &hdr); ImGui::SameLine(); HelpMarker("Currently all this does is to lift the 0..1 limits on dragging widgets."); ImGuiColorEditFlags misc_flags = (hdr ? ImGuiColorEditFlags_HDR : 0) | (drag_and_drop ? 0 : ImGuiColorEditFlags_NoDragDrop) | (alpha_half_preview ? ImGuiColorEditFlags_AlphaPreviewHalf : (alpha_preview ? ImGuiColorEditFlags_AlphaPreview : 0)) | (options_menu ? 0 : ImGuiColorEditFlags_NoOptions); + IMGUI_DEMO_MARKER("Widgets/Color/ColorEdit"); ImGui::Text("Color widget:"); ImGui::SameLine(); HelpMarker( "Click on the color square to open a color picker.\n" "CTRL+click on individual component to input value.\n"); ImGui::ColorEdit3("MyColor##1", (float*)&color, misc_flags); + IMGUI_DEMO_MARKER("Widgets/Color/ColorEdit (HSV, with Alpha)"); ImGui::Text("Color widget HSV with Alpha:"); ImGui::ColorEdit4("MyColor##2", (float*)&color, ImGuiColorEditFlags_DisplayHSV | misc_flags); + IMGUI_DEMO_MARKER("Widgets/Color/ColorEdit (float display)"); ImGui::Text("Color widget with Float Display:"); ImGui::ColorEdit4("MyColor##2f", (float*)&color, ImGuiColorEditFlags_Float | misc_flags); + IMGUI_DEMO_MARKER("Widgets/Color/ColorButton (with Picker)"); ImGui::Text("Color button with Picker:"); ImGui::SameLine(); HelpMarker( "With the ImGuiColorEditFlags_NoInputs flag you can hide all the slider/text inputs.\n" @@ -1678,6 +1757,7 @@ static void ShowDemoWindowWidgets() "be used for the tooltip and picker popup."); ImGui::ColorEdit4("MyColor##3", (float*)&color, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_NoLabel | misc_flags); + IMGUI_DEMO_MARKER("Widgets/Color/ColorButton (with custom Picker popup)"); ImGui::Text("Color button with Custom Picker Popup:"); // Generate a default palette. The palette will persist and can be edited. @@ -1745,11 +1825,13 @@ static void ShowDemoWindowWidgets() ImGui::EndPopup(); } + IMGUI_DEMO_MARKER("Widgets/Color/ColorButton (simple)"); ImGui::Text("Color button only:"); static bool no_border = false; ImGui::Checkbox("ImGuiColorEditFlags_NoBorder", &no_border); ImGui::ColorButton("MyColor##3c", *(ImVec4*)&color, misc_flags | (no_border ? ImGuiColorEditFlags_NoBorder : 0), ImVec2(80, 80)); + IMGUI_DEMO_MARKER("Widgets/Color/ColorPicker"); ImGui::Text("Color picker:"); static bool alpha = true; static bool alpha_bar = true; @@ -1817,6 +1899,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Drag and Slider Flags"); if (ImGui::TreeNode("Drag/Slider Flags")) { // Demonstrate using advanced flags for DragXXX and SliderXXX functions. Note that the flags are the same! @@ -1850,6 +1933,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Range Widgets"); if (ImGui::TreeNode("Range Widgets")) { static float begin = 10, end = 90; @@ -1860,6 +1944,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Data Types"); if (ImGui::TreeNode("Data Types")) { // DragScalar/InputScalar/SliderScalar functions allow various data types @@ -1909,6 +1994,7 @@ static void ShowDemoWindowWidgets() const float drag_speed = 0.2f; static bool drag_clamp = false; + IMGUI_DEMO_MARKER("Widgets/Data Types/Drags"); ImGui::Text("Drags:"); ImGui::Checkbox("Clamp integers to 0..50", &drag_clamp); ImGui::SameLine(); HelpMarker( @@ -1927,6 +2013,7 @@ static void ShowDemoWindowWidgets() ImGui::DragScalar("drag double", ImGuiDataType_Double, &f64_v, 0.0005f, &f64_zero, NULL, "%.10f grams"); ImGui::DragScalar("drag double log",ImGuiDataType_Double, &f64_v, 0.0005f, &f64_zero, &f64_one, "0 < %.10f < 1", ImGuiSliderFlags_Logarithmic); + IMGUI_DEMO_MARKER("Widgets/Data Types/Sliders"); ImGui::Text("Sliders"); ImGui::SliderScalar("slider s8 full", ImGuiDataType_S8, &s8_v, &s8_min, &s8_max, "%d"); ImGui::SliderScalar("slider u8 full", ImGuiDataType_U8, &u8_v, &u8_min, &u8_max, "%u"); @@ -1959,6 +2046,7 @@ static void ShowDemoWindowWidgets() ImGui::SliderScalar("slider s64 reverse", ImGuiDataType_S64, &s64_v, &s64_fifty, &s64_zero, "%" IM_PRId64); ImGui::SliderScalar("slider u64 reverse", ImGuiDataType_U64, &u64_v, &u64_fifty, &u64_zero, "%" IM_PRIu64 " ms"); + IMGUI_DEMO_MARKER("Widgets/Data Types/Inputs"); static bool inputs_step = true; ImGui::Text("Inputs"); ImGui::Checkbox("Show step buttons", &inputs_step); @@ -1978,6 +2066,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Multi-component Widgets"); if (ImGui::TreeNode("Multi-component Widgets")) { static float vec4f[4] = { 0.10f, 0.20f, 0.30f, 0.44f }; @@ -2009,6 +2098,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Vertical Sliders"); if (ImGui::TreeNode("Vertical Sliders")) { const float spacing = 4; @@ -2073,8 +2163,10 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Drag and drop"); if (ImGui::TreeNode("Drag and Drop")) { + IMGUI_DEMO_MARKER("Widgets/Drag and drop/Standard widgets"); if (ImGui::TreeNode("Drag and drop in standard widgets")) { // ColorEdit widgets automatically act as drag source and drag target. @@ -2089,6 +2181,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Drag and drop/Copy-swap items"); if (ImGui::TreeNode("Drag and drop to copy/swap items")) { enum Mode @@ -2156,6 +2249,7 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Widgets/Drag and Drop/Drag to reorder items (simple)"); if (ImGui::TreeNode("Drag to reorder items (simple)")) { // Simple reordering @@ -2185,12 +2279,13 @@ static void ShowDemoWindowWidgets() ImGui::TreePop(); } - if (ImGui::TreeNode("Querying Status (Edited/Active/Hovered etc.)")) + IMGUI_DEMO_MARKER("Widgets/Querying Item Status (Edited,Active,Hovered etc.)"); + if (ImGui::TreeNode("Querying Item Status (Edited/Active/Hovered etc.)")) { // Select an item type const char* item_names[] = { - "Text", "Button", "Button (w/ repeat)", "Checkbox", "SliderFloat", "InputText", "InputFloat", + "Text", "Button", "Button (w/ repeat)", "Checkbox", "SliderFloat", "InputText", "InputTextMultiline", "InputFloat", "InputFloat3", "ColorEdit4", "Selectable", "MenuItem", "TreeNode", "TreeNode (w/ double-click)", "Combo", "ListBox" }; static int item_type = 4; @@ -2213,15 +2308,16 @@ static void ShowDemoWindowWidgets() if (item_type == 3) { ret = ImGui::Checkbox("ITEM: Checkbox", &b); } // Testing checkbox if (item_type == 4) { ret = ImGui::SliderFloat("ITEM: SliderFloat", &col4f[0], 0.0f, 1.0f); } // Testing basic item if (item_type == 5) { ret = ImGui::InputText("ITEM: InputText", &str[0], IM_ARRAYSIZE(str)); } // Testing input text (which handles tabbing) - if (item_type == 6) { ret = ImGui::InputFloat("ITEM: InputFloat", col4f, 1.0f); } // Testing +/- buttons on scalar input - if (item_type == 7) { ret = ImGui::InputFloat3("ITEM: InputFloat3", col4f); } // Testing multi-component items (IsItemXXX flags are reported merged) - if (item_type == 8) { ret = ImGui::ColorEdit4("ITEM: ColorEdit4", col4f); } // Testing multi-component items (IsItemXXX flags are reported merged) - if (item_type == 9) { ret = ImGui::Selectable("ITEM: Selectable"); } // Testing selectable item - if (item_type == 10){ ret = ImGui::MenuItem("ITEM: MenuItem"); } // Testing menu item (they use ImGuiButtonFlags_PressedOnRelease button policy) - if (item_type == 11){ ret = ImGui::TreeNode("ITEM: TreeNode"); if (ret) ImGui::TreePop(); } // Testing tree node - if (item_type == 12){ ret = ImGui::TreeNodeEx("ITEM: TreeNode w/ ImGuiTreeNodeFlags_OpenOnDoubleClick", ImGuiTreeNodeFlags_OpenOnDoubleClick | ImGuiTreeNodeFlags_NoTreePushOnOpen); } // Testing tree node with ImGuiButtonFlags_PressedOnDoubleClick button policy. - if (item_type == 13){ const char* items[] = { "Apple", "Banana", "Cherry", "Kiwi" }; static int current = 1; ret = ImGui::Combo("ITEM: Combo", ¤t, items, IM_ARRAYSIZE(items)); } - if (item_type == 14){ const char* items[] = { "Apple", "Banana", "Cherry", "Kiwi" }; static int current = 1; ret = ImGui::ListBox("ITEM: ListBox", ¤t, items, IM_ARRAYSIZE(items), IM_ARRAYSIZE(items)); } + if (item_type == 6) { ret = ImGui::InputTextMultiline("ITEM: InputTextMultiline", &str[0], IM_ARRAYSIZE(str)); } // Testing input text (which uses a child window) + if (item_type == 7) { ret = ImGui::InputFloat("ITEM: InputFloat", col4f, 1.0f); } // Testing +/- buttons on scalar input + if (item_type == 8) { ret = ImGui::InputFloat3("ITEM: InputFloat3", col4f); } // Testing multi-component items (IsItemXXX flags are reported merged) + if (item_type == 9) { ret = ImGui::ColorEdit4("ITEM: ColorEdit4", col4f); } // Testing multi-component items (IsItemXXX flags are reported merged) + if (item_type == 10){ ret = ImGui::Selectable("ITEM: Selectable"); } // Testing selectable item + if (item_type == 11){ ret = ImGui::MenuItem("ITEM: MenuItem"); } // Testing menu item (they use ImGuiButtonFlags_PressedOnRelease button policy) + if (item_type == 12){ ret = ImGui::TreeNode("ITEM: TreeNode"); if (ret) ImGui::TreePop(); } // Testing tree node + if (item_type == 13){ ret = ImGui::TreeNodeEx("ITEM: TreeNode w/ ImGuiTreeNodeFlags_OpenOnDoubleClick", ImGuiTreeNodeFlags_OpenOnDoubleClick | ImGuiTreeNodeFlags_NoTreePushOnOpen); } // Testing tree node with ImGuiButtonFlags_PressedOnDoubleClick button policy. + if (item_type == 14){ const char* items[] = { "Apple", "Banana", "Cherry", "Kiwi" }; static int current = 1; ret = ImGui::Combo("ITEM: Combo", ¤t, items, IM_ARRAYSIZE(items)); } + if (item_type == 15){ const char* items[] = { "Apple", "Banana", "Cherry", "Kiwi" }; static int current = 1; ret = ImGui::ListBox("ITEM: ListBox", ¤t, items, IM_ARRAYSIZE(items), IM_ARRAYSIZE(items)); } // Display the values of IsItemHovered() and other common item state functions. // Note that the ImGuiHoveredFlags_XXX flags can be combined. @@ -2271,43 +2367,64 @@ static void ShowDemoWindowWidgets() if (item_disabled) ImGui::EndDisabled(); + char buf[1] = ""; + ImGui::InputText("unused", buf, IM_ARRAYSIZE(buf), ImGuiInputTextFlags_ReadOnly); + ImGui::SameLine(); + HelpMarker("This widget is only here to be able to tab-out of the widgets above and see e.g. Deactivated() status."); + + ImGui::TreePop(); + } + + IMGUI_DEMO_MARKER("Widgets/Querying Window Status (Focused,Hovered etc.)"); + if (ImGui::TreeNode("Querying Window Status (Focused/Hovered etc.)")) + { static bool embed_all_inside_a_child_window = false; - ImGui::Checkbox("Embed everything inside a child window (for additional testing)", &embed_all_inside_a_child_window); + ImGui::Checkbox("Embed everything inside a child window for testing _RootWindow flag.", &embed_all_inside_a_child_window); if (embed_all_inside_a_child_window) ImGui::BeginChild("outer_child", ImVec2(0, ImGui::GetFontSize() * 20.0f), true); // Testing IsWindowFocused() function with its various flags. - // Note that the ImGuiFocusedFlags_XXX flags can be combined. ImGui::BulletText( "IsWindowFocused() = %d\n" "IsWindowFocused(_ChildWindows) = %d\n" + "IsWindowFocused(_ChildWindows|_NoPopupHierarchy) = %d\n" "IsWindowFocused(_ChildWindows|_RootWindow) = %d\n" + "IsWindowFocused(_ChildWindows|_RootWindow|_NoPopupHierarchy) = %d\n" "IsWindowFocused(_RootWindow) = %d\n" + "IsWindowFocused(_RootWindow|_NoPopupHierarchy) = %d\n" "IsWindowFocused(_AnyWindow) = %d\n", ImGui::IsWindowFocused(), ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows), + ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows | ImGuiFocusedFlags_NoPopupHierarchy), ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows | ImGuiFocusedFlags_RootWindow), + ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows | ImGuiFocusedFlags_RootWindow | ImGuiFocusedFlags_NoPopupHierarchy), ImGui::IsWindowFocused(ImGuiFocusedFlags_RootWindow), + ImGui::IsWindowFocused(ImGuiFocusedFlags_RootWindow | ImGuiFocusedFlags_NoPopupHierarchy), ImGui::IsWindowFocused(ImGuiFocusedFlags_AnyWindow)); // Testing IsWindowHovered() function with its various flags. - // Note that the ImGuiHoveredFlags_XXX flags can be combined. ImGui::BulletText( "IsWindowHovered() = %d\n" "IsWindowHovered(_AllowWhenBlockedByPopup) = %d\n" "IsWindowHovered(_AllowWhenBlockedByActiveItem) = %d\n" "IsWindowHovered(_ChildWindows) = %d\n" + "IsWindowHovered(_ChildWindows|_NoPopupHierarchy) = %d\n" "IsWindowHovered(_ChildWindows|_RootWindow) = %d\n" - "IsWindowHovered(_ChildWindows|_AllowWhenBlockedByPopup) = %d\n" + "IsWindowHovered(_ChildWindows|_RootWindow|_NoPopupHierarchy) = %d\n" "IsWindowHovered(_RootWindow) = %d\n" + "IsWindowHovered(_RootWindow|_NoPopupHierarchy) = %d\n" + "IsWindowHovered(_ChildWindows|_AllowWhenBlockedByPopup) = %d\n" "IsWindowHovered(_AnyWindow) = %d\n", ImGui::IsWindowHovered(), ImGui::IsWindowHovered(ImGuiHoveredFlags_AllowWhenBlockedByPopup), ImGui::IsWindowHovered(ImGuiHoveredFlags_AllowWhenBlockedByActiveItem), ImGui::IsWindowHovered(ImGuiHoveredFlags_ChildWindows), + ImGui::IsWindowHovered(ImGuiHoveredFlags_ChildWindows | ImGuiHoveredFlags_NoPopupHierarchy), ImGui::IsWindowHovered(ImGuiHoveredFlags_ChildWindows | ImGuiHoveredFlags_RootWindow), - ImGui::IsWindowHovered(ImGuiHoveredFlags_ChildWindows | ImGuiHoveredFlags_AllowWhenBlockedByPopup), + ImGui::IsWindowHovered(ImGuiHoveredFlags_ChildWindows | ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_NoPopupHierarchy), ImGui::IsWindowHovered(ImGuiHoveredFlags_RootWindow), + ImGui::IsWindowHovered(ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_NoPopupHierarchy), + ImGui::IsWindowHovered(ImGuiHoveredFlags_ChildWindows | ImGuiHoveredFlags_AllowWhenBlockedByPopup), ImGui::IsWindowHovered(ImGuiHoveredFlags_AnyWindow)); ImGui::BeginChild("child", ImVec2(0, 50), true); @@ -2316,9 +2433,6 @@ static void ShowDemoWindowWidgets() if (embed_all_inside_a_child_window) ImGui::EndChild(); - static char unused_str[] = "This widget is only here to be able to tab-out of the widgets above."; - ImGui::InputText("unused", unused_str, IM_ARRAYSIZE(unused_str), ImGuiInputTextFlags_ReadOnly); - // Calling IsItemHovered() after begin returns the hovered status of the title bar. // This is useful in particular if you want to create a context menu associated to the title bar of a window. static bool test_window = false; @@ -2346,6 +2460,7 @@ static void ShowDemoWindowWidgets() if (disable_all) ImGui::EndDisabled(); + IMGUI_DEMO_MARKER("Widgets/Disable Block"); if (ImGui::TreeNode("Disable block")) { ImGui::Checkbox("Disable entire section above", &disable_all); @@ -2356,9 +2471,11 @@ static void ShowDemoWindowWidgets() static void ShowDemoWindowLayout() { + IMGUI_DEMO_MARKER("Layout"); if (!ImGui::CollapsingHeader("Layout & Scrolling")) return; + IMGUI_DEMO_MARKER("Layout/Child windows"); if (ImGui::TreeNode("Child windows")) { HelpMarker("Use child windows to begin into a self-contained independent scrolling/clipping regions within a host window."); @@ -2372,7 +2489,7 @@ static void ShowDemoWindowLayout() ImGuiWindowFlags window_flags = ImGuiWindowFlags_HorizontalScrollbar; if (disable_mouse_wheel) window_flags |= ImGuiWindowFlags_NoScrollWithMouse; - ImGui::BeginChild("ChildL", ImVec2(ImGui::GetWindowContentRegionWidth() * 0.5f, 260), false, window_flags); + ImGui::BeginChild("ChildL", ImVec2(ImGui::GetContentRegionAvail().x * 0.5f, 260), false, window_flags); for (int i = 0; i < 100; i++) ImGui::Text("%04d: scrollable region", i); ImGui::EndChild(); @@ -2444,6 +2561,7 @@ static void ShowDemoWindowLayout() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Layout/Widgets Width"); if (ImGui::TreeNode("Widgets Width")) { static float f = 0.0f; @@ -2520,11 +2638,13 @@ static void ShowDemoWindowLayout() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Layout/Basic Horizontal Layout"); if (ImGui::TreeNode("Basic Horizontal Layout")) { ImGui::TextWrapped("(Use ImGui::SameLine() to keep adding items to the right of the preceding item)"); // Text + IMGUI_DEMO_MARKER("Layout/Basic Horizontal Layout/SameLine"); ImGui::Text("Two items: Hello"); ImGui::SameLine(); ImGui::TextColored(ImVec4(1,1,0,1), "Sailor"); @@ -2545,6 +2665,7 @@ static void ShowDemoWindowLayout() ImGui::Text("can fit within a text block."); // Aligned to arbitrary position. Easy/cheap column. + IMGUI_DEMO_MARKER("Layout/Basic Horizontal Layout/SameLine (with offset)"); ImGui::Text("Aligned"); ImGui::SameLine(150); ImGui::Text("x=150"); ImGui::SameLine(300); ImGui::Text("x=300"); @@ -2553,6 +2674,7 @@ static void ShowDemoWindowLayout() ImGui::SameLine(300); ImGui::SmallButton("x=300"); // Checkbox + IMGUI_DEMO_MARKER("Layout/Basic Horizontal Layout/SameLine (more)"); static bool c1 = false, c2 = false, c3 = false, c4 = false; ImGui::Checkbox("My", &c1); ImGui::SameLine(); ImGui::Checkbox("Tailor", &c2); ImGui::SameLine(); @@ -2584,6 +2706,7 @@ static void ShowDemoWindowLayout() ImGui::PopItemWidth(); // Dummy + IMGUI_DEMO_MARKER("Layout/Basic Horizontal Layout/Dummy"); ImVec2 button_sz(40, 40); ImGui::Button("A", button_sz); ImGui::SameLine(); ImGui::Dummy(button_sz); ImGui::SameLine(); @@ -2591,7 +2714,8 @@ static void ShowDemoWindowLayout() // Manually wrapping // (we should eventually provide this as an automatic layout feature, but for now you can do it manually) - ImGui::Text("Manually wrapping:"); + IMGUI_DEMO_MARKER("Layout/Basic Horizontal Layout/Manual wrapping"); + ImGui::Text("Manual wrapping:"); ImGuiStyle& style = ImGui::GetStyle(); int buttons_count = 20; float window_visible_x2 = ImGui::GetWindowPos().x + ImGui::GetWindowContentRegionMax().x; @@ -2609,6 +2733,7 @@ static void ShowDemoWindowLayout() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Layout/Groups"); if (ImGui::TreeNode("Groups")) { HelpMarker( @@ -2656,6 +2781,7 @@ static void ShowDemoWindowLayout() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Layout/Text Baseline Alignment"); if (ImGui::TreeNode("Text Baseline Alignment")) { { @@ -2774,9 +2900,11 @@ static void ShowDemoWindowLayout() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Layout/Scrolling"); if (ImGui::TreeNode("Scrolling")) { // Vertical scroll functions + IMGUI_DEMO_MARKER("Layout/Scrolling/Vertical"); HelpMarker("Use SetScrollHereY() or SetScrollFromPosY() to scroll to a given vertical position."); static int track_item = 50; @@ -2849,6 +2977,7 @@ static void ShowDemoWindowLayout() ImGui::PopID(); // Horizontal scroll functions + IMGUI_DEMO_MARKER("Layout/Scrolling/Horizontal"); ImGui::Spacing(); HelpMarker( "Use SetScrollHereX() or SetScrollFromPosX() to scroll to a given horizontal position.\n\n" @@ -2894,6 +3023,7 @@ static void ShowDemoWindowLayout() ImGui::PopID(); // Miscellaneous Horizontal Scrolling Demo + IMGUI_DEMO_MARKER("Layout/Scrolling/Horizontal (more)"); HelpMarker( "Horizontal scrolling for a window is enabled via the ImGuiWindowFlags_HorizontalScrollbar flag.\n\n" "You may want to also explicitly specify content width by using SetNextWindowContentWidth() before Begin()."); @@ -2968,6 +3098,7 @@ static void ShowDemoWindowLayout() if (explicit_content_size) ImGui::SetNextWindowContentSize(ImVec2(contents_size_x, 0.0f)); ImGui::Begin("Horizontal contents size demo window", &show_horizontal_contents_size_demo_window, show_h_scrollbar ? ImGuiWindowFlags_HorizontalScrollbar : 0); + IMGUI_DEMO_MARKER("Layout/Scrolling/Horizontal contents size demo window"); ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(2, 0)); ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(2, 0)); HelpMarker("Test of different widgets react and impact the work rectangle growing when horizontal scrolling is enabled.\n\nUse 'Metrics->Tools->Show windows rectangles' to visualize rectangles."); @@ -3054,6 +3185,7 @@ static void ShowDemoWindowLayout() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Layout/Clipping"); if (ImGui::TreeNode("Clipping")) { static ImVec2 size(100.0f, 100.0f); @@ -3122,6 +3254,7 @@ static void ShowDemoWindowLayout() static void ShowDemoWindowPopups() { + IMGUI_DEMO_MARKER("Popups"); if (!ImGui::CollapsingHeader("Popups & Modal windows")) return; @@ -3143,6 +3276,7 @@ static void ShowDemoWindowPopups() // With popups we have to go through a library call (here OpenPopup) to manipulate the visibility state. // This may be a bit confusing at first but it should quickly make sense. Follow on the examples below. + IMGUI_DEMO_MARKER("Popups/Popups"); if (ImGui::TreeNode("Popups")) { ImGui::TextWrapped( @@ -3211,17 +3345,33 @@ static void ShowDemoWindowPopups() } // Call the more complete ShowExampleMenuFile which we use in various places of this demo - if (ImGui::Button("File Menu..")) + if (ImGui::Button("With a menu..")) ImGui::OpenPopup("my_file_popup"); - if (ImGui::BeginPopup("my_file_popup")) + if (ImGui::BeginPopup("my_file_popup", ImGuiWindowFlags_MenuBar)) { - ShowExampleMenuFile(); + if (ImGui::BeginMenuBar()) + { + if (ImGui::BeginMenu("File")) + { + ShowExampleMenuFile(); + ImGui::EndMenu(); + } + if (ImGui::BeginMenu("Edit")) + { + ImGui::MenuItem("Dummy"); + ImGui::EndMenu(); + } + ImGui::EndMenuBar(); + } + ImGui::Text("Hello from popup!"); + ImGui::Button("This is a dummy button.."); ImGui::EndPopup(); } ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Popups/Context menus"); if (ImGui::TreeNode("Context menus")) { HelpMarker("\"Context\" functions are simple helpers to associate a Popup to a given Item or Window identifier."); @@ -3306,6 +3456,7 @@ static void ShowDemoWindowPopups() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Popups/Modals"); if (ImGui::TreeNode("Modals")) { ImGui::TextWrapped("Modal windows are like popups but the user cannot close them by clicking outside."); @@ -3381,6 +3532,7 @@ static void ShowDemoWindowPopups() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Popups/Menus inside a regular window"); if (ImGui::TreeNode("Menus inside a regular window")) { ImGui::TextWrapped("Below we are testing adding menu items to a regular window. It's rather unusual but should work!"); @@ -3560,6 +3712,7 @@ static void ShowTableColumnsStatusFlags(ImGuiTableColumnFlags flags) static void ShowDemoWindowTables() { //ImGui::SetNextItemOpen(true, ImGuiCond_Once); + IMGUI_DEMO_MARKER("Tables"); if (!ImGui::CollapsingHeader("Tables & Columns")) return; @@ -3599,6 +3752,7 @@ static void ShowDemoWindowTables() // Demos if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Basic"); if (ImGui::TreeNode("Basic")) { // Here we will showcase three different ways to output a table. @@ -3660,6 +3814,7 @@ static void ShowDemoWindowTables() if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Borders, background"); if (ImGui::TreeNode("Borders, background")) { // Expose a few Borders related flags interactively @@ -3730,6 +3885,7 @@ static void ShowDemoWindowTables() if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Resizable, stretch"); if (ImGui::TreeNode("Resizable, stretch")) { // By default, if we don't enable ScrollX the sizing policy for each columns is "Stretch" @@ -3759,6 +3915,7 @@ static void ShowDemoWindowTables() if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Resizable, fixed"); if (ImGui::TreeNode("Resizable, fixed")) { // Here we use ImGuiTableFlags_SizingFixedFit (even though _ScrollX is not set) @@ -3792,6 +3949,7 @@ static void ShowDemoWindowTables() if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Resizable, mixed"); if (ImGui::TreeNode("Resizable, mixed")) { HelpMarker( @@ -3841,6 +3999,7 @@ static void ShowDemoWindowTables() if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Reorderable, hideable, with headers"); if (ImGui::TreeNode("Reorderable, hideable, with headers")) { HelpMarker( @@ -3898,6 +4057,7 @@ static void ShowDemoWindowTables() if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Padding"); if (ImGui::TreeNode("Padding")) { // First example: showcase use of padding flags and effect of BorderOuterV/BorderInnerV on X padding. @@ -4006,6 +4166,7 @@ static void ShowDemoWindowTables() if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Explicit widths"); if (ImGui::TreeNode("Sizing policies")) { static ImGuiTableFlags flags1 = ImGuiTableFlags_BordersV | ImGuiTableFlags_BordersOuterH | ImGuiTableFlags_RowBg | ImGuiTableFlags_ContextMenuInBody; @@ -4109,6 +4270,7 @@ static void ShowDemoWindowTables() if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Vertical scrolling, with clipping"); if (ImGui::TreeNode("Vertical scrolling, with clipping")) { HelpMarker("Here we activate ScrollY, which will create a child window container to allow hosting scrollable contents.\n\nWe also demonstrate using ImGuiListClipper to virtualize the submission of many items."); @@ -4151,6 +4313,7 @@ static void ShowDemoWindowTables() if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Horizontal scrolling"); if (ImGui::TreeNode("Horizontal scrolling")) { HelpMarker( @@ -4239,6 +4402,7 @@ static void ShowDemoWindowTables() if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Columns flags"); if (ImGui::TreeNode("Columns flags")) { // Create a first table just to show all the options/flags we want to make visible in our example! @@ -4303,6 +4467,7 @@ static void ShowDemoWindowTables() if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Columns widths"); if (ImGui::TreeNode("Columns widths")) { HelpMarker("Using TableSetupColumn() to setup default width."); @@ -4368,6 +4533,7 @@ static void ShowDemoWindowTables() if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Nested tables"); if (ImGui::TreeNode("Nested tables")) { HelpMarker("This demonstrate embedding a table into another table cell."); @@ -4412,6 +4578,7 @@ static void ShowDemoWindowTables() if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Row height"); if (ImGui::TreeNode("Row height")) { HelpMarker("You can pass a 'min_row_height' to TableNextRow().\n\nRows are padded with 'style.CellPadding.y' on top and bottom, so effectively the minimum row height will always be >= 'style.CellPadding.y * 2.0f'.\n\nWe cannot honor a _maximum_ row height as that would requires a unique clipping rectangle per row."); @@ -4431,6 +4598,7 @@ static void ShowDemoWindowTables() if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Outer size"); if (ImGui::TreeNode("Outer size")) { // Showcasing use of ImGuiTableFlags_NoHostExtendX and ImGuiTableFlags_NoHostExtendY @@ -4497,6 +4665,7 @@ static void ShowDemoWindowTables() if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Background color"); if (ImGui::TreeNode("Background color")) { static ImGuiTableFlags flags = ImGuiTableFlags_RowBg; @@ -4554,6 +4723,7 @@ static void ShowDemoWindowTables() if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Tree view"); if (ImGui::TreeNode("Tree view")) { static ImGuiTableFlags flags = ImGuiTableFlags_BordersV | ImGuiTableFlags_BordersOuterH | ImGuiTableFlags_Resizable | ImGuiTableFlags_RowBg | ImGuiTableFlags_NoBordersInBody; @@ -4625,6 +4795,7 @@ static void ShowDemoWindowTables() if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Item width"); if (ImGui::TreeNode("Item width")) { HelpMarker( @@ -4670,6 +4841,7 @@ static void ShowDemoWindowTables() // Demonstrate using TableHeader() calls instead of TableHeadersRow() if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Custom headers"); if (ImGui::TreeNode("Custom headers")) { const int COLUMNS_COUNT = 3; @@ -4717,6 +4889,7 @@ static void ShowDemoWindowTables() // Demonstrate creating custom context menus inside columns, while playing it nice with context menus provided by TableHeadersRow()/TableHeader() if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Context menus"); if (ImGui::TreeNode("Context menus")) { HelpMarker("By default, right-clicking over a TableHeadersRow()/TableHeader() line will open the default context-menu.\nUsing ImGuiTableFlags_ContextMenuInBody we also allow right-clicking over columns body."); @@ -4823,6 +4996,7 @@ static void ShowDemoWindowTables() // Demonstrate creating multiple tables with the same ID if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Synced instances"); if (ImGui::TreeNode("Synced instances")) { HelpMarker("Multiple tables with the same identifier will share their settings, width, visibility, order etc."); @@ -4858,6 +5032,7 @@ static void ShowDemoWindowTables() }; if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Sorting"); if (ImGui::TreeNode("Sorting")) { // Create item list @@ -4945,6 +5120,7 @@ static void ShowDemoWindowTables() //ImGui::SetNextItemOpen(true, ImGuiCond_Once); // [DEBUG] if (open_action != -1) ImGui::SetNextItemOpen(open_action != 0); + IMGUI_DEMO_MARKER("Tables/Advanced"); if (ImGui::TreeNode("Advanced")) { static ImGuiTableFlags flags = @@ -5261,6 +5437,7 @@ static void ShowDemoWindowTables() // [2020: Columns are under-featured and not maintained. Prefer using the more flexible and powerful BeginTable() API!] static void ShowDemoWindowColumns() { + IMGUI_DEMO_MARKER("Columns (legacy API)"); bool open = ImGui::TreeNode("Legacy Columns API"); ImGui::SameLine(); HelpMarker("Columns() is an old API! Prefer using the more flexible and powerful BeginTable() API!"); @@ -5268,6 +5445,7 @@ static void ShowDemoWindowColumns() return; // Basic columns + IMGUI_DEMO_MARKER("Columns (legacy API)/Basic"); if (ImGui::TreeNode("Basic")) { ImGui::Text("Without border:"); @@ -5312,6 +5490,7 @@ static void ShowDemoWindowColumns() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Columns (legacy API)/Borders"); if (ImGui::TreeNode("Borders")) { // NB: Future columns API should allow automatic horizontal borders. @@ -5347,6 +5526,7 @@ static void ShowDemoWindowColumns() } // Create multiple items in a same cell before switching to next column + IMGUI_DEMO_MARKER("Columns (legacy API)/Mixed items"); if (ImGui::TreeNode("Mixed items")) { ImGui::Columns(3, "mixed"); @@ -5378,6 +5558,7 @@ static void ShowDemoWindowColumns() } // Word wrapping + IMGUI_DEMO_MARKER("Columns (legacy API)/Word-wrapping"); if (ImGui::TreeNode("Word-wrapping")) { ImGui::Columns(2, "word-wrapping"); @@ -5392,6 +5573,7 @@ static void ShowDemoWindowColumns() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Columns (legacy API)/Horizontal Scrolling"); if (ImGui::TreeNode("Horizontal Scrolling")) { ImGui::SetNextWindowContentSize(ImVec2(1500.0f, 0.0f)); @@ -5417,6 +5599,7 @@ static void ShowDemoWindowColumns() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Columns (legacy API)/Tree"); if (ImGui::TreeNode("Tree")) { ImGui::Columns(2, "tree", true); @@ -5458,6 +5641,7 @@ static void ShowDemoWindowColumns() static void ShowDemoWindowMisc() { + IMGUI_DEMO_MARKER("Filtering"); if (ImGui::CollapsingHeader("Filtering")) { // Helper class to easy setup a text filter. @@ -5475,18 +5659,21 @@ static void ShowDemoWindowMisc() ImGui::BulletText("%s", lines[i]); } + IMGUI_DEMO_MARKER("Inputs, Navigation & Focus"); if (ImGui::CollapsingHeader("Inputs, Navigation & Focus")) { ImGuiIO& io = ImGui::GetIO(); // Display ImGuiIO output flags ImGui::Text("WantCaptureMouse: %d", io.WantCaptureMouse); + ImGui::Text("WantCaptureMouseUnlessPopupClose: %d", io.WantCaptureMouseUnlessPopupClose); ImGui::Text("WantCaptureKeyboard: %d", io.WantCaptureKeyboard); ImGui::Text("WantTextInput: %d", io.WantTextInput); ImGui::Text("WantSetMousePos: %d", io.WantSetMousePos); ImGui::Text("NavActive: %d, NavVisible: %d", io.NavActive, io.NavVisible); // Display Mouse state + IMGUI_DEMO_MARKER("Inputs, Navigation & Focus/Mouse State"); if (ImGui::TreeNode("Mouse State")) { if (ImGui::IsMousePosValid()) @@ -5494,16 +5681,18 @@ static void ShowDemoWindowMisc() else ImGui::Text("Mouse pos: "); ImGui::Text("Mouse delta: (%g, %g)", io.MouseDelta.x, io.MouseDelta.y); - ImGui::Text("Mouse down:"); for (int i = 0; i < IM_ARRAYSIZE(io.MouseDown); i++) if (ImGui::IsMouseDown(i)) { ImGui::SameLine(); ImGui::Text("b%d (%.02f secs)", i, io.MouseDownDuration[i]); } - ImGui::Text("Mouse clicked:"); for (int i = 0; i < IM_ARRAYSIZE(io.MouseDown); i++) if (ImGui::IsMouseClicked(i)) { ImGui::SameLine(); ImGui::Text("b%d", i); } - ImGui::Text("Mouse dblclick:"); for (int i = 0; i < IM_ARRAYSIZE(io.MouseDown); i++) if (ImGui::IsMouseDoubleClicked(i)){ ImGui::SameLine(); ImGui::Text("b%d", i); } - ImGui::Text("Mouse released:"); for (int i = 0; i < IM_ARRAYSIZE(io.MouseDown); i++) if (ImGui::IsMouseReleased(i)) { ImGui::SameLine(); ImGui::Text("b%d", i); } + + int count = IM_ARRAYSIZE(io.MouseDown); + ImGui::Text("Mouse down:"); for (int i = 0; i < count; i++) if (ImGui::IsMouseDown(i)) { ImGui::SameLine(); ImGui::Text("b%d (%.02f secs)", i, io.MouseDownDuration[i]); } + ImGui::Text("Mouse clicked:"); for (int i = 0; i < count; i++) if (ImGui::IsMouseClicked(i)) { ImGui::SameLine(); ImGui::Text("b%d (%d)", i, ImGui::GetMouseClickedCount(i)); } + ImGui::Text("Mouse released:"); for (int i = 0; i < count; i++) if (ImGui::IsMouseReleased(i)) { ImGui::SameLine(); ImGui::Text("b%d", i); } ImGui::Text("Mouse wheel: %.1f", io.MouseWheel); ImGui::Text("Pen Pressure: %.1f", io.PenPressure); // Note: currently unused ImGui::TreePop(); } // Display Keyboard/Mouse state + IMGUI_DEMO_MARKER("Inputs, Navigation & Focus/Keyboard & Navigation State"); if (ImGui::TreeNode("Keyboard & Navigation State")) { ImGui::Text("Keys down:"); for (int i = 0; i < IM_ARRAYSIZE(io.KeysDown); i++) if (ImGui::IsKeyDown(i)) { ImGui::SameLine(); ImGui::Text("%d (0x%X) (%.02f secs)", i, i, io.KeysDownDuration[i]); } @@ -5525,6 +5714,7 @@ static void ShowDemoWindowMisc() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Inputs, Navigation & Focus/Tabbing"); if (ImGui::TreeNode("Tabbing")) { ImGui::Text("Use TAB/SHIFT+TAB to cycle through keyboard editable fields."); @@ -5540,6 +5730,7 @@ static void ShowDemoWindowMisc() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Inputs, Navigation & Focus/Focus from code"); if (ImGui::TreeNode("Focus from code")) { bool focus_1 = ImGui::Button("Focus on 1"); ImGui::SameLine(); @@ -5581,6 +5772,7 @@ static void ShowDemoWindowMisc() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Inputs, Navigation & Focus/Dragging"); if (ImGui::TreeNode("Dragging")) { ImGui::TextWrapped("You can use ImGui::GetMouseDragDelta(0) to query for the dragged amount on any widget."); @@ -5609,6 +5801,7 @@ static void ShowDemoWindowMisc() ImGui::TreePop(); } + IMGUI_DEMO_MARKER("Inputs, Navigation & Focus/Mouse cursors"); if (ImGui::TreeNode("Mouse cursors")) { const char* mouse_cursors_names[] = { "Arrow", "TextInput", "ResizeAll", "ResizeNS", "ResizeEW", "ResizeNESW", "ResizeNWSE", "Hand", "NotAllowed" }; @@ -5646,6 +5839,7 @@ void ImGui::ShowAboutWindow(bool* p_open) ImGui::End(); return; } + IMGUI_DEMO_MARKER("Tools/About Dear ImGui"); ImGui::Text("Dear ImGui %s", ImGui::GetVersion()); ImGui::Separator(); ImGui::Text("By Omar Cornut and all Dear ImGui contributors."); @@ -5833,6 +6027,7 @@ bool ImGui::ShowStyleSelector(const char* label) void ImGui::ShowStyleEditor(ImGuiStyle* ref) { + IMGUI_DEMO_MARKER("Tools/Style Editor"); // You can pass in a reference ImGuiStyle structure to compare to, revert to and save to // (without a reference style pointer, we will use one compared locally as a reference) ImGuiStyle& style = ImGui::GetStyle(); @@ -6116,6 +6311,7 @@ static void ShowExampleAppMainMenuBar() // (future version will add explicit flags to BeginMenu() to request processing shortcuts) static void ShowExampleMenuFile() { + IMGUI_DEMO_MARKER("Examples/Menu"); ImGui::MenuItem("(demo menu)", NULL, false, false); if (ImGui::MenuItem("New")) {} if (ImGui::MenuItem("Open", "Ctrl+O")) {} @@ -6141,6 +6337,7 @@ static void ShowExampleMenuFile() if (ImGui::MenuItem("Save As..")) {} ImGui::Separator(); + IMGUI_DEMO_MARKER("Examples/Menu/Options"); if (ImGui::BeginMenu("Options")) { static bool enabled = true; @@ -6157,6 +6354,7 @@ static void ShowExampleMenuFile() ImGui::EndMenu(); } + IMGUI_DEMO_MARKER("Examples/Menu/Colors"); if (ImGui::BeginMenu("Colors")) { float sz = ImGui::GetTextLineHeight(); @@ -6177,6 +6375,7 @@ static void ShowExampleMenuFile() // In a real code-base using it would make senses to use this feature from very different code locations. if (ImGui::BeginMenu("Options")) // <-- Append! { + IMGUI_DEMO_MARKER("Examples/Menu/Append to an existing menu"); static bool b = true; ImGui::Checkbox("SomeOption", &b); ImGui::EndMenu(); @@ -6209,6 +6408,7 @@ struct ExampleAppConsole ExampleAppConsole() { + IMGUI_DEMO_MARKER("Examples/Console"); ClearLog(); memset(InputBuf, 0, sizeof(InputBuf)); HistoryPos = -1; @@ -6686,6 +6886,7 @@ static void ShowExampleAppLog(bool* p_open) // Most of the contents of the window will be added by the log.Draw() call. ImGui::SetNextWindowSize(ImVec2(500, 400), ImGuiCond_FirstUseEver); ImGui::Begin("Example: Log", p_open); + IMGUI_DEMO_MARKER("Examples/Log"); if (ImGui::SmallButton("[Debug] Add 5 entries")) { static int counter = 0; @@ -6716,6 +6917,7 @@ static void ShowExampleAppLayout(bool* p_open) ImGui::SetNextWindowSize(ImVec2(500, 440), ImGuiCond_FirstUseEver); if (ImGui::Begin("Example: Simple layout", p_open, ImGuiWindowFlags_MenuBar)) { + IMGUI_DEMO_MARKER("Examples/Simple layout"); if (ImGui::BeginMenuBar()) { if (ImGui::BeginMenu("File")) @@ -6832,6 +7034,7 @@ static void ShowExampleAppPropertyEditor(bool* p_open) ImGui::End(); return; } + IMGUI_DEMO_MARKER("Examples/Property Editor"); HelpMarker( "This example shows how you may implement a property editor using two columns.\n" @@ -6867,6 +7070,7 @@ static void ShowExampleAppLongText(bool* p_open) ImGui::End(); return; } + IMGUI_DEMO_MARKER("Examples/Long text display"); static int test_type = 0; static ImGuiTextBuffer log; @@ -6928,6 +7132,7 @@ static void ShowExampleAppAutoResize(bool* p_open) ImGui::End(); return; } + IMGUI_DEMO_MARKER("Examples/Auto-resizing window"); static int lines = 10; ImGui::TextUnformatted( @@ -6979,6 +7184,7 @@ static void ShowExampleAppConstrainedResize(bool* p_open) ImGuiWindowFlags flags = auto_resize ? ImGuiWindowFlags_AlwaysAutoResize : 0; if (ImGui::Begin("Example: Constrained Resize", p_open, flags)) { + IMGUI_DEMO_MARKER("Examples/Constrained Resizing window"); if (ImGui::Button("200x200")) { ImGui::SetWindowSize(ImVec2(200, 200)); } ImGui::SameLine(); if (ImGui::Button("500x500")) { ImGui::SetWindowSize(ImVec2(500, 500)); } ImGui::SameLine(); if (ImGui::Button("800x200")) { ImGui::SetWindowSize(ImVec2(800, 200)); } @@ -7021,6 +7227,7 @@ static void ShowExampleAppSimpleOverlay(bool* p_open) ImGui::SetNextWindowBgAlpha(0.35f); // Transparent background if (ImGui::Begin("Example: Simple overlay", p_open, window_flags)) { + IMGUI_DEMO_MARKER("Examples/Simple Overlay"); ImGui::Text("Simple overlay\n" "in the corner of the screen.\n" "(right-click to change position)"); ImGui::Separator(); if (ImGui::IsMousePosValid()) @@ -7095,6 +7302,7 @@ static void ShowExampleAppWindowTitles(bool*) // Using "##" to display same title but have unique identifier. ImGui::SetNextWindowPos(ImVec2(base_pos.x + 100, base_pos.y + 100), ImGuiCond_FirstUseEver); ImGui::Begin("Same title as another window##1"); + IMGUI_DEMO_MARKER("Examples/Manipulating window titles"); ImGui::Text("This is window 1.\nMy title is the same as window 2, but my identifier is unique."); ImGui::End(); @@ -7124,6 +7332,7 @@ static void ShowExampleAppCustomRendering(bool* p_open) ImGui::End(); return; } + IMGUI_DEMO_MARKER("Examples/Custom Rendering"); // Tip: If you do a lot of custom rendering, you probably want to use your own geometrical types and benefit of // overloaded operators, etc. Define IM_VEC2_CLASS_EXTRA in imconfig.h to create implicit conversions between your diff --git a/imgui-sys/third-party/imgui-master/imgui/imgui_draw.cpp b/imgui-sys/third-party/imgui-master/imgui/imgui_draw.cpp index e1d7b7eee..bf1da15b9 100644 --- a/imgui-sys/third-party/imgui-master/imgui/imgui_draw.cpp +++ b/imgui-sys/third-party/imgui-master/imgui/imgui_draw.cpp @@ -1,4 +1,4 @@ -// dear imgui, v1.84 +// dear imgui, v1.86 // (drawing and font code) /* @@ -473,6 +473,7 @@ void ImDrawList::_PopUnusedDrawCmd() void ImDrawList::AddCallback(ImDrawCallback callback, void* callback_data) { + IM_ASSERT_PARANOID(CmdBuffer.Size > 0); ImDrawCmd* curr_cmd = &CmdBuffer.Data[CmdBuffer.Size - 1]; IM_ASSERT(curr_cmd->UserCallback == NULL); if (curr_cmd->ElemCount != 0) @@ -494,6 +495,7 @@ void ImDrawList::AddCallback(ImDrawCallback callback, void* callback_data) // Try to merge two last draw commands void ImDrawList::_TryMergeDrawCmds() { + IM_ASSERT_PARANOID(CmdBuffer.Size > 0); ImDrawCmd* curr_cmd = &CmdBuffer.Data[CmdBuffer.Size - 1]; ImDrawCmd* prev_cmd = curr_cmd - 1; if (ImDrawCmd_HeaderCompare(curr_cmd, prev_cmd) == 0 && curr_cmd->UserCallback == NULL && prev_cmd->UserCallback == NULL) @@ -508,6 +510,7 @@ void ImDrawList::_TryMergeDrawCmds() void ImDrawList::_OnChangedClipRect() { // If current command is used with different settings we need to add a new command + IM_ASSERT_PARANOID(CmdBuffer.Size > 0); ImDrawCmd* curr_cmd = &CmdBuffer.Data[CmdBuffer.Size - 1]; if (curr_cmd->ElemCount != 0 && memcmp(&curr_cmd->ClipRect, &_CmdHeader.ClipRect, sizeof(ImVec4)) != 0) { @@ -530,6 +533,7 @@ void ImDrawList::_OnChangedClipRect() void ImDrawList::_OnChangedTextureID() { // If current command is used with different settings we need to add a new command + IM_ASSERT_PARANOID(CmdBuffer.Size > 0); ImDrawCmd* curr_cmd = &CmdBuffer.Data[CmdBuffer.Size - 1]; if (curr_cmd->ElemCount != 0 && curr_cmd->TextureId != _CmdHeader.TextureId) { @@ -553,6 +557,7 @@ void ImDrawList::_OnChangedVtxOffset() { // We don't need to compare curr_cmd->VtxOffset != _CmdHeader.VtxOffset because we know it'll be different at the time we call this. _VtxCurrentIdx = 0; + IM_ASSERT_PARANOID(CmdBuffer.Size > 0); ImDrawCmd* curr_cmd = &CmdBuffer.Data[CmdBuffer.Size - 1]; //IM_ASSERT(curr_cmd->VtxOffset != _CmdHeader.VtxOffset); // See #3349 if (curr_cmd->ElemCount != 0) @@ -1919,37 +1924,38 @@ ImFontConfig::ImFontConfig() // A work of art lies ahead! (. = white layer, X = black layer, others are blank) // The 2x2 white texels on the top left are the ones we'll use everywhere in Dear ImGui to render filled shapes. -const int FONT_ATLAS_DEFAULT_TEX_DATA_W = 108; // Actual texture will be 2 times that + 1 spacing. +// (This is used when io.MouseDrawCursor = true) +const int FONT_ATLAS_DEFAULT_TEX_DATA_W = 122; // Actual texture will be 2 times that + 1 spacing. const int FONT_ATLAS_DEFAULT_TEX_DATA_H = 27; static const char FONT_ATLAS_DEFAULT_TEX_DATA_PIXELS[FONT_ATLAS_DEFAULT_TEX_DATA_W * FONT_ATLAS_DEFAULT_TEX_DATA_H + 1] = { - "..- -XXXXXXX- X - X -XXXXXXX - XXXXXXX- XX " - "..- -X.....X- X.X - X.X -X.....X - X.....X- X..X " - "--- -XXX.XXX- X...X - X...X -X....X - X....X- X..X " - "X - X.X - X.....X - X.....X -X...X - X...X- X..X " - "XX - X.X -X.......X- X.......X -X..X.X - X.X..X- X..X " - "X.X - X.X -XXXX.XXXX- XXXX.XXXX -X.X X.X - X.X X.X- X..XXX " - "X..X - X.X - X.X - X.X -XX X.X - X.X XX- X..X..XXX " - "X...X - X.X - X.X - XX X.X XX - X.X - X.X - X..X..X..XX " - "X....X - X.X - X.X - X.X X.X X.X - X.X - X.X - X..X..X..X.X " - "X.....X - X.X - X.X - X..X X.X X..X - X.X - X.X -XXX X..X..X..X..X" - "X......X - X.X - X.X - X...XXXXXX.XXXXXX...X - X.X XX-XX X.X -X..XX........X..X" - "X.......X - X.X - X.X -X.....................X- X.X X.X-X.X X.X -X...X...........X" - "X........X - X.X - X.X - X...XXXXXX.XXXXXX...X - X.X..X-X..X.X - X..............X" - "X.........X -XXX.XXX- X.X - X..X X.X X..X - X...X-X...X - X.............X" - "X..........X-X.....X- X.X - X.X X.X X.X - X....X-X....X - X.............X" - "X......XXXXX-XXXXXXX- X.X - XX X.X XX - X.....X-X.....X - X............X" - "X...X..X --------- X.X - X.X - XXXXXXX-XXXXXXX - X...........X " - "X..X X..X - -XXXX.XXXX- XXXX.XXXX ------------------------------------- X..........X " - "X.X X..X - -X.......X- X.......X - XX XX - - X..........X " - "XX X..X - - X.....X - X.....X - X.X X.X - - X........X " - " X..X - X...X - X...X - X..X X..X - - X........X " - " XX - X.X - X.X - X...XXXXXXXXXXXXX...X - - XXXXXXXXXX " - "------------ - X - X -X.....................X- ------------------" - " ----------------------------------- X...XXXXXXXXXXXXX...X - " - " - X..X X..X - " - " - X.X X.X - " - " - XX XX - " + "..- -XXXXXXX- X - X -XXXXXXX - XXXXXXX- XX - XX XX " + "..- -X.....X- X.X - X.X -X.....X - X.....X- X..X -X..X X..X" + "--- -XXX.XXX- X...X - X...X -X....X - X....X- X..X -X...X X...X" + "X - X.X - X.....X - X.....X -X...X - X...X- X..X - X...X X...X " + "XX - X.X -X.......X- X.......X -X..X.X - X.X..X- X..X - X...X...X " + "X.X - X.X -XXXX.XXXX- XXXX.XXXX -X.X X.X - X.X X.X- X..XXX - X.....X " + "X..X - X.X - X.X - X.X -XX X.X - X.X XX- X..X..XXX - X...X " + "X...X - X.X - X.X - XX X.X XX - X.X - X.X - X..X..X..XX - X.X " + "X....X - X.X - X.X - X.X X.X X.X - X.X - X.X - X..X..X..X.X - X...X " + "X.....X - X.X - X.X - X..X X.X X..X - X.X - X.X -XXX X..X..X..X..X- X.....X " + "X......X - X.X - X.X - X...XXXXXX.XXXXXX...X - X.X XX-XX X.X -X..XX........X..X- X...X...X " + "X.......X - X.X - X.X -X.....................X- X.X X.X-X.X X.X -X...X...........X- X...X X...X " + "X........X - X.X - X.X - X...XXXXXX.XXXXXX...X - X.X..X-X..X.X - X..............X-X...X X...X" + "X.........X -XXX.XXX- X.X - X..X X.X X..X - X...X-X...X - X.............X-X..X X..X" + "X..........X-X.....X- X.X - X.X X.X X.X - X....X-X....X - X.............X- XX XX " + "X......XXXXX-XXXXXXX- X.X - XX X.X XX - X.....X-X.....X - X............X--------------" + "X...X..X --------- X.X - X.X - XXXXXXX-XXXXXXX - X...........X - " + "X..X X..X - -XXXX.XXXX- XXXX.XXXX ------------------------------------- X..........X - " + "X.X X..X - -X.......X- X.......X - XX XX - - X..........X - " + "XX X..X - - X.....X - X.....X - X.X X.X - - X........X - " + " X..X - - X...X - X...X - X..X X..X - - X........X - " + " XX - - X.X - X.X - X...XXXXXXXXXXXXX...X - - XXXXXXXXXX - " + "------------- - X - X -X.....................X- ------------------- " + " ----------------------------------- X...XXXXXXXXXXXXX...X - " + " - X..X X..X - " + " - X.X X.X - " + " - XX XX - " }; static const ImVec2 FONT_ATLAS_DEFAULT_TEX_CURSOR_DATA[ImGuiMouseCursor_COUNT][3] = @@ -1963,6 +1969,7 @@ static const ImVec2 FONT_ATLAS_DEFAULT_TEX_CURSOR_DATA[ImGuiMouseCursor_COUNT][3 { ImVec2(73,0), ImVec2(17,17), ImVec2( 8, 8) }, // ImGuiMouseCursor_ResizeNESW { ImVec2(55,0), ImVec2(17,17), ImVec2( 8, 8) }, // ImGuiMouseCursor_ResizeNWSE { ImVec2(91,0), ImVec2(17,22), ImVec2( 5, 0) }, // ImGuiMouseCursor_Hand + { ImVec2(109,0),ImVec2(13,15), ImVec2( 6, 7) }, // ImGuiMouseCursor_NotAllowed }; ImFontAtlas::ImFontAtlas() @@ -1998,7 +2005,7 @@ void ImFontAtlas::ClearInputData() ConfigData.clear(); CustomRects.clear(); PackIdMouseCursors = PackIdLines = -1; - TexReady = false; + // Important: we leave TexReady untouched } void ImFontAtlas::ClearTexData() @@ -3073,8 +3080,8 @@ void ImFontGlyphRangesBuilder::AddText(const char* text, const char* text_end) void ImFontGlyphRangesBuilder::AddRanges(const ImWchar* ranges) { for (; ranges[0]; ranges += 2) - for (ImWchar c = ranges[0]; c <= ranges[1]; c++) - AddChar(c); + for (unsigned int c = ranges[0]; c <= ranges[1] && c <= IM_UNICODE_CODEPOINT_MAX; c++) //-V560 + AddChar((ImWchar)c); } void ImFontGlyphRangesBuilder::BuildRanges(ImVector* out_ranges) @@ -3899,10 +3906,10 @@ void ImGui::RenderRectFilledWithHole(ImDrawList* draw_list, ImRect outer, ImRect const bool fill_R = (inner.Max.x < outer.Max.x); const bool fill_U = (inner.Min.y > outer.Min.y); const bool fill_D = (inner.Max.y < outer.Max.y); - if (fill_L) draw_list->AddRectFilled(ImVec2(outer.Min.x, inner.Min.y), ImVec2(inner.Min.x, inner.Max.y), col, rounding, (fill_U ? 0 : ImDrawFlags_RoundCornersTopLeft) | (fill_D ? 0 : ImDrawFlags_RoundCornersBottomLeft)); - if (fill_R) draw_list->AddRectFilled(ImVec2(inner.Max.x, inner.Min.y), ImVec2(outer.Max.x, inner.Max.y), col, rounding, (fill_U ? 0 : ImDrawFlags_RoundCornersTopRight) | (fill_D ? 0 : ImDrawFlags_RoundCornersBottomRight)); - if (fill_U) draw_list->AddRectFilled(ImVec2(inner.Min.x, outer.Min.y), ImVec2(inner.Max.x, inner.Min.y), col, rounding, (fill_L ? 0 : ImDrawFlags_RoundCornersTopLeft) | (fill_R ? 0 : ImDrawFlags_RoundCornersTopRight)); - if (fill_D) draw_list->AddRectFilled(ImVec2(inner.Min.x, inner.Max.y), ImVec2(inner.Max.x, outer.Max.y), col, rounding, (fill_L ? 0 : ImDrawFlags_RoundCornersBottomLeft) | (fill_R ? 0 : ImDrawFlags_RoundCornersBottomRight)); + if (fill_L) draw_list->AddRectFilled(ImVec2(outer.Min.x, inner.Min.y), ImVec2(inner.Min.x, inner.Max.y), col, rounding, ImDrawFlags_RoundCornersNone | (fill_U ? 0 : ImDrawFlags_RoundCornersTopLeft) | (fill_D ? 0 : ImDrawFlags_RoundCornersBottomLeft)); + if (fill_R) draw_list->AddRectFilled(ImVec2(inner.Max.x, inner.Min.y), ImVec2(outer.Max.x, inner.Max.y), col, rounding, ImDrawFlags_RoundCornersNone | (fill_U ? 0 : ImDrawFlags_RoundCornersTopRight) | (fill_D ? 0 : ImDrawFlags_RoundCornersBottomRight)); + if (fill_U) draw_list->AddRectFilled(ImVec2(inner.Min.x, outer.Min.y), ImVec2(inner.Max.x, inner.Min.y), col, rounding, ImDrawFlags_RoundCornersNone | (fill_L ? 0 : ImDrawFlags_RoundCornersTopLeft) | (fill_R ? 0 : ImDrawFlags_RoundCornersTopRight)); + if (fill_D) draw_list->AddRectFilled(ImVec2(inner.Min.x, inner.Max.y), ImVec2(inner.Max.x, outer.Max.y), col, rounding, ImDrawFlags_RoundCornersNone | (fill_L ? 0 : ImDrawFlags_RoundCornersBottomLeft) | (fill_R ? 0 : ImDrawFlags_RoundCornersBottomRight)); if (fill_L && fill_U) draw_list->AddRectFilled(ImVec2(outer.Min.x, outer.Min.y), ImVec2(inner.Min.x, inner.Min.y), col, rounding, ImDrawFlags_RoundCornersTopLeft); if (fill_R && fill_U) draw_list->AddRectFilled(ImVec2(inner.Max.x, outer.Min.y), ImVec2(outer.Max.x, inner.Min.y), col, rounding, ImDrawFlags_RoundCornersTopRight); if (fill_L && fill_D) draw_list->AddRectFilled(ImVec2(outer.Min.x, inner.Max.y), ImVec2(inner.Min.x, outer.Max.y), col, rounding, ImDrawFlags_RoundCornersBottomLeft); diff --git a/imgui-sys/third-party/imgui-master/imgui/imgui_internal.h b/imgui-sys/third-party/imgui-master/imgui/imgui_internal.h index 1eb0cb7a0..73d58f6b8 100644 --- a/imgui-sys/third-party/imgui-master/imgui/imgui_internal.h +++ b/imgui-sys/third-party/imgui-master/imgui/imgui_internal.h @@ -1,4 +1,4 @@ -// dear imgui, v1.84 +// dear imgui, v1.86 // (internal structures/api) // You may use this file to debug, understand or extend ImGui features but we don't provide any guarantee of forward compatibility! @@ -18,12 +18,14 @@ Index of this file: // [SECTION] Generic helpers // [SECTION] ImDrawList support // [SECTION] Widgets support: flags, enums, data structures +// [SECTION] Clipper support +// [SECTION] Navigation support // [SECTION] Columns support // [SECTION] Multi-select support // [SECTION] Docking support // [SECTION] Viewport support // [SECTION] Settings support -// [SECTION] Metrics, Debug +// [SECTION] Metrics, Debug tools // [SECTION] Generic context hooks // [SECTION] ImGuiContext (main imgui context) // [SECTION] ImGuiWindowTempData, ImGuiWindow @@ -82,19 +84,13 @@ Index of this file: #pragma clang diagnostic ignored "-Wzero-as-null-pointer-constant" #pragma clang diagnostic ignored "-Wdouble-promotion" #pragma clang diagnostic ignored "-Wimplicit-int-float-conversion" // warning: implicit conversion from 'xxx' to 'float' may lose precision +#pragma clang diagnostic ignored "-Wmissing-noreturn" // warning: function 'xxx' could be declared with attribute 'noreturn' #elif defined(__GNUC__) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wpragmas" // warning: unknown option after '#pragma GCC diagnostic' kind #pragma GCC diagnostic ignored "-Wclass-memaccess" // [__GNUC__ >= 8] warning: 'memset/memcpy' clearing/writing an object of type 'xxxx' with no trivial copy-assignment; use assignment or value-initialization instead #endif -// Helper macros -#if defined(__clang__) -#define IM_NORETURN __attribute__((noreturn)) -#else -#define IM_NORETURN -#endif - // Legacy defines #ifdef IMGUI_DISABLE_FORMAT_STRING_FUNCTIONS // Renamed in 1.74 #error Use IMGUI_DISABLE_DEFAULT_FORMAT_FUNCTIONS @@ -148,8 +144,8 @@ struct ImGuiWindowSettings; // Storage for a window .ini settings (we ke // Use your programming IDE "Go to definition" facility on the names of the center columns to find the actual flags/enum lists. typedef int ImGuiLayoutType; // -> enum ImGuiLayoutType_ // Enum: Horizontal or vertical +typedef int ImGuiActivateFlags; // -> enum ImGuiActivateFlags_ // Flags: for navigation/focus function (will be for ActivateItem() later) typedef int ImGuiItemFlags; // -> enum ImGuiItemFlags_ // Flags: for PushItemFlag() -typedef int ImGuiItemAddFlags; // -> enum ImGuiItemAddFlags_ // Flags: for ItemAdd() typedef int ImGuiItemStatusFlags; // -> enum ImGuiItemStatusFlags_ // Flags: for DC.LastItemStatusFlags typedef int ImGuiOldColumnFlags; // -> enum ImGuiOldColumnFlags_ // Flags: for BeginColumns() typedef int ImGuiNavHighlightFlags; // -> enum ImGuiNavHighlightFlags_ // Flags: for RenderNavHighlight() @@ -157,6 +153,7 @@ typedef int ImGuiNavDirSourceFlags; // -> enum ImGuiNavDirSourceFlags_ // F typedef int ImGuiNavMoveFlags; // -> enum ImGuiNavMoveFlags_ // Flags: for navigation requests typedef int ImGuiNextItemDataFlags; // -> enum ImGuiNextItemDataFlags_ // Flags: for SetNextItemXXX() functions typedef int ImGuiNextWindowDataFlags; // -> enum ImGuiNextWindowDataFlags_// Flags: for SetNextWindowXXX() functions +typedef int ImGuiScrollFlags; // -> enum ImGuiScrollFlags_ // Flags: for ScrollToItem() and navigation requests typedef int ImGuiSeparatorFlags; // -> enum ImGuiSeparatorFlags_ // Flags: for SeparatorEx() typedef int ImGuiTextFlags; // -> enum ImGuiTextFlags_ // Flags: for TextEx() typedef int ImGuiTooltipFlags; // -> enum ImGuiTooltipFlags_ // Flags: for BeginTooltipEx() @@ -256,12 +253,19 @@ namespace ImStb #endif // Debug Tools -// Use 'Metrics->Tools->Item Picker' to break into the call-stack of a specific item. +// Use 'Metrics/Debugger->Tools->Item Picker' to break into the call-stack of a specific item. +// This will call IM_DEBUG_BREAK() which you may redefine yourself. See https://github.com/scottt/debugbreak for more reference. #ifndef IM_DEBUG_BREAK -#if defined(__clang__) -#define IM_DEBUG_BREAK() __builtin_debugtrap() -#elif defined (_MSC_VER) +#if defined (_MSC_VER) #define IM_DEBUG_BREAK() __debugbreak() +#elif defined(__clang__) +#define IM_DEBUG_BREAK() __builtin_debugtrap() +#elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) +#define IM_DEBUG_BREAK() __asm__ volatile("int $0x03") +#elif defined(__GNUC__) && defined(__thumb__) +#define IM_DEBUG_BREAK() __asm__ volatile(".inst 0xde01") +#elif defined(__GNUC__) && defined(__arm__) && !defined(__thumb__) +#define IM_DEBUG_BREAK() __asm__ volatile(".inst 0xe7f001f0"); #else #define IM_DEBUG_BREAK() IM_ASSERT(0) // It is expected that you define IM_DEBUG_BREAK() into something that will break nicely in a debugger! #endif @@ -298,7 +302,9 @@ static inline ImGuiID ImHash(const void* data, int size, ImU32 seed = 0) { ret #endif // Helpers: Sorting -#define ImQsort qsort +#ifndef ImQsort +static inline void ImQsort(void* base, size_t count, size_t size_of_element, int(IMGUI_CDECL *compare_func)(void const*, void const*)) { if (count > 1) qsort(base, count, size_of_element, compare_func); } +#endif // Helpers: Color Blending IMGUI_API ImU32 ImAlphaBlendColors(ImU32 col_a, ImU32 col_b); @@ -405,8 +411,8 @@ static inline double ImLog(double x) { return log(x); } static inline int ImAbs(int x) { return x < 0 ? -x : x; } static inline float ImAbs(float x) { return fabsf(x); } static inline double ImAbs(double x) { return fabs(x); } -static inline float ImSign(float x) { return (x < 0.0f) ? -1.0f : ((x > 0.0f) ? 1.0f : 0.0f); } // Sign operator - returns -1, 0 or 1 based on sign of argument -static inline double ImSign(double x) { return (x < 0.0) ? -1.0 : ((x > 0.0) ? 1.0 : 0.0); } +static inline float ImSign(float x) { return (x < 0.0f) ? -1.0f : (x > 0.0f) ? 1.0f : 0.0f; } // Sign operator - returns -1, 0 or 1 based on sign of argument +static inline double ImSign(double x) { return (x < 0.0) ? -1.0 : (x > 0.0) ? 1.0 : 0.0; } #ifdef IMGUI_ENABLE_SSE static inline float ImRsqrt(float x) { return _mm_cvtss_f32(_mm_rsqrt_ss(_mm_set_ss(x))); } #else @@ -442,6 +448,7 @@ static inline float ImDot(const ImVec2& a, const ImVec2& b) static inline ImVec2 ImRotate(const ImVec2& v, float cos_a, float sin_a) { return ImVec2(v.x * cos_a - v.y * sin_a, v.x * sin_a + v.y * cos_a); } static inline float ImLinearSweep(float current, float target, float speed) { if (current < target) return ImMin(current + speed, target); if (current > target) return ImMax(current - speed, target); return current; } static inline ImVec2 ImMul(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(lhs.x * rhs.x, lhs.y * rhs.y); } +static inline bool ImIsFloatAboveGuaranteedIntegerPrecision(float f) { return f <= -16777216 || f >= 16777216; } IM_MSVC_RUNTIME_CHECKS_RESTORE // Helpers: Geometry @@ -747,15 +754,8 @@ enum ImGuiItemFlags_ ImGuiItemFlags_NoNavDefaultFocus = 1 << 4, // false // Disable item being a candidate for default focus (e.g. used by title bar items) ImGuiItemFlags_SelectableDontClosePopup = 1 << 5, // false // Disable MenuItem/Selectable() automatically closing their popup window ImGuiItemFlags_MixedValue = 1 << 6, // false // [BETA] Represent a mixed/indeterminate value, generally multi-selection where values differ. Currently only supported by Checkbox() (later should support all sorts of widgets) - ImGuiItemFlags_ReadOnly = 1 << 7 // false // [ALPHA] Allow hovering interactions but underlying value is not changed. -}; - -// Flags for ItemAdd() -// FIXME-NAV: _Focusable is _ALMOST_ what you would expect to be called '_TabStop' but because SetKeyboardFocusHere() works on items with no TabStop we distinguish Focusable from TabStop. -enum ImGuiItemAddFlags_ -{ - ImGuiItemAddFlags_None = 0, - ImGuiItemAddFlags_Focusable = 1 << 0 // FIXME-NAV: In current/legacy scheme, Focusable+TabStop support are opt-in by widgets. We will transition it toward being opt-out, so this flag is expected to eventually disappear. + ImGuiItemFlags_ReadOnly = 1 << 7, // false // [ALPHA] Allow hovering interactions but underlying value is not changed. + ImGuiItemFlags_Inputable = 1 << 8 // false // [WIP] Auto-activate input mode when tab focused. Currently only used and supported by a few items before it becomes a generic feature. }; // Storage for LastItem data @@ -763,16 +763,14 @@ enum ImGuiItemStatusFlags_ { ImGuiItemStatusFlags_None = 0, ImGuiItemStatusFlags_HoveredRect = 1 << 0, // Mouse position is within item rectangle (does NOT mean that the window is in correct z-order and can be hovered!, this is only one part of the most-common IsItemHovered test) - ImGuiItemStatusFlags_HasDisplayRect = 1 << 1, // window->DC.LastItemDisplayRect is valid + ImGuiItemStatusFlags_HasDisplayRect = 1 << 1, // g.LastItemData.DisplayRect is valid ImGuiItemStatusFlags_Edited = 1 << 2, // Value exposed by item was edited in the current frame (should match the bool return value of most widgets) ImGuiItemStatusFlags_ToggledSelection = 1 << 3, // Set when Selectable(), TreeNode() reports toggling a selection. We can't report "Selected", only state changes, in order to easily handle clipping with less issues. ImGuiItemStatusFlags_ToggledOpen = 1 << 4, // Set when TreeNode() reports toggling their open state. ImGuiItemStatusFlags_HasDeactivated = 1 << 5, // Set if the widget/group is able to provide data for the ImGuiItemStatusFlags_Deactivated flag. ImGuiItemStatusFlags_Deactivated = 1 << 6, // Only valid if ImGuiItemStatusFlags_HasDeactivated is set. ImGuiItemStatusFlags_HoveredWindow = 1 << 7, // Override the HoveredWindow test to allow cross-window hover testing. - ImGuiItemStatusFlags_FocusedByCode = 1 << 8, // Set when the Focusable item just got focused from code. - ImGuiItemStatusFlags_FocusedByTabbing = 1 << 9, // Set when the Focusable item just got focused by Tabbing. - ImGuiItemStatusFlags_Focused = ImGuiItemStatusFlags_FocusedByCode | ImGuiItemStatusFlags_FocusedByTabbing + ImGuiItemStatusFlags_FocusedByTabbing = 1 << 8 // Set when the Focusable item just got focused by Tabbing (FIXME: to be removed soon) #ifdef IMGUI_ENABLE_TEST_ENGINE , // [imgui_tests only] @@ -921,49 +919,6 @@ enum ImGuiInputReadMode ImGuiInputReadMode_RepeatFast }; -enum ImGuiNavHighlightFlags_ -{ - ImGuiNavHighlightFlags_None = 0, - ImGuiNavHighlightFlags_TypeDefault = 1 << 0, - ImGuiNavHighlightFlags_TypeThin = 1 << 1, - ImGuiNavHighlightFlags_AlwaysDraw = 1 << 2, // Draw rectangular highlight if (g.NavId == id) _even_ when using the mouse. - ImGuiNavHighlightFlags_NoRounding = 1 << 3 -}; - -enum ImGuiNavDirSourceFlags_ -{ - ImGuiNavDirSourceFlags_None = 0, - ImGuiNavDirSourceFlags_Keyboard = 1 << 0, - ImGuiNavDirSourceFlags_PadDPad = 1 << 1, - ImGuiNavDirSourceFlags_PadLStick = 1 << 2 -}; - -enum ImGuiNavMoveFlags_ -{ - ImGuiNavMoveFlags_None = 0, - ImGuiNavMoveFlags_LoopX = 1 << 0, // On failed request, restart from opposite side - ImGuiNavMoveFlags_LoopY = 1 << 1, - ImGuiNavMoveFlags_WrapX = 1 << 2, // On failed request, request from opposite side one line down (when NavDir==right) or one line up (when NavDir==left) - ImGuiNavMoveFlags_WrapY = 1 << 3, // This is not super useful for provided for completeness - ImGuiNavMoveFlags_AllowCurrentNavId = 1 << 4, // Allow scoring and considering the current NavId as a move target candidate. This is used when the move source is offset (e.g. pressing PageDown actually needs to send a Up move request, if we are pressing PageDown from the bottom-most item we need to stay in place) - ImGuiNavMoveFlags_AlsoScoreVisibleSet = 1 << 5, // Store alternate result in NavMoveResultLocalVisibleSet that only comprise elements that are already fully visible. - ImGuiNavMoveFlags_ScrollToEdge = 1 << 6 -}; - -enum ImGuiNavForward -{ - ImGuiNavForward_None, - ImGuiNavForward_ForwardQueued, - ImGuiNavForward_ForwardActive -}; - -enum ImGuiNavLayer -{ - ImGuiNavLayer_Main = 0, // Main scrolling layer - ImGuiNavLayer_Menu = 1, // Menu layer (access with Alt/ImGuiNavInput_Menu) - ImGuiNavLayer_COUNT -}; - enum ImGuiPopupPositionPolicy { ImGuiPopupPositionPolicy_Default, @@ -1075,8 +1030,6 @@ struct IMGUI_API ImGuiInputTextState bool SelectedAllMouseLock; // after a double-click to select all, we ignore further mouse drags to update selection bool Edited; // edited this frame ImGuiInputTextFlags Flags; // copy of InputText() flags - ImGuiInputTextCallback UserCallback; // " - void* UserCallbackData; // " ImGuiInputTextState() { memset(this, 0, sizeof(*this)); } void ClearText() { CurLenW = CurLenA = 0; TextW[0] = 0; TextA[0] = 0; CursorClamp(); } @@ -1110,20 +1063,6 @@ struct ImGuiPopupData ImGuiPopupData() { memset(this, 0, sizeof(*this)); OpenFrameCount = -1; } }; -struct ImGuiNavItemData -{ - ImGuiWindow* Window; // Init,Move // Best candidate window (result->ItemWindow->RootWindowForNav == request->Window) - ImGuiID ID; // Init,Move // Best candidate item ID - ImGuiID FocusScopeId; // Init,Move // Best candidate focus scope ID - ImRect RectRel; // Init,Move // Best candidate bounding box in window relative space - float DistBox; // Move // Best candidate box distance to current NavId - float DistCenter; // Move // Best candidate center distance to current NavId - float DistAxial; // Move // Best candidate axial distance to current NavId - - ImGuiNavItemData() { Clear(); } - void Clear() { Window = NULL; ID = FocusScopeId = 0; RectRel = ImRect(); DistBox = DistCenter = DistAxial = FLT_MAX; } -}; - enum ImGuiNextWindowDataFlags_ { ImGuiNextWindowDataFlags_None = 0, @@ -1185,17 +1124,36 @@ struct ImGuiLastItemData ImGuiID ID; ImGuiItemFlags InFlags; // See ImGuiItemFlags_ ImGuiItemStatusFlags StatusFlags; // See ImGuiItemStatusFlags_ - ImRect Rect; - ImRect DisplayRect; + ImRect Rect; // Full rectangle + ImRect NavRect; // Navigation scoring rectangle (not displayed) + ImRect DisplayRect; // Display rectangle (only if ImGuiItemStatusFlags_HasDisplayRect is set) ImGuiLastItemData() { memset(this, 0, sizeof(*this)); } }; +struct IMGUI_API ImGuiStackSizes +{ + short SizeOfIDStack; + short SizeOfColorStack; + short SizeOfStyleVarStack; + short SizeOfFontStack; + short SizeOfFocusScopeStack; + short SizeOfGroupStack; + short SizeOfItemFlagsStack; + short SizeOfBeginPopupStack; + short SizeOfDisabledStack; + + ImGuiStackSizes() { memset(this, 0, sizeof(*this)); } + void SetToCurrentState(); + void CompareWithCurrentState(); +}; + // Data saved for each window pushed into the stack struct ImGuiWindowStackData { ImGuiWindow* Window; ImGuiLastItemData ParentLastItemDataBackup; + ImGuiStackSizes StackSizesOnBegin; // Store size of various stacks for asserting }; struct ImGuiShrinkWidthItem @@ -1213,6 +1171,120 @@ struct ImGuiPtrOrIndex ImGuiPtrOrIndex(int index) { Ptr = NULL; Index = index; } }; +//----------------------------------------------------------------------------- +// [SECTION] Clipper support +//----------------------------------------------------------------------------- + +struct ImGuiListClipperRange +{ + int Min; + int Max; + bool PosToIndexConvert; // Begin/End are absolute position (will be converted to indices later) + ImS8 PosToIndexOffsetMin; // Add to Min after converting to indices + ImS8 PosToIndexOffsetMax; // Add to Min after converting to indices + + static ImGuiListClipperRange FromIndices(int min, int max) { ImGuiListClipperRange r = { min, max, false, 0, 0 }; return r; } + static ImGuiListClipperRange FromPositions(float y1, float y2, int off_min, int off_max) { ImGuiListClipperRange r = { (int)y1, (int)y2, true, (ImS8)off_min, (ImS8)off_max }; return r; } +}; + +// Temporary clipper data, buffers shared/reused between instances +struct ImGuiListClipperData +{ + ImGuiListClipper* ListClipper; + float LossynessOffset; + int StepNo; + int ItemsFrozen; + ImVector Ranges; + + ImGuiListClipperData() { memset(this, 0, sizeof(*this)); } + void Reset(ImGuiListClipper* clipper) { ListClipper = clipper; StepNo = ItemsFrozen = 0; Ranges.resize(0); } +}; + +//----------------------------------------------------------------------------- +// [SECTION] Navigation support +//----------------------------------------------------------------------------- + +enum ImGuiActivateFlags_ +{ + ImGuiActivateFlags_None = 0, + ImGuiActivateFlags_PreferInput = 1 << 0, // Favor activation that requires keyboard text input (e.g. for Slider/Drag). Default if keyboard is available. + ImGuiActivateFlags_PreferTweak = 1 << 1, // Favor activation for tweaking with arrows or gamepad (e.g. for Slider/Drag). Default if keyboard is not available. + ImGuiActivateFlags_TryToPreserveState = 1 << 2 // Request widget to preserve state if it can (e.g. InputText will try to preserve cursor/selection) +}; + +// Early work-in-progress API for ScrollToItem() +enum ImGuiScrollFlags_ +{ + ImGuiScrollFlags_None = 0, + ImGuiScrollFlags_KeepVisibleEdgeX = 1 << 0, // If item is not visible: scroll as little as possible on X axis to bring item back into view [default for X axis] + ImGuiScrollFlags_KeepVisibleEdgeY = 1 << 1, // If item is not visible: scroll as little as possible on Y axis to bring item back into view [default for Y axis for windows that are already visible] + ImGuiScrollFlags_KeepVisibleCenterX = 1 << 2, // If item is not visible: scroll to make the item centered on X axis [rarely used] + ImGuiScrollFlags_KeepVisibleCenterY = 1 << 3, // If item is not visible: scroll to make the item centered on Y axis + ImGuiScrollFlags_AlwaysCenterX = 1 << 4, // Always center the result item on X axis [rarely used] + ImGuiScrollFlags_AlwaysCenterY = 1 << 5, // Always center the result item on Y axis [default for Y axis for appearing window) + ImGuiScrollFlags_NoScrollParent = 1 << 6, // Disable forwarding scrolling to parent window if required to keep item/rect visible (only scroll window the function was applied to). + ImGuiScrollFlags_MaskX_ = ImGuiScrollFlags_KeepVisibleEdgeX | ImGuiScrollFlags_KeepVisibleCenterX | ImGuiScrollFlags_AlwaysCenterX, + ImGuiScrollFlags_MaskY_ = ImGuiScrollFlags_KeepVisibleEdgeY | ImGuiScrollFlags_KeepVisibleCenterY | ImGuiScrollFlags_AlwaysCenterY +}; + +enum ImGuiNavHighlightFlags_ +{ + ImGuiNavHighlightFlags_None = 0, + ImGuiNavHighlightFlags_TypeDefault = 1 << 0, + ImGuiNavHighlightFlags_TypeThin = 1 << 1, + ImGuiNavHighlightFlags_AlwaysDraw = 1 << 2, // Draw rectangular highlight if (g.NavId == id) _even_ when using the mouse. + ImGuiNavHighlightFlags_NoRounding = 1 << 3 +}; + +enum ImGuiNavDirSourceFlags_ +{ + ImGuiNavDirSourceFlags_None = 0, + ImGuiNavDirSourceFlags_RawKeyboard = 1 << 0, // Raw keyboard (not pulled from nav), faciliate use of some functions before we can unify nav and keys + ImGuiNavDirSourceFlags_Keyboard = 1 << 1, + ImGuiNavDirSourceFlags_PadDPad = 1 << 2, + ImGuiNavDirSourceFlags_PadLStick = 1 << 3 +}; + +enum ImGuiNavMoveFlags_ +{ + ImGuiNavMoveFlags_None = 0, + ImGuiNavMoveFlags_LoopX = 1 << 0, // On failed request, restart from opposite side + ImGuiNavMoveFlags_LoopY = 1 << 1, + ImGuiNavMoveFlags_WrapX = 1 << 2, // On failed request, request from opposite side one line down (when NavDir==right) or one line up (when NavDir==left) + ImGuiNavMoveFlags_WrapY = 1 << 3, // This is not super useful but provided for completeness + ImGuiNavMoveFlags_AllowCurrentNavId = 1 << 4, // Allow scoring and considering the current NavId as a move target candidate. This is used when the move source is offset (e.g. pressing PageDown actually needs to send a Up move request, if we are pressing PageDown from the bottom-most item we need to stay in place) + ImGuiNavMoveFlags_AlsoScoreVisibleSet = 1 << 5, // Store alternate result in NavMoveResultLocalVisible that only comprise elements that are already fully visible (used by PageUp/PageDown) + ImGuiNavMoveFlags_ScrollToEdgeY = 1 << 6, // Force scrolling to min/max (used by Home/End) // FIXME-NAV: Aim to remove or reword, probably unnecessary + ImGuiNavMoveFlags_Forwarded = 1 << 7, + ImGuiNavMoveFlags_DebugNoResult = 1 << 8, // Dummy scoring for debug purpose, don't apply result + ImGuiNavMoveFlags_FocusApi = 1 << 9, + ImGuiNavMoveFlags_Tabbing = 1 << 10, // == Focus + Activate if item is Inputable + DontChangeNavHighlight + ImGuiNavMoveFlags_Activate = 1 << 11, + ImGuiNavMoveFlags_DontSetNavHighlight = 1 << 12 // Do not alter the visible state of keyboard vs mouse nav highlight +}; + +enum ImGuiNavLayer +{ + ImGuiNavLayer_Main = 0, // Main scrolling layer + ImGuiNavLayer_Menu = 1, // Menu layer (access with Alt/ImGuiNavInput_Menu) + ImGuiNavLayer_COUNT +}; + +struct ImGuiNavItemData +{ + ImGuiWindow* Window; // Init,Move // Best candidate window (result->ItemWindow->RootWindowForNav == request->Window) + ImGuiID ID; // Init,Move // Best candidate item ID + ImGuiID FocusScopeId; // Init,Move // Best candidate focus scope ID + ImRect RectRel; // Init,Move // Best candidate bounding box in window relative space + ImGuiItemFlags InFlags; // ????,Move // Best candidate item flags + float DistBox; // Move // Best candidate box distance to current NavId + float DistCenter; // Move // Best candidate center distance to current NavId + float DistAxial; // Move // Best candidate axial distance to current NavId + + ImGuiNavItemData() { Clear(); } + void Clear() { Window = NULL; ID = FocusScopeId = 0; InFlags = 0; DistBox = DistCenter = DistAxial = FLT_MAX; } +}; + //----------------------------------------------------------------------------- // [SECTION] Columns support //----------------------------------------------------------------------------- @@ -1352,11 +1424,12 @@ struct ImGuiSettingsHandler }; //----------------------------------------------------------------------------- -// [SECTION] Metrics, Debug +// [SECTION] Metrics, Debug Tools //----------------------------------------------------------------------------- struct ImGuiMetricsConfig { + bool ShowStackTool; bool ShowWindowsRects; bool ShowWindowsBeginOrder; bool ShowTablesRects; @@ -1367,6 +1440,7 @@ struct ImGuiMetricsConfig ImGuiMetricsConfig() { + ShowStackTool = false; ShowWindowsRects = false; ShowWindowsBeginOrder = false; ShowTablesRects = false; @@ -1377,19 +1451,25 @@ struct ImGuiMetricsConfig } }; -struct IMGUI_API ImGuiStackSizes +struct ImGuiStackLevelInfo { - short SizeOfIDStack; - short SizeOfColorStack; - short SizeOfStyleVarStack; - short SizeOfFontStack; - short SizeOfFocusScopeStack; - short SizeOfGroupStack; - short SizeOfBeginPopupStack; + ImGuiID ID; + ImS8 QueryFrameCount; // >= 1: Query in progress + bool QuerySuccess; // Obtained result from DebugHookIdInfo() + char Desc[58]; // Arbitrarily sized buffer to hold a result (FIXME: could replace Results[] with a chunk stream?) - ImGuiStackSizes() { memset(this, 0, sizeof(*this)); } - void SetToCurrentState(); - void CompareWithCurrentState(); + ImGuiStackLevelInfo() { memset(this, 0, sizeof(*this)); } +}; + +// State for Stack tool queries +struct ImGuiStackTool +{ + int LastActiveFrame; + int StackLevel; // -1: query stack and resize Results, >= 0: individual stack level + ImGuiID QueryId; // ID to query details for + ImVector Results; + + ImGuiStackTool() { memset(this, 0, sizeof(*this)); } }; //----------------------------------------------------------------------------- @@ -1433,7 +1513,6 @@ struct ImGuiContext bool WithinEndChild; // Set within EndChild() bool GcCompactAll; // Request full GC bool TestEngineHookItems; // Will call test engine hooks: ImGuiTestEngineHook_ItemAdd(), ImGuiTestEngineHook_ItemInfo(), ImGuiTestEngineHook_Log() - ImGuiID TestEngineHookIdInfo; // Will call test engine hooks: ImGuiTestEngineHook_IdInfo() from GetID() void* TestEngine; // Test engine user data // Windows state @@ -1453,6 +1532,7 @@ struct ImGuiContext float WheelingWindowTimer; // Item/widgets state and tracking information + ImGuiID DebugHookIdInfo; // Will call core hooks: DebugHookIdInfo() from GetID functions, used by Stack Tool [next HoveredId/ActiveId to not pull in an extra cache-line] ImGuiID HoveredId; // Hovered widget, filled during the frame ImGuiID HoveredIdPreviousFrame; bool HoveredIdAllowOverlap; @@ -1500,6 +1580,7 @@ struct ImGuiContext ImVectorGroupStack; // Stack for BeginGroup()/EndGroup() - not inherited by Begin() ImVectorOpenPopupStack; // Which popups are open (persistent) ImVectorBeginPopupStack; // Which level of BeginPopup() we are in (reset every frame) + int BeginMenuCount; // Viewports ImVector Viewports; // Active viewports (Size==1 in 'master' branch). Each viewports hold their copy of ImDrawData. @@ -1511,37 +1592,44 @@ struct ImGuiContext ImGuiID NavActivateId; // ~~ (g.ActiveId == 0) && IsNavInputPressed(ImGuiNavInput_Activate) ? NavId : 0, also set when calling ActivateItem() ImGuiID NavActivateDownId; // ~~ IsNavInputDown(ImGuiNavInput_Activate) ? NavId : 0 ImGuiID NavActivatePressedId; // ~~ IsNavInputPressed(ImGuiNavInput_Activate) ? NavId : 0 - ImGuiID NavInputId; // ~~ IsNavInputPressed(ImGuiNavInput_Input) ? NavId : 0 - ImGuiID NavJustTabbedId; // Just tabbed to this id. + ImGuiID NavActivateInputId; // ~~ IsNavInputPressed(ImGuiNavInput_Input) ? NavId : 0; ImGuiActivateFlags_PreferInput will be set and NavActivateId will be 0. + ImGuiActivateFlags NavActivateFlags; ImGuiID NavJustMovedToId; // Just navigated to this id (result of a successfully MoveRequest). ImGuiID NavJustMovedToFocusScopeId; // Just navigated to this focus scope id (result of a successfully MoveRequest). ImGuiKeyModFlags NavJustMovedToKeyMods; ImGuiID NavNextActivateId; // Set by ActivateItem(), queued until next frame. + ImGuiActivateFlags NavNextActivateFlags; ImGuiInputSource NavInputSource; // Keyboard or Gamepad mode? THIS WILL ONLY BE None or NavGamepad or NavKeyboard. - ImRect NavScoringRect; // Rectangle used for scoring, in screen space. Based of window->NavRectRel[], modified for directional navigation scoring. - int NavScoringCount; // Metrics for debugging ImGuiNavLayer NavLayer; // Layer we are navigating on. For now the system is hard-coded for 0=main contents and 1=menu/title bar, may expose layers later. - int NavIdTabCounter; // == NavWindow->DC.FocusIdxTabCounter at time of NavId processing bool NavIdIsAlive; // Nav widget has been seen this frame ~~ NavRectRel is valid bool NavMousePosDirty; // When set we will update mouse position if (io.ConfigFlags & ImGuiConfigFlags_NavEnableSetMousePos) if set (NB: this not enabled by default) bool NavDisableHighlight; // When user starts using mouse, we hide gamepad/keyboard highlight (NB: but they are still available, which is why NavDisableHighlight isn't always != NavDisableMouseHover) bool NavDisableMouseHover; // When user starts using gamepad/keyboard, we hide mouse hovering highlight until mouse is touched again. - bool NavAnyRequest; // ~~ NavMoveRequest || NavInitRequest + + // Navigation: Init & Move Requests + bool NavAnyRequest; // ~~ NavMoveRequest || NavInitRequest this is to perform early out in ItemAdd() bool NavInitRequest; // Init request for appearing window to select first item bool NavInitRequestFromMove; ImGuiID NavInitResultId; // Init request result (first item of the window, or one for which SetItemDefaultFocus() was called) ImRect NavInitResultRectRel; // Init request result rectangle (relative to parent window) - bool NavMoveRequest; // Move request for this frame - ImGuiNavMoveFlags NavMoveRequestFlags; - ImGuiNavForward NavMoveRequestForward; // None / ForwardQueued / ForwardActive (this is used to navigate sibling parent menus from a child menu) - ImGuiKeyModFlags NavMoveRequestKeyMods; - ImGuiDir NavMoveDir, NavMoveDirLast; // Direction of the move request (left/right/up/down), direction of the previous move request + bool NavMoveSubmitted; // Move request submitted, will process result on next NewFrame() + bool NavMoveScoringItems; // Move request submitted, still scoring incoming items + bool NavMoveForwardToNextFrame; + ImGuiNavMoveFlags NavMoveFlags; + ImGuiScrollFlags NavMoveScrollFlags; + ImGuiKeyModFlags NavMoveKeyMods; + ImGuiDir NavMoveDir; // Direction of the move request (left/right/up/down) + ImGuiDir NavMoveDirForDebug; ImGuiDir NavMoveClipDir; // FIXME-NAV: Describe the purpose of this better. Might want to rename? + ImRect NavScoringRect; // Rectangle used for scoring, in screen space. Based of window->NavRectRel[], modified for directional navigation scoring. + ImRect NavScoringNoClipRect; // Some nav operations (such as PageUp/PageDown) enforce a region which clipper will attempt to always keep submitted + int NavScoringDebugCount; // Metrics for debugging + int NavTabbingDir; // Generally -1 or +1, 0 when tabbing without a nav id + int NavTabbingCounter; // >0 when counting items for tabbing ImGuiNavItemData NavMoveResultLocal; // Best move request candidate within NavWindow - ImGuiNavItemData NavMoveResultLocalVisibleSet; // Best move request candidate within NavWindow that are mostly visible (when using ImGuiNavMoveFlags_AlsoScoreVisibleSet flag) + ImGuiNavItemData NavMoveResultLocalVisible; // Best move request candidate within NavWindow that are mostly visible (when using ImGuiNavMoveFlags_AlsoScoreVisibleSet flag) ImGuiNavItemData NavMoveResultOther; // Best move request candidate within NavWindow's flattened hierarchy (when using ImGuiWindowFlags_NavFlattened flag) - ImGuiWindow* NavWrapRequestWindow; // Window which requested trying nav wrap-around. - ImGuiNavMoveFlags NavWrapRequestFlags; // Wrap-around operation flags. + ImGuiNavItemData NavTabbingResultFirst; // First tabbing request candidate within NavWindow and flattened hierarchy // Navigation: Windowing (CTRL+TAB for list, or Menu button + keys or directional pads to move/resize) ImGuiWindow* NavWindowingTarget; // Target window when doing CTRL+Tab (or Pad Menu + FocusPrev/Next), this window is temporarily displayed top-most! @@ -1551,15 +1639,6 @@ struct ImGuiContext float NavWindowingHighlightAlpha; bool NavWindowingToggleLayer; - // Legacy Focus/Tabbing system (older than Nav, active even if Nav is disabled, misnamed. FIXME-NAV: This needs a redesign!) - ImGuiWindow* TabFocusRequestCurrWindow; // - ImGuiWindow* TabFocusRequestNextWindow; // - int TabFocusRequestCurrCounterRegular; // Any item being requested for focus, stored as an index (we on layout to be stable between the frame pressing TAB and the next frame, semi-ouch) - int TabFocusRequestCurrCounterTabStop; // Tab item being requested for focus, stored as an index - int TabFocusRequestNextCounterRegular; // Stored for next frame - int TabFocusRequestNextCounterTabStop; // " - bool TabFocusPressed; // Set in NewFrame() when user pressed Tab - // Render float DimBgRatio; // 0.0..1.0 animation when fading in a dimming background (for modal window and CTRL+TAB list) ImGuiMouseCursor MouseCursor; @@ -1583,11 +1662,15 @@ struct ImGuiContext ImVector DragDropPayloadBufHeap; // We don't expose the ImVector<> directly, ImGuiPayload only holds pointer+size unsigned char DragDropPayloadBufLocal[16]; // Local buffer for small payloads + // Clipper + int ClipperTempDataStacked; + ImVector ClipperTempData; + // Table ImGuiTable* CurrentTable; - int CurrentTableStackIdx; - ImPool Tables; - ImVector TablesTempDataStack; + int TablesTempDataStacked; // Temporary table data size (because we leave previous instances undestructed, we generally don't use TablesTempData.Size) + ImVector TablesTempData; // Temporary table data (buffers reused/shared across instances, support nesting) + ImPool Tables; // Persistent table data ImVector TablesLastTimeActive; // Last used timestamp of each tables (SOA, for efficient GC) ImVector DrawChannelsTempMergeBuffer; @@ -1598,14 +1681,14 @@ struct ImGuiContext ImVector ShrinkWidthBuffer; // Widget state - ImVec2 LastValidMousePos; + ImVec2 MouseLastValidPos; ImGuiInputTextState InputTextState; ImFont InputTextPasswordFont; ImGuiID TempInputId; // Temporary text input when CTRL+clicking on a slider, etc. ImGuiColorEditFlags ColorEditOptions; // Store user options for color edit widgets - float ColorEditLastHue; // Backup of last Hue associated to LastColor[3], so we can restore Hue in lossy RGB<>HSV round trips - float ColorEditLastSat; // Backup of last Saturation associated to LastColor[3], so we can restore Saturation in lossy RGB<>HSV round trips - float ColorEditLastColor[3]; + float ColorEditLastHue; // Backup of last Hue associated to LastColor, so we can restore Hue in lossy RGB<>HSV round trips + float ColorEditLastSat; // Backup of last Saturation associated to LastColor, so we can restore Saturation in lossy RGB<>HSV round trips + ImU32 ColorEditLastColor; // RGB value with alpha set to 0. ImVec4 ColorPickerRef; // Initial/reference color at the time of opening the color picker. ImGuiComboPreviewData ComboPreviewData; float SliderCurrentAccum; // Accumulated slider delta when using navigation controls. @@ -1613,9 +1696,10 @@ struct ImGuiContext bool DragCurrentAccumDirty; float DragCurrentAccum; // Accumulator for dragging modification. Always high-precision, not rounded by end-user precision settings float DragSpeedDefaultRatio; // If speed == 0.0f, uses (max-min) * DragSpeedDefaultRatio - float DisabledAlphaBackup; // Backup for style.Alpha for BeginDisabled() float ScrollbarClickDeltaToGrabCenter; // Distance between mouse and center of grab box, normalized in parent space. Use storage? - int TooltipOverrideCount; + float DisabledAlphaBackup; // Backup for style.Alpha for BeginDisabled() + short DisabledStackSize; + short TooltipOverrideCount; float TooltipSlowDelay; // Time before slow tooltips appears (FIXME: This is temporary until we merge in tooltip timer+priority work) ImVector ClipboardHandlerData; // If no custom clipboard handler is defined ImVector MenusIdSubmittedThisFrame; // A list of menu IDs that were rendered at least once @@ -1650,8 +1734,9 @@ struct ImGuiContext // Debug Tools bool DebugItemPickerActive; // Item picker is active (started with DebugStartItemPicker()) - ImGuiID DebugItemPickerBreakId; // Will call IM_DEBUG_BREAK() when encountering this id + ImGuiID DebugItemPickerBreakId; // Will call IM_DEBUG_BREAK() when encountering this ID ImGuiMetricsConfig DebugMetricsConfig; + ImGuiStackTool DebugStackTool; // Misc float FramerateSecPerFrame[120]; // Calculate estimate of framerate for user over the last 2 seconds. @@ -1676,7 +1761,6 @@ struct ImGuiContext WithinFrameScope = WithinFrameScopeWithImplicitWindow = WithinEndChild = false; GcCompactAll = false; TestEngineHookItems = false; - TestEngineHookIdInfo = 0; TestEngine = NULL; WindowsActiveCount = 0; @@ -1687,6 +1771,7 @@ struct ImGuiContext WheelingWindow = NULL; WheelingWindowTimer = 0.0f; + DebugHookIdInfo = 0; HoveredId = HoveredIdPreviousFrame = 0; HoveredIdAllowOverlap = false; HoveredIdUsingMouseWheel = HoveredIdPreviousFrameUsingMouseWheel = false; @@ -1717,16 +1802,15 @@ struct ImGuiContext LastActiveIdTimer = 0.0f; CurrentItemFlags = ImGuiItemFlags_None; + BeginMenuCount = 0; NavWindow = NULL; - NavId = NavFocusScopeId = NavActivateId = NavActivateDownId = NavActivatePressedId = NavInputId = 0; - NavJustTabbedId = NavJustMovedToId = NavJustMovedToFocusScopeId = NavNextActivateId = 0; + NavId = NavFocusScopeId = NavActivateId = NavActivateDownId = NavActivatePressedId = NavActivateInputId = 0; + NavJustMovedToId = NavJustMovedToFocusScopeId = NavNextActivateId = 0; + NavActivateFlags = NavNextActivateFlags = ImGuiActivateFlags_None; NavJustMovedToKeyMods = ImGuiKeyModFlags_None; NavInputSource = ImGuiInputSource_None; - NavScoringRect = ImRect(); - NavScoringCount = 0; NavLayer = ImGuiNavLayer_Main; - NavIdTabCounter = INT_MAX; NavIdIsAlive = false; NavMousePosDirty = false; NavDisableHighlight = true; @@ -1735,23 +1819,21 @@ struct ImGuiContext NavInitRequest = false; NavInitRequestFromMove = false; NavInitResultId = 0; - NavMoveRequest = false; - NavMoveRequestFlags = ImGuiNavMoveFlags_None; - NavMoveRequestForward = ImGuiNavForward_None; - NavMoveRequestKeyMods = ImGuiKeyModFlags_None; - NavMoveDir = NavMoveDirLast = NavMoveClipDir = ImGuiDir_None; - NavWrapRequestWindow = NULL; - NavWrapRequestFlags = ImGuiNavMoveFlags_None; + NavMoveSubmitted = false; + NavMoveScoringItems = false; + NavMoveForwardToNextFrame = false; + NavMoveFlags = ImGuiNavMoveFlags_None; + NavMoveScrollFlags = ImGuiScrollFlags_None; + NavMoveKeyMods = ImGuiKeyModFlags_None; + NavMoveDir = NavMoveDirForDebug = NavMoveClipDir = ImGuiDir_None; + NavScoringDebugCount = 0; + NavTabbingDir = 0; + NavTabbingCounter = 0; NavWindowingTarget = NavWindowingTargetAnim = NavWindowingListWindow = NULL; NavWindowingTimer = NavWindowingHighlightAlpha = 0.0f; NavWindowingToggleLayer = false; - TabFocusRequestCurrWindow = TabFocusRequestNextWindow = NULL; - TabFocusRequestCurrCounterRegular = TabFocusRequestCurrCounterTabStop = INT_MAX; - TabFocusRequestNextCounterRegular = TabFocusRequestNextCounterTabStop = INT_MAX; - TabFocusPressed = false; - DimBgRatio = 0.0f; MouseCursor = ImGuiMouseCursor_Arrow; @@ -1767,21 +1849,23 @@ struct ImGuiContext DragDropHoldJustPressedId = 0; memset(DragDropPayloadBufLocal, 0, sizeof(DragDropPayloadBufLocal)); + ClipperTempDataStacked = 0; + CurrentTable = NULL; - CurrentTableStackIdx = -1; + TablesTempDataStacked = 0; CurrentTabBar = NULL; - LastValidMousePos = ImVec2(0.0f, 0.0f); TempInputId = 0; ColorEditOptions = ImGuiColorEditFlags_DefaultOptions_; ColorEditLastHue = ColorEditLastSat = 0.0f; - ColorEditLastColor[0] = ColorEditLastColor[1] = ColorEditLastColor[2] = FLT_MAX; + ColorEditLastColor = 0; SliderCurrentAccum = 0.0f; SliderCurrentAccumDirty = false; DragCurrentAccumDirty = false; DragCurrentAccum = 0.0f; DragSpeedDefaultRatio = 1.0f / 100.0f; DisabledAlphaBackup = 0.0f; + DisabledStackSize = 0; ScrollbarClickDeltaToGrabCenter = 0.0f; TooltipOverrideCount = 0; TooltipSlowDelay = 0.50f; @@ -1835,6 +1919,7 @@ struct IMGUI_API ImGuiWindowTempData ImVec1 Indent; // Indentation / start position from left of window (increased by TreePush/TreePop, etc.) ImVec1 ColumnsOffset; // Offset to the current column (if ColumnsCurrent > 0). FIXME: This and the above should be a stack to allow use cases like Tree->Column->Tree. Need revamp columns API. ImVec1 GroupOffset; + ImVec2 CursorStartPosLossyness;// Record the loss of precision of CursorStartPos due to really large scrolling amount. This is used by clipper to compensentate and fix the most common use case of large scroll area. // Keyboard/Gamepad navigation ImGuiNavLayer NavLayerCurrent; // Current layer, 0..31 (we currently only use 0..1) @@ -1856,8 +1941,6 @@ struct IMGUI_API ImGuiWindowTempData int CurrentTableIdx; // Current table index (into g.Tables) ImGuiLayoutType LayoutType; ImGuiLayoutType ParentLayoutType; // Layout type of parent window at the time of Begin() - int FocusCounterRegular; // (Legacy Focus/Tabbing system) Sequential counter, start at -1 and increase as assigned via FocusableItemRegister() (FIXME-NAV: Needs redesign) - int FocusCounterTabStop; // (Legacy Focus/Tabbing system) Same, but only count widgets which you can Tab through. // Local parameters stacks // We store the current settings outside of the vectors to increase memory locality (reduce cache misses). The vectors are rarely modified. Also it allows us to not heap allocate for short-lived windows which are not using those settings. @@ -1865,7 +1948,6 @@ struct IMGUI_API ImGuiWindowTempData float TextWrapPos; // Current text wrap pos. ImVector ItemWidthStack; // Store item widths to restore (attention: .back() is not == ItemWidth) ImVector TextWrapPosStack; // Store text wrap pos to restore (attention: .back() is not == TextWrapPos) - ImGuiStackSizes StackSizesOnBegin; // Store size of various stacks for asserting }; // Storage for one window @@ -1902,6 +1984,7 @@ struct IMGUI_API ImGuiWindow bool Appearing; // Set during the frame where the window is appearing (or re-appearing) bool Hidden; // Do not display (== HiddenFrames*** > 0) bool IsFallbackWindow; // Set on the "Debug##Default" window. + bool IsExplicitChild; // Set when passed _ChildWindow, left to false by BeginDocked() bool HasCloseButton; // Set when the window has a close button (p_open != NULL) signed char ResizeBorderHeld; // Current border being held for resize (-1: none, otherwise 0-3) short BeginCount; // Number of Begin() during the current frame (generally 0 or 1, 1+ if appending via multiple Begin/End pairs) @@ -1948,8 +2031,10 @@ struct IMGUI_API ImGuiWindow ImDrawList* DrawList; // == &DrawListInst (for backward compatibility reason with code using imgui_internal.h we keep this a pointer) ImDrawList DrawListInst; - ImGuiWindow* ParentWindow; // If we are a child _or_ popup window, this is pointing to our parent. Otherwise NULL. - ImGuiWindow* RootWindow; // Point to ourself or first ancestor that is not a child window == Top-level window. + ImGuiWindow* ParentWindow; // If we are a child _or_ popup _or_ docked window, this is pointing to our parent. Otherwise NULL. + ImGuiWindow* ParentWindowInBeginStack; + ImGuiWindow* RootWindow; // Point to ourself or first ancestor that is not a child window. Doesn't cross through popups/dock nodes. + ImGuiWindow* RootWindowPopupTree; // Point to ourself or first ancestor that is not a child window. Cross through popups parent<>child. ImGuiWindow* RootWindowForTitleBarHighlight; // Point to ourself or first ancestor which will display TitleBgActive color when this window is active. ImGuiWindow* RootWindowForNav; // Point to ourself or first ancestor which doesn't have the NavFlattened flag. @@ -2021,7 +2106,7 @@ struct ImGuiTabItem }; // Storage for a tab bar (sizeof() 152 bytes) -struct ImGuiTabBar +struct IMGUI_API ImGuiTabBar { ImVector Tabs; ImGuiTabBarFlags Flags; @@ -2146,7 +2231,7 @@ struct ImGuiTableCellData }; // FIXME-TABLE: more transient data could be stored in a per-stacked table structure: DrawSplitter, SortSpecs, incoming RowData -struct ImGuiTable +struct IMGUI_API ImGuiTable { ImGuiID ID; ImGuiTableFlags Flags; @@ -2252,14 +2337,14 @@ struct ImGuiTable bool MemoryCompacted; bool HostSkipItems; // Backup of InnerWindow->SkipItem at the end of BeginTable(), because we will overwrite InnerWindow->SkipItem on a per-column basis - IMGUI_API ImGuiTable() { memset(this, 0, sizeof(*this)); LastFrameActive = -1; } - IMGUI_API ~ImGuiTable() { IM_FREE(RawData); } + ImGuiTable() { memset(this, 0, sizeof(*this)); LastFrameActive = -1; } + ~ImGuiTable() { IM_FREE(RawData); } }; // Transient data that are only needed between BeginTable() and EndTable(), those buffers are shared (1 per level of stacked table). // - Accessing those requires chasing an extra pointer so for very frequently used data we leave them in the main table structure. // - We also leave out of this structure data that tend to be particularly useful for debugging/metrics. -struct ImGuiTableTempData +struct IMGUI_API ImGuiTableTempData { int TableIndex; // Index in g.Tables.Buf[] pool float LastTimeActive; // Last timestamp this structure was used @@ -2276,7 +2361,7 @@ struct ImGuiTableTempData float HostBackupItemWidth; // Backup of OuterWindow->DC.ItemWidth at the end of BeginTable() int HostBackupItemWidthStackSize;//Backup of OuterWindow->DC.ItemWidthStack.Size at the end of BeginTable() - IMGUI_API ImGuiTableTempData() { memset(this, 0, sizeof(*this)); LastTimeActive = -1.0f; } + ImGuiTableTempData() { memset(this, 0, sizeof(*this)); LastTimeActive = -1.0f; } }; // sizeof() ~ 12 @@ -2335,13 +2420,16 @@ namespace ImGui IMGUI_API ImGuiWindow* FindWindowByName(const char* name); IMGUI_API void UpdateWindowParentAndRootLinks(ImGuiWindow* window, ImGuiWindowFlags flags, ImGuiWindow* parent_window); IMGUI_API ImVec2 CalcWindowNextAutoFitSize(ImGuiWindow* window); - IMGUI_API bool IsWindowChildOf(ImGuiWindow* window, ImGuiWindow* potential_parent); + IMGUI_API bool IsWindowChildOf(ImGuiWindow* window, ImGuiWindow* potential_parent, bool popup_hierarchy); + IMGUI_API bool IsWindowWithinBeginStackOf(ImGuiWindow* window, ImGuiWindow* potential_parent); IMGUI_API bool IsWindowAbove(ImGuiWindow* potential_above, ImGuiWindow* potential_below); IMGUI_API bool IsWindowNavFocusable(ImGuiWindow* window); IMGUI_API void SetWindowPos(ImGuiWindow* window, const ImVec2& pos, ImGuiCond cond = 0); IMGUI_API void SetWindowSize(ImGuiWindow* window, const ImVec2& size, ImGuiCond cond = 0); IMGUI_API void SetWindowCollapsed(ImGuiWindow* window, bool collapsed, ImGuiCond cond = 0); IMGUI_API void SetWindowHitTestHole(ImGuiWindow* window, const ImVec2& pos, const ImVec2& size); + inline ImRect WindowRectAbsToRel(ImGuiWindow* window, const ImRect& r) { ImVec2 off = window->DC.CursorStartPos; return ImRect(r.Min.x - off.x, r.Min.y - off.y, r.Max.x - off.x, r.Max.y - off.y); } + inline ImRect WindowRectRelToAbs(ImGuiWindow* window, const ImRect& r) { ImVec2 off = window->DC.CursorStartPos; return ImRect(r.Min.x + off.x, r.Min.y + off.y, r.Max.x + off.x, r.Max.y + off.y); } // Windows: Display Order and Focus Order IMGUI_API void FocusWindow(ImGuiWindow* window); @@ -2349,6 +2437,9 @@ namespace ImGui IMGUI_API void BringWindowToFocusFront(ImGuiWindow* window); IMGUI_API void BringWindowToDisplayFront(ImGuiWindow* window); IMGUI_API void BringWindowToDisplayBack(ImGuiWindow* window); + IMGUI_API void BringWindowToDisplayBehind(ImGuiWindow* window, ImGuiWindow* above_window); + IMGUI_API int FindWindowDisplayIndex(ImGuiWindow* window); + IMGUI_API ImGuiWindow* FindBottomMostVisibleWindowWithinBeginStack(ImGuiWindow* window); // Fonts, drawing IMGUI_API void SetCurrentFont(ImFont* font); @@ -2387,7 +2478,14 @@ namespace ImGui IMGUI_API void SetScrollY(ImGuiWindow* window, float scroll_y); IMGUI_API void SetScrollFromPosX(ImGuiWindow* window, float local_x, float center_x_ratio); IMGUI_API void SetScrollFromPosY(ImGuiWindow* window, float local_y, float center_y_ratio); - IMGUI_API ImVec2 ScrollToBringRectIntoView(ImGuiWindow* window, const ImRect& item_rect); + + // Early work-in-progress API (ScrollToItem() will become public) + IMGUI_API void ScrollToItem(ImGuiScrollFlags flags = 0); + IMGUI_API void ScrollToRect(ImGuiWindow* window, const ImRect& rect, ImGuiScrollFlags flags = 0); + IMGUI_API ImVec2 ScrollToRectEx(ImGuiWindow* window, const ImRect& rect, ImGuiScrollFlags flags = 0); +//#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS + inline void ScrollToBringRectIntoView(ImGuiWindow* window, const ImRect& rect) { ScrollToRect(window, rect, ImGuiScrollFlags_KeepVisibleEdgeY); } +//#endif // Basic Accessors inline ImGuiID GetItemID() { ImGuiContext& g = *GImGui; return g.LastItemData.ID; } // Get ID of last item (~~ often same ImGui::GetID(label) beforehand) @@ -2408,10 +2506,10 @@ namespace ImGui // Basic Helpers for widget code IMGUI_API void ItemSize(const ImVec2& size, float text_baseline_y = -1.0f); IMGUI_API void ItemSize(const ImRect& bb, float text_baseline_y = -1.0f); - IMGUI_API bool ItemAdd(const ImRect& bb, ImGuiID id, const ImRect* nav_bb = NULL, ImGuiItemAddFlags flags = 0); + IMGUI_API bool ItemAdd(const ImRect& bb, ImGuiID id, const ImRect* nav_bb = NULL, ImGuiItemFlags extra_flags = 0); IMGUI_API bool ItemHoverable(const ImRect& bb, ImGuiID id); - IMGUI_API void ItemFocusable(ImGuiWindow* window, ImGuiID id); - IMGUI_API bool IsClippedEx(const ImRect& bb, ImGuiID id, bool clip_even_when_logged); + IMGUI_API bool IsClippedEx(const ImRect& bb, ImGuiID id); + IMGUI_API void SetLastItemData(ImGuiID item_id, ImGuiItemFlags in_flags, ImGuiItemStatusFlags status_flags, const ImRect& item_rect); IMGUI_API ImVec2 CalcItemSize(ImVec2 size, float default_w, float default_h); IMGUI_API float CalcWrapWidthForPos(const ImVec2& pos, float wrap_pos_x); IMGUI_API void PushMultiItemsWidths(int components, float width_full); @@ -2424,12 +2522,14 @@ namespace ImGui IMGUI_API void PopItemFlag(); #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS + // Currently refactoring focus/nav/tabbing system // If you have old/custom copy-and-pasted widgets that used FocusableItemRegister(): - // (Old) IMGUI_VERSION_NUM < 18209: using 'ItemAdd(....)' and 'bool focused = FocusableItemRegister(...)' - // (New) IMGUI_VERSION_NUM >= 18209: using 'ItemAdd(..., ImGuiItemAddFlags_Focusable)' and 'bool focused = (GetItemStatusFlags() & ImGuiItemStatusFlags_Focused) != 0' + // (Old) IMGUI_VERSION_NUM < 18209: using 'ItemAdd(....)' and 'bool tab_focused = FocusableItemRegister(...)' + // (Old) IMGUI_VERSION_NUM >= 18209: using 'ItemAdd(..., ImGuiItemAddFlags_Focusable)' and 'bool tab_focused = (GetItemStatusFlags() & ImGuiItemStatusFlags_Focused) != 0' + // (New) IMGUI_VERSION_NUM >= 18413: using 'ItemAdd(..., ImGuiItemFlags_Inputable)' and 'bool tab_focused = (GetItemStatusFlags() & ImGuiItemStatusFlags_FocusedTabbing) != 0 || g.NavActivateInputId == id' (WIP) // Widget code are simplified as there's no need to call FocusableItemUnregister() while managing the transition from regular widget to TempInputText() - inline bool FocusableItemRegister(ImGuiWindow* window, ImGuiID id) { IM_ASSERT(0); IM_UNUSED(window); IM_UNUSED(id); return false; } // -> pass ImGuiItemAddFlags_Focusable flag to ItemAdd() - inline IM_NORETURN void FocusableItemUnregister(ImGuiWindow* window) { IM_ASSERT(0); IM_UNUSED(window); } // -> unnecessary: TempInputText() uses ImGuiInputTextFlags_MergedItem + inline bool FocusableItemRegister(ImGuiWindow* window, ImGuiID id) { IM_ASSERT(0); IM_UNUSED(window); IM_UNUSED(id); return false; } // -> pass ImGuiItemAddFlags_Inputable flag to ItemAdd() + inline void FocusableItemUnregister(ImGuiWindow* window) { IM_ASSERT(0); IM_UNUSED(window); } // -> unnecessary: TempInputText() uses ImGuiInputTextFlags_MergedItem #endif // Logging/Capture @@ -2443,16 +2543,19 @@ namespace ImGui IMGUI_API void OpenPopupEx(ImGuiID id, ImGuiPopupFlags popup_flags = ImGuiPopupFlags_None); IMGUI_API void ClosePopupToLevel(int remaining, bool restore_focus_to_window_under_popup); IMGUI_API void ClosePopupsOverWindow(ImGuiWindow* ref_window, bool restore_focus_to_window_under_popup); + IMGUI_API void ClosePopupsExceptModals(); IMGUI_API bool IsPopupOpen(ImGuiID id, ImGuiPopupFlags popup_flags); IMGUI_API bool BeginPopupEx(ImGuiID id, ImGuiWindowFlags extra_flags); - IMGUI_API void BeginTooltipEx(ImGuiWindowFlags extra_flags, ImGuiTooltipFlags tooltip_flags); + IMGUI_API void BeginTooltipEx(ImGuiTooltipFlags tooltip_flags, ImGuiWindowFlags extra_window_flags); IMGUI_API ImRect GetPopupAllowedExtentRect(ImGuiWindow* window); IMGUI_API ImGuiWindow* GetTopMostPopupModal(); + IMGUI_API ImGuiWindow* GetTopMostAndVisiblePopupModal(); IMGUI_API ImVec2 FindBestWindowPosForPopup(ImGuiWindow* window); IMGUI_API ImVec2 FindBestWindowPosForPopupEx(const ImVec2& ref_pos, const ImVec2& size, ImGuiDir* last_dir, const ImRect& r_outer, const ImRect& r_avoid, ImGuiPopupPositionPolicy policy); - IMGUI_API bool BeginViewportSideBar(const char* name, ImGuiViewport* viewport, ImGuiDir dir, float size, ImGuiWindowFlags window_flags); // Menus + IMGUI_API bool BeginViewportSideBar(const char* name, ImGuiViewport* viewport, ImGuiDir dir, float size, ImGuiWindowFlags window_flags); + IMGUI_API bool BeginMenuEx(const char* label, const char* icon, bool enabled = true); IMGUI_API bool MenuItemEx(const char* label, const char* icon, const char* shortcut = NULL, bool selected = false, bool enabled = true); // Combos @@ -2462,9 +2565,13 @@ namespace ImGui // Gamepad/Keyboard Navigation IMGUI_API void NavInitWindow(ImGuiWindow* window, bool force_reinit); + IMGUI_API void NavInitRequestApplyResult(); IMGUI_API bool NavMoveRequestButNoResultYet(); + IMGUI_API void NavMoveRequestSubmit(ImGuiDir move_dir, ImGuiDir clip_dir, ImGuiNavMoveFlags move_flags, ImGuiScrollFlags scroll_flags); + IMGUI_API void NavMoveRequestForward(ImGuiDir move_dir, ImGuiDir clip_dir, ImGuiNavMoveFlags move_flags, ImGuiScrollFlags scroll_flags); + IMGUI_API void NavMoveRequestResolveWithLastItem(ImGuiNavItemData* result); IMGUI_API void NavMoveRequestCancel(); - IMGUI_API void NavMoveRequestForward(ImGuiDir move_dir, ImGuiDir clip_dir, const ImRect& bb_rel, ImGuiNavMoveFlags move_flags); + IMGUI_API void NavMoveRequestApplyResult(); IMGUI_API void NavMoveRequestTryWrapping(ImGuiWindow* window, ImGuiNavMoveFlags move_flags); IMGUI_API float GetNavInputAmount(ImGuiNavInput n, ImGuiInputReadMode mode); IMGUI_API ImVec2 GetNavInputAmount2d(ImGuiNavDirSourceFlags dir_sources, ImGuiInputReadMode mode, float slow_factor = 0.0f, float fast_factor = 0.0f); @@ -2610,7 +2717,7 @@ namespace ImGui IMGUI_API bool CollapseButton(ImGuiID id, const ImVec2& pos); IMGUI_API bool ArrowButtonEx(const char* str_id, ImGuiDir dir, ImVec2 size_arg, ImGuiButtonFlags flags = 0); IMGUI_API void Scrollbar(ImGuiAxis axis); - IMGUI_API bool ScrollbarEx(const ImRect& bb, ImGuiID id, ImGuiAxis axis, float* p_scroll_v, float avail_v, float contents_v, ImDrawFlags flags); + IMGUI_API bool ScrollbarEx(const ImRect& bb, ImGuiID id, ImGuiAxis axis, ImS64* p_scroll_v, ImS64 avail_v, ImS64 contents_v, ImDrawFlags flags); IMGUI_API bool ImageButtonEx(ImGuiID id, ImTextureID texture_id, const ImVec2& size, const ImVec2& uv0, const ImVec2& uv1, const ImVec2& padding, const ImVec4& bg_col, const ImVec4& tint_col); IMGUI_API ImRect GetWindowScrollbarRect(ImGuiWindow* window, ImGuiAxis axis); IMGUI_API ImGuiID GetWindowScrollbarID(ImGuiWindow* window, ImGuiAxis axis); @@ -2673,10 +2780,12 @@ namespace ImGui // Debug Tools IMGUI_API void ErrorCheckEndFrameRecover(ImGuiErrorLogCallback log_callback, void* user_data = NULL); + IMGUI_API void ErrorCheckEndWindowRecover(ImGuiErrorLogCallback log_callback, void* user_data = NULL); inline void DebugDrawItemRect(ImU32 col = IM_COL32(255,0,0,255)) { ImGuiContext& g = *GImGui; ImGuiWindow* window = g.CurrentWindow; GetForegroundDrawList(window)->AddRect(g.LastItemData.Rect.Min, g.LastItemData.Rect.Max, col); } inline void DebugStartItemPicker() { ImGuiContext& g = *GImGui; g.DebugItemPickerActive = true; } IMGUI_API void ShowFontAtlas(ImFontAtlas* atlas); + IMGUI_API void DebugHookIdInfo(ImGuiID id, ImGuiDataType data_type, const void* data_id, const void* data_id_end); IMGUI_API void DebugNodeColumns(ImGuiOldColumns* columns); IMGUI_API void DebugNodeDrawList(ImGuiWindow* window, const ImDrawList* draw_list, const char* label); IMGUI_API void DebugNodeDrawCmdShowMeshAndBoundingBox(ImDrawList* out_draw_list, const ImDrawList* draw_list, const ImDrawCmd* draw_cmd, bool show_mesh, bool show_aabb); @@ -2688,6 +2797,7 @@ namespace ImGui IMGUI_API void DebugNodeWindow(ImGuiWindow* window, const char* label); IMGUI_API void DebugNodeWindowSettings(ImGuiWindowSettings* settings); IMGUI_API void DebugNodeWindowsList(ImVector* windows, const char* label); + IMGUI_API void DebugNodeWindowsListByBeginStackParent(ImGuiWindow** windows, int windows_size, ImGuiWindow* parent_in_begin_stack); IMGUI_API void DebugNodeViewport(ImGuiViewportP* viewport); IMGUI_API void DebugRenderViewportThumbnail(ImDrawList* draw_list, ImGuiViewportP* viewport, const ImRect& bb); @@ -2722,14 +2832,12 @@ IMGUI_API void ImFontAtlasBuildMultiplyRectAlpha8(const unsigned char table #ifdef IMGUI_ENABLE_TEST_ENGINE extern void ImGuiTestEngineHook_ItemAdd(ImGuiContext* ctx, const ImRect& bb, ImGuiID id); extern void ImGuiTestEngineHook_ItemInfo(ImGuiContext* ctx, ImGuiID id, const char* label, ImGuiItemStatusFlags flags); -extern void ImGuiTestEngineHook_IdInfo(ImGuiContext* ctx, ImGuiDataType data_type, ImGuiID id, const void* data_id); -extern void ImGuiTestEngineHook_IdInfo(ImGuiContext* ctx, ImGuiDataType data_type, ImGuiID id, const void* data_id, const void* data_id_end); extern void ImGuiTestEngineHook_Log(ImGuiContext* ctx, const char* fmt, ...); +extern const char* ImGuiTestEngine_FindItemDebugLabel(ImGuiContext* ctx, ImGuiID id); + #define IMGUI_TEST_ENGINE_ITEM_ADD(_BB,_ID) if (g.TestEngineHookItems) ImGuiTestEngineHook_ItemAdd(&g, _BB, _ID) // Register item bounding box #define IMGUI_TEST_ENGINE_ITEM_INFO(_ID,_LABEL,_FLAGS) if (g.TestEngineHookItems) ImGuiTestEngineHook_ItemInfo(&g, _ID, _LABEL, _FLAGS) // Register item label and status flags (optional) #define IMGUI_TEST_ENGINE_LOG(_FMT,...) if (g.TestEngineHookItems) ImGuiTestEngineHook_Log(&g, _FMT, __VA_ARGS__) // Custom log entry from user land into test log -#define IMGUI_TEST_ENGINE_ID_INFO(_ID,_TYPE,_DATA) if (g.TestEngineHookIdInfo == _ID) ImGuiTestEngineHook_IdInfo(&g, _TYPE, _ID, (const void*)(_DATA)); -#define IMGUI_TEST_ENGINE_ID_INFO2(_ID,_TYPE,_DATA,_DATA2) if (g.TestEngineHookIdInfo == _ID) ImGuiTestEngineHook_IdInfo(&g, _TYPE, _ID, (const void*)(_DATA), (const void*)(_DATA2)); #else #define IMGUI_TEST_ENGINE_ITEM_INFO(_ID,_LABEL,_FLAGS) ((void)0) #endif diff --git a/imgui-sys/third-party/imgui-master/imgui/imgui_tables.cpp b/imgui-sys/third-party/imgui-master/imgui/imgui_tables.cpp index 71ac00f6a..8a3fe93c1 100644 --- a/imgui-sys/third-party/imgui-master/imgui/imgui_tables.cpp +++ b/imgui-sys/third-party/imgui-master/imgui/imgui_tables.cpp @@ -1,4 +1,4 @@ -// dear imgui, v1.84 +// dear imgui, v1.86 // (tables and columns code) /* @@ -324,7 +324,7 @@ bool ImGui::BeginTableEx(const char* name, ImGuiID id, int columns_count, ImG const ImVec2 avail_size = GetContentRegionAvail(); ImVec2 actual_outer_size = CalcItemSize(outer_size, ImMax(avail_size.x, 1.0f), use_child_window ? ImMax(avail_size.y, 1.0f) : 0.0f); ImRect outer_rect(outer_window->DC.CursorPos, outer_window->DC.CursorPos + actual_outer_size); - if (use_child_window && IsClippedEx(outer_rect, 0, false)) + if (use_child_window && IsClippedEx(outer_rect, 0)) { ItemSize(outer_rect); return false; @@ -340,10 +340,9 @@ bool ImGui::BeginTableEx(const char* name, ImGuiID id, int columns_count, ImG // Acquire temporary buffers const int table_idx = g.Tables.GetIndex(table); - g.CurrentTableStackIdx++; - if (g.CurrentTableStackIdx + 1 > g.TablesTempDataStack.Size) - g.TablesTempDataStack.resize(g.CurrentTableStackIdx + 1, ImGuiTableTempData()); - ImGuiTableTempData* temp_data = table->TempData = &g.TablesTempDataStack[g.CurrentTableStackIdx]; + if (++g.TablesTempDataStacked > g.TablesTempData.Size) + g.TablesTempData.resize(g.TablesTempDataStacked, ImGuiTableTempData()); + ImGuiTableTempData* temp_data = table->TempData = &g.TablesTempData[g.TablesTempDataStacked - 1]; temp_data->TableIndex = table_idx; table->DrawSplitter = &table->TempData->DrawSplitter; table->DrawSplitter->Clear(); @@ -564,6 +563,7 @@ bool ImGui::BeginTableEx(const char* name, ImGuiID id, int columns_count, ImG // + 0 (for ImGuiTable instance, we are pooling allocations in g.Tables) // + 1 (for table->RawData allocated below) // + 1 (for table->ColumnsNames, if names are used) +// Shared allocations per number of nested tables // + 1 (for table->Splitter._Channels) // + 2 * active_channels_count (for ImDrawCmd and ImDrawIdx buffers inside channels) // Where active_channels_count is variable but often == columns_count or columns_count + 1, see TableSetupDrawChannels() for details. @@ -1170,7 +1170,7 @@ void ImGui::TableUpdateBorders(ImGuiTable* table) KeepAliveID(column_id); bool hovered = false, held = false; - bool pressed = ButtonBehavior(hit_rect, column_id, &hovered, &held, ImGuiButtonFlags_FlattenChildren | ImGuiButtonFlags_AllowItemOverlap | ImGuiButtonFlags_PressedOnClick | ImGuiButtonFlags_PressedOnDoubleClick); + bool pressed = ButtonBehavior(hit_rect, column_id, &hovered, &held, ImGuiButtonFlags_FlattenChildren | ImGuiButtonFlags_AllowItemOverlap | ImGuiButtonFlags_PressedOnClick | ImGuiButtonFlags_PressedOnDoubleClick | ImGuiButtonFlags_NoNavFocus); if (pressed && IsMouseDoubleClicked(0)) { TableSetColumnWidthAutoSingle(table, column_n); @@ -1381,9 +1381,8 @@ void ImGui::EndTable() // Clear or restore current table, if any IM_ASSERT(g.CurrentWindow == outer_window && g.CurrentTable == table); - IM_ASSERT(g.CurrentTableStackIdx >= 0); - g.CurrentTableStackIdx--; - temp_data = g.CurrentTableStackIdx >= 0 ? &g.TablesTempDataStack[g.CurrentTableStackIdx] : NULL; + IM_ASSERT(g.TablesTempDataStacked > 0); + temp_data = (--g.TablesTempDataStacked > 0) ? &g.TablesTempData[g.TablesTempDataStacked - 1] : NULL; g.CurrentTable = temp_data ? g.Tables.GetByIndex(temp_data->TableIndex) : NULL; if (g.CurrentTable) { @@ -1479,6 +1478,7 @@ void ImGui::TableSetupScrollFreeze(int columns, int rows) table->IsUnfrozenRows = (table->FreezeRowsCount == 0); // Make sure this is set before TableUpdateLayout() so ImGuiListClipper can benefit from it.b // Ensure frozen columns are ordered in their section. We still allow multiple frozen columns to be reordered. + // FIXME-TABLE: This work for preserving 2143 into 21|43. How about 4321 turning into 21|43? (preserve relative order in each section) for (int column_n = 0; column_n < table->FreezeColumnsRequest; column_n++) { int order_n = table->DisplayOrderToIndex[column_n]; @@ -3987,7 +3987,7 @@ void ImGui::EndColumns() const float column_hit_hw = COLUMNS_HIT_RECT_HALF_WIDTH; const ImRect column_hit_rect(ImVec2(x - column_hit_hw, y1), ImVec2(x + column_hit_hw, y2)); KeepAliveID(column_id); - if (IsClippedEx(column_hit_rect, column_id, false)) + if (IsClippedEx(column_hit_rect, column_id)) // FIXME: Can be removed or replaced with a lower-level test continue; bool hovered = false, held = false; diff --git a/imgui-sys/third-party/imgui-master/imgui/imgui_widgets.cpp b/imgui-sys/third-party/imgui-master/imgui/imgui_widgets.cpp index e3ac15f19..f199ad40a 100644 --- a/imgui-sys/third-party/imgui-master/imgui/imgui_widgets.cpp +++ b/imgui-sys/third-party/imgui-master/imgui/imgui_widgets.cpp @@ -1,4 +1,4 @@ -// dear imgui, v1.84 +// dear imgui, v1.86 // (widgets code) /* @@ -152,9 +152,13 @@ void ImGui::TextEx(const char* text, const char* text_end, ImGuiTextFlags flags) ImGuiWindow* window = GetCurrentWindow(); if (window->SkipItems) return; - ImGuiContext& g = *GImGui; - IM_ASSERT(text != NULL); + + // Accept null ranges + if (text == text_end) + text = text_end = ""; + + // Calculate length const char* text_begin = text; if (text_end == NULL) text_end = text + strlen(text); // FIXME-OPT @@ -201,7 +205,7 @@ void ImGui::TextEx(const char* text, const char* text_end, ImGuiTextFlags flags) ImRect line_rect(pos, pos + ImVec2(FLT_MAX, line_height)); while (line < text_end) { - if (IsClippedEx(line_rect, 0, false)) + if (IsClippedEx(line_rect, 0)) break; const char* line_end = (const char*)memchr(line, '\n', text_end - line); @@ -269,6 +273,7 @@ void ImGui::TextV(const char* fmt, va_list args) if (window->SkipItems) return; + // FIXME-OPT: Handle the %s shortcut? ImGuiContext& g = *GImGui; const char* text_end = g.TempBuffer + ImFormatStringV(g.TempBuffer, IM_ARRAYSIZE(g.TempBuffer), fmt, args); TextEx(g.TempBuffer, text_end, ImGuiTextFlags_NoWidthForLargeClippedText); @@ -559,13 +564,15 @@ bool ImGui::ButtonBehavior(const ImRect& bb, ImGuiID id, bool* out_hovered, bool SetFocusID(id, window); FocusWindow(window); } - if ((flags & ImGuiButtonFlags_PressedOnClick) || ((flags & ImGuiButtonFlags_PressedOnDoubleClick) && g.IO.MouseDoubleClicked[mouse_button_clicked])) + if ((flags & ImGuiButtonFlags_PressedOnClick) || ((flags & ImGuiButtonFlags_PressedOnDoubleClick) && g.IO.MouseClickedCount[mouse_button_clicked] == 2)) { pressed = true; if (flags & ImGuiButtonFlags_NoHoldingActiveId) ClearActiveID(); else SetActiveID(id, window); // Hold on ID + if (!(flags & ImGuiButtonFlags_NoNavFocus)) + SetFocusID(id, window); g.ActiveIdMouseButton = mouse_button_clicked; FocusWindow(window); } @@ -576,6 +583,8 @@ bool ImGui::ButtonBehavior(const ImRect& bb, ImGuiID id, bool* out_hovered, bool const bool has_repeated_at_least_once = (flags & ImGuiButtonFlags_Repeat) && g.IO.MouseDownDurationPrev[mouse_button_released] >= g.IO.KeyRepeatDelay; if (!has_repeated_at_least_once) pressed = true; + if (!(flags & ImGuiButtonFlags_NoNavFocus)) + SetFocusID(id, window); ClearActiveID(); } @@ -600,13 +609,12 @@ bool ImGui::ButtonBehavior(const ImRect& bb, ImGuiID id, bool* out_hovered, bool bool nav_activated_by_code = (g.NavActivateId == id); bool nav_activated_by_inputs = IsNavInputTest(ImGuiNavInput_Activate, (flags & ImGuiButtonFlags_Repeat) ? ImGuiInputReadMode_Repeat : ImGuiInputReadMode_Pressed); if (nav_activated_by_code || nav_activated_by_inputs) - pressed = true; - if (nav_activated_by_code || nav_activated_by_inputs || g.ActiveId == id) { // Set active id so it can be queried by user via IsItemActive(), equivalent of holding the mouse button. - g.NavActivateId = id; // This is so SetActiveId assign a Nav source + pressed = true; SetActiveID(id, window); - if ((nav_activated_by_code || nav_activated_by_inputs) && !(flags & ImGuiButtonFlags_NoNavFocus)) + g.ActiveIdSource = ImGuiInputSource_Nav; + if (!(flags & ImGuiButtonFlags_NoNavFocus)) SetFocusID(id, window); } } @@ -633,7 +641,7 @@ bool ImGui::ButtonBehavior(const ImRect& bb, ImGuiID id, bool* out_hovered, bool if ((release_in || release_anywhere) && !g.DragDropActive) { // Report as pressed when releasing the mouse (this is the most common path) - bool is_double_click_release = (flags & ImGuiButtonFlags_PressedOnDoubleClick) && g.IO.MouseDownWasDoubleClick[mouse_button]; + bool is_double_click_release = (flags & ImGuiButtonFlags_PressedOnDoubleClick) && g.IO.MouseReleased[mouse_button] && g.IO.MouseClickedLastCount[mouse_button] == 2; bool is_repeating_already = (flags & ImGuiButtonFlags_Repeat) && g.IO.MouseDownDurationPrev[mouse_button] >= g.IO.KeyRepeatDelay; // Repeat mode trumps if (!is_double_click_release && !is_repeating_already) pressed = true; @@ -888,7 +896,9 @@ void ImGui::Scrollbar(ImGuiAxis axis) } float size_avail = window->InnerRect.Max[axis] - window->InnerRect.Min[axis]; float size_contents = window->ContentSize[axis] + window->WindowPadding[axis] * 2.0f; - ScrollbarEx(bb, id, axis, &window->Scroll[axis], size_avail, size_contents, rounding_corners); + ImS64 scroll = (ImS64)window->Scroll[axis]; + ScrollbarEx(bb, id, axis, &scroll, (ImS64)size_avail, (ImS64)size_contents, rounding_corners); + window->Scroll[axis] = (float)scroll; } // Vertical/Horizontal scrollbar @@ -897,7 +907,7 @@ void ImGui::Scrollbar(ImGuiAxis axis) // - We store values as normalized ratio and in a form that allows the window content to change while we are holding on a scrollbar // - We handle both horizontal and vertical scrollbars, which makes the terminology not ideal. // Still, the code should probably be made simpler.. -bool ImGui::ScrollbarEx(const ImRect& bb_frame, ImGuiID id, ImGuiAxis axis, float* p_scroll_v, float size_avail_v, float size_contents_v, ImDrawFlags flags) +bool ImGui::ScrollbarEx(const ImRect& bb_frame, ImGuiID id, ImGuiAxis axis, ImS64* p_scroll_v, ImS64 size_avail_v, ImS64 size_contents_v, ImDrawFlags flags) { ImGuiContext& g = *GImGui; ImGuiWindow* window = g.CurrentWindow; @@ -928,8 +938,8 @@ bool ImGui::ScrollbarEx(const ImRect& bb_frame, ImGuiID id, ImGuiAxis axis, floa // Calculate the height of our grabbable box. It generally represent the amount visible (vs the total scrollable amount) // But we maintain a minimum size in pixel to allow for the user to still aim inside. IM_ASSERT(ImMax(size_contents_v, size_avail_v) > 0.0f); // Adding this assert to check if the ImMax(XXX,1.0f) is still needed. PLEASE CONTACT ME if this triggers. - const float win_size_v = ImMax(ImMax(size_contents_v, size_avail_v), 1.0f); - const float grab_h_pixels = ImClamp(scrollbar_size_v * (size_avail_v / win_size_v), style.GrabMinSize, scrollbar_size_v); + const ImS64 win_size_v = ImMax(ImMax(size_contents_v, size_avail_v), (ImS64)1); + const float grab_h_pixels = ImClamp(scrollbar_size_v * ((float)size_avail_v / (float)win_size_v), style.GrabMinSize, scrollbar_size_v); const float grab_h_norm = grab_h_pixels / scrollbar_size_v; // Handle input right away. None of the code of Begin() is relying on scrolling position before calling Scrollbar(). @@ -937,13 +947,13 @@ bool ImGui::ScrollbarEx(const ImRect& bb_frame, ImGuiID id, ImGuiAxis axis, floa bool hovered = false; ButtonBehavior(bb, id, &hovered, &held, ImGuiButtonFlags_NoNavFocus); - float scroll_max = ImMax(1.0f, size_contents_v - size_avail_v); - float scroll_ratio = ImSaturate(*p_scroll_v / scroll_max); + const ImS64 scroll_max = ImMax((ImS64)1, size_contents_v - size_avail_v); + float scroll_ratio = ImSaturate((float)*p_scroll_v / (float)scroll_max); float grab_v_norm = scroll_ratio * (scrollbar_size_v - grab_h_pixels) / scrollbar_size_v; // Grab position in normalized space if (held && allow_interaction && grab_h_norm < 1.0f) { - float scrollbar_pos_v = bb.Min[axis]; - float mouse_pos_v = g.IO.MousePos[axis]; + const float scrollbar_pos_v = bb.Min[axis]; + const float mouse_pos_v = g.IO.MousePos[axis]; // Click position in scrollbar normalized space (0.0f->1.0f) const float clicked_v_norm = ImSaturate((mouse_pos_v - scrollbar_pos_v) / scrollbar_size_v); @@ -963,10 +973,10 @@ bool ImGui::ScrollbarEx(const ImRect& bb_frame, ImGuiID id, ImGuiAxis axis, floa // Apply scroll (p_scroll_v will generally point on one member of window->Scroll) // It is ok to modify Scroll here because we are being called in Begin() after the calculation of ContentSize and before setting up our starting position const float scroll_v_norm = ImSaturate((clicked_v_norm - g.ScrollbarClickDeltaToGrabCenter - grab_h_norm * 0.5f) / (1.0f - grab_h_norm)); - *p_scroll_v = IM_ROUND(scroll_v_norm * scroll_max);//(win_size_contents_v - win_size_v)); + *p_scroll_v = (ImS64)(scroll_v_norm * scroll_max); // Update values for rendering - scroll_ratio = ImSaturate(*p_scroll_v / scroll_max); + scroll_ratio = ImSaturate((float)*p_scroll_v / (float)scroll_max); grab_v_norm = scroll_ratio * (scrollbar_size_v - grab_h_pixels) / scrollbar_size_v; // Update distance to grab now that we have seeked and saturated @@ -1383,11 +1393,20 @@ void ImGui::SeparatorEx(ImGuiSeparatorFlags flags) if (g.GroupStack.Size > 0 && g.GroupStack.back().WindowID == window->ID) x1 += window->DC.Indent.x; + // FIXME-WORKRECT: In theory we should simply be using WorkRect.Min.x/Max.x everywhere but it isn't aesthetically what we want, + // need to introduce a variant of WorkRect for that purpose. (#4787) + if (ImGuiTable* table = g.CurrentTable) + { + x1 = table->Columns[table->CurrentColumn].MinX; + x2 = table->Columns[table->CurrentColumn].MaxX; + } + ImGuiOldColumns* columns = (flags & ImGuiSeparatorFlags_SpanAllColumns) ? window->DC.CurrentColumns : NULL; if (columns) PushColumnsBackground(); // We don't provide our width to the layout so that it doesn't get feed back into AutoFit + // FIXME: This prevents ->CursorMaxPos based bounding box evaluation from working (e.g. TableEndCell) const ImRect bb(ImVec2(x1, window->DC.CursorPos.y), ImVec2(x2, window->DC.CursorPos.y + thickness_draw)); ItemSize(ImVec2(0.0f, thickness_layout)); const bool item_visible = ItemAdd(bb, 0); @@ -1416,7 +1435,7 @@ void ImGui::Separator() // Those flags should eventually be overridable by the user ImGuiSeparatorFlags flags = (window->DC.LayoutType == ImGuiLayoutType_Horizontal) ? ImGuiSeparatorFlags_Vertical : ImGuiSeparatorFlags_Horizontal; - flags |= ImGuiSeparatorFlags_SpanAllColumns; + flags |= ImGuiSeparatorFlags_SpanAllColumns; // NB: this only applies to legacy Columns() api as they relied on Separator() a lot. SeparatorEx(flags); } @@ -1577,7 +1596,7 @@ bool ImGui::BeginCombo(const char* label, const char* preview_value, ImGuiComboF bool pressed = ButtonBehavior(bb, id, &hovered, &held); const ImGuiID popup_id = ImHashStr("##ComboPopup", 0, id); bool popup_open = IsPopupOpen(popup_id, ImGuiPopupFlags_None); - if ((pressed || g.NavActivateId == id) && !popup_open) + if (pressed && !popup_open) { OpenPopupEx(popup_id, ImGuiPopupFlags_None); popup_open = true; @@ -1791,7 +1810,7 @@ bool ImGui::Combo(const char* label, int* current_item, bool (*items_getter)(voi bool value_changed = false; for (int i = 0; i < items_count; i++) { - PushID((void*)(intptr_t)i); + PushID(i); const bool item_selected = (i == *current_item); const char* item_text; if (!items_getter(data, i, &item_text)) @@ -2385,7 +2404,7 @@ bool ImGui::DragScalar(const char* label, ImGuiDataType data_type, void* p_data, const bool temp_input_allowed = (flags & ImGuiSliderFlags_NoInput) == 0; ItemSize(total_bb, style.FramePadding.y); - if (!ItemAdd(total_bb, id, &frame_bb, temp_input_allowed ? ImGuiItemAddFlags_Focusable : 0)) + if (!ItemAdd(total_bb, id, &frame_bb, temp_input_allowed ? ImGuiItemFlags_Inputable : 0)) return false; // Default format string when passing NULL @@ -2399,24 +2418,26 @@ bool ImGui::DragScalar(const char* label, ImGuiDataType data_type, void* p_data, bool temp_input_is_active = temp_input_allowed && TempInputIsActive(id); if (!temp_input_is_active) { - const bool focus_requested = temp_input_allowed && (g.LastItemData.StatusFlags & ImGuiItemStatusFlags_Focused) != 0; + const bool input_requested_by_tabbing = temp_input_allowed && (g.LastItemData.StatusFlags & ImGuiItemStatusFlags_FocusedByTabbing) != 0; const bool clicked = (hovered && g.IO.MouseClicked[0]); - const bool double_clicked = (hovered && g.IO.MouseDoubleClicked[0]); - if (focus_requested || clicked || double_clicked || g.NavActivateId == id || g.NavInputId == id) + const bool double_clicked = (hovered && g.IO.MouseClickedCount[0] == 2); + if (input_requested_by_tabbing || clicked || double_clicked || g.NavActivateId == id || g.NavActivateInputId == id) { SetActiveID(id, window); SetFocusID(id, window); FocusWindow(window); g.ActiveIdUsingNavDirMask = (1 << ImGuiDir_Left) | (1 << ImGuiDir_Right); - if (temp_input_allowed && (focus_requested || (clicked && g.IO.KeyCtrl) || double_clicked || g.NavInputId == id)) - temp_input_is_active = true; + if (temp_input_allowed) + if (input_requested_by_tabbing || (clicked && g.IO.KeyCtrl) || double_clicked || g.NavActivateInputId == id) + temp_input_is_active = true; } + // Experimental: simple click (without moving) turns Drag into an InputText - // FIXME: Currently polling ImGuiConfigFlags_IsTouchScreen, may either poll an hypothetical ImGuiBackendFlags_HasKeyboard and/or an explicit drag settings. if (g.IO.ConfigDragClickToInputText && temp_input_allowed && !temp_input_is_active) if (g.ActiveId == id && hovered && g.IO.MouseReleased[0] && !IsMouseDragPastThreshold(0, g.IO.MouseDragThreshold * DRAG_MOUSE_THRESHOLD_FACTOR)) { - g.NavInputId = id; + g.NavActivateId = g.NavActivateInputId = id; + g.NavActivateFlags = ImGuiActivateFlags_PreferInput; temp_input_is_active = true; } } @@ -3001,7 +3022,7 @@ bool ImGui::SliderScalar(const char* label, ImGuiDataType data_type, void* p_dat const bool temp_input_allowed = (flags & ImGuiSliderFlags_NoInput) == 0; ItemSize(total_bb, style.FramePadding.y); - if (!ItemAdd(total_bb, id, &frame_bb, temp_input_allowed ? ImGuiItemAddFlags_Focusable : 0)) + if (!ItemAdd(total_bb, id, &frame_bb, temp_input_allowed ? ImGuiItemFlags_Inputable : 0)) return false; // Default format string when passing NULL @@ -3015,15 +3036,15 @@ bool ImGui::SliderScalar(const char* label, ImGuiDataType data_type, void* p_dat bool temp_input_is_active = temp_input_allowed && TempInputIsActive(id); if (!temp_input_is_active) { - const bool focus_requested = temp_input_allowed && (g.LastItemData.StatusFlags & ImGuiItemStatusFlags_Focused) != 0; + const bool input_requested_by_tabbing = temp_input_allowed && (g.LastItemData.StatusFlags & ImGuiItemStatusFlags_FocusedByTabbing) != 0; const bool clicked = (hovered && g.IO.MouseClicked[0]); - if (focus_requested || clicked || g.NavActivateId == id || g.NavInputId == id) + if (input_requested_by_tabbing || clicked || g.NavActivateId == id || g.NavActivateInputId == id) { SetActiveID(id, window); SetFocusID(id, window); FocusWindow(window); g.ActiveIdUsingNavDirMask |= (1 << ImGuiDir_Left) | (1 << ImGuiDir_Right); - if (temp_input_allowed && (focus_requested || (clicked && g.IO.KeyCtrl) || g.NavInputId == id)) + if (temp_input_allowed && (input_requested_by_tabbing || (clicked && g.IO.KeyCtrl) || g.NavActivateInputId == id)) temp_input_is_active = true; } } @@ -3175,7 +3196,7 @@ bool ImGui::VSliderScalar(const char* label, const ImVec2& size, ImGuiDataType d format = PatchFormatStringFloatToInt(format); const bool hovered = ItemHoverable(frame_bb, id); - if ((hovered && g.IO.MouseClicked[0]) || g.NavActivateId == id || g.NavInputId == id) + if ((hovered && g.IO.MouseClicked[0]) || g.NavActivateId == id || g.NavActivateInputId == id) { SetActiveID(id, window); SetFocusID(id, window); @@ -3439,7 +3460,7 @@ bool ImGui::InputScalar(const char* label, ImGuiDataType data_type, void* p_data style.FramePadding.x = style.FramePadding.y; ImGuiButtonFlags button_flags = ImGuiButtonFlags_Repeat | ImGuiButtonFlags_DontClosePopups; if (flags & ImGuiInputTextFlags_ReadOnly) - BeginDisabled(true); + BeginDisabled(); SameLine(0, style.ItemInnerSpacing.x); if (ButtonEx("-", ImVec2(button_size, button_size), button_flags)) { @@ -3669,17 +3690,18 @@ static void STB_TEXTEDIT_LAYOUTROW(StbTexteditRow* r, ImGuiInputTextState* ob } // When ImGuiInputTextFlags_Password is set, we don't want actions such as CTRL+Arrow to leak the fact that underlying data are blanks or separators. -static bool is_separator(unsigned int c) { return ImCharIsBlankW(c) || c==',' || c==';' || c=='(' || c==')' || c=='{' || c=='}' || c=='[' || c==']' || c=='|'; } +static bool is_separator(unsigned int c) { return ImCharIsBlankW(c) || c==',' || c==';' || c=='(' || c==')' || c=='{' || c=='}' || c=='[' || c==']' || c=='|' || c=='\n' || c=='\r'; } static int is_word_boundary_from_right(ImGuiInputTextState* obj, int idx) { if (obj->Flags & ImGuiInputTextFlags_Password) return 0; return idx > 0 ? (is_separator(obj->TextW[idx - 1]) && !is_separator(obj->TextW[idx]) ) : 1; } +static int is_word_boundary_from_left(ImGuiInputTextState* obj, int idx) { if (obj->Flags & ImGuiInputTextFlags_Password) return 0; return idx > 0 ? (!is_separator(obj->TextW[idx - 1]) && is_separator(obj->TextW[idx])) : 1; } static int STB_TEXTEDIT_MOVEWORDLEFT_IMPL(ImGuiInputTextState* obj, int idx) { idx--; while (idx >= 0 && !is_word_boundary_from_right(obj, idx)) idx--; return idx < 0 ? 0 : idx; } +static int STB_TEXTEDIT_MOVEWORDRIGHT_MAC(ImGuiInputTextState* obj, int idx) { idx++; int len = obj->CurLenW; while (idx < len && !is_word_boundary_from_left(obj, idx)) idx++; return idx > len ? len : idx; } +#define STB_TEXTEDIT_MOVEWORDLEFT STB_TEXTEDIT_MOVEWORDLEFT_IMPL // They need to be #define for stb_textedit.h #ifdef __APPLE__ // FIXME: Move setting to IO structure -static int is_word_boundary_from_left(ImGuiInputTextState* obj, int idx) { if (obj->Flags & ImGuiInputTextFlags_Password) return 0; return idx > 0 ? (!is_separator(obj->TextW[idx - 1]) && is_separator(obj->TextW[idx]) ) : 1; } -static int STB_TEXTEDIT_MOVEWORDRIGHT_IMPL(ImGuiInputTextState* obj, int idx) { idx++; int len = obj->CurLenW; while (idx < len && !is_word_boundary_from_left(obj, idx)) idx++; return idx > len ? len : idx; } +#define STB_TEXTEDIT_MOVEWORDRIGHT STB_TEXTEDIT_MOVEWORDRIGHT_MAC #else -static int STB_TEXTEDIT_MOVEWORDRIGHT_IMPL(ImGuiInputTextState* obj, int idx) { idx++; int len = obj->CurLenW; while (idx < len && !is_word_boundary_from_right(obj, idx)) idx++; return idx > len ? len : idx; } +static int STB_TEXTEDIT_MOVEWORDRIGHT_WIN(ImGuiInputTextState* obj, int idx) { idx++; int len = obj->CurLenW; while (idx < len && !is_word_boundary_from_right(obj, idx)) idx++; return idx > len ? len : idx; } +#define STB_TEXTEDIT_MOVEWORDRIGHT STB_TEXTEDIT_MOVEWORDRIGHT_WIN #endif -#define STB_TEXTEDIT_MOVEWORDLEFT STB_TEXTEDIT_MOVEWORDLEFT_IMPL // They need to be #define for stb_textedit.h -#define STB_TEXTEDIT_MOVEWORDRIGHT STB_TEXTEDIT_MOVEWORDRIGHT_IMPL static void STB_TEXTEDIT_DELETECHARS(ImGuiInputTextState* obj, int pos, int n) { @@ -3871,11 +3893,12 @@ static bool InputTextFilterCharacter(unsigned int* p_char, ImGuiInputTextFlags f // Generic named filters if (apply_named_filters && (flags & (ImGuiInputTextFlags_CharsDecimal | ImGuiInputTextFlags_CharsHexadecimal | ImGuiInputTextFlags_CharsUppercase | ImGuiInputTextFlags_CharsNoBlank | ImGuiInputTextFlags_CharsScientific))) { - // The libc allows overriding locale, with e.g. 'setlocale(LC_NUMERIC, "de_DE.UTF-8");' which affect the output/input of printf/scanf. + // The libc allows overriding locale, with e.g. 'setlocale(LC_NUMERIC, "de_DE.UTF-8");' which affect the output/input of printf/scanf to use e.g. ',' instead of '.'. // The standard mandate that programs starts in the "C" locale where the decimal point is '.'. // We don't really intend to provide widespread support for it, but out of empathy for people stuck with using odd API, we support the bare minimum aka overriding the decimal point. // Change the default decimal_point with: // ImGui::GetCurrentContext()->PlatformLocaleDecimalPoint = *localeconv()->decimal_point; + // Users of non-default decimal point (in particular ',') may be affected by word-selection logic (is_word_boundary_from_right/is_word_boundary_from_left) functions. ImGuiContext& g = *GImGui; const unsigned c_decimal_point = (unsigned int)g.PlatformLocaleDecimalPoint; @@ -3954,7 +3977,7 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ if (is_resizable) IM_ASSERT(callback != NULL); // Must provide a callback if you set the ImGuiInputTextFlags_CallbackResize flag! - if (is_multiline) // Open group before calling GetID() because groups tracks id created within their scope, + if (is_multiline) // Open group before calling GetID() because groups tracks id created within their scope (including the scrollbar) BeginGroup(); const ImGuiID id = window->GetID(label); const ImVec2 label_size = CalcTextSize(label, NULL, true); @@ -3967,22 +3990,28 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ ImGuiWindow* draw_window = window; ImVec2 inner_size = frame_size; ImGuiItemStatusFlags item_status_flags = 0; + ImGuiLastItemData item_data_backup; if (is_multiline) { - if (!ItemAdd(total_bb, id, &frame_bb, ImGuiItemAddFlags_Focusable)) + ImVec2 backup_pos = window->DC.CursorPos; + ItemSize(total_bb, style.FramePadding.y); + if (!ItemAdd(total_bb, id, &frame_bb, ImGuiItemFlags_Inputable)) { - ItemSize(total_bb, style.FramePadding.y); EndGroup(); return false; } item_status_flags = g.LastItemData.StatusFlags; + item_data_backup = g.LastItemData; + window->DC.CursorPos = backup_pos; // We reproduce the contents of BeginChildFrame() in order to provide 'label' so our window internal data are easier to read/debug. + // FIXME-NAV: Pressing NavActivate will trigger general child activation right before triggering our own below. Harmless but bizarre. PushStyleColor(ImGuiCol_ChildBg, style.Colors[ImGuiCol_FrameBg]); PushStyleVar(ImGuiStyleVar_ChildRounding, style.FrameRounding); PushStyleVar(ImGuiStyleVar_ChildBorderSize, style.FrameBorderSize); + PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0, 0)); // Ensure no clip rect so mouse hover can reach FramePadding edges bool child_visible = BeginChildEx(label, id, frame_bb.GetSize(), true, ImGuiWindowFlags_NoMove); - PopStyleVar(2); + PopStyleVar(3); PopStyleColor(); if (!child_visible) { @@ -4000,7 +4029,7 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ // Support for internal ImGuiInputTextFlags_MergedItem flag, which could be redesigned as an ItemFlags if needed (with test performed in ItemAdd) ItemSize(total_bb, style.FramePadding.y); if (!(flags & ImGuiInputTextFlags_MergedItem)) - if (!ItemAdd(total_bb, id, &frame_bb, ImGuiItemAddFlags_Focusable)) + if (!ItemAdd(total_bb, id, &frame_bb, ImGuiItemFlags_Inputable)) return false; item_status_flags = g.LastItemData.StatusFlags; } @@ -4011,21 +4040,19 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ // We are only allowed to access the state if we are already the active widget. ImGuiInputTextState* state = GetInputTextState(id); - const bool focus_requested_by_code = (item_status_flags & ImGuiItemStatusFlags_FocusedByCode) != 0; - const bool focus_requested_by_tabbing = (item_status_flags & ImGuiItemStatusFlags_FocusedByTabbing) != 0; + const bool input_requested_by_tabbing = (item_status_flags & ImGuiItemStatusFlags_FocusedByTabbing) != 0; + const bool input_requested_by_nav = (g.ActiveId != id) && ((g.NavActivateInputId == id) || (g.NavActivateId == id && g.NavInputSource == ImGuiInputSource_Keyboard)); const bool user_clicked = hovered && io.MouseClicked[0]; - const bool user_nav_input_start = (g.ActiveId != id) && ((g.NavInputId == id) || (g.NavActivateId == id && g.NavInputSource == ImGuiInputSource_Keyboard)); const bool user_scroll_finish = is_multiline && state != NULL && g.ActiveId == 0 && g.ActiveIdPreviousFrame == GetWindowScrollbarID(draw_window, ImGuiAxis_Y); const bool user_scroll_active = is_multiline && state != NULL && g.ActiveId == GetWindowScrollbarID(draw_window, ImGuiAxis_Y); - bool clear_active_id = false; - bool select_all = (g.ActiveId != id) && ((flags & ImGuiInputTextFlags_AutoSelectAll) != 0 || user_nav_input_start) && (!is_multiline); + bool select_all = false; float scroll_y = is_multiline ? draw_window->Scroll.y : FLT_MAX; const bool init_changed_specs = (state != NULL && state->Stb.single_line != !is_multiline); - const bool init_make_active = (user_clicked || user_scroll_finish || user_nav_input_start || focus_requested_by_code || focus_requested_by_tabbing); + const bool init_make_active = (user_clicked || user_scroll_finish || input_requested_by_nav || input_requested_by_tabbing); const bool init_state = (init_make_active || user_scroll_active); if ((init_state && g.ActiveId != id) || init_changed_specs) { @@ -4061,13 +4088,20 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ state->ID = id; state->ScrollX = 0.0f; stb_textedit_initialize_state(&state->Stb, !is_multiline); - if (!is_multiline && focus_requested_by_code) + } + + if (!is_multiline) + { + if (flags & ImGuiInputTextFlags_AutoSelectAll) + select_all = true; + if (input_requested_by_nav && (!recycle_state || !(g.NavActivateFlags & ImGuiActivateFlags_TryToPreserveState))) + select_all = true; + if (input_requested_by_tabbing || (user_clicked && io.KeyCtrl)) select_all = true; } + if (flags & ImGuiInputTextFlags_AlwaysOverwrite) state->Stb.insert_mode = 1; // stb field name is indeed incorrect (see #2863) - if (!is_multiline && (focus_requested_by_tabbing || (user_clicked && io.KeyCtrl))) - select_all = true; } if (g.ActiveId != id && init_make_active) @@ -4100,7 +4134,7 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ // Lock the decision of whether we are going to take the path displaying the cursor or selection const bool render_cursor = (g.ActiveId == id) || (state && user_scroll_active); - bool render_selection = state && state->HasSelection() && (RENDER_SELECTION_WHEN_INACTIVE || render_cursor); + bool render_selection = state && (state->HasSelection() || select_all) && (RENDER_SELECTION_WHEN_INACTIVE || render_cursor); bool value_changed = false; bool enter_pressed = false; @@ -4145,8 +4179,6 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ state->Edited = false; state->BufCapacityA = buf_size; state->Flags = flags; - state->UserCallback = callback; - state->UserCallbackData = callback_user_data; // Although we are active we don't prevent mouse from hovering other elements unless we are interacting right now with the widget. // Down the line we should have a cleaner library-wide concept of Selected vs Active. @@ -4158,19 +4190,49 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ const float mouse_y = (is_multiline ? (io.MousePos.y - draw_window->DC.CursorPos.y) : (g.FontSize * 0.5f)); const bool is_osx = io.ConfigMacOSXBehaviors; - if (select_all || (hovered && !is_osx && io.MouseDoubleClicked[0])) + if (select_all) { state->SelectAll(); state->SelectedAllMouseLock = true; } - else if (hovered && is_osx && io.MouseDoubleClicked[0]) + else if (hovered && io.MouseClickedCount[0] >= 2 && !io.KeyShift) { - // Double-click select a word only, OS X style (by simulating keystrokes) - state->OnKeyPressed(STB_TEXTEDIT_K_WORDLEFT); - state->OnKeyPressed(STB_TEXTEDIT_K_WORDRIGHT | STB_TEXTEDIT_K_SHIFT); + stb_textedit_click(state, &state->Stb, mouse_x, mouse_y); + const int multiclick_count = (io.MouseClickedCount[0] - 2); + if ((multiclick_count % 2) == 0) + { + // Double-click: Select word + // We always use the "Mac" word advance for double-click select vs CTRL+Right which use the platform dependent variant: + // FIXME: There are likely many ways to improve this behavior, but there's no "right" behavior (depends on use-case, software, OS) + const bool is_bol = (state->Stb.cursor == 0) || ImStb::STB_TEXTEDIT_GETCHAR(state, state->Stb.cursor - 1) == '\n'; + if (STB_TEXT_HAS_SELECTION(&state->Stb) || !is_bol) + state->OnKeyPressed(STB_TEXTEDIT_K_WORDLEFT); + //state->OnKeyPressed(STB_TEXTEDIT_K_WORDRIGHT | STB_TEXTEDIT_K_SHIFT); + if (!STB_TEXT_HAS_SELECTION(&state->Stb)) + ImStb::stb_textedit_prep_selection_at_cursor(&state->Stb); + state->Stb.cursor = ImStb::STB_TEXTEDIT_MOVEWORDRIGHT_MAC(state, state->Stb.cursor); + state->Stb.select_end = state->Stb.cursor; + ImStb::stb_textedit_clamp(state, &state->Stb); + } + else + { + // Triple-click: Select line + const bool is_eol = ImStb::STB_TEXTEDIT_GETCHAR(state, state->Stb.cursor) == '\n'; + state->OnKeyPressed(STB_TEXTEDIT_K_LINESTART); + state->OnKeyPressed(STB_TEXTEDIT_K_LINEEND | STB_TEXTEDIT_K_SHIFT); + state->OnKeyPressed(STB_TEXTEDIT_K_RIGHT | STB_TEXTEDIT_K_SHIFT); + if (!is_eol && is_multiline) + { + ImSwap(state->Stb.select_start, state->Stb.select_end); + state->Stb.cursor = state->Stb.select_end; + } + state->CursorFollow = false; + } + state->CursorAnimReset(); } else if (io.MouseClicked[0] && !state->SelectedAllMouseLock) { + // FIXME: unselect on late click could be done release? if (hovered) { stb_textedit_click(state, &state->Stb, mouse_x, mouse_y); @@ -4201,7 +4263,7 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ // We ignore CTRL inputs, but need to allow ALT+CTRL as some keyboards (e.g. German) use AltGR (which _is_ Alt+Ctrl) to input certain characters. if (io.InputQueueCharacters.Size > 0) { - if (!ignore_char_inputs && !is_readonly && !user_nav_input_start) + if (!ignore_char_inputs && !is_readonly && !input_requested_by_nav) for (int n = 0; n < io.InputQueueCharacters.Size; n++) { // Insert character if they pass filtering @@ -4242,6 +4304,11 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ const bool is_undo = ((is_shortcut_key && IsKeyPressedMap(ImGuiKey_Z)) && !is_readonly && is_undoable); const bool is_redo = ((is_shortcut_key && IsKeyPressedMap(ImGuiKey_Y)) || (is_osx_shift_shortcut && IsKeyPressedMap(ImGuiKey_Z))) && !is_readonly && is_undoable; + // We allow validate/cancel with Nav source (gamepad) to makes it easier to undo an accidental NavInput press with no keyboard wired, but otherwise it isn't very useful. + const bool is_validate_enter = IsKeyPressedMap(ImGuiKey_Enter) || IsKeyPressedMap(ImGuiKey_KeyPadEnter); + const bool is_validate_nav = (IsNavInputTest(ImGuiNavInput_Activate, ImGuiInputReadMode_Pressed) && !IsKeyPressedMap(ImGuiKey_Space)) || IsNavInputTest(ImGuiNavInput_Input, ImGuiInputReadMode_Pressed); + const bool is_cancel = IsKeyPressedMap(ImGuiKey_Escape) || IsNavInputTest(ImGuiNavInput_Cancel, ImGuiInputReadMode_Pressed); + if (IsKeyPressedMap(ImGuiKey_LeftArrow)) { state->OnKeyPressed((is_startend_key_down ? STB_TEXTEDIT_K_LINESTART : is_wordmove_key_down ? STB_TEXTEDIT_K_WORDLEFT : STB_TEXTEDIT_K_LEFT) | k_mask); } else if (IsKeyPressedMap(ImGuiKey_RightArrow)) { state->OnKeyPressed((is_startend_key_down ? STB_TEXTEDIT_K_LINEEND : is_wordmove_key_down ? STB_TEXTEDIT_K_WORDRIGHT : STB_TEXTEDIT_K_RIGHT) | k_mask); } else if (IsKeyPressedMap(ImGuiKey_UpArrow) && is_multiline) { if (io.KeyCtrl) SetScrollY(draw_window, ImMax(draw_window->Scroll.y - g.FontSize, 0.0f)); else state->OnKeyPressed((is_startend_key_down ? STB_TEXTEDIT_K_TEXTSTART : STB_TEXTEDIT_K_UP) | k_mask); } @@ -4250,7 +4317,7 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ else if (IsKeyPressedMap(ImGuiKey_PageDown) && is_multiline) { state->OnKeyPressed(STB_TEXTEDIT_K_PGDOWN | k_mask); scroll_y += row_count_per_page * g.FontSize; } else if (IsKeyPressedMap(ImGuiKey_Home)) { state->OnKeyPressed(io.KeyCtrl ? STB_TEXTEDIT_K_TEXTSTART | k_mask : STB_TEXTEDIT_K_LINESTART | k_mask); } else if (IsKeyPressedMap(ImGuiKey_End)) { state->OnKeyPressed(io.KeyCtrl ? STB_TEXTEDIT_K_TEXTEND | k_mask : STB_TEXTEDIT_K_LINEEND | k_mask); } - else if (IsKeyPressedMap(ImGuiKey_Delete) && !is_readonly) { state->OnKeyPressed(STB_TEXTEDIT_K_DELETE | k_mask); } + else if (IsKeyPressedMap(ImGuiKey_Delete) && !is_readonly && !is_cut) { state->OnKeyPressed(STB_TEXTEDIT_K_DELETE | k_mask); } else if (IsKeyPressedMap(ImGuiKey_Backspace) && !is_readonly) { if (!state->HasSelection()) @@ -4262,7 +4329,7 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ } state->OnKeyPressed(STB_TEXTEDIT_K_BACKSPACE | k_mask); } - else if (IsKeyPressedMap(ImGuiKey_Enter) || IsKeyPressedMap(ImGuiKey_KeyPadEnter)) + else if (is_validate_enter) { bool ctrl_enter_for_new_line = (flags & ImGuiInputTextFlags_CtrlEnterForNewLine) != 0; if (!is_multiline || (ctrl_enter_for_new_line && !io.KeyCtrl) || (!ctrl_enter_for_new_line && io.KeyCtrl)) @@ -4276,7 +4343,12 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ state->OnKeyPressed((int)c); } } - else if (IsKeyPressedMap(ImGuiKey_Escape)) + else if (is_validate_nav) + { + IM_ASSERT(!is_validate_enter); + enter_pressed = clear_active_id = true; + } + else if (is_cancel) { clear_active_id = cancel_edit = true; } @@ -4344,11 +4416,11 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ } // Process callbacks and apply result back to user's buffer. + const char* apply_new_text = NULL; + int apply_new_text_length = 0; if (g.ActiveId == id) { IM_ASSERT(state != NULL); - const char* apply_new_text = NULL; - int apply_new_text_length = 0; if (cancel_edit) { // Restore initial value. Only return true if restoring to the initial value changes the current buffer contents. @@ -4424,8 +4496,9 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ callback_data.Flags = flags; callback_data.UserData = callback_user_data; + char* callback_buf = is_readonly ? buf : state->TextA.Data; callback_data.EventKey = event_key; - callback_data.Buf = state->TextA.Data; + callback_data.Buf = callback_buf; callback_data.BufTextLen = state->CurLenA; callback_data.BufSize = state->BufCapacityA; callback_data.BufDirty = false; @@ -4440,7 +4513,8 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ callback(&callback_data); // Read back what user may have modified - IM_ASSERT(callback_data.Buf == state->TextA.Data); // Invalid to modify those fields + callback_buf = is_readonly ? buf : state->TextA.Data; // Pointer may have been invalidated by a resize callback + IM_ASSERT(callback_data.Buf == callback_buf); // Invalid to modify those fields IM_ASSERT(callback_data.BufSize == state->BufCapacityA); IM_ASSERT(callback_data.Flags == flags); const bool buf_dirty = callback_data.BufDirty; @@ -4467,39 +4541,37 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ } } - // Copy result to user buffer - if (apply_new_text) - { - // We cannot test for 'backup_current_text_length != apply_new_text_length' here because we have no guarantee that the size - // of our owned buffer matches the size of the string object held by the user, and by design we allow InputText() to be used - // without any storage on user's side. - IM_ASSERT(apply_new_text_length >= 0); - if (is_resizable) - { - ImGuiInputTextCallbackData callback_data; - callback_data.EventFlag = ImGuiInputTextFlags_CallbackResize; - callback_data.Flags = flags; - callback_data.Buf = buf; - callback_data.BufTextLen = apply_new_text_length; - callback_data.BufSize = ImMax(buf_size, apply_new_text_length + 1); - callback_data.UserData = callback_user_data; - callback(&callback_data); - buf = callback_data.Buf; - buf_size = callback_data.BufSize; - apply_new_text_length = ImMin(callback_data.BufTextLen, buf_size - 1); - IM_ASSERT(apply_new_text_length <= buf_size); - } - //IMGUI_DEBUG_LOG("InputText(\"%s\"): apply_new_text length %d\n", label, apply_new_text_length); + // Clear temporary user storage + state->Flags = ImGuiInputTextFlags_None; + } - // If the underlying buffer resize was denied or not carried to the next frame, apply_new_text_length+1 may be >= buf_size. - ImStrncpy(buf, apply_new_text, ImMin(apply_new_text_length + 1, buf_size)); - value_changed = true; + // Copy result to user buffer. This can currently only happen when (g.ActiveId == id) + if (apply_new_text != NULL) + { + // We cannot test for 'backup_current_text_length != apply_new_text_length' here because we have no guarantee that the size + // of our owned buffer matches the size of the string object held by the user, and by design we allow InputText() to be used + // without any storage on user's side. + IM_ASSERT(apply_new_text_length >= 0); + if (is_resizable) + { + ImGuiInputTextCallbackData callback_data; + callback_data.EventFlag = ImGuiInputTextFlags_CallbackResize; + callback_data.Flags = flags; + callback_data.Buf = buf; + callback_data.BufTextLen = apply_new_text_length; + callback_data.BufSize = ImMax(buf_size, apply_new_text_length + 1); + callback_data.UserData = callback_user_data; + callback(&callback_data); + buf = callback_data.Buf; + buf_size = callback_data.BufSize; + apply_new_text_length = ImMin(callback_data.BufTextLen, buf_size - 1); + IM_ASSERT(apply_new_text_length <= buf_size); } + //IMGUI_DEBUG_LOG("InputText(\"%s\"): apply_new_text length %d\n", label, apply_new_text_length); - // Clear temporary user storage - state->Flags = ImGuiInputTextFlags_None; - state->UserCallback = NULL; - state->UserCallbackData = NULL; + // If the underlying buffer resize was denied or not carried to the next frame, apply_new_text_length+1 may be >= buf_size. + ImStrncpy(buf, apply_new_text, ImMin(apply_new_text_length + 1, buf_size)); + value_changed = true; } // Release active ID at the end of the function (so e.g. pressing Return still does a final application of the value) @@ -4621,7 +4693,7 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ // Test if cursor is vertically visible if (cursor_offset.y - g.FontSize < scroll_y) scroll_y = ImMax(0.0f, cursor_offset.y - g.FontSize); - else if (cursor_offset.y - inner_size.y >= scroll_y) + else if (cursor_offset.y - (inner_size.y - style.FramePadding.y * 2.0f) >= scroll_y) scroll_y = cursor_offset.y - inner_size.y + style.FramePadding.y * 2.0f; const float scroll_max_y = ImMax((text_size.y + style.FramePadding.y * 2.0f) - inner_size.y, 0.0f); scroll_y = ImClamp(scroll_y, 0.0f, scroll_max_y); @@ -4713,9 +4785,23 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ if (is_multiline) { + // For focus requests to work on our multiline we need to ensure our child ItemAdd() call specifies the ImGuiItemFlags_Inputable (ref issue #4761)... Dummy(ImVec2(text_size.x, text_size.y + style.FramePadding.y)); + ImGuiItemFlags backup_item_flags = g.CurrentItemFlags; + g.CurrentItemFlags |= ImGuiItemFlags_Inputable | ImGuiItemFlags_NoTabStop; EndChild(); + item_data_backup.StatusFlags |= (g.LastItemData.StatusFlags & ImGuiItemStatusFlags_HoveredWindow); + g.CurrentItemFlags = backup_item_flags; + + // ...and then we need to undo the group overriding last item data, which gets a bit messy as EndGroup() tries to forward scrollbar being active... + // FIXME: This quite messy/tricky, should attempt to get rid of the child window. EndGroup(); + if (g.LastItemData.ID == 0) + { + g.LastItemData.ID = id; + g.LastItemData.InFlags = item_data_backup.InFlags; + g.LastItemData.StatusFlags = item_data_backup.StatusFlags; + } } // Log as text @@ -4758,6 +4844,30 @@ bool ImGui::ColorEdit3(const char* label, float col[3], ImGuiColorEditFlags flag return ColorEdit4(label, col, flags | ImGuiColorEditFlags_NoAlpha); } +// ColorEdit supports RGB and HSV inputs. In case of RGB input resulting color may have undefined hue and/or saturation. +// Since widget displays both RGB and HSV values we must preserve hue and saturation to prevent these values resetting. +static void ColorEditRestoreHS(const float* col, float* H, float* S, float* V) +{ + // This check is optional. Suppose we have two color widgets side by side, both widgets display different colors, but both colors have hue and/or saturation undefined. + // With color check: hue/saturation is preserved in one widget. Editing color in one widget would reset hue/saturation in another one. + // Without color check: common hue/saturation would be displayed in all widgets that have hue/saturation undefined. + // g.ColorEditLastColor is stored as ImU32 RGB value: this essentially gives us color equality check with reduced precision. + // Tiny external color changes would not be detected and this check would still pass. This is OK, since we only restore hue/saturation _only_ if they are undefined, + // therefore this change flipping hue/saturation from undefined to a very tiny value would still be represented in color picker. + ImGuiContext& g = *GImGui; + if (g.ColorEditLastColor != ImGui::ColorConvertFloat4ToU32(ImVec4(col[0], col[1], col[2], 0))) + return; + + // When S == 0, H is undefined. + // When H == 1 it wraps around to 0. + if (*S == 0.0f || (*H == 0.0f && g.ColorEditLastHue == 1)) + *H = g.ColorEditLastHue; + + // When V == 0, S is undefined. + if (*V == 0.0f) + *S = g.ColorEditLastSat; +} + // Edit colors components (each component in 0.0f..1.0f range). // See enum ImGuiColorEditFlags_ for available options. e.g. Only access 3 floats if ImGuiColorEditFlags_NoAlpha flag is set. // With typical options: Left-click on color square to open color picker. Right-click to open option menu. CTRL-Click over input fields to edit them and TAB to go to next item. @@ -4813,13 +4923,7 @@ bool ImGui::ColorEdit4(const char* label, float col[4], ImGuiColorEditFlags flag { // Hue is lost when converting from greyscale rgb (saturation=0). Restore it. ColorConvertRGBtoHSV(f[0], f[1], f[2], f[0], f[1], f[2]); - if (memcmp(g.ColorEditLastColor, col, sizeof(float) * 3) == 0) - { - if (f[1] == 0) - f[0] = g.ColorEditLastHue; - if (f[2] == 0) - f[1] = g.ColorEditLastSat; - } + ColorEditRestoreHS(col, &f[0], &f[1], &f[2]); } int i[4] = { IM_F32_TO_INT8_UNBOUND(f[0]), IM_F32_TO_INT8_UNBOUND(f[1]), IM_F32_TO_INT8_UNBOUND(f[2]), IM_F32_TO_INT8_UNBOUND(f[3]) }; @@ -4954,7 +5058,7 @@ bool ImGui::ColorEdit4(const char* label, float col[4], ImGuiColorEditFlags flag g.ColorEditLastHue = f[0]; g.ColorEditLastSat = f[1]; ColorConvertHSVtoRGB(f[0], f[1], f[2], f[0], f[1], f[2]); - memcpy(g.ColorEditLastColor, f, sizeof(float) * 3); + g.ColorEditLastColor = ColorConvertFloat4ToU32(ImVec4(f[0], f[1], f[2], 0)); } if ((flags & ImGuiColorEditFlags_DisplayRGB) && (flags & ImGuiColorEditFlags_InputHSV)) ColorConvertRGBtoHSV(f[0], f[1], f[2], f[0], f[1], f[2]); @@ -5089,13 +5193,7 @@ bool ImGui::ColorPicker4(const char* label, float col[4], ImGuiColorEditFlags fl { // Hue is lost when converting from greyscale rgb (saturation=0). Restore it. ColorConvertRGBtoHSV(R, G, B, H, S, V); - if (memcmp(g.ColorEditLastColor, col, sizeof(float) * 3) == 0) - { - if (S == 0) - H = g.ColorEditLastHue; - if (V == 0) - S = g.ColorEditLastSat; - } + ColorEditRestoreHS(col, &H, &S, &V); } else if (flags & ImGuiColorEditFlags_InputHSV) { @@ -5148,6 +5246,10 @@ bool ImGui::ColorPicker4(const char* label, float col[4], ImGuiColorEditFlags fl { S = ImSaturate((io.MousePos.x - picker_pos.x) / (sv_picker_size - 1)); V = 1.0f - ImSaturate((io.MousePos.y - picker_pos.y) / (sv_picker_size - 1)); + + // Greatly reduces hue jitter and reset to 0 when hue == 255 and color is rapidly modified using SV square. + if (g.ColorEditLastColor == ColorConvertFloat4ToU32(ImVec4(col[0], col[1], col[2], 0))) + H = g.ColorEditLastHue; value_changed = value_changed_sv = true; } if (!(flags & ImGuiColorEditFlags_NoOptions)) @@ -5221,10 +5323,10 @@ bool ImGui::ColorPicker4(const char* label, float col[4], ImGuiColorEditFlags fl { if (flags & ImGuiColorEditFlags_InputRGB) { - ColorConvertHSVtoRGB(H >= 1.0f ? H - 10 * 1e-6f : H, S > 0.0f ? S : 10 * 1e-6f, V > 0.0f ? V : 1e-6f, col[0], col[1], col[2]); + ColorConvertHSVtoRGB(H, S, V, col[0], col[1], col[2]); g.ColorEditLastHue = H; g.ColorEditLastSat = S; - memcpy(g.ColorEditLastColor, col, sizeof(float) * 3); + g.ColorEditLastColor = ColorConvertFloat4ToU32(ImVec4(col[0], col[1], col[2], 0)); } else if (flags & ImGuiColorEditFlags_InputHSV) { @@ -5278,13 +5380,7 @@ bool ImGui::ColorPicker4(const char* label, float col[4], ImGuiColorEditFlags fl G = col[1]; B = col[2]; ColorConvertRGBtoHSV(R, G, B, H, S, V); - if (memcmp(g.ColorEditLastColor, col, sizeof(float) * 3) == 0) // Fix local Hue as display below will use it immediately. - { - if (S == 0) - H = g.ColorEditLastHue; - if (V == 0) - S = g.ColorEditLastSat; - } + ColorEditRestoreHS(col, &H, &S, &V); // Fix local Hue as display below will use it immediately. } else if (flags & ImGuiColorEditFlags_InputHSV) { @@ -5510,7 +5606,7 @@ void ImGui::ColorTooltip(const char* text, const float* col, ImGuiColorEditFlags { ImGuiContext& g = *GImGui; - BeginTooltipEx(0, ImGuiTooltipFlags_OverridePreviousTooltip); + BeginTooltipEx(ImGuiTooltipFlags_OverridePreviousTooltip, ImGuiWindowFlags_None); const char* text_end = text ? FindRenderedTextEnd(text, NULL) : text; if (text_end > text) { @@ -5881,7 +5977,7 @@ bool ImGui::TreeNodeBehavior(ImGuiID id, ImGuiTreeNodeFlags flags, const char* l toggled = true; if (flags & ImGuiTreeNodeFlags_OpenOnArrow) toggled |= is_mouse_x_over_arrow && !g.NavDisableMouseHover; // Lightweight equivalent of IsMouseHoveringRect() since ButtonBehavior() already did the job - if ((flags & ImGuiTreeNodeFlags_OpenOnDoubleClick) && g.IO.MouseDoubleClicked[0]) + if ((flags & ImGuiTreeNodeFlags_OpenOnDoubleClick) && g.IO.MouseClickedCount[0] == 2) toggled = true; } else if (pressed && g.DragDropHoldJustPressedId == id) @@ -5891,12 +5987,12 @@ bool ImGui::TreeNodeBehavior(ImGuiID id, ImGuiTreeNodeFlags flags, const char* l toggled = true; } - if (g.NavId == id && g.NavMoveRequest && g.NavMoveDir == ImGuiDir_Left && is_open) + if (g.NavId == id && g.NavMoveDir == ImGuiDir_Left && is_open) { toggled = true; NavMoveRequestCancel(); } - if (g.NavId == id && g.NavMoveRequest && g.NavMoveDir == ImGuiDir_Right && !is_open) // If there's something upcoming on the line we may want to give it the priority? + if (g.NavId == id && g.NavMoveDir == ImGuiDir_Right && !is_open) // If there's something upcoming on the line we may want to give it the priority? { toggled = true; NavMoveRequestCancel(); @@ -5967,7 +6063,7 @@ void ImGui::TreePush(const char* str_id) ImGuiWindow* window = GetCurrentWindow(); Indent(); window->DC.TreeDepth++; - PushID(str_id ? str_id : "#TreePush"); + PushID(str_id); } void ImGui::TreePush(const void* ptr_id) @@ -5975,7 +6071,7 @@ void ImGui::TreePush(const void* ptr_id) ImGuiWindow* window = GetCurrentWindow(); Indent(); window->DC.TreeDepth++; - PushID(ptr_id ? ptr_id : (const void*)"#TreePush"); + PushID(ptr_id); } void ImGui::TreePushOverrideID(ImGuiID id) @@ -5984,7 +6080,7 @@ void ImGui::TreePushOverrideID(ImGuiID id) ImGuiWindow* window = g.CurrentWindow; Indent(); window->DC.TreeDepth++; - window->IDStack.push_back(id); + PushOverrideID(id); } void ImGui::TreePop() @@ -6138,20 +6234,8 @@ bool ImGui::Selectable(const char* label, bool selected, ImGuiSelectableFlags fl window->ClipRect.Max.x = window->ParentWorkRect.Max.x; } - bool item_add; const bool disabled_item = (flags & ImGuiSelectableFlags_Disabled) != 0; - if (disabled_item) - { - ImGuiItemFlags backup_item_flags = g.CurrentItemFlags; - g.CurrentItemFlags |= ImGuiItemFlags_Disabled; - item_add = ItemAdd(bb, id); - g.CurrentItemFlags = backup_item_flags; - } - else - { - item_add = ItemAdd(bb, id); - } - + const bool item_add = ItemAdd(bb, id, NULL, disabled_item ? ImGuiItemFlags_Disabled : ImGuiItemFlags_None); if (span_all_columns) { window->ClipRect.Min.x = backup_clip_rect_min_x; @@ -6163,7 +6247,7 @@ bool ImGui::Selectable(const char* label, bool selected, ImGuiSelectableFlags fl const bool disabled_global = (g.CurrentItemFlags & ImGuiItemFlags_Disabled) != 0; if (disabled_item && !disabled_global) // Only testing this as an optimization - BeginDisabled(true); + BeginDisabled(); // FIXME: We can standardize the behavior of those two, we could also keep the fast path of override ClipRect + full push on render only, // which would be advantageous since most selectable are not selected. @@ -6200,7 +6284,7 @@ bool ImGui::Selectable(const char* label, bool selected, ImGuiSelectableFlags fl { if (!g.NavDisableMouseHover && g.NavWindow == window && g.NavLayer == window->DC.NavLayerCurrent) { - SetNavID(id, window->DC.NavLayerCurrent, window->DC.NavFocusScopeIdCurrent, ImRect(bb.Min - window->Pos, bb.Max - window->Pos)); + SetNavID(id, window->DC.NavLayerCurrent, window->DC.NavFocusScopeIdCurrent, WindowRectAbsToRel(window, bb)); // (bb == NavRect) g.NavDisableHighlight = true; } } @@ -6465,7 +6549,7 @@ int ImGui::PlotEx(ImGuiPlotType plot_type, const char* label, float (*values_get float v0 = values_getter(data, (0 + values_offset) % values_count); float t0 = 0.0f; ImVec2 tp0 = ImVec2( t0, 1.0f - ImSaturate((v0 - scale_min) * inv_scale) ); // Point in the normalized space of our target rectangle - float histogram_zero_line_t = (scale_min * scale_max < 0.0f) ? (-scale_min * inv_scale) : (scale_min < 0.0f ? 0.0f : 1.0f); // Where does the zero line stands + float histogram_zero_line_t = (scale_min * scale_max < 0.0f) ? (1 + scale_min * inv_scale) : (scale_min < 0.0f ? 0.0f : 1.0f); // Where does the zero line stands const ImU32 col_base = GetColorU32((plot_type == ImGuiPlotType_Lines) ? ImGuiCol_PlotLines : ImGuiCol_PlotHistogram); const ImU32 col_hovered = GetColorU32((plot_type == ImGuiPlotType_Lines) ? ImGuiCol_PlotLinesHovered : ImGuiCol_PlotHistogramHovered); @@ -6681,21 +6765,21 @@ void ImGui::EndMenuBar() // Nav: When a move request within one of our child menu failed, capture the request to navigate among our siblings. if (NavMoveRequestButNoResultYet() && (g.NavMoveDir == ImGuiDir_Left || g.NavMoveDir == ImGuiDir_Right) && (g.NavWindow->Flags & ImGuiWindowFlags_ChildMenu)) { + // Try to find out if the request is for one of our child menu ImGuiWindow* nav_earliest_child = g.NavWindow; while (nav_earliest_child->ParentWindow && (nav_earliest_child->ParentWindow->Flags & ImGuiWindowFlags_ChildMenu)) nav_earliest_child = nav_earliest_child->ParentWindow; - if (nav_earliest_child->ParentWindow == window && nav_earliest_child->DC.ParentLayoutType == ImGuiLayoutType_Horizontal && g.NavMoveRequestForward == ImGuiNavForward_None) + if (nav_earliest_child->ParentWindow == window && nav_earliest_child->DC.ParentLayoutType == ImGuiLayoutType_Horizontal && (g.NavMoveFlags & ImGuiNavMoveFlags_Forwarded) == 0) { // To do so we claim focus back, restore NavId and then process the movement request for yet another frame. - // This involve a one-frame delay which isn't very problematic in this situation. We could remove it by scoring in advance for multiple window (probably not worth the hassle/cost) + // This involve a one-frame delay which isn't very problematic in this situation. We could remove it by scoring in advance for multiple window (probably not worth bothering) const ImGuiNavLayer layer = ImGuiNavLayer_Menu; IM_ASSERT(window->DC.NavLayersActiveMaskNext & (1 << layer)); // Sanity check FocusWindow(window); SetNavID(window->NavLastIds[layer], layer, 0, window->NavRectRel[layer]); g.NavDisableHighlight = true; // Hide highlight for the current frame so we don't see the intermediary selection. g.NavDisableMouseHover = g.NavMousePosDirty = true; - g.NavMoveRequestForward = ImGuiNavForward_ForwardQueued; - NavMoveRequestCancel(); + NavMoveRequestForward(g.NavMoveDir, g.NavMoveClipDir, g.NavMoveFlags, g.NavMoveScrollFlags); // Repeat } } @@ -6784,7 +6868,24 @@ void ImGui::EndMainMenuBar() End(); } -bool ImGui::BeginMenu(const char* label, bool enabled) +static bool IsRootOfOpenMenuSet() +{ + ImGuiContext& g = *GImGui; + ImGuiWindow* window = g.CurrentWindow; + if ((g.OpenPopupStack.Size <= g.BeginPopupStack.Size) || (window->Flags & ImGuiWindowFlags_ChildMenu)) + return false; + + // Initially we used 'OpenParentId' to differentiate multiple menu sets from each others (e.g. inside menu bar vs loose menu items) based on parent ID. + // This would however prevent the use of e.g. PuhsID() user code submitting menus. + // Previously this worked between popup and a first child menu because the first child menu always had the _ChildWindow flag, + // making hovering on parent popup possible while first child menu was focused - but this was generally a bug with other side effects. + // Instead we don't treat Popup specifically (in order to consistently support menu features in them), maybe the first child menu of a Popup + // doesn't have the _ChildWindow flag, and we rely on this IsRootOfOpenMenuSet() check to allow hovering between root window/popup and first chilld menu. + const ImGuiPopupData* upper_popup = &g.OpenPopupStack[g.BeginPopupStack.Size]; + return (/*upper_popup->OpenParentId == window->IDStack.back() &&*/ upper_popup->Window && (upper_popup->Window->Flags & ImGuiWindowFlags_ChildMenu)); +} + +bool ImGui::BeginMenuEx(const char* label, const char* icon, bool enabled) { ImGuiWindow* window = GetCurrentWindow(); if (window->SkipItems) @@ -6796,8 +6897,9 @@ bool ImGui::BeginMenu(const char* label, bool enabled) bool menu_is_open = IsPopupOpen(id, ImGuiPopupFlags_None); // Sub-menus are ChildWindow so that mouse can be hovering across them (otherwise top-most popup menu would steal focus and not allow hovering on parent menu) + // The first menu in a hierarchy isn't so hovering doesn't get accross (otherwise e.g. resizing borders with ImGuiButtonFlags_FlattenChildren would react), but top-most BeginMenu() will bypass that limitation. ImGuiWindowFlags flags = ImGuiWindowFlags_ChildMenu | ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoSavedSettings | ImGuiWindowFlags_NoNavFocus; - if (window->Flags & (ImGuiWindowFlags_Popup | ImGuiWindowFlags_ChildMenu)) + if (window->Flags & ImGuiWindowFlags_ChildMenu) flags |= ImGuiWindowFlags_ChildWindow; // If a menu with same the ID was already submitted, we will append to it, matching the behavior of Begin(). @@ -6816,11 +6918,12 @@ bool ImGui::BeginMenu(const char* label, bool enabled) g.MenusIdSubmittedThisFrame.push_back(id); ImVec2 label_size = CalcTextSize(label, NULL, true); - bool pressed; - bool menuset_is_open = !(window->Flags & ImGuiWindowFlags_Popup) && (g.OpenPopupStack.Size > g.BeginPopupStack.Size && g.OpenPopupStack[g.BeginPopupStack.Size].OpenParentId == window->IDStack.back()); + + // Odd hack to allow hovering across menus of a same menu-set (otherwise we wouldn't be able to hover parent without always being a Child window) + const bool menuset_is_open = IsRootOfOpenMenuSet(); ImGuiWindow* backed_nav_window = g.NavWindow; if (menuset_is_open) - g.NavWindow = window; // Odd hack to allow hovering across menus of a same menu-set (otherwise we wouldn't be able to hover parent) + g.NavWindow = window; // The reference position stored in popup_pos will be used by Begin() to find a suitable position for the child menu, // However the final position is going to be different! It is chosen by FindBestWindowPosForPopup(). @@ -6830,6 +6933,7 @@ bool ImGui::BeginMenu(const char* label, bool enabled) if (!enabled) BeginDisabled(); const ImGuiMenuColumns* offsets = &window->DC.MenuColumns; + bool pressed; if (window->DC.LayoutType == ImGuiLayoutType_Horizontal) { // Menu inside an horizontal menu bar @@ -6847,17 +6951,19 @@ bool ImGui::BeginMenu(const char* label, bool enabled) } else { - // Menu inside a menu + // Menu inside a regular/vertical menu // (In a typical menu window where all items are BeginMenu() or MenuItem() calls, extra_w will always be 0.0f. // Only when they are other items sticking out we're going to add spacing, yet only register minimum width into the layout system. popup_pos = ImVec2(pos.x, pos.y - style.WindowPadding.y); - float icon_w = 0.0f; // FIXME: This not currently exposed for BeginMenu() however you can call window->DC.MenuColumns.DeclColumns(w, 0, 0, 0) yourself + float icon_w = (icon && icon[0]) ? CalcTextSize(icon, NULL).x : 0.0f; float checkmark_w = IM_FLOOR(g.FontSize * 1.20f); float min_w = window->DC.MenuColumns.DeclColumns(icon_w, label_size.x, 0.0f, checkmark_w); // Feedback to next frame float extra_w = ImMax(0.0f, GetContentRegionAvail().x - min_w); ImVec2 text_pos(window->DC.CursorPos.x + offsets->OffsetLabel, window->DC.CursorPos.y + window->DC.CurrLineTextBaseOffset); pressed = Selectable("", menu_is_open, ImGuiSelectableFlags_NoHoldingActiveID | ImGuiSelectableFlags_SelectOnClick | ImGuiSelectableFlags_DontClosePopups | ImGuiSelectableFlags_SpanAvailWidth, ImVec2(min_w, 0.0f)); RenderText(text_pos, label); + if (icon_w > 0.0f) + RenderText(pos + ImVec2(offsets->OffsetIcon, 0.0f), icon); RenderArrow(window->DrawList, pos + ImVec2(offsets->OffsetMark + extra_w + g.FontSize * 0.30f, 0.0f), GetColorU32(ImGuiCol_Text), ImGuiDir_Right); } if (!enabled) @@ -6874,38 +6980,30 @@ bool ImGui::BeginMenu(const char* label, bool enabled) // Close menu when not hovering it anymore unless we are moving roughly in the direction of the menu // Implement http://bjk5.com/post/44698559168/breaking-down-amazons-mega-dropdown to avoid using timers, so menus feels more reactive. bool moving_toward_other_child_menu = false; - ImGuiWindow* child_menu_window = (g.BeginPopupStack.Size < g.OpenPopupStack.Size && g.OpenPopupStack[g.BeginPopupStack.Size].SourceWindow == window) ? g.OpenPopupStack[g.BeginPopupStack.Size].Window : NULL; if (g.HoveredWindow == window && child_menu_window != NULL && !(window->Flags & ImGuiWindowFlags_MenuBar)) { - // FIXME-DPI: Values should be derived from a master "scale" factor. + float ref_unit = g.FontSize; // FIXME-DPI ImRect next_window_rect = child_menu_window->Rect(); - ImVec2 ta = g.IO.MousePos - g.IO.MouseDelta; + ImVec2 ta = (g.IO.MousePos - g.IO.MouseDelta); ImVec2 tb = (window->Pos.x < child_menu_window->Pos.x) ? next_window_rect.GetTL() : next_window_rect.GetTR(); ImVec2 tc = (window->Pos.x < child_menu_window->Pos.x) ? next_window_rect.GetBL() : next_window_rect.GetBR(); - float extra = ImClamp(ImFabs(ta.x - tb.x) * 0.30f, 5.0f, 30.0f); // add a bit of extra slack. - ta.x += (window->Pos.x < child_menu_window->Pos.x) ? -0.5f : +0.5f; // to avoid numerical issues - tb.y = ta.y + ImMax((tb.y - extra) - ta.y, -100.0f); // triangle is maximum 200 high to limit the slope and the bias toward large sub-menus // FIXME: Multiply by fb_scale? - tc.y = ta.y + ImMin((tc.y + extra) - ta.y, +100.0f); + float extra = ImClamp(ImFabs(ta.x - tb.x) * 0.30f, ref_unit * 0.5f, ref_unit * 2.5f); // add a bit of extra slack. + ta.x += (window->Pos.x < child_menu_window->Pos.x) ? -0.5f : +0.5f; // to avoid numerical issues (FIXME: ??) + tb.y = ta.y + ImMax((tb.y - extra) - ta.y, -ref_unit * 8.0f); // triangle is maximum 200 high to limit the slope and the bias toward large sub-menus // FIXME: Multiply by fb_scale? + tc.y = ta.y + ImMin((tc.y + extra) - ta.y, +ref_unit * 8.0f); moving_toward_other_child_menu = ImTriangleContainsPoint(ta, tb, tc, g.IO.MousePos); - //GetForegroundDrawList()->AddTriangleFilled(ta, tb, tc, moving_within_opened_triangle ? IM_COL32(0,128,0,128) : IM_COL32(128,0,0,128)); // [DEBUG] + //GetForegroundDrawList()->AddTriangleFilled(ta, tb, tc, moving_toward_other_child_menu ? IM_COL32(0,128,0,128) : IM_COL32(128,0,0,128)); // [DEBUG] } - - // FIXME: Hovering a disabled BeginMenu or MenuItem won't close us if (menu_is_open && !hovered && g.HoveredWindow == window && g.HoveredIdPreviousFrame != 0 && g.HoveredIdPreviousFrame != id && !moving_toward_other_child_menu) want_close = true; - if (!menu_is_open && hovered && pressed) // Click to open + // Open + if (!menu_is_open && pressed) // Click/activate to open want_open = true; else if (!menu_is_open && hovered && !moving_toward_other_child_menu) // Hover to open want_open = true; - - if (g.NavActivateId == id) - { - want_close = menu_is_open; - want_open = !menu_is_open; - } - if (g.NavId == id && g.NavMoveRequest && g.NavMoveDir == ImGuiDir_Right) // Nav-Right to open + if (g.NavId == id && g.NavMoveDir == ImGuiDir_Right) // Nav-Right to open { want_open = true; NavMoveRequestCancel(); @@ -6923,7 +7021,7 @@ bool ImGui::BeginMenu(const char* label, bool enabled) { want_open = true; } - else if (g.NavId == id && g.NavMoveRequest && g.NavMoveDir == ImGuiDir_Down) // Nav-Down to open + else if (g.NavId == id && g.NavMoveDir == ImGuiDir_Down) // Nav-Down to open { want_open = true; NavMoveRequestCancel(); @@ -6952,7 +7050,9 @@ bool ImGui::BeginMenu(const char* label, bool enabled) if (menu_is_open) { SetNextWindowPos(popup_pos, ImGuiCond_Always); // Note: this is super misleading! The value will serve as reference for FindBestWindowPosForPopup(), not actual pos. + PushStyleVar(ImGuiStyleVar_ChildRounding, style.PopupRounding); // First level will use _PopupRounding, subsequent will use _ChildRounding menu_is_open = BeginPopupEx(id, flags); // menu_is_open can be 'false' when the popup is completely clipped (e.g. zero size display) + PopStyleVar(); } else { @@ -6962,6 +7062,11 @@ bool ImGui::BeginMenu(const char* label, bool enabled) return menu_is_open; } +bool ImGui::BeginMenu(const char* label, bool enabled) +{ + return BeginMenuEx(label, NULL, enabled); +} + void ImGui::EndMenu() { // Nav: When a left move request _within our child menu_ failed, close ourselves (the _parent_ menu). @@ -6969,11 +7074,12 @@ void ImGui::EndMenu() // However, it means that with the current code, a BeginMenu() from outside another menu or a menu-bar won't be closable with the Left direction. ImGuiContext& g = *GImGui; ImGuiWindow* window = g.CurrentWindow; - if (g.NavWindow && g.NavWindow->ParentWindow == window && g.NavMoveDir == ImGuiDir_Left && NavMoveRequestButNoResultYet() && window->DC.LayoutType == ImGuiLayoutType_Vertical) - { - ClosePopupToLevel(g.BeginPopupStack.Size, true); - NavMoveRequestCancel(); - } + if (g.NavMoveDir == ImGuiDir_Left && NavMoveRequestButNoResultYet() && window->DC.LayoutType == ImGuiLayoutType_Vertical) + if (g.NavWindow && (g.NavWindow->RootWindowForNav->Flags & ImGuiWindowFlags_Popup) && g.NavWindow->RootWindowForNav->ParentWindow == window) + { + ClosePopupToLevel(g.BeginPopupStack.Size, true); + NavMoveRequestCancel(); + } EndPopup(); } @@ -6989,13 +7095,19 @@ bool ImGui::MenuItemEx(const char* label, const char* icon, const char* shortcut ImVec2 pos = window->DC.CursorPos; ImVec2 label_size = CalcTextSize(label, NULL, true); + const bool menuset_is_open = IsRootOfOpenMenuSet(); + ImGuiWindow* backed_nav_window = g.NavWindow; + if (menuset_is_open) + g.NavWindow = window; + // We've been using the equivalent of ImGuiSelectableFlags_SetNavIdOnHover on all Selectable() since early Nav system days (commit 43ee5d73), // but I am unsure whether this should be kept at all. For now moved it to be an opt-in feature used by menus only. bool pressed; PushID(label); if (!enabled) - BeginDisabled(true); - const ImGuiSelectableFlags flags = ImGuiSelectableFlags_SelectOnRelease | ImGuiSelectableFlags_SetNavIdOnHover; + BeginDisabled(); + + const ImGuiSelectableFlags selectable_flags = ImGuiSelectableFlags_SelectOnRelease | ImGuiSelectableFlags_SetNavIdOnHover; const ImGuiMenuColumns* offsets = &window->DC.MenuColumns; if (window->DC.LayoutType == ImGuiLayoutType_Horizontal) { @@ -7003,10 +7115,11 @@ bool ImGui::MenuItemEx(const char* label, const char* icon, const char* shortcut // Note that in this situation: we don't render the shortcut, we render a highlight instead of the selected tick mark. float w = label_size.x; window->DC.CursorPos.x += IM_FLOOR(style.ItemSpacing.x * 0.5f); + ImVec2 text_pos(window->DC.CursorPos.x + offsets->OffsetLabel, window->DC.CursorPos.y + window->DC.CurrLineTextBaseOffset); PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(style.ItemSpacing.x * 2.0f, style.ItemSpacing.y)); - pressed = Selectable("", selected, flags, ImVec2(w, 0.0f)); + pressed = Selectable("", selected, selectable_flags, ImVec2(w, 0.0f)); PopStyleVar(); - RenderText(pos + ImVec2(offsets->OffsetLabel, 0.0f), label); + RenderText(text_pos, label); window->DC.CursorPos.x += IM_FLOOR(style.ItemSpacing.x * (-1.0f + 0.5f)); // -1 spacing to compensate the spacing added when Selectable() did a SameLine(). It would also work to call SameLine() ourselves after the PopStyleVar(). } else @@ -7019,7 +7132,7 @@ bool ImGui::MenuItemEx(const char* label, const char* icon, const char* shortcut float checkmark_w = IM_FLOOR(g.FontSize * 1.20f); float min_w = window->DC.MenuColumns.DeclColumns(icon_w, label_size.x, shortcut_w, checkmark_w); // Feedback for next frame float stretch_w = ImMax(0.0f, GetContentRegionAvail().x - min_w); - pressed = Selectable("", false, flags | ImGuiSelectableFlags_SpanAvailWidth, ImVec2(min_w, 0.0f)); + pressed = Selectable("", false, selectable_flags | ImGuiSelectableFlags_SpanAvailWidth, ImVec2(min_w, 0.0f)); RenderText(pos + ImVec2(offsets->OffsetLabel, 0.0f), label); if (icon_w > 0.0f) RenderText(pos + ImVec2(offsets->OffsetIcon, 0.0f), icon); @@ -7036,6 +7149,8 @@ bool ImGui::MenuItemEx(const char* label, const char* icon, const char* shortcut if (!enabled) EndDisabled(); PopID(); + if (menuset_is_open) + g.NavWindow = backed_nav_window; return pressed; } @@ -7178,8 +7293,7 @@ bool ImGui::BeginTabBarEx(ImGuiTabBar* tab_bar, const ImRect& tab_bar_bb, ImG // Ensure correct ordering when toggling ImGuiTabBarFlags_Reorderable flag, or when a new tab was added while being not reorderable if ((flags & ImGuiTabBarFlags_Reorderable) != (tab_bar->Flags & ImGuiTabBarFlags_Reorderable) || (tab_bar->TabsAddedNew && !(flags & ImGuiTabBarFlags_Reorderable))) - if (tab_bar->Tabs.Size > 1) - ImQsort(tab_bar->Tabs.Data, tab_bar->Tabs.Size, sizeof(ImGuiTabItem), TabItemComparerByBeginOrder); + ImQsort(tab_bar->Tabs.Data, tab_bar->Tabs.Size, sizeof(ImGuiTabItem), TabItemComparerByBeginOrder); tab_bar->TabsAddedNew = false; // Flags @@ -7852,9 +7966,7 @@ bool ImGui::TabItemEx(ImGuiTabBar* tab_bar, const char* label, bool* p_open, IMGUI_TEST_ENGINE_ITEM_INFO(id, label, g.LastItemData.StatusFlags); if (p_open && !*p_open) { - PushItemFlag(ImGuiItemFlags_NoNav | ImGuiItemFlags_NoNavDefaultFocus, true); - ItemAdd(ImRect(), id); - PopItemFlag(); + ItemAdd(ImRect(), id, NULL, ImGuiItemFlags_NoNav | ImGuiItemFlags_NoNavDefaultFocus); return false; } @@ -7921,9 +8033,7 @@ bool ImGui::TabItemEx(ImGuiTabBar* tab_bar, const char* label, bool* p_open, // and then gets submitted again, the tabs will have 'tab_appearing=true' but 'tab_is_new=false'. if (tab_appearing && (!tab_bar_appearing || tab_is_new)) { - PushItemFlag(ImGuiItemFlags_NoNav | ImGuiItemFlags_NoNavDefaultFocus, true); - ItemAdd(ImRect(), id); - PopItemFlag(); + ItemAdd(ImRect(), id, NULL, ImGuiItemFlags_NoNav | ImGuiItemFlags_NoNavDefaultFocus); if (is_tab_button) return false; return tab_contents_visible; diff --git a/imgui-sys/third-party/imgui-master/imgui/misc/freetype/imgui_freetype.cpp b/imgui-sys/third-party/imgui-master/imgui/misc/freetype/imgui_freetype.cpp index 71a18870f..a72ec8c83 100644 --- a/imgui-sys/third-party/imgui-master/imgui/misc/freetype/imgui_freetype.cpp +++ b/imgui-sys/third-party/imgui-master/imgui/misc/freetype/imgui_freetype.cpp @@ -6,6 +6,7 @@ // CHANGELOG // (minor and older changes stripped away, please see git history for details) +// 2021/08/23: fixed crash when FT_Render_Glyph() fails to render a glyph and returns NULL. // 2021/03/05: added ImGuiFreeTypeBuilderFlags_Bitmap to load bitmap glyphs. // 2021/03/02: set 'atlas->TexPixelsUseColors = true' to help some backends with deciding of a prefered texture format. // 2021/01/28: added support for color-layered glyphs via ImGuiFreeTypeBuilderFlags_LoadColor (require Freetype 2.10+). @@ -225,6 +226,12 @@ namespace uint32_t glyph_index = FT_Get_Char_Index(Face, codepoint); if (glyph_index == 0) return NULL; + + // If this crash for you: FreeType 2.11.0 has a crash bug on some bitmap/colored fonts. + // - https://gitlab.freedesktop.org/freetype/freetype/-/issues/1076 + // - https://github.com/ocornut/imgui/issues/4567 + // - https://github.com/ocornut/imgui/issues/4566 + // You can use FreeType 2.10, or the patched version of 2.11.0 in VcPkg, or probably any upcoming FreeType version. FT_Error error = FT_Load_Glyph(Face, glyph_index, LoadFlags); if (error) return NULL; @@ -539,7 +546,8 @@ bool ImFontAtlasBuildWithFreeTypeEx(FT_Library ft_library, ImFontAtlas* atlas, u // Render glyph into a bitmap (currently held by FreeType) const FT_Bitmap* ft_bitmap = src_tmp.Font.RenderGlyphAndGetInfo(&src_glyph.Info); - IM_ASSERT(ft_bitmap); + if (ft_bitmap == NULL) + continue; // Allocate new temporary chunk if needed const int bitmap_size_in_bytes = src_glyph.Info.Width * src_glyph.Info.Height * 4; diff --git a/imgui-sys/third-party/update-imgui.sh b/imgui-sys/third-party/update-imgui.sh new file mode 100755 index 000000000..ec757a479 --- /dev/null +++ b/imgui-sys/third-party/update-imgui.sh @@ -0,0 +1,8 @@ +#!/bin/bash +set -euo pipefail + +SCRIPT_DIR=$(dirname ${0} | python3 -c 'import os, sys; print(os.path.abspath(sys.stdin.read().strip()))' ) + +cd ${SCRIPT_DIR} +./_update-imgui.sh ~/code/vendor/imgui v1.86 ./imgui-master/imgui +./_update-imgui.sh ~/code/vendor/imgui 15b4a064f9244c430e65214f7249b615fb394321 ./imgui-docking/imgui From d77e5dadfaec67005b4fa36a8d22146a4f57f94c Mon Sep 17 00:00:00 2001 From: dbr Date: Tue, 11 Jan 2022 15:17:16 +1100 Subject: [PATCH 118/200] Rerun cimgui --- .../third-party/imgui-docking/cimgui.cpp | 190 +- imgui-sys/third-party/imgui-docking/cimgui.h | 260 +- .../imgui-docking/definitions.json | 3425 ++++++++++------- .../third-party/imgui-docking/definitions.lua | 3329 +++++++++------- .../imgui-docking/structs_and_enums.json | 811 ++-- .../imgui-docking/structs_and_enums.lua | 1754 +++++---- .../imgui-docking/typedefs_dict.json | 7 +- .../imgui-docking/typedefs_dict.lua | 7 +- imgui-sys/third-party/imgui-master/cimgui.cpp | 30 +- imgui-sys/third-party/imgui-master/cimgui.h | 29 +- .../third-party/imgui-master/definitions.json | 1407 +++---- .../third-party/imgui-master/definitions.lua | 1373 +++---- .../imgui-master/structs_and_enums.json | 188 +- .../imgui-master/structs_and_enums.lua | 281 +- 14 files changed, 7697 insertions(+), 5394 deletions(-) diff --git a/imgui-sys/third-party/imgui-docking/cimgui.cpp b/imgui-sys/third-party/imgui-docking/cimgui.cpp index af1dc6c28..d9ce56257 100644 --- a/imgui-sys/third-party/imgui-docking/cimgui.cpp +++ b/imgui-sys/third-party/imgui-docking/cimgui.cpp @@ -1,5 +1,5 @@ //This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui -//based on imgui.h file version "1.85 WIP" from Dear ImGui https://github.com/ocornut/imgui +//based on imgui.h file version "1.86" from Dear ImGui https://github.com/ocornut/imgui //with imgui_internal.h api //docking branch @@ -84,6 +84,10 @@ CIMGUI_API void igShowMetricsWindow(bool* p_open) { return ImGui::ShowMetricsWindow(p_open); } +CIMGUI_API void igShowStackToolWindow(bool* p_open) +{ + return ImGui::ShowStackToolWindow(p_open); +} CIMGUI_API void igShowAboutWindow(bool* p_open) { return ImGui::ShowAboutWindow(p_open); @@ -1437,10 +1441,6 @@ CIMGUI_API ImGuiStorage* igGetStateStorage() { return ImGui::GetStateStorage(); } -CIMGUI_API void igCalcListClipping(int items_count,float items_height,int* out_items_display_start,int* out_items_display_end) -{ - return ImGui::CalcListClipping(items_count,items_height,out_items_display_start,out_items_display_end); -} CIMGUI_API bool igBeginChildFrame(ImGuiID id,const ImVec2 size,ImGuiWindowFlags flags) { return ImGui::BeginChildFrame(id,size,flags); @@ -1509,6 +1509,10 @@ CIMGUI_API bool igIsMouseDoubleClicked(ImGuiMouseButton button) { return ImGui::IsMouseDoubleClicked(button); } +CIMGUI_API int igGetMouseClickedCount(ImGuiMouseButton button) +{ + return ImGui::GetMouseClickedCount(button); +} CIMGUI_API bool igIsMouseHoveringRect(const ImVec2 r_min,const ImVec2 r_max,bool clip) { return ImGui::IsMouseHoveringRect(r_min,r_max,clip); @@ -1937,6 +1941,10 @@ CIMGUI_API bool ImGuiListClipper_Step(ImGuiListClipper* self) { return self->Step(); } +CIMGUI_API void ImGuiListClipper_ForceDisplayRangeByIndices(ImGuiListClipper* self,int item_min,int item_max) +{ + return self->ForceDisplayRangeByIndices(item_min,item_max); +} CIMGUI_API ImColor* ImColor_ImColorNil(void) { return IM_NEW(ImColor)(); @@ -2573,6 +2581,10 @@ CIMGUI_API ImGuiID igImHashStr(const char* data,size_t data_size,ImU32 seed) { return ImHashStr(data,data_size,seed); } +CIMGUI_API void igImQsort(void* base,size_t count,size_t size_of_element,int(*compare_func)(void const*,void const*)) +{ + return ImQsort(base,count,size_of_element,compare_func); +} CIMGUI_API ImU32 igImAlphaBlendColors(ImU32 col_a,ImU32 col_b) { return ImAlphaBlendColors(col_a,col_b); @@ -2841,6 +2853,10 @@ CIMGUI_API void igImMul(ImVec2 *pOut,const ImVec2 lhs,const ImVec2 rhs) { *pOut = ImMul(lhs,rhs); } +CIMGUI_API bool igImIsFloatAboveGuaranteedIntegerPrecision(float f) +{ + return ImIsFloatAboveGuaranteedIntegerPrecision(f); +} CIMGUI_API void igImBezierCubicCalc(ImVec2 *pOut,const ImVec2 p1,const ImVec2 p2,const ImVec2 p3,const ImVec2 p4,float t) { *pOut = ImBezierCubicCalc(p1,p2,p3,p4,t); @@ -3233,6 +3249,22 @@ CIMGUI_API void ImGuiLastItemData_destroy(ImGuiLastItemData* self) { IM_DELETE(self); } +CIMGUI_API ImGuiStackSizes* ImGuiStackSizes_ImGuiStackSizes(void) +{ + return IM_NEW(ImGuiStackSizes)(); +} +CIMGUI_API void ImGuiStackSizes_destroy(ImGuiStackSizes* self) +{ + IM_DELETE(self); +} +CIMGUI_API void ImGuiStackSizes_SetToCurrentState(ImGuiStackSizes* self) +{ + return self->SetToCurrentState(); +} +CIMGUI_API void ImGuiStackSizes_CompareWithCurrentState(ImGuiStackSizes* self) +{ + return self->CompareWithCurrentState(); +} CIMGUI_API ImGuiPtrOrIndex* ImGuiPtrOrIndex_ImGuiPtrOrIndexPtr(void* ptr) { return IM_NEW(ImGuiPtrOrIndex)(ptr); @@ -3245,6 +3277,26 @@ CIMGUI_API ImGuiPtrOrIndex* ImGuiPtrOrIndex_ImGuiPtrOrIndexInt(int index) { return IM_NEW(ImGuiPtrOrIndex)(index); } +CIMGUI_API ImGuiListClipperRange ImGuiListClipperRange_FromIndices(int min,int max) +{ + return ImGuiListClipperRange::FromIndices(min,max); +} +CIMGUI_API ImGuiListClipperRange ImGuiListClipperRange_FromPositions(float y1,float y2,int off_min,int off_max) +{ + return ImGuiListClipperRange::FromPositions(y1,y2,off_min,off_max); +} +CIMGUI_API ImGuiListClipperData* ImGuiListClipperData_ImGuiListClipperData(void) +{ + return IM_NEW(ImGuiListClipperData)(); +} +CIMGUI_API void ImGuiListClipperData_destroy(ImGuiListClipperData* self) +{ + IM_DELETE(self); +} +CIMGUI_API void ImGuiListClipperData_Reset(ImGuiListClipperData* self,ImGuiListClipper* clipper) +{ + return self->Reset(clipper); +} CIMGUI_API ImGuiNavItemData* ImGuiNavItemData_ImGuiNavItemData(void) { return IM_NEW(ImGuiNavItemData)(); @@ -3401,21 +3453,21 @@ CIMGUI_API void ImGuiMetricsConfig_destroy(ImGuiMetricsConfig* self) { IM_DELETE(self); } -CIMGUI_API ImGuiStackSizes* ImGuiStackSizes_ImGuiStackSizes(void) +CIMGUI_API ImGuiStackLevelInfo* ImGuiStackLevelInfo_ImGuiStackLevelInfo(void) { - return IM_NEW(ImGuiStackSizes)(); + return IM_NEW(ImGuiStackLevelInfo)(); } -CIMGUI_API void ImGuiStackSizes_destroy(ImGuiStackSizes* self) +CIMGUI_API void ImGuiStackLevelInfo_destroy(ImGuiStackLevelInfo* self) { IM_DELETE(self); } -CIMGUI_API void ImGuiStackSizes_SetToCurrentState(ImGuiStackSizes* self) +CIMGUI_API ImGuiStackTool* ImGuiStackTool_ImGuiStackTool(void) { - return self->SetToCurrentState(); + return IM_NEW(ImGuiStackTool)(); } -CIMGUI_API void ImGuiStackSizes_CompareWithCurrentState(ImGuiStackSizes* self) +CIMGUI_API void ImGuiStackTool_destroy(ImGuiStackTool* self) { - return self->CompareWithCurrentState(); + IM_DELETE(self); } CIMGUI_API ImGuiContextHook* ImGuiContextHook_ImGuiContextHook(void) { @@ -3585,9 +3637,13 @@ CIMGUI_API void igCalcWindowNextAutoFitSize(ImVec2 *pOut,ImGuiWindow* window) { *pOut = ImGui::CalcWindowNextAutoFitSize(window); } -CIMGUI_API bool igIsWindowChildOf(ImGuiWindow* window,ImGuiWindow* potential_parent) +CIMGUI_API bool igIsWindowChildOf(ImGuiWindow* window,ImGuiWindow* potential_parent,bool popup_hierarchy,bool dock_hierarchy) +{ + return ImGui::IsWindowChildOf(window,potential_parent,popup_hierarchy,dock_hierarchy); +} +CIMGUI_API bool igIsWindowWithinBeginStackOf(ImGuiWindow* window,ImGuiWindow* potential_parent) { - return ImGui::IsWindowChildOf(window,potential_parent); + return ImGui::IsWindowWithinBeginStackOf(window,potential_parent); } CIMGUI_API bool igIsWindowAbove(ImGuiWindow* potential_above,ImGuiWindow* potential_below) { @@ -3613,6 +3669,14 @@ CIMGUI_API void igSetWindowHitTestHole(ImGuiWindow* window,const ImVec2 pos,cons { return ImGui::SetWindowHitTestHole(window,pos,size); } +CIMGUI_API void igWindowRectAbsToRel(ImRect *pOut,ImGuiWindow* window,const ImRect r) +{ + *pOut = ImGui::WindowRectAbsToRel(window,r); +} +CIMGUI_API void igWindowRectRelToAbs(ImRect *pOut,ImGuiWindow* window,const ImRect r) +{ + *pOut = ImGui::WindowRectRelToAbs(window,r); +} CIMGUI_API void igFocusWindow(ImGuiWindow* window) { return ImGui::FocusWindow(window); @@ -3633,6 +3697,18 @@ CIMGUI_API void igBringWindowToDisplayBack(ImGuiWindow* window) { return ImGui::BringWindowToDisplayBack(window); } +CIMGUI_API void igBringWindowToDisplayBehind(ImGuiWindow* window,ImGuiWindow* above_window) +{ + return ImGui::BringWindowToDisplayBehind(window,above_window); +} +CIMGUI_API int igFindWindowDisplayIndex(ImGuiWindow* window) +{ + return ImGui::FindWindowDisplayIndex(window); +} +CIMGUI_API ImGuiWindow* igFindBottomMostVisibleWindowWithinBeginStack(ImGuiWindow* window) +{ + return ImGui::FindBottomMostVisibleWindowWithinBeginStack(window); +} CIMGUI_API void igSetCurrentFont(ImFont* font) { return ImGui::SetCurrentFont(font); @@ -3753,9 +3829,21 @@ CIMGUI_API void igSetScrollFromPosYWindowPtr(ImGuiWindow* window,float local_y,f { return ImGui::SetScrollFromPosY(window,local_y,center_y_ratio); } -CIMGUI_API void igScrollToBringRectIntoView(ImVec2 *pOut,ImGuiWindow* window,const ImRect item_rect) +CIMGUI_API void igScrollToItem(ImGuiScrollFlags flags) { - *pOut = ImGui::ScrollToBringRectIntoView(window,item_rect); + return ImGui::ScrollToItem(flags); +} +CIMGUI_API void igScrollToRect(ImGuiWindow* window,const ImRect rect,ImGuiScrollFlags flags) +{ + return ImGui::ScrollToRect(window,rect,flags); +} +CIMGUI_API void igScrollToRectEx(ImVec2 *pOut,ImGuiWindow* window,const ImRect rect,ImGuiScrollFlags flags) +{ + *pOut = ImGui::ScrollToRectEx(window,rect,flags); +} +CIMGUI_API void igScrollToBringRectIntoView(ImGuiWindow* window,const ImRect rect) +{ + return ImGui::ScrollToBringRectIntoView(window,rect); } CIMGUI_API ImGuiID igGetItemID() { @@ -3821,21 +3909,17 @@ CIMGUI_API void igItemSizeRect(const ImRect bb,float text_baseline_y) { return ImGui::ItemSize(bb,text_baseline_y); } -CIMGUI_API bool igItemAdd(const ImRect bb,ImGuiID id,const ImRect* nav_bb,ImGuiItemAddFlags flags) +CIMGUI_API bool igItemAdd(const ImRect bb,ImGuiID id,const ImRect* nav_bb,ImGuiItemFlags extra_flags) { - return ImGui::ItemAdd(bb,id,nav_bb,flags); + return ImGui::ItemAdd(bb,id,nav_bb,extra_flags); } CIMGUI_API bool igItemHoverable(const ImRect bb,ImGuiID id) { return ImGui::ItemHoverable(bb,id); } -CIMGUI_API void igItemFocusable(ImGuiWindow* window,ImGuiID id) -{ - return ImGui::ItemFocusable(window,id); -} -CIMGUI_API bool igIsClippedEx(const ImRect bb,ImGuiID id,bool clip_even_when_logged) +CIMGUI_API bool igIsClippedEx(const ImRect bb,ImGuiID id) { - return ImGui::IsClippedEx(bb,id,clip_even_when_logged); + return ImGui::IsClippedEx(bb,id); } CIMGUI_API void igSetLastItemData(ImGuiID item_id,ImGuiItemFlags in_flags,ImGuiItemStatusFlags status_flags,const ImRect item_rect) { @@ -3905,6 +3989,10 @@ CIMGUI_API void igClosePopupsOverWindow(ImGuiWindow* ref_window,bool restore_foc { return ImGui::ClosePopupsOverWindow(ref_window,restore_focus_to_window_under_popup); } +CIMGUI_API void igClosePopupsExceptModals() +{ + return ImGui::ClosePopupsExceptModals(); +} CIMGUI_API bool igIsPopupOpenID(ImGuiID id,ImGuiPopupFlags popup_flags) { return ImGui::IsPopupOpen(id,popup_flags); @@ -3913,9 +4001,9 @@ CIMGUI_API bool igBeginPopupEx(ImGuiID id,ImGuiWindowFlags extra_flags) { return ImGui::BeginPopupEx(id,extra_flags); } -CIMGUI_API void igBeginTooltipEx(ImGuiWindowFlags extra_flags,ImGuiTooltipFlags tooltip_flags) +CIMGUI_API void igBeginTooltipEx(ImGuiTooltipFlags tooltip_flags,ImGuiWindowFlags extra_window_flags) { - return ImGui::BeginTooltipEx(extra_flags,tooltip_flags); + return ImGui::BeginTooltipEx(tooltip_flags,extra_window_flags); } CIMGUI_API void igGetPopupAllowedExtentRect(ImRect *pOut,ImGuiWindow* window) { @@ -3925,6 +4013,10 @@ CIMGUI_API ImGuiWindow* igGetTopMostPopupModal() { return ImGui::GetTopMostPopupModal(); } +CIMGUI_API ImGuiWindow* igGetTopMostAndVisiblePopupModal() +{ + return ImGui::GetTopMostAndVisiblePopupModal(); +} CIMGUI_API void igFindBestWindowPosForPopup(ImVec2 *pOut,ImGuiWindow* window) { *pOut = ImGui::FindBestWindowPosForPopup(window); @@ -3961,13 +4053,25 @@ CIMGUI_API void igNavInitWindow(ImGuiWindow* window,bool force_reinit) { return ImGui::NavInitWindow(window,force_reinit); } +CIMGUI_API void igNavInitRequestApplyResult() +{ + return ImGui::NavInitRequestApplyResult(); +} CIMGUI_API bool igNavMoveRequestButNoResultYet() { return ImGui::NavMoveRequestButNoResultYet(); } -CIMGUI_API void igNavMoveRequestForward(ImGuiDir move_dir,ImGuiDir clip_dir,ImGuiNavMoveFlags move_flags) +CIMGUI_API void igNavMoveRequestSubmit(ImGuiDir move_dir,ImGuiDir clip_dir,ImGuiNavMoveFlags move_flags,ImGuiScrollFlags scroll_flags) { - return ImGui::NavMoveRequestForward(move_dir,clip_dir,move_flags); + return ImGui::NavMoveRequestSubmit(move_dir,clip_dir,move_flags,scroll_flags); +} +CIMGUI_API void igNavMoveRequestForward(ImGuiDir move_dir,ImGuiDir clip_dir,ImGuiNavMoveFlags move_flags,ImGuiScrollFlags scroll_flags) +{ + return ImGui::NavMoveRequestForward(move_dir,clip_dir,move_flags,scroll_flags); +} +CIMGUI_API void igNavMoveRequestResolveWithLastItem(ImGuiNavItemData* result) +{ + return ImGui::NavMoveRequestResolveWithLastItem(result); } CIMGUI_API void igNavMoveRequestCancel() { @@ -4081,6 +4185,10 @@ CIMGUI_API void igDockContextNewFrameUpdateDocking(ImGuiContext* ctx) { return ImGui::DockContextNewFrameUpdateDocking(ctx); } +CIMGUI_API void igDockContextEndFrame(ImGuiContext* ctx) +{ + return ImGui::DockContextEndFrame(ctx); +} CIMGUI_API ImGuiID igDockContextGenNodeID(ImGuiContext* ctx) { return ImGui::DockContextGenNodeID(ctx); @@ -4113,6 +4221,10 @@ CIMGUI_API ImGuiDockNode* igDockNodeGetRootNode(ImGuiDockNode* node) { return ImGui::DockNodeGetRootNode(node); } +CIMGUI_API bool igDockNodeIsInHierarchyOf(ImGuiDockNode* node,ImGuiDockNode* parent) +{ + return ImGui::DockNodeIsInHierarchyOf(node,parent); +} CIMGUI_API int igDockNodeGetDepth(const ImGuiDockNode* node) { return ImGui::DockNodeGetDepth(node); @@ -4557,6 +4669,10 @@ CIMGUI_API void igRenderRectFilledWithHole(ImDrawList* draw_list,ImRect outer,Im { return ImGui::RenderRectFilledWithHole(draw_list,outer,inner,col,rounding); } +CIMGUI_API ImDrawFlags igCalcRoundingFlagsForRectInRect(const ImRect r_in,const ImRect r_outer,float threshold) +{ + return ImGui::CalcRoundingFlagsForRectInRect(r_in,r_outer,threshold); +} CIMGUI_API void igTextEx(const char* text,const char* text_end,ImGuiTextFlags flags) { return ImGui::TextEx(text,text_end,flags); @@ -4581,7 +4697,7 @@ CIMGUI_API void igScrollbar(ImGuiAxis axis) { return ImGui::Scrollbar(axis); } -CIMGUI_API bool igScrollbarEx(const ImRect bb,ImGuiID id,ImGuiAxis axis,float* p_scroll_v,float avail_v,float contents_v,ImDrawFlags flags) +CIMGUI_API bool igScrollbarEx(const ImRect bb,ImGuiID id,ImGuiAxis axis,ImS64* p_scroll_v,ImS64 avail_v,ImS64 contents_v,ImDrawFlags flags) { return ImGui::ScrollbarEx(bb,id,axis,p_scroll_v,avail_v,contents_v,flags); } @@ -4629,9 +4745,9 @@ CIMGUI_API bool igSliderBehavior(const ImRect bb,ImGuiID id,ImGuiDataType data_t { return ImGui::SliderBehavior(bb,id,data_type,p_v,p_min,p_max,format,flags,out_grab_bb); } -CIMGUI_API bool igSplitterBehavior(const ImRect bb,ImGuiID id,ImGuiAxis axis,float* size1,float* size2,float min_size1,float min_size2,float hover_extend,float hover_visibility_delay) +CIMGUI_API bool igSplitterBehavior(const ImRect bb,ImGuiID id,ImGuiAxis axis,float* size1,float* size2,float min_size1,float min_size2,float hover_extend,float hover_visibility_delay,ImU32 bg_col) { - return ImGui::SplitterBehavior(bb,id,axis,size1,size2,min_size1,min_size2,hover_extend,hover_visibility_delay); + return ImGui::SplitterBehavior(bb,id,axis,size1,size2,min_size1,min_size2,hover_extend,hover_visibility_delay,bg_col); } CIMGUI_API bool igTreeNodeBehavior(ImGuiID id,ImGuiTreeNodeFlags flags,const char* label,const char* label_end) { @@ -4729,6 +4845,10 @@ CIMGUI_API void igErrorCheckEndFrameRecover(ImGuiErrorLogCallback log_callback,v { return ImGui::ErrorCheckEndFrameRecover(log_callback,user_data); } +CIMGUI_API void igErrorCheckEndWindowRecover(ImGuiErrorLogCallback log_callback,void* user_data) +{ + return ImGui::ErrorCheckEndWindowRecover(log_callback,user_data); +} CIMGUI_API void igDebugDrawItemRect(ImU32 col) { return ImGui::DebugDrawItemRect(col); @@ -4741,6 +4861,10 @@ CIMGUI_API void igShowFontAtlas(ImFontAtlas* atlas) { return ImGui::ShowFontAtlas(atlas); } +CIMGUI_API void igDebugHookIdInfo(ImGuiID id,ImGuiDataType data_type,const void* data_id,const void* data_id_end) +{ + return ImGui::DebugHookIdInfo(id,data_type,data_id,data_id_end); +} CIMGUI_API void igDebugNodeColumns(ImGuiOldColumns* columns) { return ImGui::DebugNodeColumns(columns); @@ -4789,6 +4913,10 @@ CIMGUI_API void igDebugNodeWindowsList(ImVector_ImGuiWindowPtr* windows,const ch { return ImGui::DebugNodeWindowsList(windows,label); } +CIMGUI_API void igDebugNodeWindowsListByBeginStackParent(ImGuiWindow** windows,int windows_size,ImGuiWindow* parent_in_begin_stack) +{ + return ImGui::DebugNodeWindowsListByBeginStackParent(windows,windows_size,parent_in_begin_stack); +} CIMGUI_API void igDebugNodeViewport(ImGuiViewportP* viewport) { return ImGui::DebugNodeViewport(viewport); diff --git a/imgui-sys/third-party/imgui-docking/cimgui.h b/imgui-sys/third-party/imgui-docking/cimgui.h index bc507b691..3e4a8cc95 100644 --- a/imgui-sys/third-party/imgui-docking/cimgui.h +++ b/imgui-sys/third-party/imgui-docking/cimgui.h @@ -1,5 +1,5 @@ //This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui -//based on imgui.h file version "1.85 WIP" from Dear ImGui https://github.com/ocornut/imgui +//based on imgui.h file version "1.86" from Dear ImGui https://github.com/ocornut/imgui //with imgui_internal.h api //docking branch #ifndef CIMGUI_INCLUDED @@ -45,8 +45,12 @@ typedef unsigned __int64 ImU64; #ifdef CIMGUI_DEFINE_ENUMS_AND_STRUCTS typedef struct ImGuiTableColumnSettings ImGuiTableColumnSettings; typedef struct ImGuiTableCellData ImGuiTableCellData; +typedef struct ImGuiStackTool ImGuiStackTool; +typedef struct ImGuiStackLevelInfo ImGuiStackLevelInfo; typedef struct ImGuiViewportP ImGuiViewportP; typedef struct ImGuiWindowDockStyle ImGuiWindowDockStyle; +typedef struct ImGuiListClipperData ImGuiListClipperData; +typedef struct ImGuiListClipperRange ImGuiListClipperRange; typedef struct ImGuiPtrOrIndex ImGuiPtrOrIndex; typedef struct ImGuiShrinkWidthItem ImGuiShrinkWidthItem; typedef struct ImGuiWindowStackData ImGuiWindowStackData; @@ -254,8 +258,8 @@ struct ImGuiWindowTempData; struct ImGuiWindowSettings; typedef int ImGuiDataAuthority; typedef int ImGuiLayoutType; +typedef int ImGuiActivateFlags; typedef int ImGuiItemFlags; -typedef int ImGuiItemAddFlags; typedef int ImGuiItemStatusFlags; typedef int ImGuiOldColumnFlags; typedef int ImGuiNavHighlightFlags; @@ -263,6 +267,7 @@ typedef int ImGuiNavDirSourceFlags; typedef int ImGuiNavMoveFlags; typedef int ImGuiNextItemDataFlags; typedef int ImGuiNextWindowDataFlags; +typedef int ImGuiScrollFlags; typedef int ImGuiSeparatorFlags; typedef int ImGuiTextFlags; typedef int ImGuiTooltipFlags; @@ -297,6 +302,8 @@ typedef struct ImVector_ImGuiDockRequest {int Size;int Capacity;ImGuiDockRequest typedef struct ImVector_ImGuiGroupData {int Size;int Capacity;ImGuiGroupData* Data;} ImVector_ImGuiGroupData; typedef struct ImVector_ImGuiID {int Size;int Capacity;ImGuiID* Data;} ImVector_ImGuiID; typedef struct ImVector_ImGuiItemFlags {int Size;int Capacity;ImGuiItemFlags* Data;} ImVector_ImGuiItemFlags; +typedef struct ImVector_ImGuiListClipperData {int Size;int Capacity;ImGuiListClipperData* Data;} ImVector_ImGuiListClipperData; +typedef struct ImVector_ImGuiListClipperRange {int Size;int Capacity;ImGuiListClipperRange* Data;} ImVector_ImGuiListClipperRange; typedef struct ImVector_ImGuiOldColumnData {int Size;int Capacity;ImGuiOldColumnData* Data;} ImVector_ImGuiOldColumnData; typedef struct ImVector_ImGuiOldColumns {int Size;int Capacity;ImGuiOldColumns* Data;} ImVector_ImGuiOldColumns; typedef struct ImVector_ImGuiPlatformMonitor {int Size;int Capacity;ImGuiPlatformMonitor* Data;} ImVector_ImGuiPlatformMonitor; @@ -304,6 +311,7 @@ typedef struct ImVector_ImGuiPopupData {int Size;int Capacity;ImGuiPopupData* Da typedef struct ImVector_ImGuiPtrOrIndex {int Size;int Capacity;ImGuiPtrOrIndex* Data;} ImVector_ImGuiPtrOrIndex; typedef struct ImVector_ImGuiSettingsHandler {int Size;int Capacity;ImGuiSettingsHandler* Data;} ImVector_ImGuiSettingsHandler; typedef struct ImVector_ImGuiShrinkWidthItem {int Size;int Capacity;ImGuiShrinkWidthItem* Data;} ImVector_ImGuiShrinkWidthItem; +typedef struct ImVector_ImGuiStackLevelInfo {int Size;int Capacity;ImGuiStackLevelInfo* Data;} ImVector_ImGuiStackLevelInfo; typedef struct ImVector_ImGuiStoragePair {int Size;int Capacity;ImGuiStoragePair* Data;} ImVector_ImGuiStoragePair; typedef struct ImVector_ImGuiStyleMod {int Size;int Capacity;ImGuiStyleMod* Data;} ImVector_ImGuiStyleMod; typedef struct ImVector_ImGuiTabItem {int Size;int Capacity;ImGuiTabItem* Data;} ImVector_ImGuiTabItem; @@ -545,6 +553,8 @@ typedef enum { ImGuiFocusedFlags_ChildWindows = 1 << 0, ImGuiFocusedFlags_RootWindow = 1 << 1, ImGuiFocusedFlags_AnyWindow = 1 << 2, + ImGuiFocusedFlags_NoPopupHierarchy = 1 << 3, + ImGuiFocusedFlags_DockHierarchy = 1 << 4, ImGuiFocusedFlags_RootAndChildWindows = ImGuiFocusedFlags_RootWindow | ImGuiFocusedFlags_ChildWindows }ImGuiFocusedFlags_; typedef enum { @@ -552,10 +562,12 @@ typedef enum { ImGuiHoveredFlags_ChildWindows = 1 << 0, ImGuiHoveredFlags_RootWindow = 1 << 1, ImGuiHoveredFlags_AnyWindow = 1 << 2, - ImGuiHoveredFlags_AllowWhenBlockedByPopup = 1 << 3, - ImGuiHoveredFlags_AllowWhenBlockedByActiveItem = 1 << 5, - ImGuiHoveredFlags_AllowWhenOverlapped = 1 << 6, - ImGuiHoveredFlags_AllowWhenDisabled = 1 << 7, + ImGuiHoveredFlags_NoPopupHierarchy = 1 << 3, + ImGuiHoveredFlags_DockHierarchy = 1 << 4, + ImGuiHoveredFlags_AllowWhenBlockedByPopup = 1 << 5, + ImGuiHoveredFlags_AllowWhenBlockedByActiveItem = 1 << 7, + ImGuiHoveredFlags_AllowWhenOverlapped = 1 << 8, + ImGuiHoveredFlags_AllowWhenDisabled = 1 << 9, ImGuiHoveredFlags_RectOnly = ImGuiHoveredFlags_AllowWhenBlockedByPopup | ImGuiHoveredFlags_AllowWhenBlockedByActiveItem | ImGuiHoveredFlags_AllowWhenOverlapped, ImGuiHoveredFlags_RootAndChildWindows = ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_ChildWindows }ImGuiHoveredFlags_; @@ -913,6 +925,7 @@ struct ImGuiIO ImFont* FontDefault; ImVec2 DisplayFramebufferScale; bool ConfigDockingNoSplit; + bool ConfigDockingWithShift; bool ConfigDockingAlwaysTabBar; bool ConfigDockingTransparentPayload; bool ConfigViewportsNoAutoMerge; @@ -967,10 +980,11 @@ struct ImGuiIO double MouseClickedTime[5]; bool MouseClicked[5]; bool MouseDoubleClicked[5]; + ImU16 MouseClickedCount[5]; + ImU16 MouseClickedLastCount[5]; bool MouseReleased[5]; bool MouseDownOwned[5]; bool MouseDownOwnedUnlessPopupClose[5]; - bool MouseDownWasDoubleClick[5]; float MouseDownDuration[5]; float MouseDownDurationPrev[5]; ImVec2 MouseDragMaxDistanceAbs[5]; @@ -1078,10 +1092,9 @@ struct ImGuiListClipper int DisplayStart; int DisplayEnd; int ItemsCount; - int StepNo; - int ItemsFrozen; float ItemsHeight; float StartPosY; + void* TempData; }; struct ImColor { @@ -1417,12 +1430,9 @@ typedef enum { ImGuiItemFlags_NoNavDefaultFocus = 1 << 4, ImGuiItemFlags_SelectableDontClosePopup = 1 << 5, ImGuiItemFlags_MixedValue = 1 << 6, - ImGuiItemFlags_ReadOnly = 1 << 7 + ImGuiItemFlags_ReadOnly = 1 << 7, + ImGuiItemFlags_Inputable = 1 << 8 }ImGuiItemFlags_; -typedef enum { - ImGuiItemAddFlags_None = 0, - ImGuiItemAddFlags_Focusable = 1 << 0 -}ImGuiItemAddFlags_; typedef enum { ImGuiItemStatusFlags_None = 0, ImGuiItemStatusFlags_HoveredRect = 1 << 0, @@ -1433,9 +1443,7 @@ typedef enum { ImGuiItemStatusFlags_HasDeactivated = 1 << 5, ImGuiItemStatusFlags_Deactivated = 1 << 6, ImGuiItemStatusFlags_HoveredWindow = 1 << 7, - ImGuiItemStatusFlags_FocusedByCode = 1 << 8, - ImGuiItemStatusFlags_FocusedByTabbing = 1 << 9, - ImGuiItemStatusFlags_Focused = ImGuiItemStatusFlags_FocusedByCode | ImGuiItemStatusFlags_FocusedByTabbing + ImGuiItemStatusFlags_FocusedByTabbing = 1 << 8 }ImGuiItemStatusFlags_; typedef enum { ImGuiInputTextFlags_Multiline = 1 << 26, @@ -1613,8 +1621,6 @@ struct ImGuiInputTextState bool SelectedAllMouseLock; bool Edited; ImGuiInputTextFlags Flags; - ImGuiInputTextCallback UserCallback; - void* UserCallbackData; }; struct ImGuiPopupData { @@ -1682,12 +1688,26 @@ struct ImGuiLastItemData ImGuiItemFlags InFlags; ImGuiItemStatusFlags StatusFlags; ImRect Rect; + ImRect NavRect; ImRect DisplayRect; }; +struct ImGuiStackSizes +{ + short SizeOfIDStack; + short SizeOfColorStack; + short SizeOfStyleVarStack; + short SizeOfFontStack; + short SizeOfFocusScopeStack; + short SizeOfGroupStack; + short SizeOfItemFlagsStack; + short SizeOfBeginPopupStack; + short SizeOfDisabledStack; +}; struct ImGuiWindowStackData { ImGuiWindow* Window; ImGuiLastItemData ParentLastItemDataBackup; + ImGuiStackSizes StackSizesOnBegin; }; struct ImGuiShrinkWidthItem { @@ -1699,6 +1719,40 @@ struct ImGuiPtrOrIndex void* Ptr; int Index; }; +struct ImGuiListClipperRange +{ + int Min; + int Max; + bool PosToIndexConvert; + ImS8 PosToIndexOffsetMin; + ImS8 PosToIndexOffsetMax; +}; +struct ImGuiListClipperData +{ + ImGuiListClipper* ListClipper; + float LossynessOffset; + int StepNo; + int ItemsFrozen; + ImVector_ImGuiListClipperRange Ranges; +}; +typedef enum { + ImGuiActivateFlags_None = 0, + ImGuiActivateFlags_PreferInput = 1 << 0, + ImGuiActivateFlags_PreferTweak = 1 << 1, + ImGuiActivateFlags_TryToPreserveState = 1 << 2 +}ImGuiActivateFlags_; +typedef enum { + ImGuiScrollFlags_None = 0, + ImGuiScrollFlags_KeepVisibleEdgeX = 1 << 0, + ImGuiScrollFlags_KeepVisibleEdgeY = 1 << 1, + ImGuiScrollFlags_KeepVisibleCenterX = 1 << 2, + ImGuiScrollFlags_KeepVisibleCenterY = 1 << 3, + ImGuiScrollFlags_AlwaysCenterX = 1 << 4, + ImGuiScrollFlags_AlwaysCenterY = 1 << 5, + ImGuiScrollFlags_NoScrollParent = 1 << 6, + ImGuiScrollFlags_MaskX_ = ImGuiScrollFlags_KeepVisibleEdgeX | ImGuiScrollFlags_KeepVisibleCenterX | ImGuiScrollFlags_AlwaysCenterX, + ImGuiScrollFlags_MaskY_ = ImGuiScrollFlags_KeepVisibleEdgeY | ImGuiScrollFlags_KeepVisibleCenterY | ImGuiScrollFlags_AlwaysCenterY +}ImGuiScrollFlags_; typedef enum { ImGuiNavHighlightFlags_None = 0, ImGuiNavHighlightFlags_TypeDefault = 1 << 0, @@ -1708,9 +1762,10 @@ typedef enum { }ImGuiNavHighlightFlags_; typedef enum { ImGuiNavDirSourceFlags_None = 0, - ImGuiNavDirSourceFlags_Keyboard = 1 << 0, - ImGuiNavDirSourceFlags_PadDPad = 1 << 1, - ImGuiNavDirSourceFlags_PadLStick = 1 << 2 + ImGuiNavDirSourceFlags_RawKeyboard = 1 << 0, + ImGuiNavDirSourceFlags_Keyboard = 1 << 1, + ImGuiNavDirSourceFlags_PadDPad = 1 << 2, + ImGuiNavDirSourceFlags_PadLStick = 1 << 3 }ImGuiNavDirSourceFlags_; typedef enum { ImGuiNavMoveFlags_None = 0, @@ -1720,8 +1775,13 @@ typedef enum { ImGuiNavMoveFlags_WrapY = 1 << 3, ImGuiNavMoveFlags_AllowCurrentNavId = 1 << 4, ImGuiNavMoveFlags_AlsoScoreVisibleSet = 1 << 5, - ImGuiNavMoveFlags_ScrollToEdge = 1 << 6, - ImGuiNavMoveFlags_Forwarded = 1 << 7 + ImGuiNavMoveFlags_ScrollToEdgeY = 1 << 6, + ImGuiNavMoveFlags_Forwarded = 1 << 7, + ImGuiNavMoveFlags_DebugNoResult = 1 << 8, + ImGuiNavMoveFlags_FocusApi = 1 << 9, + ImGuiNavMoveFlags_Tabbing = 1 << 10, + ImGuiNavMoveFlags_Activate = 1 << 11, + ImGuiNavMoveFlags_DontSetNavHighlight = 1 << 12 }ImGuiNavMoveFlags_; typedef enum { ImGuiNavLayer_Main = 0, @@ -1734,6 +1794,7 @@ struct ImGuiNavItemData ImGuiID ID; ImGuiID FocusScopeId; ImRect RectRel; + ImGuiItemFlags InFlags; float DistBox; float DistCenter; float DistAxial; @@ -1820,10 +1881,12 @@ struct ImGuiDockNode ImVec2 SizeRef; ImGuiAxis SplitAxis; ImGuiWindowClass WindowClass; + ImU32 LastBgColor; ImGuiWindow* HostWindow; ImGuiWindow* VisibleWindow; ImGuiDockNode* CentralNode; ImGuiDockNode* OnlyNodeWithWindows; + int CountNodeWithWindows; int LastFrameAlive; int LastFrameActive; int LastFrameFocused; @@ -1835,14 +1898,15 @@ struct ImGuiDockNode ImGuiDataAuthority AuthorityForViewport :3; bool IsVisible :1; bool IsFocused :1; + bool IsBgDrawnThisFrame :1; bool HasCloseButton :1; bool HasWindowMenuButton :1; + bool HasCentralNodeChild :1; bool WantCloseAll :1; bool WantLockSizeOnce :1; bool WantMouseMove :1; bool WantHiddenTabBarUpdate :1; bool WantHiddenTabBarToggle :1; - bool MarkedForPosSizeWrite :1; }; typedef enum { ImGuiWindowDockStyleCol_Text, @@ -1916,6 +1980,7 @@ struct ImGuiSettingsHandler }; struct ImGuiMetricsConfig { + bool ShowStackTool; bool ShowWindowsRects; bool ShowWindowsBeginOrder; bool ShowTablesRects; @@ -1925,15 +1990,19 @@ struct ImGuiMetricsConfig int ShowWindowsRectsType; int ShowTablesRectsType; }; -struct ImGuiStackSizes +struct ImGuiStackLevelInfo { - short SizeOfIDStack; - short SizeOfColorStack; - short SizeOfStyleVarStack; - short SizeOfFontStack; - short SizeOfFocusScopeStack; - short SizeOfGroupStack; - short SizeOfBeginPopupStack; + ImGuiID ID; + ImS8 QueryFrameCount; + bool QuerySuccess; + char Desc[58]; +}; +struct ImGuiStackTool +{ + int LastActiveFrame; + int StackLevel; + ImGuiID QueryId; + ImVector_ImGuiStackLevelInfo Results; }; typedef enum { ImGuiContextHookType_NewFramePre, ImGuiContextHookType_NewFramePost, ImGuiContextHookType_EndFramePre, ImGuiContextHookType_EndFramePost, ImGuiContextHookType_RenderPre, ImGuiContextHookType_RenderPost, ImGuiContextHookType_Shutdown, ImGuiContextHookType_PendingRemoval_ }ImGuiContextHookType; struct ImGuiContextHook @@ -1967,7 +2036,6 @@ struct ImGuiContext bool WithinEndChild; bool GcCompactAll; bool TestEngineHookItems; - ImGuiID TestEngineHookIdInfo; void* TestEngine; ImVector_ImGuiWindowPtr Windows; ImVector_ImGuiWindowPtr WindowsFocusOrder; @@ -1984,6 +2052,7 @@ struct ImGuiContext ImGuiWindow* WheelingWindow; ImVec2 WheelingWindowRefMousePos; float WheelingWindowTimer; + ImGuiID DebugHookIdInfo; ImGuiID HoveredId; ImGuiID HoveredIdPreviousFrame; bool HoveredIdAllowOverlap; @@ -2027,6 +2096,7 @@ struct ImGuiContext ImVector_ImGuiGroupData GroupStack; ImVector_ImGuiPopupData OpenPopupStack; ImVector_ImGuiPopupData BeginPopupStack; + int BeginMenuCount; ImVector_ImGuiViewportPPtr Viewports; float CurrentDpiScale; ImGuiViewportP* CurrentViewport; @@ -2041,17 +2111,15 @@ struct ImGuiContext ImGuiID NavActivateId; ImGuiID NavActivateDownId; ImGuiID NavActivatePressedId; - ImGuiID NavInputId; - ImGuiID NavJustTabbedId; + ImGuiID NavActivateInputId; + ImGuiActivateFlags NavActivateFlags; ImGuiID NavJustMovedToId; ImGuiID NavJustMovedToFocusScopeId; ImGuiKeyModFlags NavJustMovedToKeyMods; ImGuiID NavNextActivateId; + ImGuiActivateFlags NavNextActivateFlags; ImGuiInputSource NavInputSource; - ImRect NavScoringRect; - int NavScoringCount; ImGuiNavLayer NavLayer; - int NavIdTabCounter; bool NavIdIsAlive; bool NavMousePosDirty; bool NavDisableHighlight; @@ -2061,28 +2129,30 @@ struct ImGuiContext bool NavInitRequestFromMove; ImGuiID NavInitResultId; ImRect NavInitResultRectRel; - bool NavMoveRequest; - bool NavMoveRequestForwardToNextFrame; - ImGuiNavMoveFlags NavMoveRequestFlags; - ImGuiKeyModFlags NavMoveRequestKeyMods; - ImGuiDir NavMoveDir, NavMoveDirLast; + bool NavMoveSubmitted; + bool NavMoveScoringItems; + bool NavMoveForwardToNextFrame; + ImGuiNavMoveFlags NavMoveFlags; + ImGuiScrollFlags NavMoveScrollFlags; + ImGuiKeyModFlags NavMoveKeyMods; + ImGuiDir NavMoveDir; + ImGuiDir NavMoveDirForDebug; ImGuiDir NavMoveClipDir; + ImRect NavScoringRect; + ImRect NavScoringNoClipRect; + int NavScoringDebugCount; + int NavTabbingDir; + int NavTabbingCounter; ImGuiNavItemData NavMoveResultLocal; - ImGuiNavItemData NavMoveResultLocalVisibleSet; + ImGuiNavItemData NavMoveResultLocalVisible; ImGuiNavItemData NavMoveResultOther; + ImGuiNavItemData NavTabbingResultFirst; ImGuiWindow* NavWindowingTarget; ImGuiWindow* NavWindowingTargetAnim; ImGuiWindow* NavWindowingListWindow; float NavWindowingTimer; float NavWindowingHighlightAlpha; bool NavWindowingToggleLayer; - ImGuiWindow* TabFocusRequestCurrWindow; - ImGuiWindow* TabFocusRequestNextWindow; - int TabFocusRequestCurrCounterRegular; - int TabFocusRequestCurrCounterTabStop; - int TabFocusRequestNextCounterRegular; - int TabFocusRequestNextCounterTabStop; - bool TabFocusPressed; float DimBgRatio; ImGuiMouseCursor MouseCursor; bool DragDropActive; @@ -2102,24 +2172,26 @@ struct ImGuiContext ImGuiID DragDropHoldJustPressedId; ImVector_unsigned_char DragDropPayloadBufHeap; unsigned char DragDropPayloadBufLocal[16]; + int ClipperTempDataStacked; + ImVector_ImGuiListClipperData ClipperTempData; ImGuiTable* CurrentTable; - int CurrentTableStackIdx; + int TablesTempDataStacked; + ImVector_ImGuiTableTempData TablesTempData; ImPool_ImGuiTable Tables; - ImVector_ImGuiTableTempData TablesTempDataStack; ImVector_float TablesLastTimeActive; ImVector_ImDrawChannel DrawChannelsTempMergeBuffer; ImGuiTabBar* CurrentTabBar; ImPool_ImGuiTabBar TabBars; ImVector_ImGuiPtrOrIndex CurrentTabBarStack; ImVector_ImGuiShrinkWidthItem ShrinkWidthBuffer; - ImVec2 LastValidMousePos; + ImVec2 MouseLastValidPos; ImGuiInputTextState InputTextState; ImFont InputTextPasswordFont; ImGuiID TempInputId; ImGuiColorEditFlags ColorEditOptions; float ColorEditLastHue; float ColorEditLastSat; - float ColorEditLastColor[3]; + ImU32 ColorEditLastColor; ImVec4 ColorPickerRef; ImGuiComboPreviewData ComboPreviewData; float SliderCurrentAccum; @@ -2127,9 +2199,10 @@ struct ImGuiContext bool DragCurrentAccumDirty; float DragCurrentAccum; float DragSpeedDefaultRatio; - float DisabledAlphaBackup; float ScrollbarClickDeltaToGrabCenter; - int TooltipOverrideCount; + float DisabledAlphaBackup; + short DisabledStackSize; + short TooltipOverrideCount; float TooltipSlowDelay; ImVector_char ClipboardHandlerData; ImVector_ImGuiID MenusIdSubmittedThisFrame; @@ -2160,6 +2233,7 @@ struct ImGuiContext bool DebugItemPickerActive; ImGuiID DebugItemPickerBreakId; ImGuiMetricsConfig DebugMetricsConfig; + ImGuiStackTool DebugStackTool; float FramerateSecPerFrame[120]; int FramerateSecPerFrameIdx; int FramerateSecPerFrameCount; @@ -2183,6 +2257,7 @@ struct ImGuiWindowTempData ImVec1 Indent; ImVec1 ColumnsOffset; ImVec1 GroupOffset; + ImVec2 CursorStartPosLossyness; ImGuiNavLayer NavLayerCurrent; short NavLayersActiveMask; short NavLayersActiveMaskNext; @@ -2200,13 +2275,10 @@ struct ImGuiWindowTempData int CurrentTableIdx; ImGuiLayoutType LayoutType; ImGuiLayoutType ParentLayoutType; - int FocusCounterRegular; - int FocusCounterTabStop; float ItemWidth; float TextWrapPos; ImVector_float ItemWidthStack; ImVector_float TextWrapPosStack; - ImGuiStackSizes StackSizesOnBegin; }; struct ImGuiWindow { @@ -2247,6 +2319,7 @@ struct ImGuiWindow bool Appearing; bool Hidden; bool IsFallbackWindow; + bool IsExplicitChild; bool HasCloseButton; signed char ResizeBorderHeld; short BeginCount; @@ -2291,7 +2364,9 @@ struct ImGuiWindow ImDrawList* DrawList; ImDrawList DrawListInst; ImGuiWindow* ParentWindow; + ImGuiWindow* ParentWindowInBeginStack; ImGuiWindow* RootWindow; + ImGuiWindow* RootWindowPopupTree; ImGuiWindow* RootWindowDockTree; ImGuiWindow* RootWindowForTitleBarHighlight; ImGuiWindow* RootWindowForNav; @@ -2606,6 +2681,8 @@ typedef ImVector ImVector_ImGuiDockRequest; typedef ImVector ImVector_ImGuiGroupData; typedef ImVector ImVector_ImGuiID; typedef ImVector ImVector_ImGuiItemFlags; +typedef ImVector ImVector_ImGuiListClipperData; +typedef ImVector ImVector_ImGuiListClipperRange; typedef ImVector ImVector_ImGuiOldColumnData; typedef ImVector ImVector_ImGuiOldColumns; typedef ImVector ImVector_ImGuiPlatformMonitor; @@ -2613,6 +2690,7 @@ typedef ImVector ImVector_ImGuiPopupData; typedef ImVector ImVector_ImGuiPtrOrIndex; typedef ImVector ImVector_ImGuiSettingsHandler; typedef ImVector ImVector_ImGuiShrinkWidthItem; +typedef ImVector ImVector_ImGuiStackLevelInfo; typedef ImVector ImVector_ImGuiStoragePair; typedef ImVector ImVector_ImGuiStyleMod; typedef ImVector ImVector_ImGuiTabItem; @@ -2651,6 +2729,7 @@ CIMGUI_API void igRender(void); CIMGUI_API ImDrawData* igGetDrawData(void); CIMGUI_API void igShowDemoWindow(bool* p_open); CIMGUI_API void igShowMetricsWindow(bool* p_open); +CIMGUI_API void igShowStackToolWindow(bool* p_open); CIMGUI_API void igShowAboutWindow(bool* p_open); CIMGUI_API void igShowStyleEditor(ImGuiStyle* ref); CIMGUI_API bool igShowStyleSelector(const char* label); @@ -2980,7 +3059,6 @@ CIMGUI_API ImDrawListSharedData* igGetDrawListSharedData(void); CIMGUI_API const char* igGetStyleColorName(ImGuiCol idx); CIMGUI_API void igSetStateStorage(ImGuiStorage* storage); CIMGUI_API ImGuiStorage* igGetStateStorage(void); -CIMGUI_API void igCalcListClipping(int items_count,float items_height,int* out_items_display_start,int* out_items_display_end); CIMGUI_API bool igBeginChildFrame(ImGuiID id,const ImVec2 size,ImGuiWindowFlags flags); CIMGUI_API void igEndChildFrame(void); CIMGUI_API void igCalcTextSize(ImVec2 *pOut,const char* text,const char* text_end,bool hide_text_after_double_hash,float wrap_width); @@ -2998,6 +3076,7 @@ CIMGUI_API bool igIsMouseDown(ImGuiMouseButton button); CIMGUI_API bool igIsMouseClicked(ImGuiMouseButton button,bool repeat); CIMGUI_API bool igIsMouseReleased(ImGuiMouseButton button); CIMGUI_API bool igIsMouseDoubleClicked(ImGuiMouseButton button); +CIMGUI_API int igGetMouseClickedCount(ImGuiMouseButton button); CIMGUI_API bool igIsMouseHoveringRect(const ImVec2 r_min,const ImVec2 r_max,bool clip); CIMGUI_API bool igIsMousePosValid(const ImVec2* mouse_pos); CIMGUI_API bool igIsAnyMouseDown(void); @@ -3105,6 +3184,7 @@ CIMGUI_API void ImGuiListClipper_destroy(ImGuiListClipper* self); CIMGUI_API void ImGuiListClipper_Begin(ImGuiListClipper* self,int items_count,float items_height); CIMGUI_API void ImGuiListClipper_End(ImGuiListClipper* self); CIMGUI_API bool ImGuiListClipper_Step(ImGuiListClipper* self); +CIMGUI_API void ImGuiListClipper_ForceDisplayRangeByIndices(ImGuiListClipper* self,int item_min,int item_max); CIMGUI_API ImColor* ImColor_ImColorNil(void); CIMGUI_API void ImColor_destroy(ImColor* self); CIMGUI_API ImColor* ImColor_ImColorInt(int r,int g,int b,int a); @@ -3264,6 +3344,7 @@ CIMGUI_API ImGuiPlatformMonitor* ImGuiPlatformMonitor_ImGuiPlatformMonitor(void) CIMGUI_API void ImGuiPlatformMonitor_destroy(ImGuiPlatformMonitor* self); CIMGUI_API ImGuiID igImHashData(const void* data,size_t data_size,ImU32 seed); CIMGUI_API ImGuiID igImHashStr(const char* data,size_t data_size,ImU32 seed); +CIMGUI_API void igImQsort(void* base,size_t count,size_t size_of_element,int(*compare_func)(void const*,void const*)); CIMGUI_API ImU32 igImAlphaBlendColors(ImU32 col_a,ImU32 col_b); CIMGUI_API bool igImIsPowerOfTwoInt(int v); CIMGUI_API bool igImIsPowerOfTwoU64(ImU64 v); @@ -3330,6 +3411,7 @@ CIMGUI_API float igImDot(const ImVec2 a,const ImVec2 b); CIMGUI_API void igImRotate(ImVec2 *pOut,const ImVec2 v,float cos_a,float sin_a); CIMGUI_API float igImLinearSweep(float current,float target,float speed); CIMGUI_API void igImMul(ImVec2 *pOut,const ImVec2 lhs,const ImVec2 rhs); +CIMGUI_API bool igImIsFloatAboveGuaranteedIntegerPrecision(float f); CIMGUI_API void igImBezierCubicCalc(ImVec2 *pOut,const ImVec2 p1,const ImVec2 p2,const ImVec2 p3,const ImVec2 p4,float t); CIMGUI_API void igImBezierCubicClosestPoint(ImVec2 *pOut,const ImVec2 p1,const ImVec2 p2,const ImVec2 p3,const ImVec2 p4,const ImVec2 p,int num_segments); CIMGUI_API void igImBezierCubicClosestPointCasteljau(ImVec2 *pOut,const ImVec2 p1,const ImVec2 p2,const ImVec2 p3,const ImVec2 p4,const ImVec2 p,float tess_tol); @@ -3428,9 +3510,18 @@ CIMGUI_API void ImGuiNextItemData_destroy(ImGuiNextItemData* self); CIMGUI_API void ImGuiNextItemData_ClearFlags(ImGuiNextItemData* self); CIMGUI_API ImGuiLastItemData* ImGuiLastItemData_ImGuiLastItemData(void); CIMGUI_API void ImGuiLastItemData_destroy(ImGuiLastItemData* self); +CIMGUI_API ImGuiStackSizes* ImGuiStackSizes_ImGuiStackSizes(void); +CIMGUI_API void ImGuiStackSizes_destroy(ImGuiStackSizes* self); +CIMGUI_API void ImGuiStackSizes_SetToCurrentState(ImGuiStackSizes* self); +CIMGUI_API void ImGuiStackSizes_CompareWithCurrentState(ImGuiStackSizes* self); CIMGUI_API ImGuiPtrOrIndex* ImGuiPtrOrIndex_ImGuiPtrOrIndexPtr(void* ptr); CIMGUI_API void ImGuiPtrOrIndex_destroy(ImGuiPtrOrIndex* self); CIMGUI_API ImGuiPtrOrIndex* ImGuiPtrOrIndex_ImGuiPtrOrIndexInt(int index); +CIMGUI_API ImGuiListClipperRange ImGuiListClipperRange_FromIndices(int min,int max); +CIMGUI_API ImGuiListClipperRange ImGuiListClipperRange_FromPositions(float y1,float y2,int off_min,int off_max); +CIMGUI_API ImGuiListClipperData* ImGuiListClipperData_ImGuiListClipperData(void); +CIMGUI_API void ImGuiListClipperData_destroy(ImGuiListClipperData* self); +CIMGUI_API void ImGuiListClipperData_Reset(ImGuiListClipperData* self,ImGuiListClipper* clipper); CIMGUI_API ImGuiNavItemData* ImGuiNavItemData_ImGuiNavItemData(void); CIMGUI_API void ImGuiNavItemData_destroy(ImGuiNavItemData* self); CIMGUI_API void ImGuiNavItemData_Clear(ImGuiNavItemData* self); @@ -3470,10 +3561,10 @@ CIMGUI_API ImGuiSettingsHandler* ImGuiSettingsHandler_ImGuiSettingsHandler(void) CIMGUI_API void ImGuiSettingsHandler_destroy(ImGuiSettingsHandler* self); CIMGUI_API ImGuiMetricsConfig* ImGuiMetricsConfig_ImGuiMetricsConfig(void); CIMGUI_API void ImGuiMetricsConfig_destroy(ImGuiMetricsConfig* self); -CIMGUI_API ImGuiStackSizes* ImGuiStackSizes_ImGuiStackSizes(void); -CIMGUI_API void ImGuiStackSizes_destroy(ImGuiStackSizes* self); -CIMGUI_API void ImGuiStackSizes_SetToCurrentState(ImGuiStackSizes* self); -CIMGUI_API void ImGuiStackSizes_CompareWithCurrentState(ImGuiStackSizes* self); +CIMGUI_API ImGuiStackLevelInfo* ImGuiStackLevelInfo_ImGuiStackLevelInfo(void); +CIMGUI_API void ImGuiStackLevelInfo_destroy(ImGuiStackLevelInfo* self); +CIMGUI_API ImGuiStackTool* ImGuiStackTool_ImGuiStackTool(void); +CIMGUI_API void ImGuiStackTool_destroy(ImGuiStackTool* self); CIMGUI_API ImGuiContextHook* ImGuiContextHook_ImGuiContextHook(void); CIMGUI_API void ImGuiContextHook_destroy(ImGuiContextHook* self); CIMGUI_API ImGuiContext* ImGuiContext_ImGuiContext(ImFontAtlas* shared_font_atlas); @@ -3516,18 +3607,24 @@ CIMGUI_API ImGuiWindow* igFindWindowByID(ImGuiID id); CIMGUI_API ImGuiWindow* igFindWindowByName(const char* name); CIMGUI_API void igUpdateWindowParentAndRootLinks(ImGuiWindow* window,ImGuiWindowFlags flags,ImGuiWindow* parent_window); CIMGUI_API void igCalcWindowNextAutoFitSize(ImVec2 *pOut,ImGuiWindow* window); -CIMGUI_API bool igIsWindowChildOf(ImGuiWindow* window,ImGuiWindow* potential_parent); +CIMGUI_API bool igIsWindowChildOf(ImGuiWindow* window,ImGuiWindow* potential_parent,bool popup_hierarchy,bool dock_hierarchy); +CIMGUI_API bool igIsWindowWithinBeginStackOf(ImGuiWindow* window,ImGuiWindow* potential_parent); CIMGUI_API bool igIsWindowAbove(ImGuiWindow* potential_above,ImGuiWindow* potential_below); CIMGUI_API bool igIsWindowNavFocusable(ImGuiWindow* window); CIMGUI_API void igSetWindowPosWindowPtr(ImGuiWindow* window,const ImVec2 pos,ImGuiCond cond); CIMGUI_API void igSetWindowSizeWindowPtr(ImGuiWindow* window,const ImVec2 size,ImGuiCond cond); CIMGUI_API void igSetWindowCollapsedWindowPtr(ImGuiWindow* window,bool collapsed,ImGuiCond cond); CIMGUI_API void igSetWindowHitTestHole(ImGuiWindow* window,const ImVec2 pos,const ImVec2 size); +CIMGUI_API void igWindowRectAbsToRel(ImRect *pOut,ImGuiWindow* window,const ImRect r); +CIMGUI_API void igWindowRectRelToAbs(ImRect *pOut,ImGuiWindow* window,const ImRect r); CIMGUI_API void igFocusWindow(ImGuiWindow* window); CIMGUI_API void igFocusTopMostWindowUnderOne(ImGuiWindow* under_this_window,ImGuiWindow* ignore_window); CIMGUI_API void igBringWindowToFocusFront(ImGuiWindow* window); CIMGUI_API void igBringWindowToDisplayFront(ImGuiWindow* window); CIMGUI_API void igBringWindowToDisplayBack(ImGuiWindow* window); +CIMGUI_API void igBringWindowToDisplayBehind(ImGuiWindow* window,ImGuiWindow* above_window); +CIMGUI_API int igFindWindowDisplayIndex(ImGuiWindow* window); +CIMGUI_API ImGuiWindow* igFindBottomMostVisibleWindowWithinBeginStack(ImGuiWindow* window); CIMGUI_API void igSetCurrentFont(ImFont* font); CIMGUI_API ImFont* igGetDefaultFont(void); CIMGUI_API ImDrawList* igGetForegroundDrawListWindowPtr(ImGuiWindow* window); @@ -3558,7 +3655,10 @@ CIMGUI_API void igSetScrollXWindowPtr(ImGuiWindow* window,float scroll_x); CIMGUI_API void igSetScrollYWindowPtr(ImGuiWindow* window,float scroll_y); CIMGUI_API void igSetScrollFromPosXWindowPtr(ImGuiWindow* window,float local_x,float center_x_ratio); CIMGUI_API void igSetScrollFromPosYWindowPtr(ImGuiWindow* window,float local_y,float center_y_ratio); -CIMGUI_API void igScrollToBringRectIntoView(ImVec2 *pOut,ImGuiWindow* window,const ImRect item_rect); +CIMGUI_API void igScrollToItem(ImGuiScrollFlags flags); +CIMGUI_API void igScrollToRect(ImGuiWindow* window,const ImRect rect,ImGuiScrollFlags flags); +CIMGUI_API void igScrollToRectEx(ImVec2 *pOut,ImGuiWindow* window,const ImRect rect,ImGuiScrollFlags flags); +CIMGUI_API void igScrollToBringRectIntoView(ImGuiWindow* window,const ImRect rect); CIMGUI_API ImGuiID igGetItemID(void); CIMGUI_API ImGuiItemStatusFlags igGetItemStatusFlags(void); CIMGUI_API ImGuiItemFlags igGetItemFlags(void); @@ -3575,10 +3675,9 @@ CIMGUI_API void igPushOverrideID(ImGuiID id); CIMGUI_API ImGuiID igGetIDWithSeed(const char* str_id_begin,const char* str_id_end,ImGuiID seed); CIMGUI_API void igItemSizeVec2(const ImVec2 size,float text_baseline_y); CIMGUI_API void igItemSizeRect(const ImRect bb,float text_baseline_y); -CIMGUI_API bool igItemAdd(const ImRect bb,ImGuiID id,const ImRect* nav_bb,ImGuiItemAddFlags flags); +CIMGUI_API bool igItemAdd(const ImRect bb,ImGuiID id,const ImRect* nav_bb,ImGuiItemFlags extra_flags); CIMGUI_API bool igItemHoverable(const ImRect bb,ImGuiID id); -CIMGUI_API void igItemFocusable(ImGuiWindow* window,ImGuiID id); -CIMGUI_API bool igIsClippedEx(const ImRect bb,ImGuiID id,bool clip_even_when_logged); +CIMGUI_API bool igIsClippedEx(const ImRect bb,ImGuiID id); CIMGUI_API void igSetLastItemData(ImGuiID item_id,ImGuiItemFlags in_flags,ImGuiItemStatusFlags status_flags,const ImRect item_rect); CIMGUI_API void igCalcItemSize(ImVec2 *pOut,ImVec2 size,float default_w,float default_h); CIMGUI_API float igCalcWrapWidthForPos(const ImVec2 pos,float wrap_pos_x); @@ -3596,11 +3695,13 @@ CIMGUI_API bool igBeginChildEx(const char* name,ImGuiID id,const ImVec2 size_arg CIMGUI_API void igOpenPopupEx(ImGuiID id,ImGuiPopupFlags popup_flags); CIMGUI_API void igClosePopupToLevel(int remaining,bool restore_focus_to_window_under_popup); CIMGUI_API void igClosePopupsOverWindow(ImGuiWindow* ref_window,bool restore_focus_to_window_under_popup); +CIMGUI_API void igClosePopupsExceptModals(void); CIMGUI_API bool igIsPopupOpenID(ImGuiID id,ImGuiPopupFlags popup_flags); CIMGUI_API bool igBeginPopupEx(ImGuiID id,ImGuiWindowFlags extra_flags); -CIMGUI_API void igBeginTooltipEx(ImGuiWindowFlags extra_flags,ImGuiTooltipFlags tooltip_flags); +CIMGUI_API void igBeginTooltipEx(ImGuiTooltipFlags tooltip_flags,ImGuiWindowFlags extra_window_flags); CIMGUI_API void igGetPopupAllowedExtentRect(ImRect *pOut,ImGuiWindow* window); CIMGUI_API ImGuiWindow* igGetTopMostPopupModal(void); +CIMGUI_API ImGuiWindow* igGetTopMostAndVisiblePopupModal(void); CIMGUI_API void igFindBestWindowPosForPopup(ImVec2 *pOut,ImGuiWindow* window); CIMGUI_API void igFindBestWindowPosForPopupEx(ImVec2 *pOut,const ImVec2 ref_pos,const ImVec2 size,ImGuiDir* last_dir,const ImRect r_outer,const ImRect r_avoid,ImGuiPopupPositionPolicy policy); CIMGUI_API bool igBeginViewportSideBar(const char* name,ImGuiViewport* viewport,ImGuiDir dir,float size,ImGuiWindowFlags window_flags); @@ -3610,8 +3711,11 @@ CIMGUI_API bool igBeginComboPopup(ImGuiID popup_id,const ImRect bb,ImGuiComboFla CIMGUI_API bool igBeginComboPreview(void); CIMGUI_API void igEndComboPreview(void); CIMGUI_API void igNavInitWindow(ImGuiWindow* window,bool force_reinit); +CIMGUI_API void igNavInitRequestApplyResult(void); CIMGUI_API bool igNavMoveRequestButNoResultYet(void); -CIMGUI_API void igNavMoveRequestForward(ImGuiDir move_dir,ImGuiDir clip_dir,ImGuiNavMoveFlags move_flags); +CIMGUI_API void igNavMoveRequestSubmit(ImGuiDir move_dir,ImGuiDir clip_dir,ImGuiNavMoveFlags move_flags,ImGuiScrollFlags scroll_flags); +CIMGUI_API void igNavMoveRequestForward(ImGuiDir move_dir,ImGuiDir clip_dir,ImGuiNavMoveFlags move_flags,ImGuiScrollFlags scroll_flags); +CIMGUI_API void igNavMoveRequestResolveWithLastItem(ImGuiNavItemData* result); CIMGUI_API void igNavMoveRequestCancel(void); CIMGUI_API void igNavMoveRequestApplyResult(void); CIMGUI_API void igNavMoveRequestTryWrapping(ImGuiWindow* window,ImGuiNavMoveFlags move_flags); @@ -3640,6 +3744,7 @@ CIMGUI_API void igDockContextClearNodes(ImGuiContext* ctx,ImGuiID root_id,bool c CIMGUI_API void igDockContextRebuildNodes(ImGuiContext* ctx); CIMGUI_API void igDockContextNewFrameUpdateUndocking(ImGuiContext* ctx); CIMGUI_API void igDockContextNewFrameUpdateDocking(ImGuiContext* ctx); +CIMGUI_API void igDockContextEndFrame(ImGuiContext* ctx); CIMGUI_API ImGuiID igDockContextGenNodeID(ImGuiContext* ctx); CIMGUI_API void igDockContextQueueDock(ImGuiContext* ctx,ImGuiWindow* target,ImGuiDockNode* target_node,ImGuiWindow* payload,ImGuiDir split_dir,float split_ratio,bool split_outer); CIMGUI_API void igDockContextQueueUndockWindow(ImGuiContext* ctx,ImGuiWindow* window); @@ -3648,6 +3753,7 @@ CIMGUI_API bool igDockContextCalcDropPosForDocking(ImGuiWindow* target,ImGuiDock CIMGUI_API bool igDockNodeBeginAmendTabBar(ImGuiDockNode* node); CIMGUI_API void igDockNodeEndAmendTabBar(void); CIMGUI_API ImGuiDockNode* igDockNodeGetRootNode(ImGuiDockNode* node); +CIMGUI_API bool igDockNodeIsInHierarchyOf(ImGuiDockNode* node,ImGuiDockNode* parent); CIMGUI_API int igDockNodeGetDepth(const ImGuiDockNode* node); CIMGUI_API ImGuiID igDockNodeGetWindowMenuButtonId(const ImGuiDockNode* node); CIMGUI_API ImGuiDockNode* igGetWindowDockNode(void); @@ -3759,13 +3865,14 @@ CIMGUI_API void igRenderArrowPointingAt(ImDrawList* draw_list,ImVec2 pos,ImVec2 CIMGUI_API void igRenderArrowDockMenu(ImDrawList* draw_list,ImVec2 p_min,float sz,ImU32 col); CIMGUI_API void igRenderRectFilledRangeH(ImDrawList* draw_list,const ImRect rect,ImU32 col,float x_start_norm,float x_end_norm,float rounding); CIMGUI_API void igRenderRectFilledWithHole(ImDrawList* draw_list,ImRect outer,ImRect inner,ImU32 col,float rounding); +CIMGUI_API ImDrawFlags igCalcRoundingFlagsForRectInRect(const ImRect r_in,const ImRect r_outer,float threshold); CIMGUI_API void igTextEx(const char* text,const char* text_end,ImGuiTextFlags flags); CIMGUI_API bool igButtonEx(const char* label,const ImVec2 size_arg,ImGuiButtonFlags flags); CIMGUI_API bool igCloseButton(ImGuiID id,const ImVec2 pos); CIMGUI_API bool igCollapseButton(ImGuiID id,const ImVec2 pos,ImGuiDockNode* dock_node); CIMGUI_API bool igArrowButtonEx(const char* str_id,ImGuiDir dir,ImVec2 size_arg,ImGuiButtonFlags flags); CIMGUI_API void igScrollbar(ImGuiAxis axis); -CIMGUI_API bool igScrollbarEx(const ImRect bb,ImGuiID id,ImGuiAxis axis,float* p_scroll_v,float avail_v,float contents_v,ImDrawFlags flags); +CIMGUI_API bool igScrollbarEx(const ImRect bb,ImGuiID id,ImGuiAxis axis,ImS64* p_scroll_v,ImS64 avail_v,ImS64 contents_v,ImDrawFlags flags); CIMGUI_API bool igImageButtonEx(ImGuiID id,ImTextureID texture_id,const ImVec2 size,const ImVec2 uv0,const ImVec2 uv1,const ImVec2 padding,const ImVec4 bg_col,const ImVec4 tint_col); CIMGUI_API void igGetWindowScrollbarRect(ImRect *pOut,ImGuiWindow* window,ImGuiAxis axis); CIMGUI_API ImGuiID igGetWindowScrollbarID(ImGuiWindow* window,ImGuiAxis axis); @@ -3777,7 +3884,7 @@ CIMGUI_API bool igCheckboxFlagsU64Ptr(const char* label,ImU64* flags,ImU64 flags CIMGUI_API bool igButtonBehavior(const ImRect bb,ImGuiID id,bool* out_hovered,bool* out_held,ImGuiButtonFlags flags); CIMGUI_API bool igDragBehavior(ImGuiID id,ImGuiDataType data_type,void* p_v,float v_speed,const void* p_min,const void* p_max,const char* format,ImGuiSliderFlags flags); CIMGUI_API bool igSliderBehavior(const ImRect bb,ImGuiID id,ImGuiDataType data_type,void* p_v,const void* p_min,const void* p_max,const char* format,ImGuiSliderFlags flags,ImRect* out_grab_bb); -CIMGUI_API bool igSplitterBehavior(const ImRect bb,ImGuiID id,ImGuiAxis axis,float* size1,float* size2,float min_size1,float min_size2,float hover_extend,float hover_visibility_delay); +CIMGUI_API bool igSplitterBehavior(const ImRect bb,ImGuiID id,ImGuiAxis axis,float* size1,float* size2,float min_size1,float min_size2,float hover_extend,float hover_visibility_delay,ImU32 bg_col); CIMGUI_API bool igTreeNodeBehavior(ImGuiID id,ImGuiTreeNodeFlags flags,const char* label,const char* label_end); CIMGUI_API bool igTreeNodeBehaviorIsOpen(ImGuiID id,ImGuiTreeNodeFlags flags); CIMGUI_API void igTreePushOverrideID(ImGuiID id); @@ -3802,9 +3909,11 @@ CIMGUI_API void igGcCompactTransientMiscBuffers(void); CIMGUI_API void igGcCompactTransientWindowBuffers(ImGuiWindow* window); CIMGUI_API void igGcAwakeTransientWindowBuffers(ImGuiWindow* window); CIMGUI_API void igErrorCheckEndFrameRecover(ImGuiErrorLogCallback log_callback,void* user_data); +CIMGUI_API void igErrorCheckEndWindowRecover(ImGuiErrorLogCallback log_callback,void* user_data); CIMGUI_API void igDebugDrawItemRect(ImU32 col); CIMGUI_API void igDebugStartItemPicker(void); CIMGUI_API void igShowFontAtlas(ImFontAtlas* atlas); +CIMGUI_API void igDebugHookIdInfo(ImGuiID id,ImGuiDataType data_type,const void* data_id,const void* data_id_end); CIMGUI_API void igDebugNodeColumns(ImGuiOldColumns* columns); CIMGUI_API void igDebugNodeDockNode(ImGuiDockNode* node,const char* label); CIMGUI_API void igDebugNodeDrawList(ImGuiWindow* window,ImGuiViewportP* viewport,const ImDrawList* draw_list,const char* label); @@ -3817,6 +3926,7 @@ CIMGUI_API void igDebugNodeTableSettings(ImGuiTableSettings* settings); CIMGUI_API void igDebugNodeWindow(ImGuiWindow* window,const char* label); CIMGUI_API void igDebugNodeWindowSettings(ImGuiWindowSettings* settings); CIMGUI_API void igDebugNodeWindowsList(ImVector_ImGuiWindowPtr* windows,const char* label); +CIMGUI_API void igDebugNodeWindowsListByBeginStackParent(ImGuiWindow** windows,int windows_size,ImGuiWindow* parent_in_begin_stack); CIMGUI_API void igDebugNodeViewport(ImGuiViewportP* viewport); CIMGUI_API void igDebugRenderViewportThumbnail(ImDrawList* draw_list,ImGuiViewportP* viewport,const ImRect bb); CIMGUI_API const ImFontBuilderIO* igImFontAtlasGetBuilderForStbTruetype(void); diff --git a/imgui-sys/third-party/imgui-docking/definitions.json b/imgui-sys/third-party/imgui-docking/definitions.json index 79c6af83a..f15cb177c 100644 --- a/imgui-sys/third-party/imgui-docking/definitions.json +++ b/imgui-sys/third-party/imgui-docking/definitions.json @@ -13,7 +13,7 @@ "cimguiname": "ImBitArray_ClearAllBits", "defaults": {}, "funcname": "ClearAllBits", - "location": "imgui_internal:548", + "location": "imgui_internal:560", "ov_cimguiname": "ImBitArray_ClearAllBits", "ret": "void", "signature": "()", @@ -39,7 +39,7 @@ "cimguiname": "ImBitArray_ClearBit", "defaults": {}, "funcname": "ClearBit", - "location": "imgui_internal:552", + "location": "imgui_internal:564", "ov_cimguiname": "ImBitArray_ClearBit", "ret": "void", "signature": "(int)", @@ -57,7 +57,7 @@ "constructor": true, "defaults": {}, "funcname": "ImBitArray", - "location": "imgui_internal:547", + "location": "imgui_internal:559", "ov_cimguiname": "ImBitArray_ImBitArray", "signature": "()", "stname": "ImBitArray", @@ -78,7 +78,7 @@ "cimguiname": "ImBitArray_SetAllBits", "defaults": {}, "funcname": "SetAllBits", - "location": "imgui_internal:549", + "location": "imgui_internal:561", "ov_cimguiname": "ImBitArray_SetAllBits", "ret": "void", "signature": "()", @@ -104,7 +104,7 @@ "cimguiname": "ImBitArray_SetBit", "defaults": {}, "funcname": "SetBit", - "location": "imgui_internal:551", + "location": "imgui_internal:563", "ov_cimguiname": "ImBitArray_SetBit", "ret": "void", "signature": "(int)", @@ -134,7 +134,7 @@ "cimguiname": "ImBitArray_SetBitRange", "defaults": {}, "funcname": "SetBitRange", - "location": "imgui_internal:553", + "location": "imgui_internal:565", "ov_cimguiname": "ImBitArray_SetBitRange", "ret": "void", "signature": "(int,int)", @@ -160,7 +160,7 @@ "cimguiname": "ImBitArray_TestBit", "defaults": {}, "funcname": "TestBit", - "location": "imgui_internal:550", + "location": "imgui_internal:562", "ov_cimguiname": "ImBitArray_TestBit", "ret": "bool", "signature": "(int)const", @@ -202,7 +202,7 @@ "cimguiname": "ImBitVector_Clear", "defaults": {}, "funcname": "Clear", - "location": "imgui_internal:562", + "location": "imgui_internal:574", "ov_cimguiname": "ImBitVector_Clear", "ret": "void", "signature": "()", @@ -227,7 +227,7 @@ "cimguiname": "ImBitVector_ClearBit", "defaults": {}, "funcname": "ClearBit", - "location": "imgui_internal:565", + "location": "imgui_internal:577", "ov_cimguiname": "ImBitVector_ClearBit", "ret": "void", "signature": "(int)", @@ -252,7 +252,7 @@ "cimguiname": "ImBitVector_Create", "defaults": {}, "funcname": "Create", - "location": "imgui_internal:561", + "location": "imgui_internal:573", "ov_cimguiname": "ImBitVector_Create", "ret": "void", "signature": "(int)", @@ -277,7 +277,7 @@ "cimguiname": "ImBitVector_SetBit", "defaults": {}, "funcname": "SetBit", - "location": "imgui_internal:564", + "location": "imgui_internal:576", "ov_cimguiname": "ImBitVector_SetBit", "ret": "void", "signature": "(int)", @@ -302,7 +302,7 @@ "cimguiname": "ImBitVector_TestBit", "defaults": {}, "funcname": "TestBit", - "location": "imgui_internal:563", + "location": "imgui_internal:575", "ov_cimguiname": "ImBitVector_TestBit", "ret": "bool", "signature": "(int)const", @@ -327,7 +327,7 @@ "cimguiname": "ImChunkStream_alloc_chunk", "defaults": {}, "funcname": "alloc_chunk", - "location": "imgui_internal:668", + "location": "imgui_internal:680", "ov_cimguiname": "ImChunkStream_alloc_chunk", "ret": "T*", "signature": "(size_t)", @@ -349,7 +349,7 @@ "cimguiname": "ImChunkStream_begin", "defaults": {}, "funcname": "begin", - "location": "imgui_internal:669", + "location": "imgui_internal:681", "ov_cimguiname": "ImChunkStream_begin", "ret": "T*", "signature": "()", @@ -375,7 +375,7 @@ "cimguiname": "ImChunkStream_chunk_size", "defaults": {}, "funcname": "chunk_size", - "location": "imgui_internal:671", + "location": "imgui_internal:683", "ov_cimguiname": "ImChunkStream_chunk_size", "ret": "int", "signature": "(const T*)", @@ -397,7 +397,7 @@ "cimguiname": "ImChunkStream_clear", "defaults": {}, "funcname": "clear", - "location": "imgui_internal:665", + "location": "imgui_internal:677", "ov_cimguiname": "ImChunkStream_clear", "ret": "void", "signature": "()", @@ -419,7 +419,7 @@ "cimguiname": "ImChunkStream_empty", "defaults": {}, "funcname": "empty", - "location": "imgui_internal:666", + "location": "imgui_internal:678", "ov_cimguiname": "ImChunkStream_empty", "ret": "bool", "signature": "()const", @@ -441,7 +441,7 @@ "cimguiname": "ImChunkStream_end", "defaults": {}, "funcname": "end", - "location": "imgui_internal:672", + "location": "imgui_internal:684", "ov_cimguiname": "ImChunkStream_end", "ret": "T*", "signature": "()", @@ -467,7 +467,7 @@ "cimguiname": "ImChunkStream_next_chunk", "defaults": {}, "funcname": "next_chunk", - "location": "imgui_internal:670", + "location": "imgui_internal:682", "ov_cimguiname": "ImChunkStream_next_chunk", "ret": "T*", "signature": "(T*)", @@ -493,7 +493,7 @@ "cimguiname": "ImChunkStream_offset_from_ptr", "defaults": {}, "funcname": "offset_from_ptr", - "location": "imgui_internal:673", + "location": "imgui_internal:685", "ov_cimguiname": "ImChunkStream_offset_from_ptr", "ret": "int", "signature": "(const T*)", @@ -519,7 +519,7 @@ "cimguiname": "ImChunkStream_ptr_from_offset", "defaults": {}, "funcname": "ptr_from_offset", - "location": "imgui_internal:674", + "location": "imgui_internal:686", "ov_cimguiname": "ImChunkStream_ptr_from_offset", "ret": "T*", "signature": "(int)", @@ -541,7 +541,7 @@ "cimguiname": "ImChunkStream_size", "defaults": {}, "funcname": "size", - "location": "imgui_internal:667", + "location": "imgui_internal:679", "ov_cimguiname": "ImChunkStream_size", "ret": "int", "signature": "()const", @@ -568,7 +568,7 @@ "cimguiname": "ImChunkStream_swap", "defaults": {}, "funcname": "swap", - "location": "imgui_internal:675", + "location": "imgui_internal:687", "ov_cimguiname": "ImChunkStream_swap", "ret": "void", "signature": "(ImChunkStream*)", @@ -609,7 +609,7 @@ }, "funcname": "HSV", "is_static_function": true, - "location": "imgui:2351", + "location": "imgui:2361", "nonUDT": 1, "ov_cimguiname": "ImColor_HSV", "ret": "void", @@ -627,7 +627,7 @@ "constructor": true, "defaults": {}, "funcname": "ImColor", - "location": "imgui:2341", + "location": "imgui:2351", "ov_cimguiname": "ImColor_ImColorNil", "signature": "()", "stname": "ImColor" @@ -660,7 +660,7 @@ "a": "255" }, "funcname": "ImColor", - "location": "imgui:2342", + "location": "imgui:2352", "ov_cimguiname": "ImColor_ImColorInt", "signature": "(int,int,int,int)", "stname": "ImColor" @@ -679,7 +679,7 @@ "constructor": true, "defaults": {}, "funcname": "ImColor", - "location": "imgui:2343", + "location": "imgui:2353", "ov_cimguiname": "ImColor_ImColorU32", "signature": "(ImU32)", "stname": "ImColor" @@ -712,7 +712,7 @@ "a": "1.0f" }, "funcname": "ImColor", - "location": "imgui:2344", + "location": "imgui:2354", "ov_cimguiname": "ImColor_ImColorFloat", "signature": "(float,float,float,float)", "stname": "ImColor" @@ -731,7 +731,7 @@ "constructor": true, "defaults": {}, "funcname": "ImColor", - "location": "imgui:2345", + "location": "imgui:2355", "ov_cimguiname": "ImColor_ImColorVec4", "signature": "(const ImVec4)", "stname": "ImColor" @@ -769,7 +769,7 @@ "a": "1.0f" }, "funcname": "SetHSV", - "location": "imgui:2350", + "location": "imgui:2360", "ov_cimguiname": "ImColor_SetHSV", "ret": "void", "signature": "(float,float,float,float)", @@ -809,7 +809,7 @@ "cimguiname": "ImDrawCmd_GetTexID", "defaults": {}, "funcname": "GetTexID", - "location": "imgui:2399", + "location": "imgui:2409", "ov_cimguiname": "ImDrawCmd_GetTexID", "ret": "ImTextureID", "signature": "()const", @@ -826,7 +826,7 @@ "constructor": true, "defaults": {}, "funcname": "ImDrawCmd", - "location": "imgui:2396", + "location": "imgui:2406", "ov_cimguiname": "ImDrawCmd_ImDrawCmd", "signature": "()", "stname": "ImDrawCmd" @@ -865,7 +865,7 @@ "cimguiname": "ImDrawDataBuilder_Clear", "defaults": {}, "funcname": "Clear", - "location": "imgui_internal:735", + "location": "imgui_internal:747", "ov_cimguiname": "ImDrawDataBuilder_Clear", "ret": "void", "signature": "()", @@ -886,7 +886,7 @@ "cimguiname": "ImDrawDataBuilder_ClearFreeMemory", "defaults": {}, "funcname": "ClearFreeMemory", - "location": "imgui_internal:736", + "location": "imgui_internal:748", "ov_cimguiname": "ImDrawDataBuilder_ClearFreeMemory", "ret": "void", "signature": "()", @@ -907,7 +907,7 @@ "cimguiname": "ImDrawDataBuilder_FlattenIntoSingleLayer", "defaults": {}, "funcname": "FlattenIntoSingleLayer", - "location": "imgui_internal:738", + "location": "imgui_internal:750", "ov_cimguiname": "ImDrawDataBuilder_FlattenIntoSingleLayer", "ret": "void", "signature": "()", @@ -928,7 +928,7 @@ "cimguiname": "ImDrawDataBuilder_GetDrawListCount", "defaults": {}, "funcname": "GetDrawListCount", - "location": "imgui_internal:737", + "location": "imgui_internal:749", "ov_cimguiname": "ImDrawDataBuilder_GetDrawListCount", "ret": "int", "signature": "()const", @@ -949,7 +949,7 @@ "cimguiname": "ImDrawData_Clear", "defaults": {}, "funcname": "Clear", - "location": "imgui:2631", + "location": "imgui:2641", "ov_cimguiname": "ImDrawData_Clear", "ret": "void", "signature": "()", @@ -970,7 +970,7 @@ "cimguiname": "ImDrawData_DeIndexAllBuffers", "defaults": {}, "funcname": "DeIndexAllBuffers", - "location": "imgui:2632", + "location": "imgui:2642", "ov_cimguiname": "ImDrawData_DeIndexAllBuffers", "ret": "void", "signature": "()", @@ -987,7 +987,7 @@ "constructor": true, "defaults": {}, "funcname": "ImDrawData", - "location": "imgui:2630", + "location": "imgui:2640", "ov_cimguiname": "ImDrawData_ImDrawData", "signature": "()", "stname": "ImDrawData" @@ -1011,7 +1011,7 @@ "cimguiname": "ImDrawData_ScaleClipRects", "defaults": {}, "funcname": "ScaleClipRects", - "location": "imgui:2633", + "location": "imgui:2643", "ov_cimguiname": "ImDrawData_ScaleClipRects", "ret": "void", "signature": "(const ImVec2)", @@ -1047,7 +1047,7 @@ "constructor": true, "defaults": {}, "funcname": "ImDrawListSharedData", - "location": "imgui_internal:727", + "location": "imgui_internal:739", "ov_cimguiname": "ImDrawListSharedData_ImDrawListSharedData", "signature": "()", "stname": "ImDrawListSharedData" @@ -1071,7 +1071,7 @@ "cimguiname": "ImDrawListSharedData_SetCircleTessellationMaxError", "defaults": {}, "funcname": "SetCircleTessellationMaxError", - "location": "imgui_internal:728", + "location": "imgui_internal:740", "ov_cimguiname": "ImDrawListSharedData_SetCircleTessellationMaxError", "ret": "void", "signature": "(float)", @@ -1111,7 +1111,7 @@ "cimguiname": "ImDrawListSplitter_Clear", "defaults": {}, "funcname": "Clear", - "location": "imgui:2444", + "location": "imgui:2454", "ov_cimguiname": "ImDrawListSplitter_Clear", "ret": "void", "signature": "()", @@ -1132,7 +1132,7 @@ "cimguiname": "ImDrawListSplitter_ClearFreeMemory", "defaults": {}, "funcname": "ClearFreeMemory", - "location": "imgui:2445", + "location": "imgui:2455", "ov_cimguiname": "ImDrawListSplitter_ClearFreeMemory", "ret": "void", "signature": "()", @@ -1149,7 +1149,7 @@ "constructor": true, "defaults": {}, "funcname": "ImDrawListSplitter", - "location": "imgui:2442", + "location": "imgui:2452", "ov_cimguiname": "ImDrawListSplitter_ImDrawListSplitter", "signature": "()", "stname": "ImDrawListSplitter" @@ -1173,7 +1173,7 @@ "cimguiname": "ImDrawListSplitter_Merge", "defaults": {}, "funcname": "Merge", - "location": "imgui:2447", + "location": "imgui:2457", "ov_cimguiname": "ImDrawListSplitter_Merge", "ret": "void", "signature": "(ImDrawList*)", @@ -1202,7 +1202,7 @@ "cimguiname": "ImDrawListSplitter_SetCurrentChannel", "defaults": {}, "funcname": "SetCurrentChannel", - "location": "imgui:2448", + "location": "imgui:2458", "ov_cimguiname": "ImDrawListSplitter_SetCurrentChannel", "ret": "void", "signature": "(ImDrawList*,int)", @@ -1231,7 +1231,7 @@ "cimguiname": "ImDrawListSplitter_Split", "defaults": {}, "funcname": "Split", - "location": "imgui:2446", + "location": "imgui:2456", "ov_cimguiname": "ImDrawListSplitter_Split", "ret": "void", "signature": "(ImDrawList*,int)", @@ -1251,7 +1251,7 @@ "cimguiname": "ImDrawListSplitter_destroy", "defaults": {}, "destructor": true, - "location": "imgui:2443", + "location": "imgui:2453", "ov_cimguiname": "ImDrawListSplitter_destroy", "realdestructor": true, "ret": "void", @@ -1303,7 +1303,7 @@ "num_segments": "0" }, "funcname": "AddBezierCubic", - "location": "imgui:2546", + "location": "imgui:2556", "ov_cimguiname": "ImDrawList_AddBezierCubic", "ret": "void", "signature": "(const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32,float,int)", @@ -1350,7 +1350,7 @@ "num_segments": "0" }, "funcname": "AddBezierQuadratic", - "location": "imgui:2547", + "location": "imgui:2557", "ov_cimguiname": "ImDrawList_AddBezierQuadratic", "ret": "void", "signature": "(const ImVec2,const ImVec2,const ImVec2,ImU32,float,int)", @@ -1379,7 +1379,7 @@ "cimguiname": "ImDrawList_AddCallback", "defaults": {}, "funcname": "AddCallback", - "location": "imgui:2570", + "location": "imgui:2580", "ov_cimguiname": "ImDrawList_AddCallback", "ret": "void", "signature": "(ImDrawCallback,void*)", @@ -1423,7 +1423,7 @@ "thickness": "1.0f" }, "funcname": "AddCircle", - "location": "imgui:2538", + "location": "imgui:2548", "ov_cimguiname": "ImDrawList_AddCircle", "ret": "void", "signature": "(const ImVec2,float,ImU32,int,float)", @@ -1462,7 +1462,7 @@ "num_segments": "0" }, "funcname": "AddCircleFilled", - "location": "imgui:2539", + "location": "imgui:2549", "ov_cimguiname": "ImDrawList_AddCircleFilled", "ret": "void", "signature": "(const ImVec2,float,ImU32,int)", @@ -1495,7 +1495,7 @@ "cimguiname": "ImDrawList_AddConvexPolyFilled", "defaults": {}, "funcname": "AddConvexPolyFilled", - "location": "imgui:2545", + "location": "imgui:2555", "ov_cimguiname": "ImDrawList_AddConvexPolyFilled", "ret": "void", "signature": "(const ImVec2*,int,ImU32)", @@ -1516,7 +1516,7 @@ "cimguiname": "ImDrawList_AddDrawCmd", "defaults": {}, "funcname": "AddDrawCmd", - "location": "imgui:2571", + "location": "imgui:2581", "ov_cimguiname": "ImDrawList_AddDrawCmd", "ret": "void", "signature": "()", @@ -1565,7 +1565,7 @@ "uv_min": "ImVec2(0,0)" }, "funcname": "AddImage", - "location": "imgui:2553", + "location": "imgui:2563", "ov_cimguiname": "ImDrawList_AddImage", "ret": "void", "signature": "(ImTextureID,const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32)", @@ -1632,7 +1632,7 @@ "uv4": "ImVec2(0,1)" }, "funcname": "AddImageQuad", - "location": "imgui:2554", + "location": "imgui:2564", "ov_cimguiname": "ImDrawList_AddImageQuad", "ret": "void", "signature": "(ImTextureID,const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32)", @@ -1687,7 +1687,7 @@ "flags": "0" }, "funcname": "AddImageRounded", - "location": "imgui:2555", + "location": "imgui:2565", "ov_cimguiname": "ImDrawList_AddImageRounded", "ret": "void", "signature": "(ImTextureID,const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32,float,ImDrawFlags)", @@ -1726,7 +1726,7 @@ "thickness": "1.0f" }, "funcname": "AddLine", - "location": "imgui:2530", + "location": "imgui:2540", "ov_cimguiname": "ImDrawList_AddLine", "ret": "void", "signature": "(const ImVec2,const ImVec2,ImU32,float)", @@ -1769,7 +1769,7 @@ "thickness": "1.0f" }, "funcname": "AddNgon", - "location": "imgui:2540", + "location": "imgui:2550", "ov_cimguiname": "ImDrawList_AddNgon", "ret": "void", "signature": "(const ImVec2,float,ImU32,int,float)", @@ -1806,7 +1806,7 @@ "cimguiname": "ImDrawList_AddNgonFilled", "defaults": {}, "funcname": "AddNgonFilled", - "location": "imgui:2541", + "location": "imgui:2551", "ov_cimguiname": "ImDrawList_AddNgonFilled", "ret": "void", "signature": "(const ImVec2,float,ImU32,int)", @@ -1847,7 +1847,7 @@ "cimguiname": "ImDrawList_AddPolyline", "defaults": {}, "funcname": "AddPolyline", - "location": "imgui:2544", + "location": "imgui:2554", "ov_cimguiname": "ImDrawList_AddPolyline", "ret": "void", "signature": "(const ImVec2*,int,ImU32,ImDrawFlags,float)", @@ -1894,7 +1894,7 @@ "thickness": "1.0f" }, "funcname": "AddQuad", - "location": "imgui:2534", + "location": "imgui:2544", "ov_cimguiname": "ImDrawList_AddQuad", "ret": "void", "signature": "(const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32,float)", @@ -1935,7 +1935,7 @@ "cimguiname": "ImDrawList_AddQuadFilled", "defaults": {}, "funcname": "AddQuadFilled", - "location": "imgui:2535", + "location": "imgui:2545", "ov_cimguiname": "ImDrawList_AddQuadFilled", "ret": "void", "signature": "(const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32)", @@ -1984,7 +1984,7 @@ "thickness": "1.0f" }, "funcname": "AddRect", - "location": "imgui:2531", + "location": "imgui:2541", "ov_cimguiname": "ImDrawList_AddRect", "ret": "void", "signature": "(const ImVec2,const ImVec2,ImU32,float,ImDrawFlags,float)", @@ -2028,7 +2028,7 @@ "rounding": "0.0f" }, "funcname": "AddRectFilled", - "location": "imgui:2532", + "location": "imgui:2542", "ov_cimguiname": "ImDrawList_AddRectFilled", "ret": "void", "signature": "(const ImVec2,const ImVec2,ImU32,float,ImDrawFlags)", @@ -2073,7 +2073,7 @@ "cimguiname": "ImDrawList_AddRectFilledMultiColor", "defaults": {}, "funcname": "AddRectFilledMultiColor", - "location": "imgui:2533", + "location": "imgui:2543", "ov_cimguiname": "ImDrawList_AddRectFilledMultiColor", "ret": "void", "signature": "(const ImVec2,const ImVec2,ImU32,ImU32,ImU32,ImU32)", @@ -2112,7 +2112,7 @@ "text_end": "NULL" }, "funcname": "AddText", - "location": "imgui:2542", + "location": "imgui:2552", "ov_cimguiname": "ImDrawList_AddTextVec2", "ret": "void", "signature": "(const ImVec2,ImU32,const char*,const char*)", @@ -2167,7 +2167,7 @@ "wrap_width": "0.0f" }, "funcname": "AddText", - "location": "imgui:2543", + "location": "imgui:2553", "ov_cimguiname": "ImDrawList_AddTextFontPtr", "ret": "void", "signature": "(const ImFont*,float,const ImVec2,ImU32,const char*,const char*,float,const ImVec4*)", @@ -2210,7 +2210,7 @@ "thickness": "1.0f" }, "funcname": "AddTriangle", - "location": "imgui:2536", + "location": "imgui:2546", "ov_cimguiname": "ImDrawList_AddTriangle", "ret": "void", "signature": "(const ImVec2,const ImVec2,const ImVec2,ImU32,float)", @@ -2247,7 +2247,7 @@ "cimguiname": "ImDrawList_AddTriangleFilled", "defaults": {}, "funcname": "AddTriangleFilled", - "location": "imgui:2537", + "location": "imgui:2547", "ov_cimguiname": "ImDrawList_AddTriangleFilled", "ret": "void", "signature": "(const ImVec2,const ImVec2,const ImVec2,ImU32)", @@ -2268,7 +2268,7 @@ "cimguiname": "ImDrawList_ChannelsMerge", "defaults": {}, "funcname": "ChannelsMerge", - "location": "imgui:2581", + "location": "imgui:2591", "ov_cimguiname": "ImDrawList_ChannelsMerge", "ret": "void", "signature": "()", @@ -2293,7 +2293,7 @@ "cimguiname": "ImDrawList_ChannelsSetCurrent", "defaults": {}, "funcname": "ChannelsSetCurrent", - "location": "imgui:2582", + "location": "imgui:2592", "ov_cimguiname": "ImDrawList_ChannelsSetCurrent", "ret": "void", "signature": "(int)", @@ -2318,7 +2318,7 @@ "cimguiname": "ImDrawList_ChannelsSplit", "defaults": {}, "funcname": "ChannelsSplit", - "location": "imgui:2580", + "location": "imgui:2590", "ov_cimguiname": "ImDrawList_ChannelsSplit", "ret": "void", "signature": "(int)", @@ -2339,7 +2339,7 @@ "cimguiname": "ImDrawList_CloneOutput", "defaults": {}, "funcname": "CloneOutput", - "location": "imgui:2572", + "location": "imgui:2582", "ov_cimguiname": "ImDrawList_CloneOutput", "ret": "ImDrawList*", "signature": "()const", @@ -2364,7 +2364,7 @@ "cimguiname": "ImDrawList_GetClipRectMax", "defaults": {}, "funcname": "GetClipRectMax", - "location": "imgui:2522", + "location": "imgui:2532", "nonUDT": 1, "ov_cimguiname": "ImDrawList_GetClipRectMax", "ret": "void", @@ -2390,7 +2390,7 @@ "cimguiname": "ImDrawList_GetClipRectMin", "defaults": {}, "funcname": "GetClipRectMin", - "location": "imgui:2521", + "location": "imgui:2531", "nonUDT": 1, "ov_cimguiname": "ImDrawList_GetClipRectMin", "ret": "void", @@ -2413,7 +2413,7 @@ "constructor": true, "defaults": {}, "funcname": "ImDrawList", - "location": "imgui:2513", + "location": "imgui:2523", "ov_cimguiname": "ImDrawList_ImDrawList", "signature": "(const ImDrawListSharedData*)", "stname": "ImDrawList" @@ -2455,7 +2455,7 @@ "num_segments": "0" }, "funcname": "PathArcTo", - "location": "imgui:2563", + "location": "imgui:2573", "ov_cimguiname": "ImDrawList_PathArcTo", "ret": "void", "signature": "(const ImVec2,float,float,float,int)", @@ -2492,7 +2492,7 @@ "cimguiname": "ImDrawList_PathArcToFast", "defaults": {}, "funcname": "PathArcToFast", - "location": "imgui:2564", + "location": "imgui:2574", "ov_cimguiname": "ImDrawList_PathArcToFast", "ret": "void", "signature": "(const ImVec2,float,int,int)", @@ -2531,7 +2531,7 @@ "num_segments": "0" }, "funcname": "PathBezierCubicCurveTo", - "location": "imgui:2565", + "location": "imgui:2575", "ov_cimguiname": "ImDrawList_PathBezierCubicCurveTo", "ret": "void", "signature": "(const ImVec2,const ImVec2,const ImVec2,int)", @@ -2566,7 +2566,7 @@ "num_segments": "0" }, "funcname": "PathBezierQuadraticCurveTo", - "location": "imgui:2566", + "location": "imgui:2576", "ov_cimguiname": "ImDrawList_PathBezierQuadraticCurveTo", "ret": "void", "signature": "(const ImVec2,const ImVec2,int)", @@ -2587,7 +2587,7 @@ "cimguiname": "ImDrawList_PathClear", "defaults": {}, "funcname": "PathClear", - "location": "imgui:2558", + "location": "imgui:2568", "ov_cimguiname": "ImDrawList_PathClear", "ret": "void", "signature": "()", @@ -2612,7 +2612,7 @@ "cimguiname": "ImDrawList_PathFillConvex", "defaults": {}, "funcname": "PathFillConvex", - "location": "imgui:2561", + "location": "imgui:2571", "ov_cimguiname": "ImDrawList_PathFillConvex", "ret": "void", "signature": "(ImU32)", @@ -2637,7 +2637,7 @@ "cimguiname": "ImDrawList_PathLineTo", "defaults": {}, "funcname": "PathLineTo", - "location": "imgui:2559", + "location": "imgui:2569", "ov_cimguiname": "ImDrawList_PathLineTo", "ret": "void", "signature": "(const ImVec2)", @@ -2662,7 +2662,7 @@ "cimguiname": "ImDrawList_PathLineToMergeDuplicate", "defaults": {}, "funcname": "PathLineToMergeDuplicate", - "location": "imgui:2560", + "location": "imgui:2570", "ov_cimguiname": "ImDrawList_PathLineToMergeDuplicate", "ret": "void", "signature": "(const ImVec2)", @@ -2702,7 +2702,7 @@ "rounding": "0.0f" }, "funcname": "PathRect", - "location": "imgui:2567", + "location": "imgui:2577", "ov_cimguiname": "ImDrawList_PathRect", "ret": "void", "signature": "(const ImVec2,const ImVec2,float,ImDrawFlags)", @@ -2738,7 +2738,7 @@ "thickness": "1.0f" }, "funcname": "PathStroke", - "location": "imgui:2562", + "location": "imgui:2572", "ov_cimguiname": "ImDrawList_PathStroke", "ret": "void", "signature": "(ImU32,ImDrawFlags,float)", @@ -2759,7 +2759,7 @@ "cimguiname": "ImDrawList_PopClipRect", "defaults": {}, "funcname": "PopClipRect", - "location": "imgui:2518", + "location": "imgui:2528", "ov_cimguiname": "ImDrawList_PopClipRect", "ret": "void", "signature": "()", @@ -2780,7 +2780,7 @@ "cimguiname": "ImDrawList_PopTextureID", "defaults": {}, "funcname": "PopTextureID", - "location": "imgui:2520", + "location": "imgui:2530", "ov_cimguiname": "ImDrawList_PopTextureID", "ret": "void", "signature": "()", @@ -2837,7 +2837,7 @@ "cimguiname": "ImDrawList_PrimQuadUV", "defaults": {}, "funcname": "PrimQuadUV", - "location": "imgui:2591", + "location": "imgui:2601", "ov_cimguiname": "ImDrawList_PrimQuadUV", "ret": "void", "signature": "(const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32)", @@ -2870,7 +2870,7 @@ "cimguiname": "ImDrawList_PrimRect", "defaults": {}, "funcname": "PrimRect", - "location": "imgui:2589", + "location": "imgui:2599", "ov_cimguiname": "ImDrawList_PrimRect", "ret": "void", "signature": "(const ImVec2,const ImVec2,ImU32)", @@ -2911,7 +2911,7 @@ "cimguiname": "ImDrawList_PrimRectUV", "defaults": {}, "funcname": "PrimRectUV", - "location": "imgui:2590", + "location": "imgui:2600", "ov_cimguiname": "ImDrawList_PrimRectUV", "ret": "void", "signature": "(const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32)", @@ -2940,7 +2940,7 @@ "cimguiname": "ImDrawList_PrimReserve", "defaults": {}, "funcname": "PrimReserve", - "location": "imgui:2587", + "location": "imgui:2597", "ov_cimguiname": "ImDrawList_PrimReserve", "ret": "void", "signature": "(int,int)", @@ -2969,7 +2969,7 @@ "cimguiname": "ImDrawList_PrimUnreserve", "defaults": {}, "funcname": "PrimUnreserve", - "location": "imgui:2588", + "location": "imgui:2598", "ov_cimguiname": "ImDrawList_PrimUnreserve", "ret": "void", "signature": "(int,int)", @@ -3002,7 +3002,7 @@ "cimguiname": "ImDrawList_PrimVtx", "defaults": {}, "funcname": "PrimVtx", - "location": "imgui:2594", + "location": "imgui:2604", "ov_cimguiname": "ImDrawList_PrimVtx", "ret": "void", "signature": "(const ImVec2,const ImVec2,ImU32)", @@ -3027,7 +3027,7 @@ "cimguiname": "ImDrawList_PrimWriteIdx", "defaults": {}, "funcname": "PrimWriteIdx", - "location": "imgui:2593", + "location": "imgui:2603", "ov_cimguiname": "ImDrawList_PrimWriteIdx", "ret": "void", "signature": "(ImDrawIdx)", @@ -3060,7 +3060,7 @@ "cimguiname": "ImDrawList_PrimWriteVtx", "defaults": {}, "funcname": "PrimWriteVtx", - "location": "imgui:2592", + "location": "imgui:2602", "ov_cimguiname": "ImDrawList_PrimWriteVtx", "ret": "void", "signature": "(const ImVec2,const ImVec2,ImU32)", @@ -3095,7 +3095,7 @@ "intersect_with_current_clip_rect": "false" }, "funcname": "PushClipRect", - "location": "imgui:2516", + "location": "imgui:2526", "ov_cimguiname": "ImDrawList_PushClipRect", "ret": "void", "signature": "(ImVec2,ImVec2,bool)", @@ -3116,7 +3116,7 @@ "cimguiname": "ImDrawList_PushClipRectFullScreen", "defaults": {}, "funcname": "PushClipRectFullScreen", - "location": "imgui:2517", + "location": "imgui:2527", "ov_cimguiname": "ImDrawList_PushClipRectFullScreen", "ret": "void", "signature": "()", @@ -3141,7 +3141,7 @@ "cimguiname": "ImDrawList_PushTextureID", "defaults": {}, "funcname": "PushTextureID", - "location": "imgui:2519", + "location": "imgui:2529", "ov_cimguiname": "ImDrawList_PushTextureID", "ret": "void", "signature": "(ImTextureID)", @@ -3166,7 +3166,7 @@ "cimguiname": "ImDrawList__CalcCircleAutoSegmentCount", "defaults": {}, "funcname": "_CalcCircleAutoSegmentCount", - "location": "imgui:2609", + "location": "imgui:2619", "ov_cimguiname": "ImDrawList__CalcCircleAutoSegmentCount", "ret": "int", "signature": "(float)const", @@ -3187,7 +3187,7 @@ "cimguiname": "ImDrawList__ClearFreeMemory", "defaults": {}, "funcname": "_ClearFreeMemory", - "location": "imgui:2603", + "location": "imgui:2613", "ov_cimguiname": "ImDrawList__ClearFreeMemory", "ret": "void", "signature": "()", @@ -3208,7 +3208,7 @@ "cimguiname": "ImDrawList__OnChangedClipRect", "defaults": {}, "funcname": "_OnChangedClipRect", - "location": "imgui:2606", + "location": "imgui:2616", "ov_cimguiname": "ImDrawList__OnChangedClipRect", "ret": "void", "signature": "()", @@ -3229,7 +3229,7 @@ "cimguiname": "ImDrawList__OnChangedTextureID", "defaults": {}, "funcname": "_OnChangedTextureID", - "location": "imgui:2607", + "location": "imgui:2617", "ov_cimguiname": "ImDrawList__OnChangedTextureID", "ret": "void", "signature": "()", @@ -3250,7 +3250,7 @@ "cimguiname": "ImDrawList__OnChangedVtxOffset", "defaults": {}, "funcname": "_OnChangedVtxOffset", - "location": "imgui:2608", + "location": "imgui:2618", "ov_cimguiname": "ImDrawList__OnChangedVtxOffset", "ret": "void", "signature": "()", @@ -3291,7 +3291,7 @@ "cimguiname": "ImDrawList__PathArcToFastEx", "defaults": {}, "funcname": "_PathArcToFastEx", - "location": "imgui:2610", + "location": "imgui:2620", "ov_cimguiname": "ImDrawList__PathArcToFastEx", "ret": "void", "signature": "(const ImVec2,float,int,int,int)", @@ -3332,7 +3332,7 @@ "cimguiname": "ImDrawList__PathArcToN", "defaults": {}, "funcname": "_PathArcToN", - "location": "imgui:2611", + "location": "imgui:2621", "ov_cimguiname": "ImDrawList__PathArcToN", "ret": "void", "signature": "(const ImVec2,float,float,float,int)", @@ -3353,7 +3353,7 @@ "cimguiname": "ImDrawList__PopUnusedDrawCmd", "defaults": {}, "funcname": "_PopUnusedDrawCmd", - "location": "imgui:2604", + "location": "imgui:2614", "ov_cimguiname": "ImDrawList__PopUnusedDrawCmd", "ret": "void", "signature": "()", @@ -3374,7 +3374,7 @@ "cimguiname": "ImDrawList__ResetForNewFrame", "defaults": {}, "funcname": "_ResetForNewFrame", - "location": "imgui:2602", + "location": "imgui:2612", "ov_cimguiname": "ImDrawList__ResetForNewFrame", "ret": "void", "signature": "()", @@ -3395,7 +3395,7 @@ "cimguiname": "ImDrawList__TryMergeDrawCmds", "defaults": {}, "funcname": "_TryMergeDrawCmds", - "location": "imgui:2605", + "location": "imgui:2615", "ov_cimguiname": "ImDrawList__TryMergeDrawCmds", "ret": "void", "signature": "()", @@ -3415,7 +3415,7 @@ "cimguiname": "ImDrawList_destroy", "defaults": {}, "destructor": true, - "location": "imgui:2515", + "location": "imgui:2525", "ov_cimguiname": "ImDrawList_destroy", "realdestructor": true, "ret": "void", @@ -3433,7 +3433,7 @@ "constructor": true, "defaults": {}, "funcname": "ImFontAtlasCustomRect", - "location": "imgui:2704", + "location": "imgui:2714", "ov_cimguiname": "ImFontAtlasCustomRect_ImFontAtlasCustomRect", "signature": "()", "stname": "ImFontAtlasCustomRect" @@ -3453,7 +3453,7 @@ "cimguiname": "ImFontAtlasCustomRect_IsPacked", "defaults": {}, "funcname": "IsPacked", - "location": "imgui:2705", + "location": "imgui:2715", "ov_cimguiname": "ImFontAtlasCustomRect_IsPacked", "ret": "bool", "signature": "()const", @@ -3519,7 +3519,7 @@ "offset": "ImVec2(0,0)" }, "funcname": "AddCustomRectFontGlyph", - "location": "imgui:2788", + "location": "imgui:2798", "ov_cimguiname": "ImFontAtlas_AddCustomRectFontGlyph", "ret": "int", "signature": "(ImFont*,ImWchar,int,int,float,const ImVec2)", @@ -3548,7 +3548,7 @@ "cimguiname": "ImFontAtlas_AddCustomRectRegular", "defaults": {}, "funcname": "AddCustomRectRegular", - "location": "imgui:2787", + "location": "imgui:2797", "ov_cimguiname": "ImFontAtlas_AddCustomRectRegular", "ret": "int", "signature": "(int,int)", @@ -3573,7 +3573,7 @@ "cimguiname": "ImFontAtlas_AddFont", "defaults": {}, "funcname": "AddFont", - "location": "imgui:2738", + "location": "imgui:2748", "ov_cimguiname": "ImFontAtlas_AddFont", "ret": "ImFont*", "signature": "(const ImFontConfig*)", @@ -3600,7 +3600,7 @@ "font_cfg": "NULL" }, "funcname": "AddFontDefault", - "location": "imgui:2739", + "location": "imgui:2749", "ov_cimguiname": "ImFontAtlas_AddFontDefault", "ret": "ImFont*", "signature": "(const ImFontConfig*)", @@ -3640,7 +3640,7 @@ "glyph_ranges": "NULL" }, "funcname": "AddFontFromFileTTF", - "location": "imgui:2740", + "location": "imgui:2750", "ov_cimguiname": "ImFontAtlas_AddFontFromFileTTF", "ret": "ImFont*", "signature": "(const char*,float,const ImFontConfig*,const ImWchar*)", @@ -3680,7 +3680,7 @@ "glyph_ranges": "NULL" }, "funcname": "AddFontFromMemoryCompressedBase85TTF", - "location": "imgui:2743", + "location": "imgui:2753", "ov_cimguiname": "ImFontAtlas_AddFontFromMemoryCompressedBase85TTF", "ret": "ImFont*", "signature": "(const char*,float,const ImFontConfig*,const ImWchar*)", @@ -3724,7 +3724,7 @@ "glyph_ranges": "NULL" }, "funcname": "AddFontFromMemoryCompressedTTF", - "location": "imgui:2742", + "location": "imgui:2752", "ov_cimguiname": "ImFontAtlas_AddFontFromMemoryCompressedTTF", "ret": "ImFont*", "signature": "(const void*,int,float,const ImFontConfig*,const ImWchar*)", @@ -3768,7 +3768,7 @@ "glyph_ranges": "NULL" }, "funcname": "AddFontFromMemoryTTF", - "location": "imgui:2741", + "location": "imgui:2751", "ov_cimguiname": "ImFontAtlas_AddFontFromMemoryTTF", "ret": "ImFont*", "signature": "(void*,int,float,const ImFontConfig*,const ImWchar*)", @@ -3789,7 +3789,7 @@ "cimguiname": "ImFontAtlas_Build", "defaults": {}, "funcname": "Build", - "location": "imgui:2754", + "location": "imgui:2764", "ov_cimguiname": "ImFontAtlas_Build", "ret": "bool", "signature": "()", @@ -3822,7 +3822,7 @@ "cimguiname": "ImFontAtlas_CalcCustomRectUV", "defaults": {}, "funcname": "CalcCustomRectUV", - "location": "imgui:2792", + "location": "imgui:2802", "ov_cimguiname": "ImFontAtlas_CalcCustomRectUV", "ret": "void", "signature": "(const ImFontAtlasCustomRect*,ImVec2*,ImVec2*)const", @@ -3843,7 +3843,7 @@ "cimguiname": "ImFontAtlas_Clear", "defaults": {}, "funcname": "Clear", - "location": "imgui:2747", + "location": "imgui:2757", "ov_cimguiname": "ImFontAtlas_Clear", "ret": "void", "signature": "()", @@ -3864,7 +3864,7 @@ "cimguiname": "ImFontAtlas_ClearFonts", "defaults": {}, "funcname": "ClearFonts", - "location": "imgui:2746", + "location": "imgui:2756", "ov_cimguiname": "ImFontAtlas_ClearFonts", "ret": "void", "signature": "()", @@ -3885,7 +3885,7 @@ "cimguiname": "ImFontAtlas_ClearInputData", "defaults": {}, "funcname": "ClearInputData", - "location": "imgui:2744", + "location": "imgui:2754", "ov_cimguiname": "ImFontAtlas_ClearInputData", "ret": "void", "signature": "()", @@ -3906,7 +3906,7 @@ "cimguiname": "ImFontAtlas_ClearTexData", "defaults": {}, "funcname": "ClearTexData", - "location": "imgui:2745", + "location": "imgui:2755", "ov_cimguiname": "ImFontAtlas_ClearTexData", "ret": "void", "signature": "()", @@ -3931,7 +3931,7 @@ "cimguiname": "ImFontAtlas_GetCustomRectByIndex", "defaults": {}, "funcname": "GetCustomRectByIndex", - "location": "imgui:2789", + "location": "imgui:2799", "ov_cimguiname": "ImFontAtlas_GetCustomRectByIndex", "ret": "ImFontAtlasCustomRect*", "signature": "(int)", @@ -3952,7 +3952,7 @@ "cimguiname": "ImFontAtlas_GetGlyphRangesChineseFull", "defaults": {}, "funcname": "GetGlyphRangesChineseFull", - "location": "imgui:2770", + "location": "imgui:2780", "ov_cimguiname": "ImFontAtlas_GetGlyphRangesChineseFull", "ret": "const ImWchar*", "signature": "()", @@ -3973,7 +3973,7 @@ "cimguiname": "ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon", "defaults": {}, "funcname": "GetGlyphRangesChineseSimplifiedCommon", - "location": "imgui:2771", + "location": "imgui:2781", "ov_cimguiname": "ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon", "ret": "const ImWchar*", "signature": "()", @@ -3994,7 +3994,7 @@ "cimguiname": "ImFontAtlas_GetGlyphRangesCyrillic", "defaults": {}, "funcname": "GetGlyphRangesCyrillic", - "location": "imgui:2772", + "location": "imgui:2782", "ov_cimguiname": "ImFontAtlas_GetGlyphRangesCyrillic", "ret": "const ImWchar*", "signature": "()", @@ -4015,7 +4015,7 @@ "cimguiname": "ImFontAtlas_GetGlyphRangesDefault", "defaults": {}, "funcname": "GetGlyphRangesDefault", - "location": "imgui:2767", + "location": "imgui:2777", "ov_cimguiname": "ImFontAtlas_GetGlyphRangesDefault", "ret": "const ImWchar*", "signature": "()", @@ -4036,7 +4036,7 @@ "cimguiname": "ImFontAtlas_GetGlyphRangesJapanese", "defaults": {}, "funcname": "GetGlyphRangesJapanese", - "location": "imgui:2769", + "location": "imgui:2779", "ov_cimguiname": "ImFontAtlas_GetGlyphRangesJapanese", "ret": "const ImWchar*", "signature": "()", @@ -4057,7 +4057,7 @@ "cimguiname": "ImFontAtlas_GetGlyphRangesKorean", "defaults": {}, "funcname": "GetGlyphRangesKorean", - "location": "imgui:2768", + "location": "imgui:2778", "ov_cimguiname": "ImFontAtlas_GetGlyphRangesKorean", "ret": "const ImWchar*", "signature": "()", @@ -4078,7 +4078,7 @@ "cimguiname": "ImFontAtlas_GetGlyphRangesThai", "defaults": {}, "funcname": "GetGlyphRangesThai", - "location": "imgui:2773", + "location": "imgui:2783", "ov_cimguiname": "ImFontAtlas_GetGlyphRangesThai", "ret": "const ImWchar*", "signature": "()", @@ -4099,7 +4099,7 @@ "cimguiname": "ImFontAtlas_GetGlyphRangesVietnamese", "defaults": {}, "funcname": "GetGlyphRangesVietnamese", - "location": "imgui:2774", + "location": "imgui:2784", "ov_cimguiname": "ImFontAtlas_GetGlyphRangesVietnamese", "ret": "const ImWchar*", "signature": "()", @@ -4140,7 +4140,7 @@ "cimguiname": "ImFontAtlas_GetMouseCursorTexData", "defaults": {}, "funcname": "GetMouseCursorTexData", - "location": "imgui:2793", + "location": "imgui:2803", "ov_cimguiname": "ImFontAtlas_GetMouseCursorTexData", "ret": "bool", "signature": "(ImGuiMouseCursor,ImVec2*,ImVec2*,ImVec2[2],ImVec2[2])", @@ -4179,7 +4179,7 @@ "out_bytes_per_pixel": "NULL" }, "funcname": "GetTexDataAsAlpha8", - "location": "imgui:2755", + "location": "imgui:2765", "ov_cimguiname": "ImFontAtlas_GetTexDataAsAlpha8", "ret": "void", "signature": "(unsigned char**,int*,int*,int*)", @@ -4218,7 +4218,7 @@ "out_bytes_per_pixel": "NULL" }, "funcname": "GetTexDataAsRGBA32", - "location": "imgui:2756", + "location": "imgui:2766", "ov_cimguiname": "ImFontAtlas_GetTexDataAsRGBA32", "ret": "void", "signature": "(unsigned char**,int*,int*,int*)", @@ -4235,7 +4235,7 @@ "constructor": true, "defaults": {}, "funcname": "ImFontAtlas", - "location": "imgui:2736", + "location": "imgui:2746", "ov_cimguiname": "ImFontAtlas_ImFontAtlas", "signature": "()", "stname": "ImFontAtlas" @@ -4255,7 +4255,7 @@ "cimguiname": "ImFontAtlas_IsBuilt", "defaults": {}, "funcname": "IsBuilt", - "location": "imgui:2757", + "location": "imgui:2767", "ov_cimguiname": "ImFontAtlas_IsBuilt", "ret": "bool", "signature": "()const", @@ -4280,7 +4280,7 @@ "cimguiname": "ImFontAtlas_SetTexID", "defaults": {}, "funcname": "SetTexID", - "location": "imgui:2758", + "location": "imgui:2768", "ov_cimguiname": "ImFontAtlas_SetTexID", "ret": "void", "signature": "(ImTextureID)", @@ -4300,7 +4300,7 @@ "cimguiname": "ImFontAtlas_destroy", "defaults": {}, "destructor": true, - "location": "imgui:2737", + "location": "imgui:2747", "ov_cimguiname": "ImFontAtlas_destroy", "realdestructor": true, "ret": "void", @@ -4318,7 +4318,7 @@ "constructor": true, "defaults": {}, "funcname": "ImFontConfig", - "location": "imgui:2664", + "location": "imgui:2674", "ov_cimguiname": "ImFontConfig_ImFontConfig", "signature": "()", "stname": "ImFontConfig" @@ -4361,7 +4361,7 @@ "cimguiname": "ImFontGlyphRangesBuilder_AddChar", "defaults": {}, "funcname": "AddChar", - "location": "imgui:2689", + "location": "imgui:2699", "ov_cimguiname": "ImFontGlyphRangesBuilder_AddChar", "ret": "void", "signature": "(ImWchar)", @@ -4386,7 +4386,7 @@ "cimguiname": "ImFontGlyphRangesBuilder_AddRanges", "defaults": {}, "funcname": "AddRanges", - "location": "imgui:2691", + "location": "imgui:2701", "ov_cimguiname": "ImFontGlyphRangesBuilder_AddRanges", "ret": "void", "signature": "(const ImWchar*)", @@ -4417,7 +4417,7 @@ "text_end": "NULL" }, "funcname": "AddText", - "location": "imgui:2690", + "location": "imgui:2700", "ov_cimguiname": "ImFontGlyphRangesBuilder_AddText", "ret": "void", "signature": "(const char*,const char*)", @@ -4442,7 +4442,7 @@ "cimguiname": "ImFontGlyphRangesBuilder_BuildRanges", "defaults": {}, "funcname": "BuildRanges", - "location": "imgui:2692", + "location": "imgui:2702", "ov_cimguiname": "ImFontGlyphRangesBuilder_BuildRanges", "ret": "void", "signature": "(ImVector_ImWchar*)", @@ -4463,7 +4463,7 @@ "cimguiname": "ImFontGlyphRangesBuilder_Clear", "defaults": {}, "funcname": "Clear", - "location": "imgui:2686", + "location": "imgui:2696", "ov_cimguiname": "ImFontGlyphRangesBuilder_Clear", "ret": "void", "signature": "()", @@ -4488,7 +4488,7 @@ "cimguiname": "ImFontGlyphRangesBuilder_GetBit", "defaults": {}, "funcname": "GetBit", - "location": "imgui:2687", + "location": "imgui:2697", "ov_cimguiname": "ImFontGlyphRangesBuilder_GetBit", "ret": "bool", "signature": "(size_t)const", @@ -4505,7 +4505,7 @@ "constructor": true, "defaults": {}, "funcname": "ImFontGlyphRangesBuilder", - "location": "imgui:2685", + "location": "imgui:2695", "ov_cimguiname": "ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder", "signature": "()", "stname": "ImFontGlyphRangesBuilder" @@ -4529,7 +4529,7 @@ "cimguiname": "ImFontGlyphRangesBuilder_SetBit", "defaults": {}, "funcname": "SetBit", - "location": "imgui:2688", + "location": "imgui:2698", "ov_cimguiname": "ImFontGlyphRangesBuilder_SetBit", "ret": "void", "signature": "(size_t)", @@ -4613,7 +4613,7 @@ "cimguiname": "ImFont_AddGlyph", "defaults": {}, "funcname": "AddGlyph", - "location": "imgui:2881", + "location": "imgui:2891", "ov_cimguiname": "ImFont_AddGlyph", "ret": "void", "signature": "(const ImFontConfig*,ImWchar,float,float,float,float,float,float,float,float,float)", @@ -4648,7 +4648,7 @@ "overwrite_dst": "true" }, "funcname": "AddRemapChar", - "location": "imgui:2882", + "location": "imgui:2892", "ov_cimguiname": "ImFont_AddRemapChar", "ret": "void", "signature": "(ImWchar,ImWchar,bool)", @@ -4669,7 +4669,7 @@ "cimguiname": "ImFont_BuildLookupTable", "defaults": {}, "funcname": "BuildLookupTable", - "location": "imgui:2878", + "location": "imgui:2888", "ov_cimguiname": "ImFont_BuildLookupTable", "ret": "void", "signature": "()", @@ -4721,7 +4721,7 @@ "text_end": "NULL" }, "funcname": "CalcTextSizeA", - "location": "imgui:2872", + "location": "imgui:2882", "nonUDT": 1, "ov_cimguiname": "ImFont_CalcTextSizeA", "ret": "void", @@ -4759,7 +4759,7 @@ "cimguiname": "ImFont_CalcWordWrapPositionA", "defaults": {}, "funcname": "CalcWordWrapPositionA", - "location": "imgui:2873", + "location": "imgui:2883", "ov_cimguiname": "ImFont_CalcWordWrapPositionA", "ret": "const char*", "signature": "(float,const char*,const char*,float)const", @@ -4780,7 +4780,7 @@ "cimguiname": "ImFont_ClearOutputData", "defaults": {}, "funcname": "ClearOutputData", - "location": "imgui:2879", + "location": "imgui:2889", "ov_cimguiname": "ImFont_ClearOutputData", "ret": "void", "signature": "()", @@ -4805,7 +4805,7 @@ "cimguiname": "ImFont_FindGlyph", "defaults": {}, "funcname": "FindGlyph", - "location": "imgui:2864", + "location": "imgui:2874", "ov_cimguiname": "ImFont_FindGlyph", "ret": "const ImFontGlyph*", "signature": "(ImWchar)const", @@ -4830,7 +4830,7 @@ "cimguiname": "ImFont_FindGlyphNoFallback", "defaults": {}, "funcname": "FindGlyphNoFallback", - "location": "imgui:2865", + "location": "imgui:2875", "ov_cimguiname": "ImFont_FindGlyphNoFallback", "ret": "const ImFontGlyph*", "signature": "(ImWchar)const", @@ -4855,7 +4855,7 @@ "cimguiname": "ImFont_GetCharAdvance", "defaults": {}, "funcname": "GetCharAdvance", - "location": "imgui:2866", + "location": "imgui:2876", "ov_cimguiname": "ImFont_GetCharAdvance", "ret": "float", "signature": "(ImWchar)const", @@ -4876,7 +4876,7 @@ "cimguiname": "ImFont_GetDebugName", "defaults": {}, "funcname": "GetDebugName", - "location": "imgui:2868", + "location": "imgui:2878", "ov_cimguiname": "ImFont_GetDebugName", "ret": "const char*", "signature": "()const", @@ -4901,7 +4901,7 @@ "cimguiname": "ImFont_GrowIndex", "defaults": {}, "funcname": "GrowIndex", - "location": "imgui:2880", + "location": "imgui:2890", "ov_cimguiname": "ImFont_GrowIndex", "ret": "void", "signature": "(int)", @@ -4918,7 +4918,7 @@ "constructor": true, "defaults": {}, "funcname": "ImFont", - "location": "imgui:2862", + "location": "imgui:2872", "ov_cimguiname": "ImFont_ImFont", "signature": "()", "stname": "ImFont" @@ -4946,7 +4946,7 @@ "cimguiname": "ImFont_IsGlyphRangeUnused", "defaults": {}, "funcname": "IsGlyphRangeUnused", - "location": "imgui:2884", + "location": "imgui:2894", "ov_cimguiname": "ImFont_IsGlyphRangeUnused", "ret": "bool", "signature": "(unsigned int,unsigned int)", @@ -4967,7 +4967,7 @@ "cimguiname": "ImFont_IsLoaded", "defaults": {}, "funcname": "IsLoaded", - "location": "imgui:2867", + "location": "imgui:2877", "ov_cimguiname": "ImFont_IsLoaded", "ret": "bool", "signature": "()const", @@ -5008,7 +5008,7 @@ "cimguiname": "ImFont_RenderChar", "defaults": {}, "funcname": "RenderChar", - "location": "imgui:2874", + "location": "imgui:2884", "ov_cimguiname": "ImFont_RenderChar", "ret": "void", "signature": "(ImDrawList*,float,ImVec2,ImU32,ImWchar)const", @@ -5068,7 +5068,7 @@ "wrap_width": "0.0f" }, "funcname": "RenderText", - "location": "imgui:2875", + "location": "imgui:2885", "ov_cimguiname": "ImFont_RenderText", "ret": "void", "signature": "(ImDrawList*,float,ImVec2,ImU32,const ImVec4,const char*,const char*,float,bool)const", @@ -5097,7 +5097,7 @@ "cimguiname": "ImFont_SetGlyphVisible", "defaults": {}, "funcname": "SetGlyphVisible", - "location": "imgui:2883", + "location": "imgui:2893", "ov_cimguiname": "ImFont_SetGlyphVisible", "ret": "void", "signature": "(ImWchar,bool)", @@ -5117,7 +5117,7 @@ "cimguiname": "ImFont_destroy", "defaults": {}, "destructor": true, - "location": "imgui:2863", + "location": "imgui:2873", "ov_cimguiname": "ImFont_destroy", "realdestructor": true, "ret": "void", @@ -5135,7 +5135,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiComboPreviewData", - "location": "imgui_internal:987", + "location": "imgui_internal:990", "ov_cimguiname": "ImGuiComboPreviewData_ImGuiComboPreviewData", "signature": "()", "stname": "ImGuiComboPreviewData" @@ -5170,7 +5170,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiContextHook", - "location": "imgui_internal:1573", + "location": "imgui_internal:1663", "ov_cimguiname": "ImGuiContextHook_ImGuiContextHook", "signature": "()", "stname": "ImGuiContextHook" @@ -5210,7 +5210,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiContext", - "location": "imgui_internal:1844", + "location": "imgui_internal:1941", "ov_cimguiname": "ImGuiContext_ImGuiContext", "signature": "(ImFontAtlas*)", "stname": "ImGuiContext" @@ -5245,7 +5245,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiDockContext", - "location": "imgui_internal:1426", + "location": "imgui_internal:1508", "ov_cimguiname": "ImGuiDockContext_ImGuiDockContext", "signature": "()", "stname": "ImGuiDockContext" @@ -5285,7 +5285,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiDockNode", - "location": "imgui_internal:1383", + "location": "imgui_internal:1465", "ov_cimguiname": "ImGuiDockNode_ImGuiDockNode", "signature": "(ImGuiID)", "stname": "ImGuiDockNode" @@ -5305,7 +5305,7 @@ "cimguiname": "ImGuiDockNode_IsCentralNode", "defaults": {}, "funcname": "IsCentralNode", - "location": "imgui_internal:1388", + "location": "imgui_internal:1470", "ov_cimguiname": "ImGuiDockNode_IsCentralNode", "ret": "bool", "signature": "()const", @@ -5326,7 +5326,7 @@ "cimguiname": "ImGuiDockNode_IsDockSpace", "defaults": {}, "funcname": "IsDockSpace", - "location": "imgui_internal:1386", + "location": "imgui_internal:1468", "ov_cimguiname": "ImGuiDockNode_IsDockSpace", "ret": "bool", "signature": "()const", @@ -5347,7 +5347,7 @@ "cimguiname": "ImGuiDockNode_IsEmpty", "defaults": {}, "funcname": "IsEmpty", - "location": "imgui_internal:1393", + "location": "imgui_internal:1475", "ov_cimguiname": "ImGuiDockNode_IsEmpty", "ret": "bool", "signature": "()const", @@ -5368,7 +5368,7 @@ "cimguiname": "ImGuiDockNode_IsFloatingNode", "defaults": {}, "funcname": "IsFloatingNode", - "location": "imgui_internal:1387", + "location": "imgui_internal:1469", "ov_cimguiname": "ImGuiDockNode_IsFloatingNode", "ret": "bool", "signature": "()const", @@ -5389,7 +5389,7 @@ "cimguiname": "ImGuiDockNode_IsHiddenTabBar", "defaults": {}, "funcname": "IsHiddenTabBar", - "location": "imgui_internal:1389", + "location": "imgui_internal:1471", "ov_cimguiname": "ImGuiDockNode_IsHiddenTabBar", "ret": "bool", "signature": "()const", @@ -5410,7 +5410,7 @@ "cimguiname": "ImGuiDockNode_IsLeafNode", "defaults": {}, "funcname": "IsLeafNode", - "location": "imgui_internal:1392", + "location": "imgui_internal:1474", "ov_cimguiname": "ImGuiDockNode_IsLeafNode", "ret": "bool", "signature": "()const", @@ -5431,7 +5431,7 @@ "cimguiname": "ImGuiDockNode_IsNoTabBar", "defaults": {}, "funcname": "IsNoTabBar", - "location": "imgui_internal:1390", + "location": "imgui_internal:1472", "ov_cimguiname": "ImGuiDockNode_IsNoTabBar", "ret": "bool", "signature": "()const", @@ -5452,7 +5452,7 @@ "cimguiname": "ImGuiDockNode_IsRootNode", "defaults": {}, "funcname": "IsRootNode", - "location": "imgui_internal:1385", + "location": "imgui_internal:1467", "ov_cimguiname": "ImGuiDockNode_IsRootNode", "ret": "bool", "signature": "()const", @@ -5473,7 +5473,7 @@ "cimguiname": "ImGuiDockNode_IsSplitNode", "defaults": {}, "funcname": "IsSplitNode", - "location": "imgui_internal:1391", + "location": "imgui_internal:1473", "ov_cimguiname": "ImGuiDockNode_IsSplitNode", "ret": "bool", "signature": "()const", @@ -5498,7 +5498,7 @@ "cimguiname": "ImGuiDockNode_Rect", "defaults": {}, "funcname": "Rect", - "location": "imgui_internal:1394", + "location": "imgui_internal:1476", "nonUDT": 1, "ov_cimguiname": "ImGuiDockNode_Rect", "ret": "void", @@ -5524,7 +5524,7 @@ "cimguiname": "ImGuiDockNode_SetLocalFlags", "defaults": {}, "funcname": "SetLocalFlags", - "location": "imgui_internal:1396", + "location": "imgui_internal:1478", "ov_cimguiname": "ImGuiDockNode_SetLocalFlags", "ret": "void", "signature": "(ImGuiDockNodeFlags)", @@ -5545,7 +5545,7 @@ "cimguiname": "ImGuiDockNode_UpdateMergedFlags", "defaults": {}, "funcname": "UpdateMergedFlags", - "location": "imgui_internal:1397", + "location": "imgui_internal:1479", "ov_cimguiname": "ImGuiDockNode_UpdateMergedFlags", "ret": "void", "signature": "()", @@ -5565,7 +5565,7 @@ "cimguiname": "ImGuiDockNode_destroy", "defaults": {}, "destructor": true, - "location": "imgui_internal:1384", + "location": "imgui_internal:1466", "ov_cimguiname": "ImGuiDockNode_destroy", "realdestructor": true, "ret": "void", @@ -5591,7 +5591,7 @@ "cimguiname": "ImGuiIO_AddFocusEvent", "defaults": {}, "funcname": "AddFocusEvent", - "location": "imgui:1976", + "location": "imgui:1983", "ov_cimguiname": "ImGuiIO_AddFocusEvent", "ret": "void", "signature": "(bool)", @@ -5616,7 +5616,7 @@ "cimguiname": "ImGuiIO_AddInputCharacter", "defaults": {}, "funcname": "AddInputCharacter", - "location": "imgui:1973", + "location": "imgui:1980", "ov_cimguiname": "ImGuiIO_AddInputCharacter", "ret": "void", "signature": "(unsigned int)", @@ -5641,7 +5641,7 @@ "cimguiname": "ImGuiIO_AddInputCharacterUTF16", "defaults": {}, "funcname": "AddInputCharacterUTF16", - "location": "imgui:1974", + "location": "imgui:1981", "ov_cimguiname": "ImGuiIO_AddInputCharacterUTF16", "ret": "void", "signature": "(ImWchar16)", @@ -5666,7 +5666,7 @@ "cimguiname": "ImGuiIO_AddInputCharactersUTF8", "defaults": {}, "funcname": "AddInputCharactersUTF8", - "location": "imgui:1975", + "location": "imgui:1982", "ov_cimguiname": "ImGuiIO_AddInputCharactersUTF8", "ret": "void", "signature": "(const char*)", @@ -5687,7 +5687,7 @@ "cimguiname": "ImGuiIO_ClearInputCharacters", "defaults": {}, "funcname": "ClearInputCharacters", - "location": "imgui:1977", + "location": "imgui:1984", "ov_cimguiname": "ImGuiIO_ClearInputCharacters", "ret": "void", "signature": "()", @@ -5708,7 +5708,7 @@ "cimguiname": "ImGuiIO_ClearInputKeys", "defaults": {}, "funcname": "ClearInputKeys", - "location": "imgui:1978", + "location": "imgui:1985", "ov_cimguiname": "ImGuiIO_ClearInputKeys", "ret": "void", "signature": "()", @@ -5725,7 +5725,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiIO", - "location": "imgui:2030", + "location": "imgui:2038", "ov_cimguiname": "ImGuiIO_ImGuiIO", "signature": "()", "stname": "ImGuiIO" @@ -5764,7 +5764,7 @@ "cimguiname": "ImGuiInputTextCallbackData_ClearSelection", "defaults": {}, "funcname": "ClearSelection", - "location": "imgui:2071", + "location": "imgui:2079", "ov_cimguiname": "ImGuiInputTextCallbackData_ClearSelection", "ret": "void", "signature": "()", @@ -5793,7 +5793,7 @@ "cimguiname": "ImGuiInputTextCallbackData_DeleteChars", "defaults": {}, "funcname": "DeleteChars", - "location": "imgui:2068", + "location": "imgui:2076", "ov_cimguiname": "ImGuiInputTextCallbackData_DeleteChars", "ret": "void", "signature": "(int,int)", @@ -5814,7 +5814,7 @@ "cimguiname": "ImGuiInputTextCallbackData_HasSelection", "defaults": {}, "funcname": "HasSelection", - "location": "imgui:2072", + "location": "imgui:2080", "ov_cimguiname": "ImGuiInputTextCallbackData_HasSelection", "ret": "bool", "signature": "()const", @@ -5831,7 +5831,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiInputTextCallbackData", - "location": "imgui:2067", + "location": "imgui:2075", "ov_cimguiname": "ImGuiInputTextCallbackData_ImGuiInputTextCallbackData", "signature": "()", "stname": "ImGuiInputTextCallbackData" @@ -5865,7 +5865,7 @@ "text_end": "NULL" }, "funcname": "InsertChars", - "location": "imgui:2069", + "location": "imgui:2077", "ov_cimguiname": "ImGuiInputTextCallbackData_InsertChars", "ret": "void", "signature": "(int,const char*,const char*)", @@ -5886,7 +5886,7 @@ "cimguiname": "ImGuiInputTextCallbackData_SelectAll", "defaults": {}, "funcname": "SelectAll", - "location": "imgui:2070", + "location": "imgui:2078", "ov_cimguiname": "ImGuiInputTextCallbackData_SelectAll", "ret": "void", "signature": "()", @@ -5926,7 +5926,7 @@ "cimguiname": "ImGuiInputTextState_ClearFreeMemory", "defaults": {}, "funcname": "ClearFreeMemory", - "location": "imgui_internal:1047", + "location": "imgui_internal:1048", "ov_cimguiname": "ImGuiInputTextState_ClearFreeMemory", "ret": "void", "signature": "()", @@ -5947,7 +5947,7 @@ "cimguiname": "ImGuiInputTextState_ClearSelection", "defaults": {}, "funcname": "ClearSelection", - "location": "imgui_internal:1056", + "location": "imgui_internal:1057", "ov_cimguiname": "ImGuiInputTextState_ClearSelection", "ret": "void", "signature": "()", @@ -5968,7 +5968,7 @@ "cimguiname": "ImGuiInputTextState_ClearText", "defaults": {}, "funcname": "ClearText", - "location": "imgui_internal:1046", + "location": "imgui_internal:1047", "ov_cimguiname": "ImGuiInputTextState_ClearText", "ret": "void", "signature": "()", @@ -5989,7 +5989,7 @@ "cimguiname": "ImGuiInputTextState_CursorAnimReset", "defaults": {}, "funcname": "CursorAnimReset", - "location": "imgui_internal:1053", + "location": "imgui_internal:1054", "ov_cimguiname": "ImGuiInputTextState_CursorAnimReset", "ret": "void", "signature": "()", @@ -6010,7 +6010,7 @@ "cimguiname": "ImGuiInputTextState_CursorClamp", "defaults": {}, "funcname": "CursorClamp", - "location": "imgui_internal:1054", + "location": "imgui_internal:1055", "ov_cimguiname": "ImGuiInputTextState_CursorClamp", "ret": "void", "signature": "()", @@ -6031,7 +6031,7 @@ "cimguiname": "ImGuiInputTextState_GetCursorPos", "defaults": {}, "funcname": "GetCursorPos", - "location": "imgui_internal:1057", + "location": "imgui_internal:1058", "ov_cimguiname": "ImGuiInputTextState_GetCursorPos", "ret": "int", "signature": "()const", @@ -6052,7 +6052,7 @@ "cimguiname": "ImGuiInputTextState_GetRedoAvailCount", "defaults": {}, "funcname": "GetRedoAvailCount", - "location": "imgui_internal:1049", + "location": "imgui_internal:1050", "ov_cimguiname": "ImGuiInputTextState_GetRedoAvailCount", "ret": "int", "signature": "()const", @@ -6073,7 +6073,7 @@ "cimguiname": "ImGuiInputTextState_GetSelectionEnd", "defaults": {}, "funcname": "GetSelectionEnd", - "location": "imgui_internal:1059", + "location": "imgui_internal:1060", "ov_cimguiname": "ImGuiInputTextState_GetSelectionEnd", "ret": "int", "signature": "()const", @@ -6094,7 +6094,7 @@ "cimguiname": "ImGuiInputTextState_GetSelectionStart", "defaults": {}, "funcname": "GetSelectionStart", - "location": "imgui_internal:1058", + "location": "imgui_internal:1059", "ov_cimguiname": "ImGuiInputTextState_GetSelectionStart", "ret": "int", "signature": "()const", @@ -6115,7 +6115,7 @@ "cimguiname": "ImGuiInputTextState_GetUndoAvailCount", "defaults": {}, "funcname": "GetUndoAvailCount", - "location": "imgui_internal:1048", + "location": "imgui_internal:1049", "ov_cimguiname": "ImGuiInputTextState_GetUndoAvailCount", "ret": "int", "signature": "()const", @@ -6136,7 +6136,7 @@ "cimguiname": "ImGuiInputTextState_HasSelection", "defaults": {}, "funcname": "HasSelection", - "location": "imgui_internal:1055", + "location": "imgui_internal:1056", "ov_cimguiname": "ImGuiInputTextState_HasSelection", "ret": "bool", "signature": "()const", @@ -6153,7 +6153,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiInputTextState", - "location": "imgui_internal:1045", + "location": "imgui_internal:1046", "ov_cimguiname": "ImGuiInputTextState_ImGuiInputTextState", "signature": "()", "stname": "ImGuiInputTextState" @@ -6177,7 +6177,7 @@ "cimguiname": "ImGuiInputTextState_OnKeyPressed", "defaults": {}, "funcname": "OnKeyPressed", - "location": "imgui_internal:1050", + "location": "imgui_internal:1051", "ov_cimguiname": "ImGuiInputTextState_OnKeyPressed", "ret": "void", "signature": "(int)", @@ -6198,7 +6198,7 @@ "cimguiname": "ImGuiInputTextState_SelectAll", "defaults": {}, "funcname": "SelectAll", - "location": "imgui_internal:1060", + "location": "imgui_internal:1061", "ov_cimguiname": "ImGuiInputTextState_SelectAll", "ret": "void", "signature": "()", @@ -6234,7 +6234,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiLastItemData", - "location": "imgui_internal:1149", + "location": "imgui_internal:1151", "ov_cimguiname": "ImGuiLastItemData_ImGuiLastItemData", "signature": "()", "stname": "ImGuiLastItemData" @@ -6259,6 +6259,126 @@ "stname": "ImGuiLastItemData" } ], + "ImGuiListClipperData_ImGuiListClipperData": [ + { + "args": "()", + "argsT": [], + "argsoriginal": "()", + "call_args": "()", + "cimguiname": "ImGuiListClipperData_ImGuiListClipperData", + "constructor": true, + "defaults": {}, + "funcname": "ImGuiListClipperData", + "location": "imgui_internal:1219", + "ov_cimguiname": "ImGuiListClipperData_ImGuiListClipperData", + "signature": "()", + "stname": "ImGuiListClipperData" + } + ], + "ImGuiListClipperData_Reset": [ + { + "args": "(ImGuiListClipperData* self,ImGuiListClipper* clipper)", + "argsT": [ + { + "name": "self", + "type": "ImGuiListClipperData*" + }, + { + "name": "clipper", + "type": "ImGuiListClipper*" + } + ], + "argsoriginal": "(ImGuiListClipper* clipper)", + "call_args": "(clipper)", + "cimguiname": "ImGuiListClipperData_Reset", + "defaults": {}, + "funcname": "Reset", + "location": "imgui_internal:1220", + "ov_cimguiname": "ImGuiListClipperData_Reset", + "ret": "void", + "signature": "(ImGuiListClipper*)", + "stname": "ImGuiListClipperData" + } + ], + "ImGuiListClipperData_destroy": [ + { + "args": "(ImGuiListClipperData* self)", + "argsT": [ + { + "name": "self", + "type": "ImGuiListClipperData*" + } + ], + "call_args": "(self)", + "cimguiname": "ImGuiListClipperData_destroy", + "defaults": {}, + "destructor": true, + "ov_cimguiname": "ImGuiListClipperData_destroy", + "ret": "void", + "signature": "(ImGuiListClipperData*)", + "stname": "ImGuiListClipperData" + } + ], + "ImGuiListClipperRange_FromIndices": [ + { + "args": "(int min,int max)", + "argsT": [ + { + "name": "min", + "type": "int" + }, + { + "name": "max", + "type": "int" + } + ], + "argsoriginal": "(int min,int max)", + "call_args": "(min,max)", + "cimguiname": "ImGuiListClipperRange_FromIndices", + "defaults": {}, + "funcname": "FromIndices", + "is_static_function": true, + "location": "imgui_internal:1206", + "ov_cimguiname": "ImGuiListClipperRange_FromIndices", + "ret": "ImGuiListClipperRange", + "signature": "(int,int)", + "stname": "ImGuiListClipperRange" + } + ], + "ImGuiListClipperRange_FromPositions": [ + { + "args": "(float y1,float y2,int off_min,int off_max)", + "argsT": [ + { + "name": "y1", + "type": "float" + }, + { + "name": "y2", + "type": "float" + }, + { + "name": "off_min", + "type": "int" + }, + { + "name": "off_max", + "type": "int" + } + ], + "argsoriginal": "(float y1,float y2,int off_min,int off_max)", + "call_args": "(y1,y2,off_min,off_max)", + "cimguiname": "ImGuiListClipperRange_FromPositions", + "defaults": {}, + "funcname": "FromPositions", + "is_static_function": true, + "location": "imgui_internal:1207", + "ov_cimguiname": "ImGuiListClipperRange_FromPositions", + "ret": "ImGuiListClipperRange", + "signature": "(float,float,int,int)", + "stname": "ImGuiListClipperRange" + } + ], "ImGuiListClipper_Begin": [ { "args": "(ImGuiListClipper* self,int items_count,float items_height)", @@ -6283,7 +6403,7 @@ "items_height": "-1.0f" }, "funcname": "Begin", - "location": "imgui:2305", + "location": "imgui:2312", "ov_cimguiname": "ImGuiListClipper_Begin", "ret": "void", "signature": "(int,float)", @@ -6304,13 +6424,42 @@ "cimguiname": "ImGuiListClipper_End", "defaults": {}, "funcname": "End", - "location": "imgui:2306", + "location": "imgui:2313", "ov_cimguiname": "ImGuiListClipper_End", "ret": "void", "signature": "()", "stname": "ImGuiListClipper" } ], + "ImGuiListClipper_ForceDisplayRangeByIndices": [ + { + "args": "(ImGuiListClipper* self,int item_min,int item_max)", + "argsT": [ + { + "name": "self", + "type": "ImGuiListClipper*" + }, + { + "name": "item_min", + "type": "int" + }, + { + "name": "item_max", + "type": "int" + } + ], + "argsoriginal": "(int item_min,int item_max)", + "call_args": "(item_min,item_max)", + "cimguiname": "ImGuiListClipper_ForceDisplayRangeByIndices", + "defaults": {}, + "funcname": "ForceDisplayRangeByIndices", + "location": "imgui:2317", + "ov_cimguiname": "ImGuiListClipper_ForceDisplayRangeByIndices", + "ret": "void", + "signature": "(int,int)", + "stname": "ImGuiListClipper" + } + ], "ImGuiListClipper_ImGuiListClipper": [ { "args": "()", @@ -6321,7 +6470,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiListClipper", - "location": "imgui:2300", + "location": "imgui:2310", "ov_cimguiname": "ImGuiListClipper_ImGuiListClipper", "signature": "()", "stname": "ImGuiListClipper" @@ -6341,7 +6490,7 @@ "cimguiname": "ImGuiListClipper_Step", "defaults": {}, "funcname": "Step", - "location": "imgui:2307", + "location": "imgui:2314", "ov_cimguiname": "ImGuiListClipper_Step", "ret": "bool", "signature": "()", @@ -6361,7 +6510,7 @@ "cimguiname": "ImGuiListClipper_destroy", "defaults": {}, "destructor": true, - "location": "imgui:2301", + "location": "imgui:2311", "ov_cimguiname": "ImGuiListClipper_destroy", "realdestructor": true, "ret": "void", @@ -6387,7 +6536,7 @@ "cimguiname": "ImGuiMenuColumns_CalcNextTotalWidth", "defaults": {}, "funcname": "CalcNextTotalWidth", - "location": "imgui_internal:1021", + "location": "imgui_internal:1024", "ov_cimguiname": "ImGuiMenuColumns_CalcNextTotalWidth", "ret": "void", "signature": "(bool)", @@ -6424,7 +6573,7 @@ "cimguiname": "ImGuiMenuColumns_DeclColumns", "defaults": {}, "funcname": "DeclColumns", - "location": "imgui_internal:1020", + "location": "imgui_internal:1023", "ov_cimguiname": "ImGuiMenuColumns_DeclColumns", "ret": "float", "signature": "(float,float,float,float)", @@ -6441,7 +6590,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiMenuColumns", - "location": "imgui_internal:1018", + "location": "imgui_internal:1021", "ov_cimguiname": "ImGuiMenuColumns_ImGuiMenuColumns", "signature": "()", "stname": "ImGuiMenuColumns" @@ -6469,7 +6618,7 @@ "cimguiname": "ImGuiMenuColumns_Update", "defaults": {}, "funcname": "Update", - "location": "imgui_internal:1019", + "location": "imgui_internal:1022", "ov_cimguiname": "ImGuiMenuColumns_Update", "ret": "void", "signature": "(float,bool)", @@ -6505,7 +6654,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiMetricsConfig", - "location": "imgui_internal:1530", + "location": "imgui_internal:1613", "ov_cimguiname": "ImGuiMetricsConfig_ImGuiMetricsConfig", "signature": "()", "stname": "ImGuiMetricsConfig" @@ -6544,7 +6693,7 @@ "cimguiname": "ImGuiNavItemData_Clear", "defaults": {}, "funcname": "Clear", - "location": "imgui_internal:1226", + "location": "imgui_internal:1305", "ov_cimguiname": "ImGuiNavItemData_Clear", "ret": "void", "signature": "()", @@ -6561,7 +6710,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiNavItemData", - "location": "imgui_internal:1225", + "location": "imgui_internal:1304", "ov_cimguiname": "ImGuiNavItemData_ImGuiNavItemData", "signature": "()", "stname": "ImGuiNavItemData" @@ -6600,7 +6749,7 @@ "cimguiname": "ImGuiNextItemData_ClearFlags", "defaults": {}, "funcname": "ClearFlags", - "location": "imgui_internal:1137", + "location": "imgui_internal:1138", "ov_cimguiname": "ImGuiNextItemData_ClearFlags", "ret": "void", "signature": "()", @@ -6617,7 +6766,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiNextItemData", - "location": "imgui_internal:1136", + "location": "imgui_internal:1137", "ov_cimguiname": "ImGuiNextItemData_ImGuiNextItemData", "signature": "()", "stname": "ImGuiNextItemData" @@ -6656,7 +6805,7 @@ "cimguiname": "ImGuiNextWindowData_ClearFlags", "defaults": {}, "funcname": "ClearFlags", - "location": "imgui_internal:1118", + "location": "imgui_internal:1119", "ov_cimguiname": "ImGuiNextWindowData_ClearFlags", "ret": "void", "signature": "()", @@ -6673,7 +6822,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiNextWindowData", - "location": "imgui_internal:1117", + "location": "imgui_internal:1118", "ov_cimguiname": "ImGuiNextWindowData_ImGuiNextWindowData", "signature": "()", "stname": "ImGuiNextWindowData" @@ -6708,7 +6857,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiOldColumnData", - "location": "imgui_internal:1261", + "location": "imgui_internal:1340", "ov_cimguiname": "ImGuiOldColumnData_ImGuiOldColumnData", "signature": "()", "stname": "ImGuiOldColumnData" @@ -6743,7 +6892,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiOldColumns", - "location": "imgui_internal:1282", + "location": "imgui_internal:1361", "ov_cimguiname": "ImGuiOldColumns_ImGuiOldColumns", "signature": "()", "stname": "ImGuiOldColumns" @@ -6778,7 +6927,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiOnceUponAFrame", - "location": "imgui:2168", + "location": "imgui:2176", "ov_cimguiname": "ImGuiOnceUponAFrame_ImGuiOnceUponAFrame", "signature": "()", "stname": "ImGuiOnceUponAFrame" @@ -6817,7 +6966,7 @@ "cimguiname": "ImGuiPayload_Clear", "defaults": {}, "funcname": "Clear", - "location": "imgui:2122", + "location": "imgui:2130", "ov_cimguiname": "ImGuiPayload_Clear", "ret": "void", "signature": "()", @@ -6834,7 +6983,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiPayload", - "location": "imgui:2121", + "location": "imgui:2129", "ov_cimguiname": "ImGuiPayload_ImGuiPayload", "signature": "()", "stname": "ImGuiPayload" @@ -6858,7 +7007,7 @@ "cimguiname": "ImGuiPayload_IsDataType", "defaults": {}, "funcname": "IsDataType", - "location": "imgui:2123", + "location": "imgui:2131", "ov_cimguiname": "ImGuiPayload_IsDataType", "ret": "bool", "signature": "(const char*)const", @@ -6879,7 +7028,7 @@ "cimguiname": "ImGuiPayload_IsDelivery", "defaults": {}, "funcname": "IsDelivery", - "location": "imgui:2125", + "location": "imgui:2133", "ov_cimguiname": "ImGuiPayload_IsDelivery", "ret": "bool", "signature": "()const", @@ -6900,7 +7049,7 @@ "cimguiname": "ImGuiPayload_IsPreview", "defaults": {}, "funcname": "IsPreview", - "location": "imgui:2124", + "location": "imgui:2132", "ov_cimguiname": "ImGuiPayload_IsPreview", "ret": "bool", "signature": "()const", @@ -6936,7 +7085,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiPlatformIO", - "location": "imgui:3058", + "location": "imgui:3068", "ov_cimguiname": "ImGuiPlatformIO_ImGuiPlatformIO", "signature": "()", "stname": "ImGuiPlatformIO" @@ -6971,7 +7120,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiPlatformMonitor", - "location": "imgui:3068", + "location": "imgui:3078", "ov_cimguiname": "ImGuiPlatformMonitor_ImGuiPlatformMonitor", "signature": "()", "stname": "ImGuiPlatformMonitor" @@ -7006,7 +7155,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiPopupData", - "location": "imgui_internal:1074", + "location": "imgui_internal:1075", "ov_cimguiname": "ImGuiPopupData_ImGuiPopupData", "signature": "()", "stname": "ImGuiPopupData" @@ -7046,7 +7195,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiPtrOrIndex", - "location": "imgui_internal:1170", + "location": "imgui_internal:1190", "ov_cimguiname": "ImGuiPtrOrIndex_ImGuiPtrOrIndexPtr", "signature": "(void*)", "stname": "ImGuiPtrOrIndex" @@ -7065,7 +7214,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiPtrOrIndex", - "location": "imgui_internal:1171", + "location": "imgui_internal:1191", "ov_cimguiname": "ImGuiPtrOrIndex_ImGuiPtrOrIndexInt", "signature": "(int)", "stname": "ImGuiPtrOrIndex" @@ -7100,7 +7249,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiSettingsHandler", - "location": "imgui_internal:1512", + "location": "imgui_internal:1594", "ov_cimguiname": "ImGuiSettingsHandler_ImGuiSettingsHandler", "signature": "()", "stname": "ImGuiSettingsHandler" @@ -7125,6 +7274,41 @@ "stname": "ImGuiSettingsHandler" } ], + "ImGuiStackLevelInfo_ImGuiStackLevelInfo": [ + { + "args": "()", + "argsT": [], + "argsoriginal": "()", + "call_args": "()", + "cimguiname": "ImGuiStackLevelInfo_ImGuiStackLevelInfo", + "constructor": true, + "defaults": {}, + "funcname": "ImGuiStackLevelInfo", + "location": "imgui_internal:1634", + "ov_cimguiname": "ImGuiStackLevelInfo_ImGuiStackLevelInfo", + "signature": "()", + "stname": "ImGuiStackLevelInfo" + } + ], + "ImGuiStackLevelInfo_destroy": [ + { + "args": "(ImGuiStackLevelInfo* self)", + "argsT": [ + { + "name": "self", + "type": "ImGuiStackLevelInfo*" + } + ], + "call_args": "(self)", + "cimguiname": "ImGuiStackLevelInfo_destroy", + "defaults": {}, + "destructor": true, + "ov_cimguiname": "ImGuiStackLevelInfo_destroy", + "ret": "void", + "signature": "(ImGuiStackLevelInfo*)", + "stname": "ImGuiStackLevelInfo" + } + ], "ImGuiStackSizes_CompareWithCurrentState": [ { "args": "(ImGuiStackSizes* self)", @@ -7139,7 +7323,7 @@ "cimguiname": "ImGuiStackSizes_CompareWithCurrentState", "defaults": {}, "funcname": "CompareWithCurrentState", - "location": "imgui_internal:1555", + "location": "imgui_internal:1168", "ov_cimguiname": "ImGuiStackSizes_CompareWithCurrentState", "ret": "void", "signature": "()", @@ -7156,7 +7340,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiStackSizes", - "location": "imgui_internal:1553", + "location": "imgui_internal:1166", "ov_cimguiname": "ImGuiStackSizes_ImGuiStackSizes", "signature": "()", "stname": "ImGuiStackSizes" @@ -7176,7 +7360,7 @@ "cimguiname": "ImGuiStackSizes_SetToCurrentState", "defaults": {}, "funcname": "SetToCurrentState", - "location": "imgui_internal:1554", + "location": "imgui_internal:1167", "ov_cimguiname": "ImGuiStackSizes_SetToCurrentState", "ret": "void", "signature": "()", @@ -7202,6 +7386,41 @@ "stname": "ImGuiStackSizes" } ], + "ImGuiStackTool_ImGuiStackTool": [ + { + "args": "()", + "argsT": [], + "argsoriginal": "()", + "call_args": "()", + "cimguiname": "ImGuiStackTool_ImGuiStackTool", + "constructor": true, + "defaults": {}, + "funcname": "ImGuiStackTool", + "location": "imgui_internal:1645", + "ov_cimguiname": "ImGuiStackTool_ImGuiStackTool", + "signature": "()", + "stname": "ImGuiStackTool" + } + ], + "ImGuiStackTool_destroy": [ + { + "args": "(ImGuiStackTool* self)", + "argsT": [ + { + "name": "self", + "type": "ImGuiStackTool*" + } + ], + "call_args": "(self)", + "cimguiname": "ImGuiStackTool_destroy", + "defaults": {}, + "destructor": true, + "ov_cimguiname": "ImGuiStackTool_destroy", + "ret": "void", + "signature": "(ImGuiStackTool*)", + "stname": "ImGuiStackTool" + } + ], "ImGuiStoragePair_ImGuiStoragePair": [ { "args": "(ImGuiID _key,int _val_i)", @@ -7221,7 +7440,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiStoragePair", - "location": "imgui:2235", + "location": "imgui:2243", "ov_cimguiname": "ImGuiStoragePair_ImGuiStoragePairInt", "signature": "(ImGuiID,int)", "stname": "ImGuiStoragePair" @@ -7244,7 +7463,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiStoragePair", - "location": "imgui:2236", + "location": "imgui:2244", "ov_cimguiname": "ImGuiStoragePair_ImGuiStoragePairFloat", "signature": "(ImGuiID,float)", "stname": "ImGuiStoragePair" @@ -7267,7 +7486,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiStoragePair", - "location": "imgui:2237", + "location": "imgui:2245", "ov_cimguiname": "ImGuiStoragePair_ImGuiStoragePairPtr", "signature": "(ImGuiID,void*)", "stname": "ImGuiStoragePair" @@ -7306,7 +7525,7 @@ "cimguiname": "ImGuiStorage_BuildSortByKey", "defaults": {}, "funcname": "BuildSortByKey", - "location": "imgui:2268", + "location": "imgui:2276", "ov_cimguiname": "ImGuiStorage_BuildSortByKey", "ret": "void", "signature": "()", @@ -7327,7 +7546,7 @@ "cimguiname": "ImGuiStorage_Clear", "defaults": {}, "funcname": "Clear", - "location": "imgui:2245", + "location": "imgui:2253", "ov_cimguiname": "ImGuiStorage_Clear", "ret": "void", "signature": "()", @@ -7358,7 +7577,7 @@ "default_val": "false" }, "funcname": "GetBool", - "location": "imgui:2248", + "location": "imgui:2256", "ov_cimguiname": "ImGuiStorage_GetBool", "ret": "bool", "signature": "(ImGuiID,bool)const", @@ -7389,7 +7608,7 @@ "default_val": "false" }, "funcname": "GetBoolRef", - "location": "imgui:2260", + "location": "imgui:2268", "ov_cimguiname": "ImGuiStorage_GetBoolRef", "ret": "bool*", "signature": "(ImGuiID,bool)", @@ -7420,7 +7639,7 @@ "default_val": "0.0f" }, "funcname": "GetFloat", - "location": "imgui:2250", + "location": "imgui:2258", "ov_cimguiname": "ImGuiStorage_GetFloat", "ret": "float", "signature": "(ImGuiID,float)const", @@ -7451,7 +7670,7 @@ "default_val": "0.0f" }, "funcname": "GetFloatRef", - "location": "imgui:2261", + "location": "imgui:2269", "ov_cimguiname": "ImGuiStorage_GetFloatRef", "ret": "float*", "signature": "(ImGuiID,float)", @@ -7482,7 +7701,7 @@ "default_val": "0" }, "funcname": "GetInt", - "location": "imgui:2246", + "location": "imgui:2254", "ov_cimguiname": "ImGuiStorage_GetInt", "ret": "int", "signature": "(ImGuiID,int)const", @@ -7513,7 +7732,7 @@ "default_val": "0" }, "funcname": "GetIntRef", - "location": "imgui:2259", + "location": "imgui:2267", "ov_cimguiname": "ImGuiStorage_GetIntRef", "ret": "int*", "signature": "(ImGuiID,int)", @@ -7538,7 +7757,7 @@ "cimguiname": "ImGuiStorage_GetVoidPtr", "defaults": {}, "funcname": "GetVoidPtr", - "location": "imgui:2252", + "location": "imgui:2260", "ov_cimguiname": "ImGuiStorage_GetVoidPtr", "ret": "void*", "signature": "(ImGuiID)const", @@ -7569,7 +7788,7 @@ "default_val": "NULL" }, "funcname": "GetVoidPtrRef", - "location": "imgui:2262", + "location": "imgui:2270", "ov_cimguiname": "ImGuiStorage_GetVoidPtrRef", "ret": "void**", "signature": "(ImGuiID,void*)", @@ -7594,7 +7813,7 @@ "cimguiname": "ImGuiStorage_SetAllInt", "defaults": {}, "funcname": "SetAllInt", - "location": "imgui:2265", + "location": "imgui:2273", "ov_cimguiname": "ImGuiStorage_SetAllInt", "ret": "void", "signature": "(int)", @@ -7623,7 +7842,7 @@ "cimguiname": "ImGuiStorage_SetBool", "defaults": {}, "funcname": "SetBool", - "location": "imgui:2249", + "location": "imgui:2257", "ov_cimguiname": "ImGuiStorage_SetBool", "ret": "void", "signature": "(ImGuiID,bool)", @@ -7652,7 +7871,7 @@ "cimguiname": "ImGuiStorage_SetFloat", "defaults": {}, "funcname": "SetFloat", - "location": "imgui:2251", + "location": "imgui:2259", "ov_cimguiname": "ImGuiStorage_SetFloat", "ret": "void", "signature": "(ImGuiID,float)", @@ -7681,7 +7900,7 @@ "cimguiname": "ImGuiStorage_SetInt", "defaults": {}, "funcname": "SetInt", - "location": "imgui:2247", + "location": "imgui:2255", "ov_cimguiname": "ImGuiStorage_SetInt", "ret": "void", "signature": "(ImGuiID,int)", @@ -7710,7 +7929,7 @@ "cimguiname": "ImGuiStorage_SetVoidPtr", "defaults": {}, "funcname": "SetVoidPtr", - "location": "imgui:2253", + "location": "imgui:2261", "ov_cimguiname": "ImGuiStorage_SetVoidPtr", "ret": "void", "signature": "(ImGuiID,void*)", @@ -7736,7 +7955,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiStyleMod", - "location": "imgui_internal:972", + "location": "imgui_internal:975", "ov_cimguiname": "ImGuiStyleMod_ImGuiStyleModInt", "signature": "(ImGuiStyleVar,int)", "stname": "ImGuiStyleMod" @@ -7759,7 +7978,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiStyleMod", - "location": "imgui_internal:973", + "location": "imgui_internal:976", "ov_cimguiname": "ImGuiStyleMod_ImGuiStyleModFloat", "signature": "(ImGuiStyleVar,float)", "stname": "ImGuiStyleMod" @@ -7782,7 +8001,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiStyleMod", - "location": "imgui_internal:974", + "location": "imgui_internal:977", "ov_cimguiname": "ImGuiStyleMod_ImGuiStyleModVec2", "signature": "(ImGuiStyleVar,ImVec2)", "stname": "ImGuiStyleMod" @@ -7817,7 +8036,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiStyle", - "location": "imgui:1880", + "location": "imgui:1886", "ov_cimguiname": "ImGuiStyle_ImGuiStyle", "signature": "()", "stname": "ImGuiStyle" @@ -7841,7 +8060,7 @@ "cimguiname": "ImGuiStyle_ScaleAllSizes", "defaults": {}, "funcname": "ScaleAllSizes", - "location": "imgui:1881", + "location": "imgui:1887", "ov_cimguiname": "ImGuiStyle_ScaleAllSizes", "ret": "void", "signature": "(float)", @@ -7885,7 +8104,7 @@ "cimguiname": "ImGuiTabBar_GetTabName", "defaults": {}, "funcname": "GetTabName", - "location": "imgui_internal:2271", + "location": "imgui_internal:2370", "ov_cimguiname": "ImGuiTabBar_GetTabName", "ret": "const char*", "signature": "(const ImGuiTabItem*)const", @@ -7910,7 +8129,7 @@ "cimguiname": "ImGuiTabBar_GetTabOrder", "defaults": {}, "funcname": "GetTabOrder", - "location": "imgui_internal:2270", + "location": "imgui_internal:2369", "ov_cimguiname": "ImGuiTabBar_GetTabOrder", "ret": "int", "signature": "(const ImGuiTabItem*)const", @@ -7927,7 +8146,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiTabBar", - "location": "imgui_internal:2269", + "location": "imgui_internal:2368", "ov_cimguiname": "ImGuiTabBar_ImGuiTabBar", "signature": "()", "stname": "ImGuiTabBar" @@ -7962,7 +8181,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiTabItem", - "location": "imgui_internal:2231", + "location": "imgui_internal:2330", "ov_cimguiname": "ImGuiTabItem_ImGuiTabItem", "signature": "()", "stname": "ImGuiTabItem" @@ -7997,7 +8216,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiTableColumnSettings", - "location": "imgui_internal:2507", + "location": "imgui_internal:2606", "ov_cimguiname": "ImGuiTableColumnSettings_ImGuiTableColumnSettings", "signature": "()", "stname": "ImGuiTableColumnSettings" @@ -8032,7 +8251,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiTableColumnSortSpecs", - "location": "imgui:2136", + "location": "imgui:2144", "ov_cimguiname": "ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs", "signature": "()", "stname": "ImGuiTableColumnSortSpecs" @@ -8067,7 +8286,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiTableColumn", - "location": "imgui_internal:2340", + "location": "imgui_internal:2439", "ov_cimguiname": "ImGuiTableColumn_ImGuiTableColumn", "signature": "()", "stname": "ImGuiTableColumn" @@ -8106,7 +8325,7 @@ "cimguiname": "ImGuiTableSettings_GetColumnSettings", "defaults": {}, "funcname": "GetColumnSettings", - "location": "imgui_internal:2530", + "location": "imgui_internal:2629", "ov_cimguiname": "ImGuiTableSettings_GetColumnSettings", "ret": "ImGuiTableColumnSettings*", "signature": "()", @@ -8123,7 +8342,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiTableSettings", - "location": "imgui_internal:2529", + "location": "imgui_internal:2628", "ov_cimguiname": "ImGuiTableSettings_ImGuiTableSettings", "signature": "()", "stname": "ImGuiTableSettings" @@ -8158,7 +8377,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiTableSortSpecs", - "location": "imgui:2149", + "location": "imgui:2157", "ov_cimguiname": "ImGuiTableSortSpecs_ImGuiTableSortSpecs", "signature": "()", "stname": "ImGuiTableSortSpecs" @@ -8193,7 +8412,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiTableTempData", - "location": "imgui_internal:2492", + "location": "imgui_internal:2591", "ov_cimguiname": "ImGuiTableTempData_ImGuiTableTempData", "signature": "()", "stname": "ImGuiTableTempData" @@ -8228,7 +8447,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiTable", - "location": "imgui_internal:2468", + "location": "imgui_internal:2567", "ov_cimguiname": "ImGuiTable_ImGuiTable", "signature": "()", "stname": "ImGuiTable" @@ -8247,7 +8466,7 @@ "cimguiname": "ImGuiTable_destroy", "defaults": {}, "destructor": true, - "location": "imgui_internal:2469", + "location": "imgui_internal:2568", "ov_cimguiname": "ImGuiTable_destroy", "realdestructor": true, "ret": "void", @@ -8265,7 +8484,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiTextBuffer", - "location": "imgui:2206", + "location": "imgui:2214", "ov_cimguiname": "ImGuiTextBuffer_ImGuiTextBuffer", "signature": "()", "stname": "ImGuiTextBuffer" @@ -8295,7 +8514,7 @@ "str_end": "NULL" }, "funcname": "append", - "location": "imgui:2215", + "location": "imgui:2223", "ov_cimguiname": "ImGuiTextBuffer_append", "ret": "void", "signature": "(const char*,const char*)", @@ -8325,7 +8544,7 @@ "defaults": {}, "funcname": "appendf", "isvararg": "...)", - "location": "imgui:2216", + "location": "imgui:2224", "manual": true, "ov_cimguiname": "ImGuiTextBuffer_appendf", "ret": "void", @@ -8355,7 +8574,7 @@ "cimguiname": "ImGuiTextBuffer_appendfv", "defaults": {}, "funcname": "appendfv", - "location": "imgui:2217", + "location": "imgui:2225", "ov_cimguiname": "ImGuiTextBuffer_appendfv", "ret": "void", "signature": "(const char*,va_list)", @@ -8376,7 +8595,7 @@ "cimguiname": "ImGuiTextBuffer_begin", "defaults": {}, "funcname": "begin", - "location": "imgui:2208", + "location": "imgui:2216", "ov_cimguiname": "ImGuiTextBuffer_begin", "ret": "const char*", "signature": "()const", @@ -8397,7 +8616,7 @@ "cimguiname": "ImGuiTextBuffer_c_str", "defaults": {}, "funcname": "c_str", - "location": "imgui:2214", + "location": "imgui:2222", "ov_cimguiname": "ImGuiTextBuffer_c_str", "ret": "const char*", "signature": "()const", @@ -8418,7 +8637,7 @@ "cimguiname": "ImGuiTextBuffer_clear", "defaults": {}, "funcname": "clear", - "location": "imgui:2212", + "location": "imgui:2220", "ov_cimguiname": "ImGuiTextBuffer_clear", "ret": "void", "signature": "()", @@ -8458,7 +8677,7 @@ "cimguiname": "ImGuiTextBuffer_empty", "defaults": {}, "funcname": "empty", - "location": "imgui:2211", + "location": "imgui:2219", "ov_cimguiname": "ImGuiTextBuffer_empty", "ret": "bool", "signature": "()const", @@ -8479,7 +8698,7 @@ "cimguiname": "ImGuiTextBuffer_end", "defaults": {}, "funcname": "end", - "location": "imgui:2209", + "location": "imgui:2217", "ov_cimguiname": "ImGuiTextBuffer_end", "ret": "const char*", "signature": "()const", @@ -8504,7 +8723,7 @@ "cimguiname": "ImGuiTextBuffer_reserve", "defaults": {}, "funcname": "reserve", - "location": "imgui:2213", + "location": "imgui:2221", "ov_cimguiname": "ImGuiTextBuffer_reserve", "ret": "void", "signature": "(int)", @@ -8525,7 +8744,7 @@ "cimguiname": "ImGuiTextBuffer_size", "defaults": {}, "funcname": "size", - "location": "imgui:2210", + "location": "imgui:2218", "ov_cimguiname": "ImGuiTextBuffer_size", "ret": "int", "signature": "()const", @@ -8546,7 +8765,7 @@ "cimguiname": "ImGuiTextFilter_Build", "defaults": {}, "funcname": "Build", - "location": "imgui:2179", + "location": "imgui:2187", "ov_cimguiname": "ImGuiTextFilter_Build", "ret": "void", "signature": "()", @@ -8567,7 +8786,7 @@ "cimguiname": "ImGuiTextFilter_Clear", "defaults": {}, "funcname": "Clear", - "location": "imgui:2180", + "location": "imgui:2188", "ov_cimguiname": "ImGuiTextFilter_Clear", "ret": "void", "signature": "()", @@ -8599,7 +8818,7 @@ "width": "0.0f" }, "funcname": "Draw", - "location": "imgui:2177", + "location": "imgui:2185", "ov_cimguiname": "ImGuiTextFilter_Draw", "ret": "bool", "signature": "(const char*,float)", @@ -8623,7 +8842,7 @@ "default_filter": "\"\"" }, "funcname": "ImGuiTextFilter", - "location": "imgui:2176", + "location": "imgui:2184", "ov_cimguiname": "ImGuiTextFilter_ImGuiTextFilter", "signature": "(const char*)", "stname": "ImGuiTextFilter" @@ -8643,7 +8862,7 @@ "cimguiname": "ImGuiTextFilter_IsActive", "defaults": {}, "funcname": "IsActive", - "location": "imgui:2181", + "location": "imgui:2189", "ov_cimguiname": "ImGuiTextFilter_IsActive", "ret": "bool", "signature": "()const", @@ -8674,7 +8893,7 @@ "text_end": "NULL" }, "funcname": "PassFilter", - "location": "imgui:2178", + "location": "imgui:2186", "ov_cimguiname": "ImGuiTextFilter_PassFilter", "ret": "bool", "signature": "(const char*,const char*)const", @@ -8710,7 +8929,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiTextRange", - "location": "imgui:2189", + "location": "imgui:2197", "ov_cimguiname": "ImGuiTextRange_ImGuiTextRangeNil", "signature": "()", "stname": "ImGuiTextRange" @@ -8733,7 +8952,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiTextRange", - "location": "imgui:2190", + "location": "imgui:2198", "ov_cimguiname": "ImGuiTextRange_ImGuiTextRangeStr", "signature": "(const char*,const char*)", "stname": "ImGuiTextRange" @@ -8772,7 +8991,7 @@ "cimguiname": "ImGuiTextRange_empty", "defaults": {}, "funcname": "empty", - "location": "imgui:2191", + "location": "imgui:2199", "ov_cimguiname": "ImGuiTextRange_empty", "ret": "bool", "signature": "()const", @@ -8801,7 +9020,7 @@ "cimguiname": "ImGuiTextRange_split", "defaults": {}, "funcname": "split", - "location": "imgui:2192", + "location": "imgui:2200", "ov_cimguiname": "ImGuiTextRange_split", "ret": "void", "signature": "(char,ImVector_ImGuiTextRange*)const", @@ -8830,7 +9049,7 @@ "cimguiname": "ImGuiViewportP_CalcWorkRectPos", "defaults": {}, "funcname": "CalcWorkRectPos", - "location": "imgui_internal:1466", + "location": "imgui_internal:1548", "nonUDT": 1, "ov_cimguiname": "ImGuiViewportP_CalcWorkRectPos", "ret": "void", @@ -8864,7 +9083,7 @@ "cimguiname": "ImGuiViewportP_CalcWorkRectSize", "defaults": {}, "funcname": "CalcWorkRectSize", - "location": "imgui_internal:1467", + "location": "imgui_internal:1549", "nonUDT": 1, "ov_cimguiname": "ImGuiViewportP_CalcWorkRectSize", "ret": "void", @@ -8886,7 +9105,7 @@ "cimguiname": "ImGuiViewportP_ClearRequestFlags", "defaults": {}, "funcname": "ClearRequestFlags", - "location": "imgui_internal:1463", + "location": "imgui_internal:1545", "ov_cimguiname": "ImGuiViewportP_ClearRequestFlags", "ret": "void", "signature": "()", @@ -8911,7 +9130,7 @@ "cimguiname": "ImGuiViewportP_GetBuildWorkRect", "defaults": {}, "funcname": "GetBuildWorkRect", - "location": "imgui_internal:1473", + "location": "imgui_internal:1555", "nonUDT": 1, "ov_cimguiname": "ImGuiViewportP_GetBuildWorkRect", "ret": "void", @@ -8937,7 +9156,7 @@ "cimguiname": "ImGuiViewportP_GetMainRect", "defaults": {}, "funcname": "GetMainRect", - "location": "imgui_internal:1471", + "location": "imgui_internal:1553", "nonUDT": 1, "ov_cimguiname": "ImGuiViewportP_GetMainRect", "ret": "void", @@ -8963,7 +9182,7 @@ "cimguiname": "ImGuiViewportP_GetWorkRect", "defaults": {}, "funcname": "GetWorkRect", - "location": "imgui_internal:1472", + "location": "imgui_internal:1554", "nonUDT": 1, "ov_cimguiname": "ImGuiViewportP_GetWorkRect", "ret": "void", @@ -8981,7 +9200,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiViewportP", - "location": "imgui_internal:1461", + "location": "imgui_internal:1543", "ov_cimguiname": "ImGuiViewportP_ImGuiViewportP", "signature": "()", "stname": "ImGuiViewportP" @@ -9001,7 +9220,7 @@ "cimguiname": "ImGuiViewportP_UpdateWorkRect", "defaults": {}, "funcname": "UpdateWorkRect", - "location": "imgui_internal:1468", + "location": "imgui_internal:1550", "ov_cimguiname": "ImGuiViewportP_UpdateWorkRect", "ret": "void", "signature": "()", @@ -9021,7 +9240,7 @@ "cimguiname": "ImGuiViewportP_destroy", "defaults": {}, "destructor": true, - "location": "imgui_internal:1462", + "location": "imgui_internal:1544", "ov_cimguiname": "ImGuiViewportP_destroy", "realdestructor": true, "ret": "void", @@ -9047,7 +9266,7 @@ "cimguiname": "ImGuiViewport_GetCenter", "defaults": {}, "funcname": "GetCenter", - "location": "imgui:2945", + "location": "imgui:2955", "nonUDT": 1, "ov_cimguiname": "ImGuiViewport_GetCenter", "ret": "void", @@ -9073,7 +9292,7 @@ "cimguiname": "ImGuiViewport_GetWorkCenter", "defaults": {}, "funcname": "GetWorkCenter", - "location": "imgui:2946", + "location": "imgui:2956", "nonUDT": 1, "ov_cimguiname": "ImGuiViewport_GetWorkCenter", "ret": "void", @@ -9091,7 +9310,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiViewport", - "location": "imgui:2941", + "location": "imgui:2951", "ov_cimguiname": "ImGuiViewport_ImGuiViewport", "signature": "()", "stname": "ImGuiViewport" @@ -9110,7 +9329,7 @@ "cimguiname": "ImGuiViewport_destroy", "defaults": {}, "destructor": true, - "location": "imgui:2942", + "location": "imgui:2952", "ov_cimguiname": "ImGuiViewport_destroy", "realdestructor": true, "ret": "void", @@ -9128,7 +9347,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiWindowClass", - "location": "imgui:2103", + "location": "imgui:2111", "ov_cimguiname": "ImGuiWindowClass_ImGuiWindowClass", "signature": "()", "stname": "ImGuiWindowClass" @@ -9167,7 +9386,7 @@ "cimguiname": "ImGuiWindowSettings_GetName", "defaults": {}, "funcname": "GetName", - "location": "imgui_internal:1497", + "location": "imgui_internal:1579", "ov_cimguiname": "ImGuiWindowSettings_GetName", "ret": "char*", "signature": "()", @@ -9184,7 +9403,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiWindowSettings", - "location": "imgui_internal:1496", + "location": "imgui_internal:1578", "ov_cimguiname": "ImGuiWindowSettings_ImGuiWindowSettings", "signature": "()", "stname": "ImGuiWindowSettings" @@ -9223,7 +9442,7 @@ "cimguiname": "ImGuiWindow_CalcFontSize", "defaults": {}, "funcname": "CalcFontSize", - "location": "imgui_internal:2186", + "location": "imgui_internal:2285", "ov_cimguiname": "ImGuiWindow_CalcFontSize", "ret": "float", "signature": "()const", @@ -9254,7 +9473,7 @@ "str_end": "NULL" }, "funcname": "GetID", - "location": "imgui_internal:2176", + "location": "imgui_internal:2275", "ov_cimguiname": "ImGuiWindow_GetIDStr", "ret": "ImGuiID", "signature": "(const char*,const char*)", @@ -9277,7 +9496,7 @@ "cimguiname": "ImGuiWindow_GetID", "defaults": {}, "funcname": "GetID", - "location": "imgui_internal:2177", + "location": "imgui_internal:2276", "ov_cimguiname": "ImGuiWindow_GetIDPtr", "ret": "ImGuiID", "signature": "(const void*)", @@ -9300,7 +9519,7 @@ "cimguiname": "ImGuiWindow_GetID", "defaults": {}, "funcname": "GetID", - "location": "imgui_internal:2178", + "location": "imgui_internal:2277", "ov_cimguiname": "ImGuiWindow_GetIDInt", "ret": "ImGuiID", "signature": "(int)", @@ -9325,7 +9544,7 @@ "cimguiname": "ImGuiWindow_GetIDFromRectangle", "defaults": {}, "funcname": "GetIDFromRectangle", - "location": "imgui_internal:2182", + "location": "imgui_internal:2281", "ov_cimguiname": "ImGuiWindow_GetIDFromRectangle", "ret": "ImGuiID", "signature": "(const ImRect)", @@ -9356,7 +9575,7 @@ "str_end": "NULL" }, "funcname": "GetIDNoKeepAlive", - "location": "imgui_internal:2179", + "location": "imgui_internal:2278", "ov_cimguiname": "ImGuiWindow_GetIDNoKeepAliveStr", "ret": "ImGuiID", "signature": "(const char*,const char*)", @@ -9379,7 +9598,7 @@ "cimguiname": "ImGuiWindow_GetIDNoKeepAlive", "defaults": {}, "funcname": "GetIDNoKeepAlive", - "location": "imgui_internal:2180", + "location": "imgui_internal:2279", "ov_cimguiname": "ImGuiWindow_GetIDNoKeepAlivePtr", "ret": "ImGuiID", "signature": "(const void*)", @@ -9402,7 +9621,7 @@ "cimguiname": "ImGuiWindow_GetIDNoKeepAlive", "defaults": {}, "funcname": "GetIDNoKeepAlive", - "location": "imgui_internal:2181", + "location": "imgui_internal:2280", "ov_cimguiname": "ImGuiWindow_GetIDNoKeepAliveInt", "ret": "ImGuiID", "signature": "(int)", @@ -9428,7 +9647,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiWindow", - "location": "imgui_internal:2172", + "location": "imgui_internal:2271", "ov_cimguiname": "ImGuiWindow_ImGuiWindow", "signature": "(ImGuiContext*,const char*)", "stname": "ImGuiWindow" @@ -9448,7 +9667,7 @@ "cimguiname": "ImGuiWindow_MenuBarHeight", "defaults": {}, "funcname": "MenuBarHeight", - "location": "imgui_internal:2189", + "location": "imgui_internal:2288", "ov_cimguiname": "ImGuiWindow_MenuBarHeight", "ret": "float", "signature": "()const", @@ -9473,7 +9692,7 @@ "cimguiname": "ImGuiWindow_MenuBarRect", "defaults": {}, "funcname": "MenuBarRect", - "location": "imgui_internal:2190", + "location": "imgui_internal:2289", "nonUDT": 1, "ov_cimguiname": "ImGuiWindow_MenuBarRect", "ret": "void", @@ -9499,7 +9718,7 @@ "cimguiname": "ImGuiWindow_Rect", "defaults": {}, "funcname": "Rect", - "location": "imgui_internal:2185", + "location": "imgui_internal:2284", "nonUDT": 1, "ov_cimguiname": "ImGuiWindow_Rect", "ret": "void", @@ -9521,7 +9740,7 @@ "cimguiname": "ImGuiWindow_TitleBarHeight", "defaults": {}, "funcname": "TitleBarHeight", - "location": "imgui_internal:2187", + "location": "imgui_internal:2286", "ov_cimguiname": "ImGuiWindow_TitleBarHeight", "ret": "float", "signature": "()const", @@ -9546,7 +9765,7 @@ "cimguiname": "ImGuiWindow_TitleBarRect", "defaults": {}, "funcname": "TitleBarRect", - "location": "imgui_internal:2188", + "location": "imgui_internal:2287", "nonUDT": 1, "ov_cimguiname": "ImGuiWindow_TitleBarRect", "ret": "void", @@ -9567,7 +9786,7 @@ "cimguiname": "ImGuiWindow_destroy", "defaults": {}, "destructor": true, - "location": "imgui_internal:2174", + "location": "imgui_internal:2273", "ov_cimguiname": "ImGuiWindow_destroy", "realdestructor": true, "ret": "void", @@ -9589,7 +9808,7 @@ "cimguiname": "ImPool_Add", "defaults": {}, "funcname": "Add", - "location": "imgui_internal:639", + "location": "imgui_internal:651", "ov_cimguiname": "ImPool_Add", "ret": "T*", "signature": "()", @@ -9611,7 +9830,7 @@ "cimguiname": "ImPool_Clear", "defaults": {}, "funcname": "Clear", - "location": "imgui_internal:638", + "location": "imgui_internal:650", "ov_cimguiname": "ImPool_Clear", "ret": "void", "signature": "()", @@ -9637,7 +9856,7 @@ "cimguiname": "ImPool_Contains", "defaults": {}, "funcname": "Contains", - "location": "imgui_internal:637", + "location": "imgui_internal:649", "ov_cimguiname": "ImPool_Contains", "ret": "bool", "signature": "(const T*)const", @@ -9659,7 +9878,7 @@ "cimguiname": "ImPool_GetAliveCount", "defaults": {}, "funcname": "GetAliveCount", - "location": "imgui_internal:646", + "location": "imgui_internal:658", "ov_cimguiname": "ImPool_GetAliveCount", "ret": "int", "signature": "()const", @@ -9681,7 +9900,7 @@ "cimguiname": "ImPool_GetBufSize", "defaults": {}, "funcname": "GetBufSize", - "location": "imgui_internal:647", + "location": "imgui_internal:659", "ov_cimguiname": "ImPool_GetBufSize", "ret": "int", "signature": "()const", @@ -9707,7 +9926,7 @@ "cimguiname": "ImPool_GetByIndex", "defaults": {}, "funcname": "GetByIndex", - "location": "imgui_internal:634", + "location": "imgui_internal:646", "ov_cimguiname": "ImPool_GetByIndex", "ret": "T*", "signature": "(ImPoolIdx)", @@ -9733,7 +9952,7 @@ "cimguiname": "ImPool_GetByKey", "defaults": {}, "funcname": "GetByKey", - "location": "imgui_internal:633", + "location": "imgui_internal:645", "ov_cimguiname": "ImPool_GetByKey", "ret": "T*", "signature": "(ImGuiID)", @@ -9759,7 +9978,7 @@ "cimguiname": "ImPool_GetIndex", "defaults": {}, "funcname": "GetIndex", - "location": "imgui_internal:635", + "location": "imgui_internal:647", "ov_cimguiname": "ImPool_GetIndex", "ret": "ImPoolIdx", "signature": "(const T*)const", @@ -9781,7 +10000,7 @@ "cimguiname": "ImPool_GetMapSize", "defaults": {}, "funcname": "GetMapSize", - "location": "imgui_internal:648", + "location": "imgui_internal:660", "ov_cimguiname": "ImPool_GetMapSize", "ret": "int", "signature": "()const", @@ -9807,7 +10026,7 @@ "cimguiname": "ImPool_GetOrAddByKey", "defaults": {}, "funcname": "GetOrAddByKey", - "location": "imgui_internal:636", + "location": "imgui_internal:648", "ov_cimguiname": "ImPool_GetOrAddByKey", "ret": "T*", "signature": "(ImGuiID)", @@ -9825,7 +10044,7 @@ "constructor": true, "defaults": {}, "funcname": "ImPool", - "location": "imgui_internal:631", + "location": "imgui_internal:643", "ov_cimguiname": "ImPool_ImPool", "signature": "()", "stname": "ImPool", @@ -9854,7 +10073,7 @@ "cimguiname": "ImPool_Remove", "defaults": {}, "funcname": "Remove", - "location": "imgui_internal:640", + "location": "imgui_internal:652", "ov_cimguiname": "ImPool_RemoveTPtr", "ret": "void", "signature": "(ImGuiID,const T*)", @@ -9882,7 +10101,7 @@ "cimguiname": "ImPool_Remove", "defaults": {}, "funcname": "Remove", - "location": "imgui_internal:641", + "location": "imgui_internal:653", "ov_cimguiname": "ImPool_RemovePoolIdx", "ret": "void", "signature": "(ImGuiID,ImPoolIdx)", @@ -9908,7 +10127,7 @@ "cimguiname": "ImPool_Reserve", "defaults": {}, "funcname": "Reserve", - "location": "imgui_internal:642", + "location": "imgui_internal:654", "ov_cimguiname": "ImPool_Reserve", "ret": "void", "signature": "(int)", @@ -9934,7 +10153,7 @@ "cimguiname": "ImPool_TryGetMapData", "defaults": {}, "funcname": "TryGetMapData", - "location": "imgui_internal:649", + "location": "imgui_internal:661", "ov_cimguiname": "ImPool_TryGetMapData", "ret": "T*", "signature": "(ImPoolIdx)", @@ -9955,7 +10174,7 @@ "cimguiname": "ImPool_destroy", "defaults": {}, "destructor": true, - "location": "imgui_internal:632", + "location": "imgui_internal:644", "ov_cimguiname": "ImPool_destroy", "realdestructor": true, "ret": "void", @@ -9982,7 +10201,7 @@ "cimguiname": "ImRect_Add", "defaults": {}, "funcname": "Add", - "location": "imgui_internal:509", + "location": "imgui_internal:521", "ov_cimguiname": "ImRect_AddVec2", "ret": "void", "signature": "(const ImVec2)", @@ -10005,7 +10224,7 @@ "cimguiname": "ImRect_Add", "defaults": {}, "funcname": "Add", - "location": "imgui_internal:510", + "location": "imgui_internal:522", "ov_cimguiname": "ImRect_AddRect", "ret": "void", "signature": "(const ImRect)", @@ -10030,7 +10249,7 @@ "cimguiname": "ImRect_ClipWith", "defaults": {}, "funcname": "ClipWith", - "location": "imgui_internal:516", + "location": "imgui_internal:528", "ov_cimguiname": "ImRect_ClipWith", "ret": "void", "signature": "(const ImRect)", @@ -10055,7 +10274,7 @@ "cimguiname": "ImRect_ClipWithFull", "defaults": {}, "funcname": "ClipWithFull", - "location": "imgui_internal:517", + "location": "imgui_internal:529", "ov_cimguiname": "ImRect_ClipWithFull", "ret": "void", "signature": "(const ImRect)", @@ -10080,7 +10299,7 @@ "cimguiname": "ImRect_Contains", "defaults": {}, "funcname": "Contains", - "location": "imgui_internal:506", + "location": "imgui_internal:518", "ov_cimguiname": "ImRect_ContainsVec2", "ret": "bool", "signature": "(const ImVec2)const", @@ -10103,7 +10322,7 @@ "cimguiname": "ImRect_Contains", "defaults": {}, "funcname": "Contains", - "location": "imgui_internal:507", + "location": "imgui_internal:519", "ov_cimguiname": "ImRect_ContainsRect", "ret": "bool", "signature": "(const ImRect)const", @@ -10128,7 +10347,7 @@ "cimguiname": "ImRect_Expand", "defaults": {}, "funcname": "Expand", - "location": "imgui_internal:511", + "location": "imgui_internal:523", "ov_cimguiname": "ImRect_ExpandFloat", "ret": "void", "signature": "(const float)", @@ -10151,7 +10370,7 @@ "cimguiname": "ImRect_Expand", "defaults": {}, "funcname": "Expand", - "location": "imgui_internal:512", + "location": "imgui_internal:524", "ov_cimguiname": "ImRect_ExpandVec2", "ret": "void", "signature": "(const ImVec2)", @@ -10172,7 +10391,7 @@ "cimguiname": "ImRect_Floor", "defaults": {}, "funcname": "Floor", - "location": "imgui_internal:518", + "location": "imgui_internal:530", "ov_cimguiname": "ImRect_Floor", "ret": "void", "signature": "()", @@ -10193,7 +10412,7 @@ "cimguiname": "ImRect_GetArea", "defaults": {}, "funcname": "GetArea", - "location": "imgui_internal:501", + "location": "imgui_internal:513", "ov_cimguiname": "ImRect_GetArea", "ret": "float", "signature": "()const", @@ -10218,7 +10437,7 @@ "cimguiname": "ImRect_GetBL", "defaults": {}, "funcname": "GetBL", - "location": "imgui_internal:504", + "location": "imgui_internal:516", "nonUDT": 1, "ov_cimguiname": "ImRect_GetBL", "ret": "void", @@ -10244,7 +10463,7 @@ "cimguiname": "ImRect_GetBR", "defaults": {}, "funcname": "GetBR", - "location": "imgui_internal:505", + "location": "imgui_internal:517", "nonUDT": 1, "ov_cimguiname": "ImRect_GetBR", "ret": "void", @@ -10270,7 +10489,7 @@ "cimguiname": "ImRect_GetCenter", "defaults": {}, "funcname": "GetCenter", - "location": "imgui_internal:497", + "location": "imgui_internal:509", "nonUDT": 1, "ov_cimguiname": "ImRect_GetCenter", "ret": "void", @@ -10292,7 +10511,7 @@ "cimguiname": "ImRect_GetHeight", "defaults": {}, "funcname": "GetHeight", - "location": "imgui_internal:500", + "location": "imgui_internal:512", "ov_cimguiname": "ImRect_GetHeight", "ret": "float", "signature": "()const", @@ -10317,7 +10536,7 @@ "cimguiname": "ImRect_GetSize", "defaults": {}, "funcname": "GetSize", - "location": "imgui_internal:498", + "location": "imgui_internal:510", "nonUDT": 1, "ov_cimguiname": "ImRect_GetSize", "ret": "void", @@ -10343,7 +10562,7 @@ "cimguiname": "ImRect_GetTL", "defaults": {}, "funcname": "GetTL", - "location": "imgui_internal:502", + "location": "imgui_internal:514", "nonUDT": 1, "ov_cimguiname": "ImRect_GetTL", "ret": "void", @@ -10369,7 +10588,7 @@ "cimguiname": "ImRect_GetTR", "defaults": {}, "funcname": "GetTR", - "location": "imgui_internal:503", + "location": "imgui_internal:515", "nonUDT": 1, "ov_cimguiname": "ImRect_GetTR", "ret": "void", @@ -10391,7 +10610,7 @@ "cimguiname": "ImRect_GetWidth", "defaults": {}, "funcname": "GetWidth", - "location": "imgui_internal:499", + "location": "imgui_internal:511", "ov_cimguiname": "ImRect_GetWidth", "ret": "float", "signature": "()const", @@ -10408,7 +10627,7 @@ "constructor": true, "defaults": {}, "funcname": "ImRect", - "location": "imgui_internal:492", + "location": "imgui_internal:504", "ov_cimguiname": "ImRect_ImRectNil", "signature": "()", "stname": "ImRect" @@ -10431,7 +10650,7 @@ "constructor": true, "defaults": {}, "funcname": "ImRect", - "location": "imgui_internal:493", + "location": "imgui_internal:505", "ov_cimguiname": "ImRect_ImRectVec2", "signature": "(const ImVec2,const ImVec2)", "stname": "ImRect" @@ -10450,7 +10669,7 @@ "constructor": true, "defaults": {}, "funcname": "ImRect", - "location": "imgui_internal:494", + "location": "imgui_internal:506", "ov_cimguiname": "ImRect_ImRectVec4", "signature": "(const ImVec4)", "stname": "ImRect" @@ -10481,7 +10700,7 @@ "constructor": true, "defaults": {}, "funcname": "ImRect", - "location": "imgui_internal:495", + "location": "imgui_internal:507", "ov_cimguiname": "ImRect_ImRectFloat", "signature": "(float,float,float,float)", "stname": "ImRect" @@ -10501,7 +10720,7 @@ "cimguiname": "ImRect_IsInverted", "defaults": {}, "funcname": "IsInverted", - "location": "imgui_internal:519", + "location": "imgui_internal:531", "ov_cimguiname": "ImRect_IsInverted", "ret": "bool", "signature": "()const", @@ -10526,7 +10745,7 @@ "cimguiname": "ImRect_Overlaps", "defaults": {}, "funcname": "Overlaps", - "location": "imgui_internal:508", + "location": "imgui_internal:520", "ov_cimguiname": "ImRect_Overlaps", "ret": "bool", "signature": "(const ImRect)const", @@ -10551,7 +10770,7 @@ "cimguiname": "ImRect_ToVec4", "defaults": {}, "funcname": "ToVec4", - "location": "imgui_internal:520", + "location": "imgui_internal:532", "nonUDT": 1, "ov_cimguiname": "ImRect_ToVec4", "ret": "void", @@ -10577,7 +10796,7 @@ "cimguiname": "ImRect_Translate", "defaults": {}, "funcname": "Translate", - "location": "imgui_internal:513", + "location": "imgui_internal:525", "ov_cimguiname": "ImRect_Translate", "ret": "void", "signature": "(const ImVec2)", @@ -10602,7 +10821,7 @@ "cimguiname": "ImRect_TranslateX", "defaults": {}, "funcname": "TranslateX", - "location": "imgui_internal:514", + "location": "imgui_internal:526", "ov_cimguiname": "ImRect_TranslateX", "ret": "void", "signature": "(float)", @@ -10627,7 +10846,7 @@ "cimguiname": "ImRect_TranslateY", "defaults": {}, "funcname": "TranslateY", - "location": "imgui_internal:515", + "location": "imgui_internal:527", "ov_cimguiname": "ImRect_TranslateY", "ret": "void", "signature": "(float)", @@ -10667,7 +10886,7 @@ "cimguiname": "ImSpanAllocator_GetArenaSizeInBytes", "defaults": {}, "funcname": "GetArenaSizeInBytes", - "location": "imgui_internal:611", + "location": "imgui_internal:623", "ov_cimguiname": "ImSpanAllocator_GetArenaSizeInBytes", "ret": "int", "signature": "()", @@ -10693,7 +10912,7 @@ "cimguiname": "ImSpanAllocator_GetSpanPtrBegin", "defaults": {}, "funcname": "GetSpanPtrBegin", - "location": "imgui_internal:613", + "location": "imgui_internal:625", "ov_cimguiname": "ImSpanAllocator_GetSpanPtrBegin", "ret": "void*", "signature": "(int)", @@ -10719,7 +10938,7 @@ "cimguiname": "ImSpanAllocator_GetSpanPtrEnd", "defaults": {}, "funcname": "GetSpanPtrEnd", - "location": "imgui_internal:614", + "location": "imgui_internal:626", "ov_cimguiname": "ImSpanAllocator_GetSpanPtrEnd", "ret": "void*", "signature": "(int)", @@ -10737,7 +10956,7 @@ "constructor": true, "defaults": {}, "funcname": "ImSpanAllocator", - "location": "imgui_internal:609", + "location": "imgui_internal:621", "ov_cimguiname": "ImSpanAllocator_ImSpanAllocator", "signature": "()", "stname": "ImSpanAllocator", @@ -10772,7 +10991,7 @@ "a": "4" }, "funcname": "Reserve", - "location": "imgui_internal:610", + "location": "imgui_internal:622", "ov_cimguiname": "ImSpanAllocator_Reserve", "ret": "void", "signature": "(int,size_t,int)", @@ -10798,7 +11017,7 @@ "cimguiname": "ImSpanAllocator_SetArenaBasePtr", "defaults": {}, "funcname": "SetArenaBasePtr", - "location": "imgui_internal:612", + "location": "imgui_internal:624", "ov_cimguiname": "ImSpanAllocator_SetArenaBasePtr", "ret": "void", "signature": "(void*)", @@ -10836,7 +11055,7 @@ "constructor": true, "defaults": {}, "funcname": "ImSpan", - "location": "imgui_internal:577", + "location": "imgui_internal:589", "ov_cimguiname": "ImSpan_ImSpanNil", "signature": "()", "stname": "ImSpan", @@ -10860,7 +11079,7 @@ "constructor": true, "defaults": {}, "funcname": "ImSpan", - "location": "imgui_internal:578", + "location": "imgui_internal:590", "ov_cimguiname": "ImSpan_ImSpanTPtrInt", "signature": "(T*,int)", "stname": "ImSpan", @@ -10884,7 +11103,7 @@ "constructor": true, "defaults": {}, "funcname": "ImSpan", - "location": "imgui_internal:579", + "location": "imgui_internal:591", "ov_cimguiname": "ImSpan_ImSpanTPtrTPtr", "signature": "(T*,T*)", "stname": "ImSpan", @@ -10905,7 +11124,7 @@ "cimguiname": "ImSpan_begin", "defaults": {}, "funcname": "begin", - "location": "imgui_internal:588", + "location": "imgui_internal:600", "ov_cimguiname": "ImSpan_beginNil", "ret": "T*", "signature": "()", @@ -10925,7 +11144,7 @@ "cimguiname": "ImSpan_begin", "defaults": {}, "funcname": "begin", - "location": "imgui_internal:589", + "location": "imgui_internal:601", "ov_cimguiname": "ImSpan_begin_const", "ret": "const T*", "signature": "()const", @@ -10967,7 +11186,7 @@ "cimguiname": "ImSpan_end", "defaults": {}, "funcname": "end", - "location": "imgui_internal:590", + "location": "imgui_internal:602", "ov_cimguiname": "ImSpan_endNil", "ret": "T*", "signature": "()", @@ -10987,7 +11206,7 @@ "cimguiname": "ImSpan_end", "defaults": {}, "funcname": "end", - "location": "imgui_internal:591", + "location": "imgui_internal:603", "ov_cimguiname": "ImSpan_end_const", "ret": "const T*", "signature": "()const", @@ -11013,7 +11232,7 @@ "cimguiname": "ImSpan_index_from_ptr", "defaults": {}, "funcname": "index_from_ptr", - "location": "imgui_internal:594", + "location": "imgui_internal:606", "ov_cimguiname": "ImSpan_index_from_ptr", "ret": "int", "signature": "(const T*)const", @@ -11043,7 +11262,7 @@ "cimguiname": "ImSpan_set", "defaults": {}, "funcname": "set", - "location": "imgui_internal:581", + "location": "imgui_internal:593", "ov_cimguiname": "ImSpan_setInt", "ret": "void", "signature": "(T*,int)", @@ -11071,7 +11290,7 @@ "cimguiname": "ImSpan_set", "defaults": {}, "funcname": "set", - "location": "imgui_internal:582", + "location": "imgui_internal:594", "ov_cimguiname": "ImSpan_setTPtr", "ret": "void", "signature": "(T*,T*)", @@ -11093,7 +11312,7 @@ "cimguiname": "ImSpan_size", "defaults": {}, "funcname": "size", - "location": "imgui_internal:583", + "location": "imgui_internal:595", "ov_cimguiname": "ImSpan_size", "ret": "int", "signature": "()const", @@ -11115,7 +11334,7 @@ "cimguiname": "ImSpan_size_in_bytes", "defaults": {}, "funcname": "size_in_bytes", - "location": "imgui_internal:584", + "location": "imgui_internal:596", "ov_cimguiname": "ImSpan_size_in_bytes", "ret": "int", "signature": "()const", @@ -11133,7 +11352,7 @@ "constructor": true, "defaults": {}, "funcname": "ImVec1", - "location": "imgui_internal:472", + "location": "imgui_internal:484", "ov_cimguiname": "ImVec1_ImVec1Nil", "signature": "()", "stname": "ImVec1" @@ -11152,7 +11371,7 @@ "constructor": true, "defaults": {}, "funcname": "ImVec1", - "location": "imgui_internal:473", + "location": "imgui_internal:485", "ov_cimguiname": "ImVec1_ImVec1Float", "signature": "(float)", "stname": "ImVec1" @@ -11245,7 +11464,7 @@ "constructor": true, "defaults": {}, "funcname": "ImVec2ih", - "location": "imgui_internal:480", + "location": "imgui_internal:492", "ov_cimguiname": "ImVec2ih_ImVec2ihNil", "signature": "()", "stname": "ImVec2ih" @@ -11268,7 +11487,7 @@ "constructor": true, "defaults": {}, "funcname": "ImVec2ih", - "location": "imgui_internal:481", + "location": "imgui_internal:493", "ov_cimguiname": "ImVec2ih_ImVec2ihshort", "signature": "(short,short)", "stname": "ImVec2ih" @@ -11287,7 +11506,7 @@ "constructor": true, "defaults": {}, "funcname": "ImVec2ih", - "location": "imgui_internal:482", + "location": "imgui_internal:494", "ov_cimguiname": "ImVec2ih_ImVec2ihVec2", "signature": "(const ImVec2)", "stname": "ImVec2ih" @@ -11388,7 +11607,7 @@ "constructor": true, "defaults": {}, "funcname": "ImVector", - "location": "imgui:1778", + "location": "imgui:1784", "ov_cimguiname": "ImVector_ImVectorNil", "signature": "()", "stname": "ImVector", @@ -11408,7 +11627,7 @@ "constructor": true, "defaults": {}, "funcname": "ImVector", - "location": "imgui:1779", + "location": "imgui:1785", "ov_cimguiname": "ImVector_ImVectorVector", "signature": "(const ImVector)", "stname": "ImVector", @@ -11433,7 +11652,7 @@ "cimguiname": "ImVector__grow_capacity", "defaults": {}, "funcname": "_grow_capacity", - "location": "imgui:1805", + "location": "imgui:1811", "ov_cimguiname": "ImVector__grow_capacity", "ret": "int", "signature": "(int)const", @@ -11455,7 +11674,7 @@ "cimguiname": "ImVector_back", "defaults": {}, "funcname": "back", - "location": "imgui:1801", + "location": "imgui:1807", "ov_cimguiname": "ImVector_backNil", "ret": "T*", "retref": "&", @@ -11476,7 +11695,7 @@ "cimguiname": "ImVector_back", "defaults": {}, "funcname": "back", - "location": "imgui:1802", + "location": "imgui:1808", "ov_cimguiname": "ImVector_back_const", "ret": "const T*", "retref": "&", @@ -11499,7 +11718,7 @@ "cimguiname": "ImVector_begin", "defaults": {}, "funcname": "begin", - "location": "imgui:1795", + "location": "imgui:1801", "ov_cimguiname": "ImVector_beginNil", "ret": "T*", "signature": "()", @@ -11519,7 +11738,7 @@ "cimguiname": "ImVector_begin", "defaults": {}, "funcname": "begin", - "location": "imgui:1796", + "location": "imgui:1802", "ov_cimguiname": "ImVector_begin_const", "ret": "const T*", "signature": "()const", @@ -11541,7 +11760,7 @@ "cimguiname": "ImVector_capacity", "defaults": {}, "funcname": "capacity", - "location": "imgui:1791", + "location": "imgui:1797", "ov_cimguiname": "ImVector_capacity", "ret": "int", "signature": "()const", @@ -11563,7 +11782,7 @@ "cimguiname": "ImVector_clear", "defaults": {}, "funcname": "clear", - "location": "imgui:1783", + "location": "imgui:1789", "ov_cimguiname": "ImVector_clear", "ret": "void", "signature": "()", @@ -11585,7 +11804,7 @@ "cimguiname": "ImVector_clear_delete", "defaults": {}, "funcname": "clear_delete", - "location": "imgui:1784", + "location": "imgui:1790", "ov_cimguiname": "ImVector_clear_delete", "ret": "void", "signature": "()", @@ -11607,7 +11826,7 @@ "cimguiname": "ImVector_clear_destruct", "defaults": {}, "funcname": "clear_destruct", - "location": "imgui:1785", + "location": "imgui:1791", "ov_cimguiname": "ImVector_clear_destruct", "ret": "void", "signature": "()", @@ -11633,7 +11852,7 @@ "cimguiname": "ImVector_contains", "defaults": {}, "funcname": "contains", - "location": "imgui:1819", + "location": "imgui:1825", "ov_cimguiname": "ImVector_contains", "ret": "bool", "signature": "(const T)const", @@ -11654,7 +11873,7 @@ "cimguiname": "ImVector_destroy", "defaults": {}, "destructor": true, - "location": "imgui:1781", + "location": "imgui:1787", "ov_cimguiname": "ImVector_destroy", "realdestructor": true, "ret": "void", @@ -11677,7 +11896,7 @@ "cimguiname": "ImVector_empty", "defaults": {}, "funcname": "empty", - "location": "imgui:1787", + "location": "imgui:1793", "ov_cimguiname": "ImVector_empty", "ret": "bool", "signature": "()const", @@ -11699,7 +11918,7 @@ "cimguiname": "ImVector_end", "defaults": {}, "funcname": "end", - "location": "imgui:1797", + "location": "imgui:1803", "ov_cimguiname": "ImVector_endNil", "ret": "T*", "signature": "()", @@ -11719,7 +11938,7 @@ "cimguiname": "ImVector_end", "defaults": {}, "funcname": "end", - "location": "imgui:1798", + "location": "imgui:1804", "ov_cimguiname": "ImVector_end_const", "ret": "const T*", "signature": "()const", @@ -11745,7 +11964,7 @@ "cimguiname": "ImVector_erase", "defaults": {}, "funcname": "erase", - "location": "imgui:1815", + "location": "imgui:1821", "ov_cimguiname": "ImVector_eraseNil", "ret": "T*", "signature": "(const T*)", @@ -11773,7 +11992,7 @@ "cimguiname": "ImVector_erase", "defaults": {}, "funcname": "erase", - "location": "imgui:1816", + "location": "imgui:1822", "ov_cimguiname": "ImVector_eraseTPtr", "ret": "T*", "signature": "(const T*,const T*)", @@ -11799,7 +12018,7 @@ "cimguiname": "ImVector_erase_unsorted", "defaults": {}, "funcname": "erase_unsorted", - "location": "imgui:1817", + "location": "imgui:1823", "ov_cimguiname": "ImVector_erase_unsorted", "ret": "T*", "signature": "(const T*)", @@ -11825,7 +12044,7 @@ "cimguiname": "ImVector_find", "defaults": {}, "funcname": "find", - "location": "imgui:1820", + "location": "imgui:1826", "ov_cimguiname": "ImVector_findNil", "ret": "T*", "signature": "(const T)", @@ -11849,7 +12068,7 @@ "cimguiname": "ImVector_find", "defaults": {}, "funcname": "find", - "location": "imgui:1821", + "location": "imgui:1827", "ov_cimguiname": "ImVector_find_const", "ret": "const T*", "signature": "(const T)const", @@ -11875,7 +12094,7 @@ "cimguiname": "ImVector_find_erase", "defaults": {}, "funcname": "find_erase", - "location": "imgui:1822", + "location": "imgui:1828", "ov_cimguiname": "ImVector_find_erase", "ret": "bool", "signature": "(const T)", @@ -11901,7 +12120,7 @@ "cimguiname": "ImVector_find_erase_unsorted", "defaults": {}, "funcname": "find_erase_unsorted", - "location": "imgui:1823", + "location": "imgui:1829", "ov_cimguiname": "ImVector_find_erase_unsorted", "ret": "bool", "signature": "(const T)", @@ -11923,7 +12142,7 @@ "cimguiname": "ImVector_front", "defaults": {}, "funcname": "front", - "location": "imgui:1799", + "location": "imgui:1805", "ov_cimguiname": "ImVector_frontNil", "ret": "T*", "retref": "&", @@ -11944,7 +12163,7 @@ "cimguiname": "ImVector_front", "defaults": {}, "funcname": "front", - "location": "imgui:1800", + "location": "imgui:1806", "ov_cimguiname": "ImVector_front_const", "ret": "const T*", "retref": "&", @@ -11971,7 +12190,7 @@ "cimguiname": "ImVector_index_from_ptr", "defaults": {}, "funcname": "index_from_ptr", - "location": "imgui:1824", + "location": "imgui:1830", "ov_cimguiname": "ImVector_index_from_ptr", "ret": "int", "signature": "(const T*)const", @@ -12001,7 +12220,7 @@ "cimguiname": "ImVector_insert", "defaults": {}, "funcname": "insert", - "location": "imgui:1818", + "location": "imgui:1824", "ov_cimguiname": "ImVector_insert", "ret": "T*", "signature": "(const T*,const T)", @@ -12023,7 +12242,7 @@ "cimguiname": "ImVector_max_size", "defaults": {}, "funcname": "max_size", - "location": "imgui:1790", + "location": "imgui:1796", "ov_cimguiname": "ImVector_max_size", "ret": "int", "signature": "()const", @@ -12045,7 +12264,7 @@ "cimguiname": "ImVector_pop_back", "defaults": {}, "funcname": "pop_back", - "location": "imgui:1813", + "location": "imgui:1819", "ov_cimguiname": "ImVector_pop_back", "ret": "void", "signature": "()", @@ -12071,7 +12290,7 @@ "cimguiname": "ImVector_push_back", "defaults": {}, "funcname": "push_back", - "location": "imgui:1812", + "location": "imgui:1818", "ov_cimguiname": "ImVector_push_back", "ret": "void", "signature": "(const T)", @@ -12097,7 +12316,7 @@ "cimguiname": "ImVector_push_front", "defaults": {}, "funcname": "push_front", - "location": "imgui:1814", + "location": "imgui:1820", "ov_cimguiname": "ImVector_push_front", "ret": "void", "signature": "(const T)", @@ -12123,7 +12342,7 @@ "cimguiname": "ImVector_reserve", "defaults": {}, "funcname": "reserve", - "location": "imgui:1809", + "location": "imgui:1815", "ov_cimguiname": "ImVector_reserve", "ret": "void", "signature": "(int)", @@ -12149,7 +12368,7 @@ "cimguiname": "ImVector_resize", "defaults": {}, "funcname": "resize", - "location": "imgui:1806", + "location": "imgui:1812", "ov_cimguiname": "ImVector_resizeNil", "ret": "void", "signature": "(int)", @@ -12177,7 +12396,7 @@ "cimguiname": "ImVector_resize", "defaults": {}, "funcname": "resize", - "location": "imgui:1807", + "location": "imgui:1813", "ov_cimguiname": "ImVector_resizeT", "ret": "void", "signature": "(int,const T)", @@ -12203,7 +12422,7 @@ "cimguiname": "ImVector_shrink", "defaults": {}, "funcname": "shrink", - "location": "imgui:1808", + "location": "imgui:1814", "ov_cimguiname": "ImVector_shrink", "ret": "void", "signature": "(int)", @@ -12225,7 +12444,7 @@ "cimguiname": "ImVector_size", "defaults": {}, "funcname": "size", - "location": "imgui:1788", + "location": "imgui:1794", "ov_cimguiname": "ImVector_size", "ret": "int", "signature": "()const", @@ -12247,7 +12466,7 @@ "cimguiname": "ImVector_size_in_bytes", "defaults": {}, "funcname": "size_in_bytes", - "location": "imgui:1789", + "location": "imgui:1795", "ov_cimguiname": "ImVector_size_in_bytes", "ret": "int", "signature": "()const", @@ -12274,7 +12493,7 @@ "cimguiname": "ImVector_swap", "defaults": {}, "funcname": "swap", - "location": "imgui:1803", + "location": "imgui:1809", "ov_cimguiname": "ImVector_swap", "ret": "void", "signature": "(ImVector*)", @@ -12302,7 +12521,7 @@ "flags": "0" }, "funcname": "AcceptDragDropPayload", - "location": "imgui:842", + "location": "imgui:844", "namespace": "ImGui", "ov_cimguiname": "igAcceptDragDropPayload", "ret": "const ImGuiPayload*", @@ -12324,7 +12543,7 @@ "cimguiname": "igActivateItem", "defaults": {}, "funcname": "ActivateItem", - "location": "imgui_internal:2694", + "location": "imgui_internal:2812", "namespace": "ImGui", "ov_cimguiname": "igActivateItem", "ret": "void", @@ -12350,7 +12569,7 @@ "cimguiname": "igAddContextHook", "defaults": {}, "funcname": "AddContextHook", - "location": "imgui_internal:2583", + "location": "imgui_internal:2688", "namespace": "ImGui", "ov_cimguiname": "igAddContextHook", "ret": "ImGuiID", @@ -12367,7 +12586,7 @@ "cimguiname": "igAlignTextToFramePadding", "defaults": {}, "funcname": "AlignTextToFramePadding", - "location": "imgui:467", + "location": "imgui:468", "namespace": "ImGui", "ov_cimguiname": "igAlignTextToFramePadding", "ret": "void", @@ -12393,7 +12612,7 @@ "cimguiname": "igArrowButton", "defaults": {}, "funcname": "ArrowButton", - "location": "imgui:514", + "location": "imgui:515", "namespace": "ImGui", "ov_cimguiname": "igArrowButton", "ret": "bool", @@ -12429,7 +12648,7 @@ "flags": "0" }, "funcname": "ArrowButtonEx", - "location": "imgui_internal:2885", + "location": "imgui_internal:3006", "namespace": "ImGui", "ov_cimguiname": "igArrowButtonEx", "ret": "bool", @@ -12462,7 +12681,7 @@ "p_open": "NULL" }, "funcname": "Begin", - "location": "imgui:341", + "location": "imgui:342", "namespace": "ImGui", "ov_cimguiname": "igBegin", "ret": "bool", @@ -12500,7 +12719,7 @@ "size": "ImVec2(0,0)" }, "funcname": "BeginChild", - "location": "imgui:352", + "location": "imgui:353", "namespace": "ImGui", "ov_cimguiname": "igBeginChildStr", "ret": "bool", @@ -12536,7 +12755,7 @@ "size": "ImVec2(0,0)" }, "funcname": "BeginChild", - "location": "imgui:353", + "location": "imgui:354", "namespace": "ImGui", "ov_cimguiname": "igBeginChildID", "ret": "bool", @@ -12574,7 +12793,7 @@ "cimguiname": "igBeginChildEx", "defaults": {}, "funcname": "BeginChildEx", - "location": "imgui_internal:2662", + "location": "imgui_internal:2775", "namespace": "ImGui", "ov_cimguiname": "igBeginChildEx", "ret": "bool", @@ -12606,7 +12825,7 @@ "flags": "0" }, "funcname": "BeginChildFrame", - "location": "imgui:904", + "location": "imgui:905", "namespace": "ImGui", "ov_cimguiname": "igBeginChildFrame", "ret": "bool", @@ -12638,7 +12857,7 @@ "flags": "0" }, "funcname": "BeginColumns", - "location": "imgui_internal:2774", + "location": "imgui_internal:2894", "namespace": "ImGui", "ov_cimguiname": "igBeginColumns", "ret": "void", @@ -12670,7 +12889,7 @@ "flags": "0" }, "funcname": "BeginCombo", - "location": "imgui:528", + "location": "imgui:529", "namespace": "ImGui", "ov_cimguiname": "igBeginCombo", "ret": "bool", @@ -12700,7 +12919,7 @@ "cimguiname": "igBeginComboPopup", "defaults": {}, "funcname": "BeginComboPopup", - "location": "imgui_internal:2680", + "location": "imgui_internal:2795", "namespace": "ImGui", "ov_cimguiname": "igBeginComboPopup", "ret": "bool", @@ -12717,7 +12936,7 @@ "cimguiname": "igBeginComboPreview", "defaults": {}, "funcname": "BeginComboPreview", - "location": "imgui_internal:2681", + "location": "imgui_internal:2796", "namespace": "ImGui", "ov_cimguiname": "igBeginComboPreview", "ret": "bool", @@ -12741,7 +12960,7 @@ "disabled": "true" }, "funcname": "BeginDisabled", - "location": "imgui:850", + "location": "imgui:852", "namespace": "ImGui", "ov_cimguiname": "igBeginDisabled", "ret": "void", @@ -12763,7 +12982,7 @@ "cimguiname": "igBeginDockableDragDropSource", "defaults": {}, "funcname": "BeginDockableDragDropSource", - "location": "imgui_internal:2739", + "location": "imgui_internal:2859", "namespace": "ImGui", "ov_cimguiname": "igBeginDockableDragDropSource", "ret": "void", @@ -12785,7 +13004,7 @@ "cimguiname": "igBeginDockableDragDropTarget", "defaults": {}, "funcname": "BeginDockableDragDropTarget", - "location": "imgui_internal:2740", + "location": "imgui_internal:2860", "namespace": "ImGui", "ov_cimguiname": "igBeginDockableDragDropTarget", "ret": "void", @@ -12811,7 +13030,7 @@ "cimguiname": "igBeginDocked", "defaults": {}, "funcname": "BeginDocked", - "location": "imgui_internal:2738", + "location": "imgui_internal:2858", "namespace": "ImGui", "ov_cimguiname": "igBeginDocked", "ret": "void", @@ -12835,7 +13054,7 @@ "flags": "0" }, "funcname": "BeginDragDropSource", - "location": "imgui:838", + "location": "imgui:840", "namespace": "ImGui", "ov_cimguiname": "igBeginDragDropSource", "ret": "bool", @@ -12852,7 +13071,7 @@ "cimguiname": "igBeginDragDropTarget", "defaults": {}, "funcname": "BeginDragDropTarget", - "location": "imgui:841", + "location": "imgui:843", "namespace": "ImGui", "ov_cimguiname": "igBeginDragDropTarget", "ret": "bool", @@ -12878,7 +13097,7 @@ "cimguiname": "igBeginDragDropTargetCustom", "defaults": {}, "funcname": "BeginDragDropTargetCustom", - "location": "imgui_internal:2768", + "location": "imgui_internal:2888", "namespace": "ImGui", "ov_cimguiname": "igBeginDragDropTargetCustom", "ret": "bool", @@ -12895,7 +13114,7 @@ "cimguiname": "igBeginGroup", "defaults": {}, "funcname": "BeginGroup", - "location": "imgui:456", + "location": "imgui:457", "namespace": "ImGui", "ov_cimguiname": "igBeginGroup", "ret": "void", @@ -12923,7 +13142,7 @@ "size": "ImVec2(0,0)" }, "funcname": "BeginListBox", - "location": "imgui:639", + "location": "imgui:640", "namespace": "ImGui", "ov_cimguiname": "igBeginListBox", "ret": "bool", @@ -12940,7 +13159,7 @@ "cimguiname": "igBeginMainMenuBar", "defaults": {}, "funcname": "BeginMainMenuBar", - "location": "imgui:665", + "location": "imgui:666", "namespace": "ImGui", "ov_cimguiname": "igBeginMainMenuBar", "ret": "bool", @@ -12968,7 +13187,7 @@ "enabled": "true" }, "funcname": "BeginMenu", - "location": "imgui:667", + "location": "imgui:668", "namespace": "ImGui", "ov_cimguiname": "igBeginMenu", "ret": "bool", @@ -12985,7 +13204,7 @@ "cimguiname": "igBeginMenuBar", "defaults": {}, "funcname": "BeginMenuBar", - "location": "imgui:663", + "location": "imgui:664", "namespace": "ImGui", "ov_cimguiname": "igBeginMenuBar", "ret": "bool", @@ -13017,7 +13236,7 @@ "enabled": "true" }, "funcname": "BeginMenuEx", - "location": "imgui_internal:2676", + "location": "imgui_internal:2791", "namespace": "ImGui", "ov_cimguiname": "igBeginMenuEx", "ret": "bool", @@ -13045,7 +13264,7 @@ "flags": "0" }, "funcname": "BeginPopup", - "location": "imgui:691", + "location": "imgui:692", "namespace": "ImGui", "ov_cimguiname": "igBeginPopup", "ret": "bool", @@ -13074,7 +13293,7 @@ "str_id": "NULL" }, "funcname": "BeginPopupContextItem", - "location": "imgui:712", + "location": "imgui:713", "namespace": "ImGui", "ov_cimguiname": "igBeginPopupContextItem", "ret": "bool", @@ -13103,7 +13322,7 @@ "str_id": "NULL" }, "funcname": "BeginPopupContextVoid", - "location": "imgui:714", + "location": "imgui:715", "namespace": "ImGui", "ov_cimguiname": "igBeginPopupContextVoid", "ret": "bool", @@ -13132,7 +13351,7 @@ "str_id": "NULL" }, "funcname": "BeginPopupContextWindow", - "location": "imgui:713", + "location": "imgui:714", "namespace": "ImGui", "ov_cimguiname": "igBeginPopupContextWindow", "ret": "bool", @@ -13158,7 +13377,7 @@ "cimguiname": "igBeginPopupEx", "defaults": {}, "funcname": "BeginPopupEx", - "location": "imgui_internal:2667", + "location": "imgui_internal:2781", "namespace": "ImGui", "ov_cimguiname": "igBeginPopupEx", "ret": "bool", @@ -13191,7 +13410,7 @@ "p_open": "NULL" }, "funcname": "BeginPopupModal", - "location": "imgui:692", + "location": "imgui:693", "namespace": "ImGui", "ov_cimguiname": "igBeginPopupModal", "ret": "bool", @@ -13219,7 +13438,7 @@ "flags": "0" }, "funcname": "BeginTabBar", - "location": "imgui:797", + "location": "imgui:798", "namespace": "ImGui", "ov_cimguiname": "igBeginTabBar", "ret": "bool", @@ -13253,7 +13472,7 @@ "cimguiname": "igBeginTabBarEx", "defaults": {}, "funcname": "BeginTabBarEx", - "location": "imgui_internal:2836", + "location": "imgui_internal:2956", "namespace": "ImGui", "ov_cimguiname": "igBeginTabBarEx", "ret": "bool", @@ -13286,7 +13505,7 @@ "p_open": "NULL" }, "funcname": "BeginTabItem", - "location": "imgui:799", + "location": "imgui:800", "namespace": "ImGui", "ov_cimguiname": "igBeginTabItem", "ret": "bool", @@ -13328,7 +13547,7 @@ "outer_size": "ImVec2(0.0f,0.0f)" }, "funcname": "BeginTable", - "location": "imgui:747", + "location": "imgui:748", "namespace": "ImGui", "ov_cimguiname": "igBeginTable", "ret": "bool", @@ -13374,7 +13593,7 @@ "outer_size": "ImVec2(0,0)" }, "funcname": "BeginTableEx", - "location": "imgui_internal:2796", + "location": "imgui_internal:2916", "namespace": "ImGui", "ov_cimguiname": "igBeginTableEx", "ret": "bool", @@ -13391,7 +13610,7 @@ "cimguiname": "igBeginTooltip", "defaults": {}, "funcname": "BeginTooltip", - "location": "imgui:674", + "location": "imgui:675", "namespace": "ImGui", "ov_cimguiname": "igBeginTooltip", "ret": "void", @@ -13401,27 +13620,27 @@ ], "igBeginTooltipEx": [ { - "args": "(ImGuiWindowFlags extra_flags,ImGuiTooltipFlags tooltip_flags)", + "args": "(ImGuiTooltipFlags tooltip_flags,ImGuiWindowFlags extra_window_flags)", "argsT": [ - { - "name": "extra_flags", - "type": "ImGuiWindowFlags" - }, { "name": "tooltip_flags", "type": "ImGuiTooltipFlags" + }, + { + "name": "extra_window_flags", + "type": "ImGuiWindowFlags" } ], - "argsoriginal": "(ImGuiWindowFlags extra_flags,ImGuiTooltipFlags tooltip_flags)", - "call_args": "(extra_flags,tooltip_flags)", + "argsoriginal": "(ImGuiTooltipFlags tooltip_flags,ImGuiWindowFlags extra_window_flags)", + "call_args": "(tooltip_flags,extra_window_flags)", "cimguiname": "igBeginTooltipEx", "defaults": {}, "funcname": "BeginTooltipEx", - "location": "imgui_internal:2668", + "location": "imgui_internal:2782", "namespace": "ImGui", "ov_cimguiname": "igBeginTooltipEx", "ret": "void", - "signature": "(ImGuiWindowFlags,ImGuiTooltipFlags)", + "signature": "(ImGuiTooltipFlags,ImGuiWindowFlags)", "stname": "" } ], @@ -13455,7 +13674,7 @@ "cimguiname": "igBeginViewportSideBar", "defaults": {}, "funcname": "BeginViewportSideBar", - "location": "imgui_internal:2673", + "location": "imgui_internal:2790", "namespace": "ImGui", "ov_cimguiname": "igBeginViewportSideBar", "ret": "bool", @@ -13477,7 +13696,7 @@ "cimguiname": "igBringWindowToDisplayBack", "defaults": {}, "funcname": "BringWindowToDisplayBack", - "location": "imgui_internal:2564", + "location": "imgui_internal:2666", "namespace": "ImGui", "ov_cimguiname": "igBringWindowToDisplayBack", "ret": "void", @@ -13485,6 +13704,32 @@ "stname": "" } ], + "igBringWindowToDisplayBehind": [ + { + "args": "(ImGuiWindow* window,ImGuiWindow* above_window)", + "argsT": [ + { + "name": "window", + "type": "ImGuiWindow*" + }, + { + "name": "above_window", + "type": "ImGuiWindow*" + } + ], + "argsoriginal": "(ImGuiWindow* window,ImGuiWindow* above_window)", + "call_args": "(window,above_window)", + "cimguiname": "igBringWindowToDisplayBehind", + "defaults": {}, + "funcname": "BringWindowToDisplayBehind", + "location": "imgui_internal:2667", + "namespace": "ImGui", + "ov_cimguiname": "igBringWindowToDisplayBehind", + "ret": "void", + "signature": "(ImGuiWindow*,ImGuiWindow*)", + "stname": "" + } + ], "igBringWindowToDisplayFront": [ { "args": "(ImGuiWindow* window)", @@ -13499,7 +13744,7 @@ "cimguiname": "igBringWindowToDisplayFront", "defaults": {}, "funcname": "BringWindowToDisplayFront", - "location": "imgui_internal:2563", + "location": "imgui_internal:2665", "namespace": "ImGui", "ov_cimguiname": "igBringWindowToDisplayFront", "ret": "void", @@ -13521,7 +13766,7 @@ "cimguiname": "igBringWindowToFocusFront", "defaults": {}, "funcname": "BringWindowToFocusFront", - "location": "imgui_internal:2562", + "location": "imgui_internal:2664", "namespace": "ImGui", "ov_cimguiname": "igBringWindowToFocusFront", "ret": "void", @@ -13538,7 +13783,7 @@ "cimguiname": "igBullet", "defaults": {}, "funcname": "Bullet", - "location": "imgui:523", + "location": "imgui:524", "namespace": "ImGui", "ov_cimguiname": "igBullet", "ret": "void", @@ -13565,7 +13810,7 @@ "defaults": {}, "funcname": "BulletText", "isvararg": "...)", - "location": "imgui:505", + "location": "imgui:506", "namespace": "ImGui", "ov_cimguiname": "igBulletText", "ret": "void", @@ -13591,7 +13836,7 @@ "cimguiname": "igBulletTextV", "defaults": {}, "funcname": "BulletTextV", - "location": "imgui:506", + "location": "imgui:507", "namespace": "ImGui", "ov_cimguiname": "igBulletTextV", "ret": "void", @@ -13619,7 +13864,7 @@ "size": "ImVec2(0,0)" }, "funcname": "Button", - "location": "imgui:511", + "location": "imgui:512", "namespace": "ImGui", "ov_cimguiname": "igButton", "ret": "bool", @@ -13659,7 +13904,7 @@ "flags": "0" }, "funcname": "ButtonBehavior", - "location": "imgui_internal:2898", + "location": "imgui_internal:3019", "namespace": "ImGui", "ov_cimguiname": "igButtonBehavior", "ret": "bool", @@ -13692,7 +13937,7 @@ "size_arg": "ImVec2(0,0)" }, "funcname": "ButtonEx", - "location": "imgui_internal:2882", + "location": "imgui_internal:3003", "namespace": "ImGui", "ov_cimguiname": "igButtonEx", "ret": "bool", @@ -13726,7 +13971,7 @@ "cimguiname": "igCalcItemSize", "defaults": {}, "funcname": "CalcItemSize", - "location": "imgui_internal:2635", + "location": "imgui_internal:2746", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igCalcItemSize", @@ -13744,7 +13989,7 @@ "cimguiname": "igCalcItemWidth", "defaults": {}, "funcname": "CalcItemWidth", - "location": "imgui:428", + "location": "imgui:429", "namespace": "ImGui", "ov_cimguiname": "igCalcItemWidth", "ret": "float", @@ -13752,37 +13997,33 @@ "stname": "" } ], - "igCalcListClipping": [ + "igCalcRoundingFlagsForRectInRect": [ { - "args": "(int items_count,float items_height,int* out_items_display_start,int* out_items_display_end)", + "args": "(const ImRect r_in,const ImRect r_outer,float threshold)", "argsT": [ { - "name": "items_count", - "type": "int" - }, - { - "name": "items_height", - "type": "float" + "name": "r_in", + "type": "const ImRect" }, { - "name": "out_items_display_start", - "type": "int*" + "name": "r_outer", + "type": "const ImRect" }, { - "name": "out_items_display_end", - "type": "int*" + "name": "threshold", + "type": "float" } ], - "argsoriginal": "(int items_count,float items_height,int* out_items_display_start,int* out_items_display_end)", - "call_args": "(items_count,items_height,out_items_display_start,out_items_display_end)", - "cimguiname": "igCalcListClipping", + "argsoriginal": "(const ImRect& r_in,const ImRect& r_outer,float threshold)", + "call_args": "(r_in,r_outer,threshold)", + "cimguiname": "igCalcRoundingFlagsForRectInRect", "defaults": {}, - "funcname": "CalcListClipping", - "location": "imgui:903", + "funcname": "CalcRoundingFlagsForRectInRect", + "location": "imgui_internal:2993", "namespace": "ImGui", - "ov_cimguiname": "igCalcListClipping", - "ret": "void", - "signature": "(int,float,int*,int*)", + "ov_cimguiname": "igCalcRoundingFlagsForRectInRect", + "ret": "ImDrawFlags", + "signature": "(const ImRect,const ImRect,float)", "stname": "" } ], @@ -13820,7 +14061,7 @@ "wrap_width": "-1.0f" }, "funcname": "CalcTextSize", - "location": "imgui:908", + "location": "imgui:909", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igCalcTextSize", @@ -13855,7 +14096,7 @@ "cimguiname": "igCalcTypematicRepeatAmount", "defaults": {}, "funcname": "CalcTypematicRepeatAmount", - "location": "imgui_internal:2693", + "location": "imgui_internal:2811", "namespace": "ImGui", "ov_cimguiname": "igCalcTypematicRepeatAmount", "ret": "int", @@ -13881,7 +14122,7 @@ "cimguiname": "igCalcWindowNextAutoFitSize", "defaults": {}, "funcname": "CalcWindowNextAutoFitSize", - "location": "imgui_internal:2550", + "location": "imgui_internal:2649", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igCalcWindowNextAutoFitSize", @@ -13908,7 +14149,7 @@ "cimguiname": "igCalcWrapWidthForPos", "defaults": {}, "funcname": "CalcWrapWidthForPos", - "location": "imgui_internal:2636", + "location": "imgui_internal:2747", "namespace": "ImGui", "ov_cimguiname": "igCalcWrapWidthForPos", "ret": "float", @@ -13934,7 +14175,7 @@ "cimguiname": "igCallContextHooks", "defaults": {}, "funcname": "CallContextHooks", - "location": "imgui_internal:2585", + "location": "imgui_internal:2690", "namespace": "ImGui", "ov_cimguiname": "igCallContextHooks", "ret": "void", @@ -13958,7 +14199,7 @@ "want_capture_keyboard_value": "true" }, "funcname": "CaptureKeyboardFromApp", - "location": "imgui:924", + "location": "imgui:925", "namespace": "ImGui", "ov_cimguiname": "igCaptureKeyboardFromApp", "ret": "void", @@ -13982,7 +14223,7 @@ "want_capture_mouse_value": "true" }, "funcname": "CaptureMouseFromApp", - "location": "imgui:944", + "location": "imgui:946", "namespace": "ImGui", "ov_cimguiname": "igCaptureMouseFromApp", "ret": "void", @@ -14008,7 +14249,7 @@ "cimguiname": "igCheckbox", "defaults": {}, "funcname": "Checkbox", - "location": "imgui:517", + "location": "imgui:518", "namespace": "ImGui", "ov_cimguiname": "igCheckbox", "ret": "bool", @@ -14038,7 +14279,7 @@ "cimguiname": "igCheckboxFlags", "defaults": {}, "funcname": "CheckboxFlags", - "location": "imgui:518", + "location": "imgui:519", "namespace": "ImGui", "ov_cimguiname": "igCheckboxFlagsIntPtr", "ret": "bool", @@ -14066,7 +14307,7 @@ "cimguiname": "igCheckboxFlags", "defaults": {}, "funcname": "CheckboxFlags", - "location": "imgui:519", + "location": "imgui:520", "namespace": "ImGui", "ov_cimguiname": "igCheckboxFlagsUintPtr", "ret": "bool", @@ -14094,7 +14335,7 @@ "cimguiname": "igCheckboxFlags", "defaults": {}, "funcname": "CheckboxFlags", - "location": "imgui_internal:2894", + "location": "imgui_internal:3015", "namespace": "ImGui", "ov_cimguiname": "igCheckboxFlagsS64Ptr", "ret": "bool", @@ -14122,7 +14363,7 @@ "cimguiname": "igCheckboxFlags", "defaults": {}, "funcname": "CheckboxFlags", - "location": "imgui_internal:2895", + "location": "imgui_internal:3016", "namespace": "ImGui", "ov_cimguiname": "igCheckboxFlagsU64Ptr", "ret": "bool", @@ -14139,7 +14380,7 @@ "cimguiname": "igClearActiveID", "defaults": {}, "funcname": "ClearActiveID", - "location": "imgui_internal:2619", + "location": "imgui_internal:2731", "namespace": "ImGui", "ov_cimguiname": "igClearActiveID", "ret": "void", @@ -14156,7 +14397,7 @@ "cimguiname": "igClearDragDrop", "defaults": {}, "funcname": "ClearDragDrop", - "location": "imgui_internal:2769", + "location": "imgui_internal:2889", "namespace": "ImGui", "ov_cimguiname": "igClearDragDrop", "ret": "void", @@ -14173,7 +14414,7 @@ "cimguiname": "igClearIniSettings", "defaults": {}, "funcname": "ClearIniSettings", - "location": "imgui_internal:2597", + "location": "imgui_internal:2702", "namespace": "ImGui", "ov_cimguiname": "igClearIniSettings", "ret": "void", @@ -14199,7 +14440,7 @@ "cimguiname": "igCloseButton", "defaults": {}, "funcname": "CloseButton", - "location": "imgui_internal:2883", + "location": "imgui_internal:3004", "namespace": "ImGui", "ov_cimguiname": "igCloseButton", "ret": "bool", @@ -14216,7 +14457,7 @@ "cimguiname": "igCloseCurrentPopup", "defaults": {}, "funcname": "CloseCurrentPopup", - "location": "imgui:705", + "location": "imgui:706", "namespace": "ImGui", "ov_cimguiname": "igCloseCurrentPopup", "ret": "void", @@ -14242,7 +14483,7 @@ "cimguiname": "igClosePopupToLevel", "defaults": {}, "funcname": "ClosePopupToLevel", - "location": "imgui_internal:2664", + "location": "imgui_internal:2777", "namespace": "ImGui", "ov_cimguiname": "igClosePopupToLevel", "ret": "void", @@ -14250,6 +14491,23 @@ "stname": "" } ], + "igClosePopupsExceptModals": [ + { + "args": "()", + "argsT": [], + "argsoriginal": "()", + "call_args": "()", + "cimguiname": "igClosePopupsExceptModals", + "defaults": {}, + "funcname": "ClosePopupsExceptModals", + "location": "imgui_internal:2779", + "namespace": "ImGui", + "ov_cimguiname": "igClosePopupsExceptModals", + "ret": "void", + "signature": "()", + "stname": "" + } + ], "igClosePopupsOverWindow": [ { "args": "(ImGuiWindow* ref_window,bool restore_focus_to_window_under_popup)", @@ -14268,7 +14526,7 @@ "cimguiname": "igClosePopupsOverWindow", "defaults": {}, "funcname": "ClosePopupsOverWindow", - "location": "imgui_internal:2665", + "location": "imgui_internal:2778", "namespace": "ImGui", "ov_cimguiname": "igClosePopupsOverWindow", "ret": "void", @@ -14298,7 +14556,7 @@ "cimguiname": "igCollapseButton", "defaults": {}, "funcname": "CollapseButton", - "location": "imgui_internal:2884", + "location": "imgui_internal:3005", "namespace": "ImGui", "ov_cimguiname": "igCollapseButton", "ret": "bool", @@ -14326,7 +14584,7 @@ "flags": "0" }, "funcname": "CollapsingHeader", - "location": "imgui:623", + "location": "imgui:624", "namespace": "ImGui", "ov_cimguiname": "igCollapsingHeaderTreeNodeFlags", "ret": "bool", @@ -14356,7 +14614,7 @@ "flags": "0" }, "funcname": "CollapsingHeader", - "location": "imgui:624", + "location": "imgui:625", "namespace": "ImGui", "ov_cimguiname": "igCollapsingHeaderBoolPtr", "ret": "bool", @@ -14393,7 +14651,7 @@ "size": "ImVec2(0,0)" }, "funcname": "ColorButton", - "location": "imgui:604", + "location": "imgui:605", "namespace": "ImGui", "ov_cimguiname": "igColorButton", "ret": "bool", @@ -14415,7 +14673,7 @@ "cimguiname": "igColorConvertFloat4ToU32", "defaults": {}, "funcname": "ColorConvertFloat4ToU32", - "location": "imgui:912", + "location": "imgui:913", "namespace": "ImGui", "ov_cimguiname": "igColorConvertFloat4ToU32", "ret": "ImU32", @@ -14460,7 +14718,7 @@ "cimguiname": "igColorConvertHSVtoRGB", "defaults": {}, "funcname": "ColorConvertHSVtoRGB", - "location": "imgui:914", + "location": "imgui:915", "namespace": "ImGui", "ov_cimguiname": "igColorConvertHSVtoRGB", "ret": "void", @@ -14505,7 +14763,7 @@ "cimguiname": "igColorConvertRGBtoHSV", "defaults": {}, "funcname": "ColorConvertRGBtoHSV", - "location": "imgui:913", + "location": "imgui:914", "namespace": "ImGui", "ov_cimguiname": "igColorConvertRGBtoHSV", "ret": "void", @@ -14531,7 +14789,7 @@ "cimguiname": "igColorConvertU32ToFloat4", "defaults": {}, "funcname": "ColorConvertU32ToFloat4", - "location": "imgui:911", + "location": "imgui:912", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igColorConvertU32ToFloat4", @@ -14564,7 +14822,7 @@ "flags": "0" }, "funcname": "ColorEdit3", - "location": "imgui:600", + "location": "imgui:601", "namespace": "ImGui", "ov_cimguiname": "igColorEdit3", "ret": "bool", @@ -14596,7 +14854,7 @@ "flags": "0" }, "funcname": "ColorEdit4", - "location": "imgui:601", + "location": "imgui:602", "namespace": "ImGui", "ov_cimguiname": "igColorEdit4", "ret": "bool", @@ -14622,7 +14880,7 @@ "cimguiname": "igColorEditOptionsPopup", "defaults": {}, "funcname": "ColorEditOptionsPopup", - "location": "imgui_internal:2933", + "location": "imgui_internal:3054", "namespace": "ImGui", "ov_cimguiname": "igColorEditOptionsPopup", "ret": "void", @@ -14654,7 +14912,7 @@ "flags": "0" }, "funcname": "ColorPicker3", - "location": "imgui:602", + "location": "imgui:603", "namespace": "ImGui", "ov_cimguiname": "igColorPicker3", "ret": "bool", @@ -14691,7 +14949,7 @@ "ref_col": "NULL" }, "funcname": "ColorPicker4", - "location": "imgui:603", + "location": "imgui:604", "namespace": "ImGui", "ov_cimguiname": "igColorPicker4", "ret": "bool", @@ -14717,7 +14975,7 @@ "cimguiname": "igColorPickerOptionsPopup", "defaults": {}, "funcname": "ColorPickerOptionsPopup", - "location": "imgui_internal:2934", + "location": "imgui_internal:3055", "namespace": "ImGui", "ov_cimguiname": "igColorPickerOptionsPopup", "ret": "void", @@ -14747,7 +15005,7 @@ "cimguiname": "igColorTooltip", "defaults": {}, "funcname": "ColorTooltip", - "location": "imgui_internal:2932", + "location": "imgui_internal:3053", "namespace": "ImGui", "ov_cimguiname": "igColorTooltip", "ret": "void", @@ -14781,7 +15039,7 @@ "id": "NULL" }, "funcname": "Columns", - "location": "imgui:786", + "location": "imgui:787", "namespace": "ImGui", "ov_cimguiname": "igColumns", "ret": "void", @@ -14821,7 +15079,7 @@ "popup_max_height_in_items": "-1" }, "funcname": "Combo", - "location": "imgui:530", + "location": "imgui:531", "namespace": "ImGui", "ov_cimguiname": "igComboStr_arr", "ret": "bool", @@ -14855,7 +15113,7 @@ "popup_max_height_in_items": "-1" }, "funcname": "Combo", - "location": "imgui:531", + "location": "imgui:532", "namespace": "ImGui", "ov_cimguiname": "igComboStr", "ret": "bool", @@ -14899,7 +15157,7 @@ "popup_max_height_in_items": "-1" }, "funcname": "Combo", - "location": "imgui:532", + "location": "imgui:533", "namespace": "ImGui", "ov_cimguiname": "igComboFnBoolPtr", "ret": "bool", @@ -14945,7 +15203,7 @@ "cimguiname": "igCreateNewWindowSettings", "defaults": {}, "funcname": "CreateNewWindowSettings", - "location": "imgui_internal:2598", + "location": "imgui_internal:2703", "namespace": "ImGui", "ov_cimguiname": "igCreateNewWindowSettings", "ret": "ImGuiWindowSettings*", @@ -14983,7 +15241,7 @@ "cimguiname": "igDataTypeApplyOp", "defaults": {}, "funcname": "DataTypeApplyOp", - "location": "imgui_internal:2919", + "location": "imgui_internal:3040", "namespace": "ImGui", "ov_cimguiname": "igDataTypeApplyOp", "ret": "void", @@ -15021,7 +15279,7 @@ "cimguiname": "igDataTypeApplyOpFromText", "defaults": {}, "funcname": "DataTypeApplyOpFromText", - "location": "imgui_internal:2920", + "location": "imgui_internal:3041", "namespace": "ImGui", "ov_cimguiname": "igDataTypeApplyOpFromText", "ret": "bool", @@ -15055,7 +15313,7 @@ "cimguiname": "igDataTypeClamp", "defaults": {}, "funcname": "DataTypeClamp", - "location": "imgui_internal:2922", + "location": "imgui_internal:3043", "namespace": "ImGui", "ov_cimguiname": "igDataTypeClamp", "ret": "bool", @@ -15085,7 +15343,7 @@ "cimguiname": "igDataTypeCompare", "defaults": {}, "funcname": "DataTypeCompare", - "location": "imgui_internal:2921", + "location": "imgui_internal:3042", "namespace": "ImGui", "ov_cimguiname": "igDataTypeCompare", "ret": "int", @@ -15123,7 +15381,7 @@ "cimguiname": "igDataTypeFormatString", "defaults": {}, "funcname": "DataTypeFormatString", - "location": "imgui_internal:2918", + "location": "imgui_internal:3039", "namespace": "ImGui", "ov_cimguiname": "igDataTypeFormatString", "ret": "int", @@ -15145,7 +15403,7 @@ "cimguiname": "igDataTypeGetInfo", "defaults": {}, "funcname": "DataTypeGetInfo", - "location": "imgui_internal:2917", + "location": "imgui_internal:3038", "namespace": "ImGui", "ov_cimguiname": "igDataTypeGetInfo", "ret": "const ImGuiDataTypeInfo*", @@ -15191,7 +15449,7 @@ "cimguiname": "igDebugCheckVersionAndDataLayout", "defaults": {}, "funcname": "DebugCheckVersionAndDataLayout", - "location": "imgui:962", + "location": "imgui:964", "namespace": "ImGui", "ov_cimguiname": "igDebugCheckVersionAndDataLayout", "ret": "bool", @@ -15215,7 +15473,7 @@ "col": "4278190335" }, "funcname": "DebugDrawItemRect", - "location": "imgui_internal:2950", + "location": "imgui_internal:3072", "namespace": "ImGui", "ov_cimguiname": "igDebugDrawItemRect", "ret": "void", @@ -15223,6 +15481,40 @@ "stname": "" } ], + "igDebugHookIdInfo": [ + { + "args": "(ImGuiID id,ImGuiDataType data_type,const void* data_id,const void* data_id_end)", + "argsT": [ + { + "name": "id", + "type": "ImGuiID" + }, + { + "name": "data_type", + "type": "ImGuiDataType" + }, + { + "name": "data_id", + "type": "const void*" + }, + { + "name": "data_id_end", + "type": "const void*" + } + ], + "argsoriginal": "(ImGuiID id,ImGuiDataType data_type,const void* data_id,const void* data_id_end)", + "call_args": "(id,data_type,data_id,data_id_end)", + "cimguiname": "igDebugHookIdInfo", + "defaults": {}, + "funcname": "DebugHookIdInfo", + "location": "imgui_internal:3076", + "namespace": "ImGui", + "ov_cimguiname": "igDebugHookIdInfo", + "ret": "void", + "signature": "(ImGuiID,ImGuiDataType,const void*,const void*)", + "stname": "" + } + ], "igDebugNodeColumns": [ { "args": "(ImGuiOldColumns* columns)", @@ -15237,7 +15529,7 @@ "cimguiname": "igDebugNodeColumns", "defaults": {}, "funcname": "DebugNodeColumns", - "location": "imgui_internal:2954", + "location": "imgui_internal:3077", "namespace": "ImGui", "ov_cimguiname": "igDebugNodeColumns", "ret": "void", @@ -15263,7 +15555,7 @@ "cimguiname": "igDebugNodeDockNode", "defaults": {}, "funcname": "DebugNodeDockNode", - "location": "imgui_internal:2955", + "location": "imgui_internal:3078", "namespace": "ImGui", "ov_cimguiname": "igDebugNodeDockNode", "ret": "void", @@ -15301,7 +15593,7 @@ "cimguiname": "igDebugNodeDrawCmdShowMeshAndBoundingBox", "defaults": {}, "funcname": "DebugNodeDrawCmdShowMeshAndBoundingBox", - "location": "imgui_internal:2957", + "location": "imgui_internal:3080", "namespace": "ImGui", "ov_cimguiname": "igDebugNodeDrawCmdShowMeshAndBoundingBox", "ret": "void", @@ -15335,7 +15627,7 @@ "cimguiname": "igDebugNodeDrawList", "defaults": {}, "funcname": "DebugNodeDrawList", - "location": "imgui_internal:2956", + "location": "imgui_internal:3079", "namespace": "ImGui", "ov_cimguiname": "igDebugNodeDrawList", "ret": "void", @@ -15357,7 +15649,7 @@ "cimguiname": "igDebugNodeFont", "defaults": {}, "funcname": "DebugNodeFont", - "location": "imgui_internal:2958", + "location": "imgui_internal:3081", "namespace": "ImGui", "ov_cimguiname": "igDebugNodeFont", "ret": "void", @@ -15383,7 +15675,7 @@ "cimguiname": "igDebugNodeStorage", "defaults": {}, "funcname": "DebugNodeStorage", - "location": "imgui_internal:2959", + "location": "imgui_internal:3082", "namespace": "ImGui", "ov_cimguiname": "igDebugNodeStorage", "ret": "void", @@ -15409,7 +15701,7 @@ "cimguiname": "igDebugNodeTabBar", "defaults": {}, "funcname": "DebugNodeTabBar", - "location": "imgui_internal:2960", + "location": "imgui_internal:3083", "namespace": "ImGui", "ov_cimguiname": "igDebugNodeTabBar", "ret": "void", @@ -15431,7 +15723,7 @@ "cimguiname": "igDebugNodeTable", "defaults": {}, "funcname": "DebugNodeTable", - "location": "imgui_internal:2961", + "location": "imgui_internal:3084", "namespace": "ImGui", "ov_cimguiname": "igDebugNodeTable", "ret": "void", @@ -15453,7 +15745,7 @@ "cimguiname": "igDebugNodeTableSettings", "defaults": {}, "funcname": "DebugNodeTableSettings", - "location": "imgui_internal:2962", + "location": "imgui_internal:3085", "namespace": "ImGui", "ov_cimguiname": "igDebugNodeTableSettings", "ret": "void", @@ -15475,7 +15767,7 @@ "cimguiname": "igDebugNodeViewport", "defaults": {}, "funcname": "DebugNodeViewport", - "location": "imgui_internal:2966", + "location": "imgui_internal:3090", "namespace": "ImGui", "ov_cimguiname": "igDebugNodeViewport", "ret": "void", @@ -15501,7 +15793,7 @@ "cimguiname": "igDebugNodeWindow", "defaults": {}, "funcname": "DebugNodeWindow", - "location": "imgui_internal:2963", + "location": "imgui_internal:3086", "namespace": "ImGui", "ov_cimguiname": "igDebugNodeWindow", "ret": "void", @@ -15523,7 +15815,7 @@ "cimguiname": "igDebugNodeWindowSettings", "defaults": {}, "funcname": "DebugNodeWindowSettings", - "location": "imgui_internal:2964", + "location": "imgui_internal:3087", "namespace": "ImGui", "ov_cimguiname": "igDebugNodeWindowSettings", "ret": "void", @@ -15549,7 +15841,7 @@ "cimguiname": "igDebugNodeWindowsList", "defaults": {}, "funcname": "DebugNodeWindowsList", - "location": "imgui_internal:2965", + "location": "imgui_internal:3088", "namespace": "ImGui", "ov_cimguiname": "igDebugNodeWindowsList", "ret": "void", @@ -15557,6 +15849,36 @@ "stname": "" } ], + "igDebugNodeWindowsListByBeginStackParent": [ + { + "args": "(ImGuiWindow** windows,int windows_size,ImGuiWindow* parent_in_begin_stack)", + "argsT": [ + { + "name": "windows", + "type": "ImGuiWindow**" + }, + { + "name": "windows_size", + "type": "int" + }, + { + "name": "parent_in_begin_stack", + "type": "ImGuiWindow*" + } + ], + "argsoriginal": "(ImGuiWindow** windows,int windows_size,ImGuiWindow* parent_in_begin_stack)", + "call_args": "(windows,windows_size,parent_in_begin_stack)", + "cimguiname": "igDebugNodeWindowsListByBeginStackParent", + "defaults": {}, + "funcname": "DebugNodeWindowsListByBeginStackParent", + "location": "imgui_internal:3089", + "namespace": "ImGui", + "ov_cimguiname": "igDebugNodeWindowsListByBeginStackParent", + "ret": "void", + "signature": "(ImGuiWindow**,int,ImGuiWindow*)", + "stname": "" + } + ], "igDebugRenderViewportThumbnail": [ { "args": "(ImDrawList* draw_list,ImGuiViewportP* viewport,const ImRect bb)", @@ -15579,7 +15901,7 @@ "cimguiname": "igDebugRenderViewportThumbnail", "defaults": {}, "funcname": "DebugRenderViewportThumbnail", - "location": "imgui_internal:2967", + "location": "imgui_internal:3091", "namespace": "ImGui", "ov_cimguiname": "igDebugRenderViewportThumbnail", "ret": "void", @@ -15596,7 +15918,7 @@ "cimguiname": "igDebugStartItemPicker", "defaults": {}, "funcname": "DebugStartItemPicker", - "location": "imgui_internal:2951", + "location": "imgui_internal:3073", "namespace": "ImGui", "ov_cimguiname": "igDebugStartItemPicker", "ret": "void", @@ -15642,7 +15964,7 @@ "cimguiname": "igDestroyPlatformWindow", "defaults": {}, "funcname": "DestroyPlatformWindow", - "location": "imgui_internal:2590", + "location": "imgui_internal:2695", "namespace": "ImGui", "ov_cimguiname": "igDestroyPlatformWindow", "ret": "void", @@ -15659,7 +15981,7 @@ "cimguiname": "igDestroyPlatformWindows", "defaults": {}, "funcname": "DestroyPlatformWindows", - "location": "imgui:979", + "location": "imgui:981", "namespace": "ImGui", "ov_cimguiname": "igDestroyPlatformWindows", "ret": "void", @@ -15688,7 +16010,7 @@ "node_id": "0" }, "funcname": "DockBuilderAddNode", - "location": "imgui_internal:2755", + "location": "imgui_internal:2875", "namespace": "ImGui", "ov_cimguiname": "igDockBuilderAddNode", "ret": "ImGuiID", @@ -15718,7 +16040,7 @@ "cimguiname": "igDockBuilderCopyDockSpace", "defaults": {}, "funcname": "DockBuilderCopyDockSpace", - "location": "imgui_internal:2762", + "location": "imgui_internal:2882", "namespace": "ImGui", "ov_cimguiname": "igDockBuilderCopyDockSpace", "ret": "void", @@ -15748,7 +16070,7 @@ "cimguiname": "igDockBuilderCopyNode", "defaults": {}, "funcname": "DockBuilderCopyNode", - "location": "imgui_internal:2763", + "location": "imgui_internal:2883", "namespace": "ImGui", "ov_cimguiname": "igDockBuilderCopyNode", "ret": "void", @@ -15774,7 +16096,7 @@ "cimguiname": "igDockBuilderCopyWindowSettings", "defaults": {}, "funcname": "DockBuilderCopyWindowSettings", - "location": "imgui_internal:2764", + "location": "imgui_internal:2884", "namespace": "ImGui", "ov_cimguiname": "igDockBuilderCopyWindowSettings", "ret": "void", @@ -15800,7 +16122,7 @@ "cimguiname": "igDockBuilderDockWindow", "defaults": {}, "funcname": "DockBuilderDockWindow", - "location": "imgui_internal:2752", + "location": "imgui_internal:2872", "namespace": "ImGui", "ov_cimguiname": "igDockBuilderDockWindow", "ret": "void", @@ -15822,7 +16144,7 @@ "cimguiname": "igDockBuilderFinish", "defaults": {}, "funcname": "DockBuilderFinish", - "location": "imgui_internal:2765", + "location": "imgui_internal:2885", "namespace": "ImGui", "ov_cimguiname": "igDockBuilderFinish", "ret": "void", @@ -15844,7 +16166,7 @@ "cimguiname": "igDockBuilderGetCentralNode", "defaults": {}, "funcname": "DockBuilderGetCentralNode", - "location": "imgui_internal:2754", + "location": "imgui_internal:2874", "namespace": "ImGui", "ov_cimguiname": "igDockBuilderGetCentralNode", "ret": "ImGuiDockNode*", @@ -15866,7 +16188,7 @@ "cimguiname": "igDockBuilderGetNode", "defaults": {}, "funcname": "DockBuilderGetNode", - "location": "imgui_internal:2753", + "location": "imgui_internal:2873", "namespace": "ImGui", "ov_cimguiname": "igDockBuilderGetNode", "ret": "ImGuiDockNode*", @@ -15888,7 +16210,7 @@ "cimguiname": "igDockBuilderRemoveNode", "defaults": {}, "funcname": "DockBuilderRemoveNode", - "location": "imgui_internal:2756", + "location": "imgui_internal:2876", "namespace": "ImGui", "ov_cimguiname": "igDockBuilderRemoveNode", "ret": "void", @@ -15910,7 +16232,7 @@ "cimguiname": "igDockBuilderRemoveNodeChildNodes", "defaults": {}, "funcname": "DockBuilderRemoveNodeChildNodes", - "location": "imgui_internal:2758", + "location": "imgui_internal:2878", "namespace": "ImGui", "ov_cimguiname": "igDockBuilderRemoveNodeChildNodes", "ret": "void", @@ -15938,7 +16260,7 @@ "clear_settings_refs": "true" }, "funcname": "DockBuilderRemoveNodeDockedWindows", - "location": "imgui_internal:2757", + "location": "imgui_internal:2877", "namespace": "ImGui", "ov_cimguiname": "igDockBuilderRemoveNodeDockedWindows", "ret": "void", @@ -15964,7 +16286,7 @@ "cimguiname": "igDockBuilderSetNodePos", "defaults": {}, "funcname": "DockBuilderSetNodePos", - "location": "imgui_internal:2759", + "location": "imgui_internal:2879", "namespace": "ImGui", "ov_cimguiname": "igDockBuilderSetNodePos", "ret": "void", @@ -15990,7 +16312,7 @@ "cimguiname": "igDockBuilderSetNodeSize", "defaults": {}, "funcname": "DockBuilderSetNodeSize", - "location": "imgui_internal:2760", + "location": "imgui_internal:2880", "namespace": "ImGui", "ov_cimguiname": "igDockBuilderSetNodeSize", "ret": "void", @@ -16028,7 +16350,7 @@ "cimguiname": "igDockBuilderSplitNode", "defaults": {}, "funcname": "DockBuilderSplitNode", - "location": "imgui_internal:2761", + "location": "imgui_internal:2881", "namespace": "ImGui", "ov_cimguiname": "igDockBuilderSplitNode", "ret": "ImGuiID", @@ -16070,7 +16392,7 @@ "cimguiname": "igDockContextCalcDropPosForDocking", "defaults": {}, "funcname": "DockContextCalcDropPosForDocking", - "location": "imgui_internal:2730", + "location": "imgui_internal:2849", "namespace": "ImGui", "ov_cimguiname": "igDockContextCalcDropPosForDocking", "ret": "bool", @@ -16100,7 +16422,7 @@ "cimguiname": "igDockContextClearNodes", "defaults": {}, "funcname": "DockContextClearNodes", - "location": "imgui_internal:2722", + "location": "imgui_internal:2840", "namespace": "ImGui", "ov_cimguiname": "igDockContextClearNodes", "ret": "void", @@ -16108,6 +16430,28 @@ "stname": "" } ], + "igDockContextEndFrame": [ + { + "args": "(ImGuiContext* ctx)", + "argsT": [ + { + "name": "ctx", + "type": "ImGuiContext*" + } + ], + "argsoriginal": "(ImGuiContext* ctx)", + "call_args": "(ctx)", + "cimguiname": "igDockContextEndFrame", + "defaults": {}, + "funcname": "DockContextEndFrame", + "location": "imgui_internal:2844", + "namespace": "ImGui", + "ov_cimguiname": "igDockContextEndFrame", + "ret": "void", + "signature": "(ImGuiContext*)", + "stname": "" + } + ], "igDockContextGenNodeID": [ { "args": "(ImGuiContext* ctx)", @@ -16122,7 +16466,7 @@ "cimguiname": "igDockContextGenNodeID", "defaults": {}, "funcname": "DockContextGenNodeID", - "location": "imgui_internal:2726", + "location": "imgui_internal:2845", "namespace": "ImGui", "ov_cimguiname": "igDockContextGenNodeID", "ret": "ImGuiID", @@ -16144,7 +16488,7 @@ "cimguiname": "igDockContextInitialize", "defaults": {}, "funcname": "DockContextInitialize", - "location": "imgui_internal:2720", + "location": "imgui_internal:2838", "namespace": "ImGui", "ov_cimguiname": "igDockContextInitialize", "ret": "void", @@ -16166,7 +16510,7 @@ "cimguiname": "igDockContextNewFrameUpdateDocking", "defaults": {}, "funcname": "DockContextNewFrameUpdateDocking", - "location": "imgui_internal:2725", + "location": "imgui_internal:2843", "namespace": "ImGui", "ov_cimguiname": "igDockContextNewFrameUpdateDocking", "ret": "void", @@ -16188,7 +16532,7 @@ "cimguiname": "igDockContextNewFrameUpdateUndocking", "defaults": {}, "funcname": "DockContextNewFrameUpdateUndocking", - "location": "imgui_internal:2724", + "location": "imgui_internal:2842", "namespace": "ImGui", "ov_cimguiname": "igDockContextNewFrameUpdateUndocking", "ret": "void", @@ -16234,7 +16578,7 @@ "cimguiname": "igDockContextQueueDock", "defaults": {}, "funcname": "DockContextQueueDock", - "location": "imgui_internal:2727", + "location": "imgui_internal:2846", "namespace": "ImGui", "ov_cimguiname": "igDockContextQueueDock", "ret": "void", @@ -16260,7 +16604,7 @@ "cimguiname": "igDockContextQueueUndockNode", "defaults": {}, "funcname": "DockContextQueueUndockNode", - "location": "imgui_internal:2729", + "location": "imgui_internal:2848", "namespace": "ImGui", "ov_cimguiname": "igDockContextQueueUndockNode", "ret": "void", @@ -16286,7 +16630,7 @@ "cimguiname": "igDockContextQueueUndockWindow", "defaults": {}, "funcname": "DockContextQueueUndockWindow", - "location": "imgui_internal:2728", + "location": "imgui_internal:2847", "namespace": "ImGui", "ov_cimguiname": "igDockContextQueueUndockWindow", "ret": "void", @@ -16308,7 +16652,7 @@ "cimguiname": "igDockContextRebuildNodes", "defaults": {}, "funcname": "DockContextRebuildNodes", - "location": "imgui_internal:2723", + "location": "imgui_internal:2841", "namespace": "ImGui", "ov_cimguiname": "igDockContextRebuildNodes", "ret": "void", @@ -16330,7 +16674,7 @@ "cimguiname": "igDockContextShutdown", "defaults": {}, "funcname": "DockContextShutdown", - "location": "imgui_internal:2721", + "location": "imgui_internal:2839", "namespace": "ImGui", "ov_cimguiname": "igDockContextShutdown", "ret": "void", @@ -16352,7 +16696,7 @@ "cimguiname": "igDockNodeBeginAmendTabBar", "defaults": {}, "funcname": "DockNodeBeginAmendTabBar", - "location": "imgui_internal:2731", + "location": "imgui_internal:2850", "namespace": "ImGui", "ov_cimguiname": "igDockNodeBeginAmendTabBar", "ret": "bool", @@ -16369,7 +16713,7 @@ "cimguiname": "igDockNodeEndAmendTabBar", "defaults": {}, "funcname": "DockNodeEndAmendTabBar", - "location": "imgui_internal:2732", + "location": "imgui_internal:2851", "namespace": "ImGui", "ov_cimguiname": "igDockNodeEndAmendTabBar", "ret": "void", @@ -16391,7 +16735,7 @@ "cimguiname": "igDockNodeGetDepth", "defaults": {}, "funcname": "DockNodeGetDepth", - "location": "imgui_internal:2734", + "location": "imgui_internal:2854", "namespace": "ImGui", "ov_cimguiname": "igDockNodeGetDepth", "ret": "int", @@ -16413,7 +16757,7 @@ "cimguiname": "igDockNodeGetRootNode", "defaults": {}, "funcname": "DockNodeGetRootNode", - "location": "imgui_internal:2733", + "location": "imgui_internal:2852", "namespace": "ImGui", "ov_cimguiname": "igDockNodeGetRootNode", "ret": "ImGuiDockNode*", @@ -16435,7 +16779,7 @@ "cimguiname": "igDockNodeGetWindowMenuButtonId", "defaults": {}, "funcname": "DockNodeGetWindowMenuButtonId", - "location": "imgui_internal:2735", + "location": "imgui_internal:2855", "namespace": "ImGui", "ov_cimguiname": "igDockNodeGetWindowMenuButtonId", "ret": "ImGuiID", @@ -16443,6 +16787,32 @@ "stname": "" } ], + "igDockNodeIsInHierarchyOf": [ + { + "args": "(ImGuiDockNode* node,ImGuiDockNode* parent)", + "argsT": [ + { + "name": "node", + "type": "ImGuiDockNode*" + }, + { + "name": "parent", + "type": "ImGuiDockNode*" + } + ], + "argsoriginal": "(ImGuiDockNode* node,ImGuiDockNode* parent)", + "call_args": "(node,parent)", + "cimguiname": "igDockNodeIsInHierarchyOf", + "defaults": {}, + "funcname": "DockNodeIsInHierarchyOf", + "location": "imgui_internal:2853", + "namespace": "ImGui", + "ov_cimguiname": "igDockNodeIsInHierarchyOf", + "ret": "bool", + "signature": "(ImGuiDockNode*,ImGuiDockNode*)", + "stname": "" + } + ], "igDockSpace": [ { "args": "(ImGuiID id,const ImVec2 size,ImGuiDockNodeFlags flags,const ImGuiWindowClass* window_class)", @@ -16473,7 +16843,7 @@ "window_class": "NULL" }, "funcname": "DockSpace", - "location": "imgui:816", + "location": "imgui:818", "namespace": "ImGui", "ov_cimguiname": "igDockSpace", "ret": "ImGuiID", @@ -16507,7 +16877,7 @@ "window_class": "NULL" }, "funcname": "DockSpaceOverViewport", - "location": "imgui:817", + "location": "imgui:819", "namespace": "ImGui", "ov_cimguiname": "igDockSpaceOverViewport", "ret": "ImGuiID", @@ -16557,7 +16927,7 @@ "cimguiname": "igDragBehavior", "defaults": {}, "funcname": "DragBehavior", - "location": "imgui_internal:2899", + "location": "imgui_internal:3020", "namespace": "ImGui", "ov_cimguiname": "igDragBehavior", "ret": "bool", @@ -16609,7 +16979,7 @@ "v_speed": "1.0f" }, "funcname": "DragFloat", - "location": "imgui:545", + "location": "imgui:546", "namespace": "ImGui", "ov_cimguiname": "igDragFloat", "ret": "bool", @@ -16661,7 +17031,7 @@ "v_speed": "1.0f" }, "funcname": "DragFloat2", - "location": "imgui:546", + "location": "imgui:547", "namespace": "ImGui", "ov_cimguiname": "igDragFloat2", "ret": "bool", @@ -16713,7 +17083,7 @@ "v_speed": "1.0f" }, "funcname": "DragFloat3", - "location": "imgui:547", + "location": "imgui:548", "namespace": "ImGui", "ov_cimguiname": "igDragFloat3", "ret": "bool", @@ -16765,7 +17135,7 @@ "v_speed": "1.0f" }, "funcname": "DragFloat4", - "location": "imgui:548", + "location": "imgui:549", "namespace": "ImGui", "ov_cimguiname": "igDragFloat4", "ret": "bool", @@ -16826,7 +17196,7 @@ "v_speed": "1.0f" }, "funcname": "DragFloatRange2", - "location": "imgui:549", + "location": "imgui:550", "namespace": "ImGui", "ov_cimguiname": "igDragFloatRange2", "ret": "bool", @@ -16878,7 +17248,7 @@ "v_speed": "1.0f" }, "funcname": "DragInt", - "location": "imgui:550", + "location": "imgui:551", "namespace": "ImGui", "ov_cimguiname": "igDragInt", "ret": "bool", @@ -16930,7 +17300,7 @@ "v_speed": "1.0f" }, "funcname": "DragInt2", - "location": "imgui:551", + "location": "imgui:552", "namespace": "ImGui", "ov_cimguiname": "igDragInt2", "ret": "bool", @@ -16982,7 +17352,7 @@ "v_speed": "1.0f" }, "funcname": "DragInt3", - "location": "imgui:552", + "location": "imgui:553", "namespace": "ImGui", "ov_cimguiname": "igDragInt3", "ret": "bool", @@ -17034,7 +17404,7 @@ "v_speed": "1.0f" }, "funcname": "DragInt4", - "location": "imgui:553", + "location": "imgui:554", "namespace": "ImGui", "ov_cimguiname": "igDragInt4", "ret": "bool", @@ -17095,7 +17465,7 @@ "v_speed": "1.0f" }, "funcname": "DragIntRange2", - "location": "imgui:554", + "location": "imgui:555", "namespace": "ImGui", "ov_cimguiname": "igDragIntRange2", "ret": "bool", @@ -17151,7 +17521,7 @@ "v_speed": "1.0f" }, "funcname": "DragScalar", - "location": "imgui:555", + "location": "imgui:556", "namespace": "ImGui", "ov_cimguiname": "igDragScalar", "ret": "bool", @@ -17211,7 +17581,7 @@ "v_speed": "1.0f" }, "funcname": "DragScalarN", - "location": "imgui:556", + "location": "imgui:557", "namespace": "ImGui", "ov_cimguiname": "igDragScalarN", "ret": "bool", @@ -17233,7 +17603,7 @@ "cimguiname": "igDummy", "defaults": {}, "funcname": "Dummy", - "location": "imgui:453", + "location": "imgui:454", "namespace": "ImGui", "ov_cimguiname": "igDummy", "ret": "void", @@ -17250,7 +17620,7 @@ "cimguiname": "igEnd", "defaults": {}, "funcname": "End", - "location": "imgui:342", + "location": "imgui:343", "namespace": "ImGui", "ov_cimguiname": "igEnd", "ret": "void", @@ -17267,7 +17637,7 @@ "cimguiname": "igEndChild", "defaults": {}, "funcname": "EndChild", - "location": "imgui:354", + "location": "imgui:355", "namespace": "ImGui", "ov_cimguiname": "igEndChild", "ret": "void", @@ -17284,7 +17654,7 @@ "cimguiname": "igEndChildFrame", "defaults": {}, "funcname": "EndChildFrame", - "location": "imgui:905", + "location": "imgui:906", "namespace": "ImGui", "ov_cimguiname": "igEndChildFrame", "ret": "void", @@ -17301,7 +17671,7 @@ "cimguiname": "igEndColumns", "defaults": {}, "funcname": "EndColumns", - "location": "imgui_internal:2775", + "location": "imgui_internal:2895", "namespace": "ImGui", "ov_cimguiname": "igEndColumns", "ret": "void", @@ -17318,7 +17688,7 @@ "cimguiname": "igEndCombo", "defaults": {}, "funcname": "EndCombo", - "location": "imgui:529", + "location": "imgui:530", "namespace": "ImGui", "ov_cimguiname": "igEndCombo", "ret": "void", @@ -17335,7 +17705,7 @@ "cimguiname": "igEndComboPreview", "defaults": {}, "funcname": "EndComboPreview", - "location": "imgui_internal:2682", + "location": "imgui_internal:2797", "namespace": "ImGui", "ov_cimguiname": "igEndComboPreview", "ret": "void", @@ -17352,7 +17722,7 @@ "cimguiname": "igEndDisabled", "defaults": {}, "funcname": "EndDisabled", - "location": "imgui:851", + "location": "imgui:853", "namespace": "ImGui", "ov_cimguiname": "igEndDisabled", "ret": "void", @@ -17369,7 +17739,7 @@ "cimguiname": "igEndDragDropSource", "defaults": {}, "funcname": "EndDragDropSource", - "location": "imgui:840", + "location": "imgui:842", "namespace": "ImGui", "ov_cimguiname": "igEndDragDropSource", "ret": "void", @@ -17386,7 +17756,7 @@ "cimguiname": "igEndDragDropTarget", "defaults": {}, "funcname": "EndDragDropTarget", - "location": "imgui:843", + "location": "imgui:845", "namespace": "ImGui", "ov_cimguiname": "igEndDragDropTarget", "ret": "void", @@ -17420,7 +17790,7 @@ "cimguiname": "igEndGroup", "defaults": {}, "funcname": "EndGroup", - "location": "imgui:457", + "location": "imgui:458", "namespace": "ImGui", "ov_cimguiname": "igEndGroup", "ret": "void", @@ -17437,7 +17807,7 @@ "cimguiname": "igEndListBox", "defaults": {}, "funcname": "EndListBox", - "location": "imgui:640", + "location": "imgui:641", "namespace": "ImGui", "ov_cimguiname": "igEndListBox", "ret": "void", @@ -17454,7 +17824,7 @@ "cimguiname": "igEndMainMenuBar", "defaults": {}, "funcname": "EndMainMenuBar", - "location": "imgui:666", + "location": "imgui:667", "namespace": "ImGui", "ov_cimguiname": "igEndMainMenuBar", "ret": "void", @@ -17471,7 +17841,7 @@ "cimguiname": "igEndMenu", "defaults": {}, "funcname": "EndMenu", - "location": "imgui:668", + "location": "imgui:669", "namespace": "ImGui", "ov_cimguiname": "igEndMenu", "ret": "void", @@ -17488,7 +17858,7 @@ "cimguiname": "igEndMenuBar", "defaults": {}, "funcname": "EndMenuBar", - "location": "imgui:664", + "location": "imgui:665", "namespace": "ImGui", "ov_cimguiname": "igEndMenuBar", "ret": "void", @@ -17505,7 +17875,7 @@ "cimguiname": "igEndPopup", "defaults": {}, "funcname": "EndPopup", - "location": "imgui:693", + "location": "imgui:694", "namespace": "ImGui", "ov_cimguiname": "igEndPopup", "ret": "void", @@ -17522,7 +17892,7 @@ "cimguiname": "igEndTabBar", "defaults": {}, "funcname": "EndTabBar", - "location": "imgui:798", + "location": "imgui:799", "namespace": "ImGui", "ov_cimguiname": "igEndTabBar", "ret": "void", @@ -17539,7 +17909,7 @@ "cimguiname": "igEndTabItem", "defaults": {}, "funcname": "EndTabItem", - "location": "imgui:800", + "location": "imgui:801", "namespace": "ImGui", "ov_cimguiname": "igEndTabItem", "ret": "void", @@ -17556,7 +17926,7 @@ "cimguiname": "igEndTable", "defaults": {}, "funcname": "EndTable", - "location": "imgui:748", + "location": "imgui:749", "namespace": "ImGui", "ov_cimguiname": "igEndTable", "ret": "void", @@ -17573,7 +17943,7 @@ "cimguiname": "igEndTooltip", "defaults": {}, "funcname": "EndTooltip", - "location": "imgui:675", + "location": "imgui:676", "namespace": "ImGui", "ov_cimguiname": "igEndTooltip", "ret": "void", @@ -17601,7 +17971,7 @@ "user_data": "NULL" }, "funcname": "ErrorCheckEndFrameRecover", - "location": "imgui_internal:2949", + "location": "imgui_internal:3070", "namespace": "ImGui", "ov_cimguiname": "igErrorCheckEndFrameRecover", "ret": "void", @@ -17609,6 +17979,34 @@ "stname": "" } ], + "igErrorCheckEndWindowRecover": [ + { + "args": "(ImGuiErrorLogCallback log_callback,void* user_data)", + "argsT": [ + { + "name": "log_callback", + "type": "ImGuiErrorLogCallback" + }, + { + "name": "user_data", + "type": "void*" + } + ], + "argsoriginal": "(ImGuiErrorLogCallback log_callback,void* user_data=((void*)0))", + "call_args": "(log_callback,user_data)", + "cimguiname": "igErrorCheckEndWindowRecover", + "defaults": { + "user_data": "NULL" + }, + "funcname": "ErrorCheckEndWindowRecover", + "location": "imgui_internal:3071", + "namespace": "ImGui", + "ov_cimguiname": "igErrorCheckEndWindowRecover", + "ret": "void", + "signature": "(ImGuiErrorLogCallback,void*)", + "stname": "" + } + ], "igFindBestWindowPosForPopup": [ { "args": "(ImVec2 *pOut,ImGuiWindow* window)", @@ -17627,7 +18025,7 @@ "cimguiname": "igFindBestWindowPosForPopup", "defaults": {}, "funcname": "FindBestWindowPosForPopup", - "location": "imgui_internal:2671", + "location": "imgui_internal:2786", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igFindBestWindowPosForPopup", @@ -17674,7 +18072,7 @@ "cimguiname": "igFindBestWindowPosForPopupEx", "defaults": {}, "funcname": "FindBestWindowPosForPopupEx", - "location": "imgui_internal:2672", + "location": "imgui_internal:2787", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igFindBestWindowPosForPopupEx", @@ -17683,6 +18081,28 @@ "stname": "" } ], + "igFindBottomMostVisibleWindowWithinBeginStack": [ + { + "args": "(ImGuiWindow* window)", + "argsT": [ + { + "name": "window", + "type": "ImGuiWindow*" + } + ], + "argsoriginal": "(ImGuiWindow* window)", + "call_args": "(window)", + "cimguiname": "igFindBottomMostVisibleWindowWithinBeginStack", + "defaults": {}, + "funcname": "FindBottomMostVisibleWindowWithinBeginStack", + "location": "imgui_internal:2669", + "namespace": "ImGui", + "ov_cimguiname": "igFindBottomMostVisibleWindowWithinBeginStack", + "ret": "ImGuiWindow*", + "signature": "(ImGuiWindow*)", + "stname": "" + } + ], "igFindOrCreateColumns": [ { "args": "(ImGuiWindow* window,ImGuiID id)", @@ -17701,7 +18121,7 @@ "cimguiname": "igFindOrCreateColumns", "defaults": {}, "funcname": "FindOrCreateColumns", - "location": "imgui_internal:2780", + "location": "imgui_internal:2900", "namespace": "ImGui", "ov_cimguiname": "igFindOrCreateColumns", "ret": "ImGuiOldColumns*", @@ -17723,7 +18143,7 @@ "cimguiname": "igFindOrCreateWindowSettings", "defaults": {}, "funcname": "FindOrCreateWindowSettings", - "location": "imgui_internal:2600", + "location": "imgui_internal:2705", "namespace": "ImGui", "ov_cimguiname": "igFindOrCreateWindowSettings", "ret": "ImGuiWindowSettings*", @@ -17751,7 +18171,7 @@ "text_end": "NULL" }, "funcname": "FindRenderedTextEnd", - "location": "imgui_internal:2862", + "location": "imgui_internal:2982", "namespace": "ImGui", "ov_cimguiname": "igFindRenderedTextEnd", "ret": "const char*", @@ -17773,7 +18193,7 @@ "cimguiname": "igFindSettingsHandler", "defaults": {}, "funcname": "FindSettingsHandler", - "location": "imgui_internal:2601", + "location": "imgui_internal:2706", "namespace": "ImGui", "ov_cimguiname": "igFindSettingsHandler", "ret": "ImGuiSettingsHandler*", @@ -17795,7 +18215,7 @@ "cimguiname": "igFindViewportByID", "defaults": {}, "funcname": "FindViewportByID", - "location": "imgui:980", + "location": "imgui:982", "namespace": "ImGui", "ov_cimguiname": "igFindViewportByID", "ret": "ImGuiViewport*", @@ -17817,7 +18237,7 @@ "cimguiname": "igFindViewportByPlatformHandle", "defaults": {}, "funcname": "FindViewportByPlatformHandle", - "location": "imgui:981", + "location": "imgui:983", "namespace": "ImGui", "ov_cimguiname": "igFindViewportByPlatformHandle", "ret": "ImGuiViewport*", @@ -17839,7 +18259,7 @@ "cimguiname": "igFindWindowByID", "defaults": {}, "funcname": "FindWindowByID", - "location": "imgui_internal:2547", + "location": "imgui_internal:2646", "namespace": "ImGui", "ov_cimguiname": "igFindWindowByID", "ret": "ImGuiWindow*", @@ -17861,7 +18281,7 @@ "cimguiname": "igFindWindowByName", "defaults": {}, "funcname": "FindWindowByName", - "location": "imgui_internal:2548", + "location": "imgui_internal:2647", "namespace": "ImGui", "ov_cimguiname": "igFindWindowByName", "ret": "ImGuiWindow*", @@ -17869,6 +18289,28 @@ "stname": "" } ], + "igFindWindowDisplayIndex": [ + { + "args": "(ImGuiWindow* window)", + "argsT": [ + { + "name": "window", + "type": "ImGuiWindow*" + } + ], + "argsoriginal": "(ImGuiWindow* window)", + "call_args": "(window)", + "cimguiname": "igFindWindowDisplayIndex", + "defaults": {}, + "funcname": "FindWindowDisplayIndex", + "location": "imgui_internal:2668", + "namespace": "ImGui", + "ov_cimguiname": "igFindWindowDisplayIndex", + "ret": "int", + "signature": "(ImGuiWindow*)", + "stname": "" + } + ], "igFindWindowSettings": [ { "args": "(ImGuiID id)", @@ -17883,7 +18325,7 @@ "cimguiname": "igFindWindowSettings", "defaults": {}, "funcname": "FindWindowSettings", - "location": "imgui_internal:2599", + "location": "imgui_internal:2704", "namespace": "ImGui", "ov_cimguiname": "igFindWindowSettings", "ret": "ImGuiWindowSettings*", @@ -17909,7 +18351,7 @@ "cimguiname": "igFocusTopMostWindowUnderOne", "defaults": {}, "funcname": "FocusTopMostWindowUnderOne", - "location": "imgui_internal:2561", + "location": "imgui_internal:2663", "namespace": "ImGui", "ov_cimguiname": "igFocusTopMostWindowUnderOne", "ret": "void", @@ -17931,7 +18373,7 @@ "cimguiname": "igFocusWindow", "defaults": {}, "funcname": "FocusWindow", - "location": "imgui_internal:2560", + "location": "imgui_internal:2662", "namespace": "ImGui", "ov_cimguiname": "igFocusWindow", "ret": "void", @@ -17953,7 +18395,7 @@ "cimguiname": "igGcAwakeTransientWindowBuffers", "defaults": {}, "funcname": "GcAwakeTransientWindowBuffers", - "location": "imgui_internal:2946", + "location": "imgui_internal:3067", "namespace": "ImGui", "ov_cimguiname": "igGcAwakeTransientWindowBuffers", "ret": "void", @@ -17970,7 +18412,7 @@ "cimguiname": "igGcCompactTransientMiscBuffers", "defaults": {}, "funcname": "GcCompactTransientMiscBuffers", - "location": "imgui_internal:2944", + "location": "imgui_internal:3065", "namespace": "ImGui", "ov_cimguiname": "igGcCompactTransientMiscBuffers", "ret": "void", @@ -17992,7 +18434,7 @@ "cimguiname": "igGcCompactTransientWindowBuffers", "defaults": {}, "funcname": "GcCompactTransientWindowBuffers", - "location": "imgui_internal:2945", + "location": "imgui_internal:3066", "namespace": "ImGui", "ov_cimguiname": "igGcCompactTransientWindowBuffers", "ret": "void", @@ -18009,7 +18451,7 @@ "cimguiname": "igGetActiveID", "defaults": {}, "funcname": "GetActiveID", - "location": "imgui_internal:2615", + "location": "imgui_internal:2727", "namespace": "ImGui", "ov_cimguiname": "igGetActiveID", "ret": "ImGuiID", @@ -18039,7 +18481,7 @@ "cimguiname": "igGetAllocatorFunctions", "defaults": {}, "funcname": "GetAllocatorFunctions", - "location": "imgui:969", + "location": "imgui:971", "namespace": "ImGui", "ov_cimguiname": "igGetAllocatorFunctions", "ret": "void", @@ -18056,7 +18498,7 @@ "cimguiname": "igGetBackgroundDrawList", "defaults": {}, "funcname": "GetBackgroundDrawList", - "location": "imgui:895", + "location": "imgui:897", "namespace": "ImGui", "ov_cimguiname": "igGetBackgroundDrawListNil", "ret": "ImDrawList*", @@ -18076,7 +18518,7 @@ "cimguiname": "igGetBackgroundDrawList", "defaults": {}, "funcname": "GetBackgroundDrawList", - "location": "imgui:897", + "location": "imgui:899", "namespace": "ImGui", "ov_cimguiname": "igGetBackgroundDrawListViewportPtr", "ret": "ImDrawList*", @@ -18093,7 +18535,7 @@ "cimguiname": "igGetClipboardText", "defaults": {}, "funcname": "GetClipboardText", - "location": "imgui:948", + "location": "imgui:950", "namespace": "ImGui", "ov_cimguiname": "igGetClipboardText", "ret": "const char*", @@ -18121,7 +18563,7 @@ "alpha_mul": "1.0f" }, "funcname": "GetColorU32", - "location": "imgui:437", + "location": "imgui:438", "namespace": "ImGui", "ov_cimguiname": "igGetColorU32Col", "ret": "ImU32", @@ -18141,7 +18583,7 @@ "cimguiname": "igGetColorU32", "defaults": {}, "funcname": "GetColorU32", - "location": "imgui:438", + "location": "imgui:439", "namespace": "ImGui", "ov_cimguiname": "igGetColorU32Vec4", "ret": "ImU32", @@ -18161,7 +18603,7 @@ "cimguiname": "igGetColorU32", "defaults": {}, "funcname": "GetColorU32", - "location": "imgui:439", + "location": "imgui:440", "namespace": "ImGui", "ov_cimguiname": "igGetColorU32U32", "ret": "ImU32", @@ -18178,7 +18620,7 @@ "cimguiname": "igGetColumnIndex", "defaults": {}, "funcname": "GetColumnIndex", - "location": "imgui:788", + "location": "imgui:789", "namespace": "ImGui", "ov_cimguiname": "igGetColumnIndex", "ret": "int", @@ -18204,7 +18646,7 @@ "cimguiname": "igGetColumnNormFromOffset", "defaults": {}, "funcname": "GetColumnNormFromOffset", - "location": "imgui_internal:2782", + "location": "imgui_internal:2902", "namespace": "ImGui", "ov_cimguiname": "igGetColumnNormFromOffset", "ret": "float", @@ -18228,7 +18670,7 @@ "column_index": "-1" }, "funcname": "GetColumnOffset", - "location": "imgui:791", + "location": "imgui:792", "namespace": "ImGui", "ov_cimguiname": "igGetColumnOffset", "ret": "float", @@ -18254,7 +18696,7 @@ "cimguiname": "igGetColumnOffsetFromNorm", "defaults": {}, "funcname": "GetColumnOffsetFromNorm", - "location": "imgui_internal:2781", + "location": "imgui_internal:2901", "namespace": "ImGui", "ov_cimguiname": "igGetColumnOffsetFromNorm", "ret": "float", @@ -18278,7 +18720,7 @@ "column_index": "-1" }, "funcname": "GetColumnWidth", - "location": "imgui:789", + "location": "imgui:790", "namespace": "ImGui", "ov_cimguiname": "igGetColumnWidth", "ret": "float", @@ -18295,7 +18737,7 @@ "cimguiname": "igGetColumnsCount", "defaults": {}, "funcname": "GetColumnsCount", - "location": "imgui:793", + "location": "imgui:794", "namespace": "ImGui", "ov_cimguiname": "igGetColumnsCount", "ret": "int", @@ -18321,7 +18763,7 @@ "cimguiname": "igGetColumnsID", "defaults": {}, "funcname": "GetColumnsID", - "location": "imgui_internal:2779", + "location": "imgui_internal:2899", "namespace": "ImGui", "ov_cimguiname": "igGetColumnsID", "ret": "ImGuiID", @@ -18343,7 +18785,7 @@ "cimguiname": "igGetContentRegionAvail", "defaults": {}, "funcname": "GetContentRegionAvail", - "location": "imgui:393", + "location": "imgui:394", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetContentRegionAvail", @@ -18366,7 +18808,7 @@ "cimguiname": "igGetContentRegionMax", "defaults": {}, "funcname": "GetContentRegionMax", - "location": "imgui:394", + "location": "imgui:395", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetContentRegionMax", @@ -18389,7 +18831,7 @@ "cimguiname": "igGetContentRegionMaxAbs", "defaults": {}, "funcname": "GetContentRegionMaxAbs", - "location": "imgui_internal:2639", + "location": "imgui_internal:2750", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetContentRegionMaxAbs", @@ -18424,7 +18866,7 @@ "cimguiname": "igGetCurrentTable", "defaults": {}, "funcname": "GetCurrentTable", - "location": "imgui_internal:2794", + "location": "imgui_internal:2914", "namespace": "ImGui", "ov_cimguiname": "igGetCurrentTable", "ret": "ImGuiTable*", @@ -18441,7 +18883,7 @@ "cimguiname": "igGetCurrentWindow", "defaults": {}, "funcname": "GetCurrentWindow", - "location": "imgui_internal:2546", + "location": "imgui_internal:2645", "namespace": "ImGui", "ov_cimguiname": "igGetCurrentWindow", "ret": "ImGuiWindow*", @@ -18458,7 +18900,7 @@ "cimguiname": "igGetCurrentWindowRead", "defaults": {}, "funcname": "GetCurrentWindowRead", - "location": "imgui_internal:2545", + "location": "imgui_internal:2644", "namespace": "ImGui", "ov_cimguiname": "igGetCurrentWindowRead", "ret": "ImGuiWindow*", @@ -18480,7 +18922,7 @@ "cimguiname": "igGetCursorPos", "defaults": {}, "funcname": "GetCursorPos", - "location": "imgui:458", + "location": "imgui:459", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetCursorPos", @@ -18498,7 +18940,7 @@ "cimguiname": "igGetCursorPosX", "defaults": {}, "funcname": "GetCursorPosX", - "location": "imgui:459", + "location": "imgui:460", "namespace": "ImGui", "ov_cimguiname": "igGetCursorPosX", "ret": "float", @@ -18515,7 +18957,7 @@ "cimguiname": "igGetCursorPosY", "defaults": {}, "funcname": "GetCursorPosY", - "location": "imgui:460", + "location": "imgui:461", "namespace": "ImGui", "ov_cimguiname": "igGetCursorPosY", "ret": "float", @@ -18537,7 +18979,7 @@ "cimguiname": "igGetCursorScreenPos", "defaults": {}, "funcname": "GetCursorScreenPos", - "location": "imgui:465", + "location": "imgui:466", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetCursorScreenPos", @@ -18560,7 +19002,7 @@ "cimguiname": "igGetCursorStartPos", "defaults": {}, "funcname": "GetCursorStartPos", - "location": "imgui:464", + "location": "imgui:465", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetCursorStartPos", @@ -18578,7 +19020,7 @@ "cimguiname": "igGetDefaultFont", "defaults": {}, "funcname": "GetDefaultFont", - "location": "imgui_internal:2568", + "location": "imgui_internal:2673", "namespace": "ImGui", "ov_cimguiname": "igGetDefaultFont", "ret": "ImFont*", @@ -18595,7 +19037,7 @@ "cimguiname": "igGetDragDropPayload", "defaults": {}, "funcname": "GetDragDropPayload", - "location": "imgui:844", + "location": "imgui:846", "namespace": "ImGui", "ov_cimguiname": "igGetDragDropPayload", "ret": "const ImGuiPayload*", @@ -18629,7 +19071,7 @@ "cimguiname": "igGetDrawListSharedData", "defaults": {}, "funcname": "GetDrawListSharedData", - "location": "imgui:899", + "location": "imgui:901", "namespace": "ImGui", "ov_cimguiname": "igGetDrawListSharedData", "ret": "ImDrawListSharedData*", @@ -18646,7 +19088,7 @@ "cimguiname": "igGetFocusID", "defaults": {}, "funcname": "GetFocusID", - "location": "imgui_internal:2616", + "location": "imgui_internal:2728", "namespace": "ImGui", "ov_cimguiname": "igGetFocusID", "ret": "ImGuiID", @@ -18663,7 +19105,7 @@ "cimguiname": "igGetFocusScope", "defaults": {}, "funcname": "GetFocusScope", - "location": "imgui_internal:2703", + "location": "imgui_internal:2821", "namespace": "ImGui", "ov_cimguiname": "igGetFocusScope", "ret": "ImGuiID", @@ -18680,7 +19122,7 @@ "cimguiname": "igGetFocusedFocusScope", "defaults": {}, "funcname": "GetFocusedFocusScope", - "location": "imgui_internal:2702", + "location": "imgui_internal:2820", "namespace": "ImGui", "ov_cimguiname": "igGetFocusedFocusScope", "ret": "ImGuiID", @@ -18697,7 +19139,7 @@ "cimguiname": "igGetFont", "defaults": {}, "funcname": "GetFont", - "location": "imgui:434", + "location": "imgui:435", "namespace": "ImGui", "ov_cimguiname": "igGetFont", "ret": "ImFont*", @@ -18714,7 +19156,7 @@ "cimguiname": "igGetFontSize", "defaults": {}, "funcname": "GetFontSize", - "location": "imgui:435", + "location": "imgui:436", "namespace": "ImGui", "ov_cimguiname": "igGetFontSize", "ret": "float", @@ -18736,7 +19178,7 @@ "cimguiname": "igGetFontTexUvWhitePixel", "defaults": {}, "funcname": "GetFontTexUvWhitePixel", - "location": "imgui:436", + "location": "imgui:437", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetFontTexUvWhitePixel", @@ -18754,7 +19196,7 @@ "cimguiname": "igGetForegroundDrawList", "defaults": {}, "funcname": "GetForegroundDrawList", - "location": "imgui:896", + "location": "imgui:898", "namespace": "ImGui", "ov_cimguiname": "igGetForegroundDrawListNil", "ret": "ImDrawList*", @@ -18774,7 +19216,7 @@ "cimguiname": "igGetForegroundDrawList", "defaults": {}, "funcname": "GetForegroundDrawList", - "location": "imgui:898", + "location": "imgui:900", "namespace": "ImGui", "ov_cimguiname": "igGetForegroundDrawListViewportPtr", "ret": "ImDrawList*", @@ -18794,7 +19236,7 @@ "cimguiname": "igGetForegroundDrawList", "defaults": {}, "funcname": "GetForegroundDrawList", - "location": "imgui_internal:2569", + "location": "imgui_internal:2674", "namespace": "ImGui", "ov_cimguiname": "igGetForegroundDrawListWindowPtr", "ret": "ImDrawList*", @@ -18811,7 +19253,7 @@ "cimguiname": "igGetFrameCount", "defaults": {}, "funcname": "GetFrameCount", - "location": "imgui:894", + "location": "imgui:896", "namespace": "ImGui", "ov_cimguiname": "igGetFrameCount", "ret": "int", @@ -18828,7 +19270,7 @@ "cimguiname": "igGetFrameHeight", "defaults": {}, "funcname": "GetFrameHeight", - "location": "imgui:470", + "location": "imgui:471", "namespace": "ImGui", "ov_cimguiname": "igGetFrameHeight", "ret": "float", @@ -18845,7 +19287,7 @@ "cimguiname": "igGetFrameHeightWithSpacing", "defaults": {}, "funcname": "GetFrameHeightWithSpacing", - "location": "imgui:471", + "location": "imgui:472", "namespace": "ImGui", "ov_cimguiname": "igGetFrameHeightWithSpacing", "ret": "float", @@ -18862,7 +19304,7 @@ "cimguiname": "igGetHoveredID", "defaults": {}, "funcname": "GetHoveredID", - "location": "imgui_internal:2620", + "location": "imgui_internal:2732", "namespace": "ImGui", "ov_cimguiname": "igGetHoveredID", "ret": "ImGuiID", @@ -18884,7 +19326,7 @@ "cimguiname": "igGetID", "defaults": {}, "funcname": "GetID", - "location": "imgui:489", + "location": "imgui:490", "namespace": "ImGui", "ov_cimguiname": "igGetIDStr", "ret": "ImGuiID", @@ -18908,7 +19350,7 @@ "cimguiname": "igGetID", "defaults": {}, "funcname": "GetID", - "location": "imgui:490", + "location": "imgui:491", "namespace": "ImGui", "ov_cimguiname": "igGetIDStrStr", "ret": "ImGuiID", @@ -18928,7 +19370,7 @@ "cimguiname": "igGetID", "defaults": {}, "funcname": "GetID", - "location": "imgui:491", + "location": "imgui:492", "namespace": "ImGui", "ov_cimguiname": "igGetIDPtr", "ret": "ImGuiID", @@ -18958,7 +19400,7 @@ "cimguiname": "igGetIDWithSeed", "defaults": {}, "funcname": "GetIDWithSeed", - "location": "imgui_internal:2625", + "location": "imgui_internal:2737", "namespace": "ImGui", "ov_cimguiname": "igGetIDWithSeed", "ret": "ImGuiID", @@ -18998,7 +19440,7 @@ "cimguiname": "igGetInputTextState", "defaults": {}, "funcname": "GetInputTextState", - "location": "imgui_internal:2929", + "location": "imgui_internal:3050", "namespace": "ImGui", "ov_cimguiname": "igGetInputTextState", "ret": "ImGuiInputTextState*", @@ -19015,7 +19457,7 @@ "cimguiname": "igGetItemFlags", "defaults": {}, "funcname": "GetItemFlags", - "location": "imgui_internal:2614", + "location": "imgui_internal:2726", "namespace": "ImGui", "ov_cimguiname": "igGetItemFlags", "ret": "ImGuiItemFlags", @@ -19032,7 +19474,7 @@ "cimguiname": "igGetItemID", "defaults": {}, "funcname": "GetItemID", - "location": "imgui_internal:2612", + "location": "imgui_internal:2724", "namespace": "ImGui", "ov_cimguiname": "igGetItemID", "ret": "ImGuiID", @@ -19054,7 +19496,7 @@ "cimguiname": "igGetItemRectMax", "defaults": {}, "funcname": "GetItemRectMax", - "location": "imgui:880", + "location": "imgui:882", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetItemRectMax", @@ -19077,7 +19519,7 @@ "cimguiname": "igGetItemRectMin", "defaults": {}, "funcname": "GetItemRectMin", - "location": "imgui:879", + "location": "imgui:881", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetItemRectMin", @@ -19100,7 +19542,7 @@ "cimguiname": "igGetItemRectSize", "defaults": {}, "funcname": "GetItemRectSize", - "location": "imgui:881", + "location": "imgui:883", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetItemRectSize", @@ -19118,7 +19560,7 @@ "cimguiname": "igGetItemStatusFlags", "defaults": {}, "funcname": "GetItemStatusFlags", - "location": "imgui_internal:2613", + "location": "imgui_internal:2725", "namespace": "ImGui", "ov_cimguiname": "igGetItemStatusFlags", "ret": "ImGuiItemStatusFlags", @@ -19140,7 +19582,7 @@ "cimguiname": "igGetKeyIndex", "defaults": {}, "funcname": "GetKeyIndex", - "location": "imgui:919", + "location": "imgui:920", "namespace": "ImGui", "ov_cimguiname": "igGetKeyIndex", "ret": "int", @@ -19170,7 +19612,7 @@ "cimguiname": "igGetKeyPressedAmount", "defaults": {}, "funcname": "GetKeyPressedAmount", - "location": "imgui:923", + "location": "imgui:924", "namespace": "ImGui", "ov_cimguiname": "igGetKeyPressedAmount", "ret": "int", @@ -19187,7 +19629,7 @@ "cimguiname": "igGetMainViewport", "defaults": {}, "funcname": "GetMainViewport", - "location": "imgui:888", + "location": "imgui:890", "namespace": "ImGui", "ov_cimguiname": "igGetMainViewport", "ret": "ImGuiViewport*", @@ -19204,7 +19646,7 @@ "cimguiname": "igGetMergedKeyModFlags", "defaults": {}, "funcname": "GetMergedKeyModFlags", - "location": "imgui_internal:2716", + "location": "imgui_internal:2834", "namespace": "ImGui", "ov_cimguiname": "igGetMergedKeyModFlags", "ret": "ImGuiKeyModFlags", @@ -19212,6 +19654,28 @@ "stname": "" } ], + "igGetMouseClickedCount": [ + { + "args": "(ImGuiMouseButton button)", + "argsT": [ + { + "name": "button", + "type": "ImGuiMouseButton" + } + ], + "argsoriginal": "(ImGuiMouseButton button)", + "call_args": "(button)", + "cimguiname": "igGetMouseClickedCount", + "defaults": {}, + "funcname": "GetMouseClickedCount", + "location": "imgui:935", + "namespace": "ImGui", + "ov_cimguiname": "igGetMouseClickedCount", + "ret": "int", + "signature": "(ImGuiMouseButton)", + "stname": "" + } + ], "igGetMouseCursor": [ { "args": "()", @@ -19221,7 +19685,7 @@ "cimguiname": "igGetMouseCursor", "defaults": {}, "funcname": "GetMouseCursor", - "location": "imgui:942", + "location": "imgui:944", "namespace": "ImGui", "ov_cimguiname": "igGetMouseCursor", "ret": "ImGuiMouseCursor", @@ -19254,7 +19718,7 @@ "lock_threshold": "-1.0f" }, "funcname": "GetMouseDragDelta", - "location": "imgui:940", + "location": "imgui:942", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetMouseDragDelta", @@ -19277,7 +19741,7 @@ "cimguiname": "igGetMousePos", "defaults": {}, "funcname": "GetMousePos", - "location": "imgui:937", + "location": "imgui:939", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetMousePos", @@ -19300,7 +19764,7 @@ "cimguiname": "igGetMousePosOnOpeningCurrentPopup", "defaults": {}, "funcname": "GetMousePosOnOpeningCurrentPopup", - "location": "imgui:938", + "location": "imgui:940", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetMousePosOnOpeningCurrentPopup", @@ -19327,7 +19791,7 @@ "cimguiname": "igGetNavInputAmount", "defaults": {}, "funcname": "GetNavInputAmount", - "location": "imgui_internal:2691", + "location": "imgui_internal:2809", "namespace": "ImGui", "ov_cimguiname": "igGetNavInputAmount", "ret": "float", @@ -19368,7 +19832,7 @@ "slow_factor": "0.0f" }, "funcname": "GetNavInputAmount2d", - "location": "imgui_internal:2692", + "location": "imgui_internal:2810", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetNavInputAmount2d", @@ -19386,7 +19850,7 @@ "cimguiname": "igGetPlatformIO", "defaults": {}, "funcname": "GetPlatformIO", - "location": "imgui:976", + "location": "imgui:978", "namespace": "ImGui", "ov_cimguiname": "igGetPlatformIO", "ret": "ImGuiPlatformIO*", @@ -19413,7 +19877,7 @@ "cimguiname": "igGetPopupAllowedExtentRect", "defaults": {}, "funcname": "GetPopupAllowedExtentRect", - "location": "imgui_internal:2669", + "location": "imgui_internal:2783", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetPopupAllowedExtentRect", @@ -19431,7 +19895,7 @@ "cimguiname": "igGetScrollMaxX", "defaults": {}, "funcname": "GetScrollMaxX", - "location": "imgui:403", + "location": "imgui:404", "namespace": "ImGui", "ov_cimguiname": "igGetScrollMaxX", "ret": "float", @@ -19448,7 +19912,7 @@ "cimguiname": "igGetScrollMaxY", "defaults": {}, "funcname": "GetScrollMaxY", - "location": "imgui:404", + "location": "imgui:405", "namespace": "ImGui", "ov_cimguiname": "igGetScrollMaxY", "ret": "float", @@ -19465,7 +19929,7 @@ "cimguiname": "igGetScrollX", "defaults": {}, "funcname": "GetScrollX", - "location": "imgui:399", + "location": "imgui:400", "namespace": "ImGui", "ov_cimguiname": "igGetScrollX", "ret": "float", @@ -19482,7 +19946,7 @@ "cimguiname": "igGetScrollY", "defaults": {}, "funcname": "GetScrollY", - "location": "imgui:400", + "location": "imgui:401", "namespace": "ImGui", "ov_cimguiname": "igGetScrollY", "ret": "float", @@ -19499,7 +19963,7 @@ "cimguiname": "igGetStateStorage", "defaults": {}, "funcname": "GetStateStorage", - "location": "imgui:902", + "location": "imgui:904", "namespace": "ImGui", "ov_cimguiname": "igGetStateStorage", "ret": "ImGuiStorage*", @@ -19539,7 +20003,7 @@ "cimguiname": "igGetStyleColorName", "defaults": {}, "funcname": "GetStyleColorName", - "location": "imgui:900", + "location": "imgui:902", "namespace": "ImGui", "ov_cimguiname": "igGetStyleColorName", "ret": "const char*", @@ -19561,7 +20025,7 @@ "cimguiname": "igGetStyleColorVec4", "defaults": {}, "funcname": "GetStyleColorVec4", - "location": "imgui:440", + "location": "imgui:441", "namespace": "ImGui", "ov_cimguiname": "igGetStyleColorVec4", "ret": "const ImVec4*", @@ -19579,7 +20043,7 @@ "cimguiname": "igGetTextLineHeight", "defaults": {}, "funcname": "GetTextLineHeight", - "location": "imgui:468", + "location": "imgui:469", "namespace": "ImGui", "ov_cimguiname": "igGetTextLineHeight", "ret": "float", @@ -19596,7 +20060,7 @@ "cimguiname": "igGetTextLineHeightWithSpacing", "defaults": {}, "funcname": "GetTextLineHeightWithSpacing", - "location": "imgui:469", + "location": "imgui:470", "namespace": "ImGui", "ov_cimguiname": "igGetTextLineHeightWithSpacing", "ret": "float", @@ -19613,7 +20077,7 @@ "cimguiname": "igGetTime", "defaults": {}, "funcname": "GetTime", - "location": "imgui:893", + "location": "imgui:895", "namespace": "ImGui", "ov_cimguiname": "igGetTime", "ret": "double", @@ -19621,6 +20085,23 @@ "stname": "" } ], + "igGetTopMostAndVisiblePopupModal": [ + { + "args": "()", + "argsT": [], + "argsoriginal": "()", + "call_args": "()", + "cimguiname": "igGetTopMostAndVisiblePopupModal", + "defaults": {}, + "funcname": "GetTopMostAndVisiblePopupModal", + "location": "imgui_internal:2785", + "namespace": "ImGui", + "ov_cimguiname": "igGetTopMostAndVisiblePopupModal", + "ret": "ImGuiWindow*", + "signature": "()", + "stname": "" + } + ], "igGetTopMostPopupModal": [ { "args": "()", @@ -19630,7 +20111,7 @@ "cimguiname": "igGetTopMostPopupModal", "defaults": {}, "funcname": "GetTopMostPopupModal", - "location": "imgui_internal:2670", + "location": "imgui_internal:2784", "namespace": "ImGui", "ov_cimguiname": "igGetTopMostPopupModal", "ret": "ImGuiWindow*", @@ -19647,7 +20128,7 @@ "cimguiname": "igGetTreeNodeToLabelSpacing", "defaults": {}, "funcname": "GetTreeNodeToLabelSpacing", - "location": "imgui:622", + "location": "imgui:623", "namespace": "ImGui", "ov_cimguiname": "igGetTreeNodeToLabelSpacing", "ret": "float", @@ -19664,7 +20145,7 @@ "cimguiname": "igGetVersion", "defaults": {}, "funcname": "GetVersion", - "location": "imgui:322", + "location": "imgui:323", "namespace": "ImGui", "ov_cimguiname": "igGetVersion", "ret": "const char*", @@ -19686,7 +20167,7 @@ "cimguiname": "igGetViewportPlatformMonitor", "defaults": {}, "funcname": "GetViewportPlatformMonitor", - "location": "imgui_internal:2592", + "location": "imgui_internal:2697", "namespace": "ImGui", "ov_cimguiname": "igGetViewportPlatformMonitor", "ret": "const ImGuiPlatformMonitor*", @@ -19708,7 +20189,7 @@ "cimguiname": "igGetWindowAlwaysWantOwnTabBar", "defaults": {}, "funcname": "GetWindowAlwaysWantOwnTabBar", - "location": "imgui_internal:2737", + "location": "imgui_internal:2857", "namespace": "ImGui", "ov_cimguiname": "igGetWindowAlwaysWantOwnTabBar", "ret": "bool", @@ -19730,7 +20211,7 @@ "cimguiname": "igGetWindowContentRegionMax", "defaults": {}, "funcname": "GetWindowContentRegionMax", - "location": "imgui:396", + "location": "imgui:397", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetWindowContentRegionMax", @@ -19753,7 +20234,7 @@ "cimguiname": "igGetWindowContentRegionMin", "defaults": {}, "funcname": "GetWindowContentRegionMin", - "location": "imgui:395", + "location": "imgui:396", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetWindowContentRegionMin", @@ -19771,7 +20252,7 @@ "cimguiname": "igGetWindowDockID", "defaults": {}, "funcname": "GetWindowDockID", - "location": "imgui:820", + "location": "imgui:822", "namespace": "ImGui", "ov_cimguiname": "igGetWindowDockID", "ret": "ImGuiID", @@ -19788,7 +20269,7 @@ "cimguiname": "igGetWindowDockNode", "defaults": {}, "funcname": "GetWindowDockNode", - "location": "imgui_internal:2736", + "location": "imgui_internal:2856", "namespace": "ImGui", "ov_cimguiname": "igGetWindowDockNode", "ret": "ImGuiDockNode*", @@ -19805,7 +20286,7 @@ "cimguiname": "igGetWindowDpiScale", "defaults": {}, "funcname": "GetWindowDpiScale", - "location": "imgui:363", + "location": "imgui:364", "namespace": "ImGui", "ov_cimguiname": "igGetWindowDpiScale", "ret": "float", @@ -19822,7 +20303,7 @@ "cimguiname": "igGetWindowDrawList", "defaults": {}, "funcname": "GetWindowDrawList", - "location": "imgui:362", + "location": "imgui:363", "namespace": "ImGui", "ov_cimguiname": "igGetWindowDrawList", "ret": "ImDrawList*", @@ -19839,7 +20320,7 @@ "cimguiname": "igGetWindowHeight", "defaults": {}, "funcname": "GetWindowHeight", - "location": "imgui:367", + "location": "imgui:368", "namespace": "ImGui", "ov_cimguiname": "igGetWindowHeight", "ret": "float", @@ -19861,7 +20342,7 @@ "cimguiname": "igGetWindowPos", "defaults": {}, "funcname": "GetWindowPos", - "location": "imgui:364", + "location": "imgui:365", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetWindowPos", @@ -19888,7 +20369,7 @@ "cimguiname": "igGetWindowResizeBorderID", "defaults": {}, "funcname": "GetWindowResizeBorderID", - "location": "imgui_internal:2892", + "location": "imgui_internal:3013", "namespace": "ImGui", "ov_cimguiname": "igGetWindowResizeBorderID", "ret": "ImGuiID", @@ -19914,7 +20395,7 @@ "cimguiname": "igGetWindowResizeCornerID", "defaults": {}, "funcname": "GetWindowResizeCornerID", - "location": "imgui_internal:2891", + "location": "imgui_internal:3012", "namespace": "ImGui", "ov_cimguiname": "igGetWindowResizeCornerID", "ret": "ImGuiID", @@ -19940,7 +20421,7 @@ "cimguiname": "igGetWindowScrollbarID", "defaults": {}, "funcname": "GetWindowScrollbarID", - "location": "imgui_internal:2890", + "location": "imgui_internal:3011", "namespace": "ImGui", "ov_cimguiname": "igGetWindowScrollbarID", "ret": "ImGuiID", @@ -19970,7 +20451,7 @@ "cimguiname": "igGetWindowScrollbarRect", "defaults": {}, "funcname": "GetWindowScrollbarRect", - "location": "imgui_internal:2889", + "location": "imgui_internal:3010", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetWindowScrollbarRect", @@ -19993,7 +20474,7 @@ "cimguiname": "igGetWindowSize", "defaults": {}, "funcname": "GetWindowSize", - "location": "imgui:365", + "location": "imgui:366", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetWindowSize", @@ -20011,7 +20492,7 @@ "cimguiname": "igGetWindowViewport", "defaults": {}, "funcname": "GetWindowViewport", - "location": "imgui:368", + "location": "imgui:369", "namespace": "ImGui", "ov_cimguiname": "igGetWindowViewport", "ret": "ImGuiViewport*", @@ -20028,7 +20509,7 @@ "cimguiname": "igGetWindowWidth", "defaults": {}, "funcname": "GetWindowWidth", - "location": "imgui:366", + "location": "imgui:367", "namespace": "ImGui", "ov_cimguiname": "igGetWindowWidth", "ret": "float", @@ -20050,7 +20531,7 @@ "cimguiname": "igImAbs", "defaults": {}, "funcname": "ImAbs", - "location": "imgui_internal:412", + "location": "imgui_internal:423", "ov_cimguiname": "igImAbsInt", "ret": "int", "signature": "(int)", @@ -20069,7 +20550,7 @@ "cimguiname": "igImAbs", "defaults": {}, "funcname": "ImAbs", - "location": "imgui_internal:413", + "location": "imgui_internal:424", "ov_cimguiname": "igImAbsFloat", "ret": "float", "signature": "(float)", @@ -20088,7 +20569,7 @@ "cimguiname": "igImAbs", "defaults": {}, "funcname": "ImAbs", - "location": "imgui_internal:414", + "location": "imgui_internal:425", "ov_cimguiname": "igImAbsdouble", "ret": "double", "signature": "(double)", @@ -20113,7 +20594,7 @@ "cimguiname": "igImAlphaBlendColors", "defaults": {}, "funcname": "ImAlphaBlendColors", - "location": "imgui_internal:311", + "location": "imgui_internal:322", "ov_cimguiname": "igImAlphaBlendColors", "ret": "ImU32", "signature": "(ImU32,ImU32)", @@ -20154,7 +20635,7 @@ "cimguiname": "igImBezierCubicCalc", "defaults": {}, "funcname": "ImBezierCubicCalc", - "location": "imgui_internal:455", + "location": "imgui_internal:467", "nonUDT": 1, "ov_cimguiname": "igImBezierCubicCalc", "ret": "void", @@ -20200,7 +20681,7 @@ "cimguiname": "igImBezierCubicClosestPoint", "defaults": {}, "funcname": "ImBezierCubicClosestPoint", - "location": "imgui_internal:456", + "location": "imgui_internal:468", "nonUDT": 1, "ov_cimguiname": "igImBezierCubicClosestPoint", "ret": "void", @@ -20246,7 +20727,7 @@ "cimguiname": "igImBezierCubicClosestPointCasteljau", "defaults": {}, "funcname": "ImBezierCubicClosestPointCasteljau", - "location": "imgui_internal:457", + "location": "imgui_internal:469", "nonUDT": 1, "ov_cimguiname": "igImBezierCubicClosestPointCasteljau", "ret": "void", @@ -20284,7 +20765,7 @@ "cimguiname": "igImBezierQuadraticCalc", "defaults": {}, "funcname": "ImBezierQuadraticCalc", - "location": "imgui_internal:458", + "location": "imgui_internal:470", "nonUDT": 1, "ov_cimguiname": "igImBezierQuadraticCalc", "ret": "void", @@ -20310,7 +20791,7 @@ "cimguiname": "igImBitArrayClearBit", "defaults": {}, "funcname": "ImBitArrayClearBit", - "location": "imgui_internal:526", + "location": "imgui_internal:538", "ov_cimguiname": "igImBitArrayClearBit", "ret": "void", "signature": "(ImU32*,int)", @@ -20335,7 +20816,7 @@ "cimguiname": "igImBitArraySetBit", "defaults": {}, "funcname": "ImBitArraySetBit", - "location": "imgui_internal:527", + "location": "imgui_internal:539", "ov_cimguiname": "igImBitArraySetBit", "ret": "void", "signature": "(ImU32*,int)", @@ -20364,7 +20845,7 @@ "cimguiname": "igImBitArraySetBitRange", "defaults": {}, "funcname": "ImBitArraySetBitRange", - "location": "imgui_internal:528", + "location": "imgui_internal:540", "ov_cimguiname": "igImBitArraySetBitRange", "ret": "void", "signature": "(ImU32*,int,int)", @@ -20389,7 +20870,7 @@ "cimguiname": "igImBitArrayTestBit", "defaults": {}, "funcname": "ImBitArrayTestBit", - "location": "imgui_internal:525", + "location": "imgui_internal:537", "ov_cimguiname": "igImBitArrayTestBit", "ret": "bool", "signature": "(const ImU32*,int)", @@ -20410,7 +20891,7 @@ "cimguiname": "igImCharIsBlankA", "defaults": {}, "funcname": "ImCharIsBlankA", - "location": "imgui_internal:337", + "location": "imgui_internal:348", "ov_cimguiname": "igImCharIsBlankA", "ret": "bool", "signature": "(char)", @@ -20431,7 +20912,7 @@ "cimguiname": "igImCharIsBlankW", "defaults": {}, "funcname": "ImCharIsBlankW", - "location": "imgui_internal:338", + "location": "imgui_internal:349", "ov_cimguiname": "igImCharIsBlankW", "ret": "bool", "signature": "(unsigned int)", @@ -20464,7 +20945,7 @@ "cimguiname": "igImClamp", "defaults": {}, "funcname": "ImClamp", - "location": "imgui_internal:436", + "location": "imgui_internal:447", "nonUDT": 1, "ov_cimguiname": "igImClamp", "ret": "void", @@ -20490,7 +20971,7 @@ "cimguiname": "igImDot", "defaults": {}, "funcname": "ImDot", - "location": "imgui_internal:448", + "location": "imgui_internal:459", "ov_cimguiname": "igImDot", "ret": "float", "signature": "(const ImVec2,const ImVec2)", @@ -20511,7 +20992,7 @@ "cimguiname": "igImFileClose", "defaults": {}, "funcname": "ImFileClose", - "location": "imgui_internal:385", + "location": "imgui_internal:396", "ov_cimguiname": "igImFileClose", "ret": "bool", "signature": "(ImFileHandle)", @@ -20532,7 +21013,7 @@ "cimguiname": "igImFileGetSize", "defaults": {}, "funcname": "ImFileGetSize", - "location": "imgui_internal:386", + "location": "imgui_internal:397", "ov_cimguiname": "igImFileGetSize", "ret": "ImU64", "signature": "(ImFileHandle)", @@ -20568,7 +21049,7 @@ "padding_bytes": "0" }, "funcname": "ImFileLoadToMemory", - "location": "imgui_internal:392", + "location": "imgui_internal:403", "ov_cimguiname": "igImFileLoadToMemory", "ret": "void*", "signature": "(const char*,const char*,size_t*,int)", @@ -20593,7 +21074,7 @@ "cimguiname": "igImFileOpen", "defaults": {}, "funcname": "ImFileOpen", - "location": "imgui_internal:384", + "location": "imgui_internal:395", "ov_cimguiname": "igImFileOpen", "ret": "ImFileHandle", "signature": "(const char*,const char*)", @@ -20626,7 +21107,7 @@ "cimguiname": "igImFileRead", "defaults": {}, "funcname": "ImFileRead", - "location": "imgui_internal:387", + "location": "imgui_internal:398", "ov_cimguiname": "igImFileRead", "ret": "ImU64", "signature": "(void*,ImU64,ImU64,ImFileHandle)", @@ -20659,7 +21140,7 @@ "cimguiname": "igImFileWrite", "defaults": {}, "funcname": "ImFileWrite", - "location": "imgui_internal:388", + "location": "imgui_internal:399", "ov_cimguiname": "igImFileWrite", "ret": "ImU64", "signature": "(const void*,ImU64,ImU64,ImFileHandle)", @@ -20680,7 +21161,7 @@ "cimguiname": "igImFloor", "defaults": {}, "funcname": "ImFloor", - "location": "imgui_internal:444", + "location": "imgui_internal:455", "ov_cimguiname": "igImFloorFloat", "ret": "float", "signature": "(float)", @@ -20703,7 +21184,7 @@ "cimguiname": "igImFloor", "defaults": {}, "funcname": "ImFloor", - "location": "imgui_internal:446", + "location": "imgui_internal:457", "nonUDT": 1, "ov_cimguiname": "igImFloorVec2", "ret": "void", @@ -20725,7 +21206,7 @@ "cimguiname": "igImFloorSigned", "defaults": {}, "funcname": "ImFloorSigned", - "location": "imgui_internal:445", + "location": "imgui_internal:456", "ov_cimguiname": "igImFloorSigned", "ret": "float", "signature": "(float)", @@ -20746,7 +21227,7 @@ "cimguiname": "igImFontAtlasBuildFinish", "defaults": {}, "funcname": "ImFontAtlasBuildFinish", - "location": "imgui_internal:2987", + "location": "imgui_internal:3111", "ov_cimguiname": "igImFontAtlasBuildFinish", "ret": "void", "signature": "(ImFontAtlas*)", @@ -20767,7 +21248,7 @@ "cimguiname": "igImFontAtlasBuildInit", "defaults": {}, "funcname": "ImFontAtlasBuildInit", - "location": "imgui_internal:2984", + "location": "imgui_internal:3108", "ov_cimguiname": "igImFontAtlasBuildInit", "ret": "void", "signature": "(ImFontAtlas*)", @@ -20792,7 +21273,7 @@ "cimguiname": "igImFontAtlasBuildMultiplyCalcLookupTable", "defaults": {}, "funcname": "ImFontAtlasBuildMultiplyCalcLookupTable", - "location": "imgui_internal:2990", + "location": "imgui_internal:3114", "ov_cimguiname": "igImFontAtlasBuildMultiplyCalcLookupTable", "ret": "void", "signature": "(unsigned char[256],float)", @@ -20837,7 +21318,7 @@ "cimguiname": "igImFontAtlasBuildMultiplyRectAlpha8", "defaults": {}, "funcname": "ImFontAtlasBuildMultiplyRectAlpha8", - "location": "imgui_internal:2991", + "location": "imgui_internal:3115", "ov_cimguiname": "igImFontAtlasBuildMultiplyRectAlpha8", "ret": "void", "signature": "(const unsigned char[256],unsigned char*,int,int,int,int,int)", @@ -20862,7 +21343,7 @@ "cimguiname": "igImFontAtlasBuildPackCustomRects", "defaults": {}, "funcname": "ImFontAtlasBuildPackCustomRects", - "location": "imgui_internal:2986", + "location": "imgui_internal:3110", "ov_cimguiname": "igImFontAtlasBuildPackCustomRects", "ret": "void", "signature": "(ImFontAtlas*,void*)", @@ -20911,7 +21392,7 @@ "cimguiname": "igImFontAtlasBuildRender32bppRectFromString", "defaults": {}, "funcname": "ImFontAtlasBuildRender32bppRectFromString", - "location": "imgui_internal:2989", + "location": "imgui_internal:3113", "ov_cimguiname": "igImFontAtlasBuildRender32bppRectFromString", "ret": "void", "signature": "(ImFontAtlas*,int,int,int,int,const char*,char,unsigned int)", @@ -20960,7 +21441,7 @@ "cimguiname": "igImFontAtlasBuildRender8bppRectFromString", "defaults": {}, "funcname": "ImFontAtlasBuildRender8bppRectFromString", - "location": "imgui_internal:2988", + "location": "imgui_internal:3112", "ov_cimguiname": "igImFontAtlasBuildRender8bppRectFromString", "ret": "void", "signature": "(ImFontAtlas*,int,int,int,int,const char*,char,unsigned char)", @@ -20997,7 +21478,7 @@ "cimguiname": "igImFontAtlasBuildSetupFont", "defaults": {}, "funcname": "ImFontAtlasBuildSetupFont", - "location": "imgui_internal:2985", + "location": "imgui_internal:3109", "ov_cimguiname": "igImFontAtlasBuildSetupFont", "ret": "void", "signature": "(ImFontAtlas*,ImFont*,ImFontConfig*,float,float)", @@ -21013,7 +21494,7 @@ "cimguiname": "igImFontAtlasGetBuilderForStbTruetype", "defaults": {}, "funcname": "ImFontAtlasGetBuilderForStbTruetype", - "location": "imgui_internal:2983", + "location": "imgui_internal:3107", "ov_cimguiname": "igImFontAtlasGetBuilderForStbTruetype", "ret": "const ImFontBuilderIO*", "signature": "()", @@ -21047,7 +21528,7 @@ "defaults": {}, "funcname": "ImFormatString", "isvararg": "...)", - "location": "imgui_internal:331", + "location": "imgui_internal:342", "ov_cimguiname": "igImFormatString", "ret": "int", "signature": "(char*,size_t,const char*,...)", @@ -21080,7 +21561,7 @@ "cimguiname": "igImFormatStringV", "defaults": {}, "funcname": "ImFormatStringV", - "location": "imgui_internal:332", + "location": "imgui_internal:343", "ov_cimguiname": "igImFormatStringV", "ret": "int", "signature": "(char*,size_t,const char*,va_list)", @@ -21105,7 +21586,7 @@ "cimguiname": "igImGetDirQuadrantFromDelta", "defaults": {}, "funcname": "ImGetDirQuadrantFromDelta", - "location": "imgui_internal:464", + "location": "imgui_internal:476", "ov_cimguiname": "igImGetDirQuadrantFromDelta", "ret": "ImGuiDir", "signature": "(float,float)", @@ -21136,7 +21617,7 @@ "seed": "0" }, "funcname": "ImHashData", - "location": "imgui_internal:301", + "location": "imgui_internal:310", "ov_cimguiname": "igImHashData", "ret": "ImGuiID", "signature": "(const void*,size_t,ImU32)", @@ -21168,7 +21649,7 @@ "seed": "0" }, "funcname": "ImHashStr", - "location": "imgui_internal:302", + "location": "imgui_internal:311", "ov_cimguiname": "igImHashStr", "ret": "ImGuiID", "signature": "(const char*,size_t,ImU32)", @@ -21193,13 +21674,34 @@ "cimguiname": "igImInvLength", "defaults": {}, "funcname": "ImInvLength", - "location": "imgui_internal:443", + "location": "imgui_internal:454", "ov_cimguiname": "igImInvLength", "ret": "float", "signature": "(const ImVec2,float)", "stname": "" } ], + "igImIsFloatAboveGuaranteedIntegerPrecision": [ + { + "args": "(float f)", + "argsT": [ + { + "name": "f", + "type": "float" + } + ], + "argsoriginal": "(float f)", + "call_args": "(f)", + "cimguiname": "igImIsFloatAboveGuaranteedIntegerPrecision", + "defaults": {}, + "funcname": "ImIsFloatAboveGuaranteedIntegerPrecision", + "location": "imgui_internal:463", + "ov_cimguiname": "igImIsFloatAboveGuaranteedIntegerPrecision", + "ret": "bool", + "signature": "(float)", + "stname": "" + } + ], "igImIsPowerOfTwo": [ { "args": "(int v)", @@ -21214,7 +21716,7 @@ "cimguiname": "igImIsPowerOfTwo", "defaults": {}, "funcname": "ImIsPowerOfTwo", - "location": "imgui_internal:314", + "location": "imgui_internal:325", "ov_cimguiname": "igImIsPowerOfTwoInt", "ret": "bool", "signature": "(int)", @@ -21233,7 +21735,7 @@ "cimguiname": "igImIsPowerOfTwo", "defaults": {}, "funcname": "ImIsPowerOfTwo", - "location": "imgui_internal:315", + "location": "imgui_internal:326", "ov_cimguiname": "igImIsPowerOfTwoU64", "ret": "bool", "signature": "(ImU64)", @@ -21254,7 +21756,7 @@ "cimguiname": "igImLengthSqr", "defaults": {}, "funcname": "ImLengthSqr", - "location": "imgui_internal:441", + "location": "imgui_internal:452", "ov_cimguiname": "igImLengthSqrVec2", "ret": "float", "signature": "(const ImVec2)", @@ -21273,7 +21775,7 @@ "cimguiname": "igImLengthSqr", "defaults": {}, "funcname": "ImLengthSqr", - "location": "imgui_internal:442", + "location": "imgui_internal:453", "ov_cimguiname": "igImLengthSqrVec4", "ret": "float", "signature": "(const ImVec4)", @@ -21306,7 +21808,7 @@ "cimguiname": "igImLerp", "defaults": {}, "funcname": "ImLerp", - "location": "imgui_internal:437", + "location": "imgui_internal:448", "nonUDT": 1, "ov_cimguiname": "igImLerpVec2Float", "ret": "void", @@ -21338,7 +21840,7 @@ "cimguiname": "igImLerp", "defaults": {}, "funcname": "ImLerp", - "location": "imgui_internal:438", + "location": "imgui_internal:449", "nonUDT": 1, "ov_cimguiname": "igImLerpVec2Vec2", "ret": "void", @@ -21370,7 +21872,7 @@ "cimguiname": "igImLerp", "defaults": {}, "funcname": "ImLerp", - "location": "imgui_internal:439", + "location": "imgui_internal:450", "nonUDT": 1, "ov_cimguiname": "igImLerpVec4", "ret": "void", @@ -21404,7 +21906,7 @@ "cimguiname": "igImLineClosestPoint", "defaults": {}, "funcname": "ImLineClosestPoint", - "location": "imgui_internal:459", + "location": "imgui_internal:471", "nonUDT": 1, "ov_cimguiname": "igImLineClosestPoint", "ret": "void", @@ -21434,7 +21936,7 @@ "cimguiname": "igImLinearSweep", "defaults": {}, "funcname": "ImLinearSweep", - "location": "imgui_internal:450", + "location": "imgui_internal:461", "ov_cimguiname": "igImLinearSweep", "ret": "float", "signature": "(float,float,float)", @@ -21455,7 +21957,7 @@ "cimguiname": "igImLog", "defaults": {}, "funcname": "ImLog", - "location": "imgui_internal:410", + "location": "imgui_internal:421", "ov_cimguiname": "igImLogFloat", "ret": "float", "signature": "(float)", @@ -21474,7 +21976,7 @@ "cimguiname": "igImLog", "defaults": {}, "funcname": "ImLog", - "location": "imgui_internal:411", + "location": "imgui_internal:422", "ov_cimguiname": "igImLogdouble", "ret": "double", "signature": "(double)", @@ -21503,7 +22005,7 @@ "cimguiname": "igImMax", "defaults": {}, "funcname": "ImMax", - "location": "imgui_internal:435", + "location": "imgui_internal:446", "nonUDT": 1, "ov_cimguiname": "igImMax", "ret": "void", @@ -21533,7 +22035,7 @@ "cimguiname": "igImMin", "defaults": {}, "funcname": "ImMin", - "location": "imgui_internal:434", + "location": "imgui_internal:445", "nonUDT": 1, "ov_cimguiname": "igImMin", "ret": "void", @@ -21559,7 +22061,7 @@ "cimguiname": "igImModPositive", "defaults": {}, "funcname": "ImModPositive", - "location": "imgui_internal:447", + "location": "imgui_internal:458", "ov_cimguiname": "igImModPositive", "ret": "int", "signature": "(int,int)", @@ -21588,7 +22090,7 @@ "cimguiname": "igImMul", "defaults": {}, "funcname": "ImMul", - "location": "imgui_internal:451", + "location": "imgui_internal:462", "nonUDT": 1, "ov_cimguiname": "igImMul", "ret": "void", @@ -21610,7 +22112,7 @@ "cimguiname": "igImParseFormatFindEnd", "defaults": {}, "funcname": "ImParseFormatFindEnd", - "location": "imgui_internal:334", + "location": "imgui_internal:345", "ov_cimguiname": "igImParseFormatFindEnd", "ret": "const char*", "signature": "(const char*)", @@ -21631,7 +22133,7 @@ "cimguiname": "igImParseFormatFindStart", "defaults": {}, "funcname": "ImParseFormatFindStart", - "location": "imgui_internal:333", + "location": "imgui_internal:344", "ov_cimguiname": "igImParseFormatFindStart", "ret": "const char*", "signature": "(const char*)", @@ -21656,7 +22158,7 @@ "cimguiname": "igImParseFormatPrecision", "defaults": {}, "funcname": "ImParseFormatPrecision", - "location": "imgui_internal:336", + "location": "imgui_internal:347", "ov_cimguiname": "igImParseFormatPrecision", "ret": "int", "signature": "(const char*,int)", @@ -21685,7 +22187,7 @@ "cimguiname": "igImParseFormatTrimDecorations", "defaults": {}, "funcname": "ImParseFormatTrimDecorations", - "location": "imgui_internal:335", + "location": "imgui_internal:346", "ov_cimguiname": "igImParseFormatTrimDecorations", "ret": "const char*", "signature": "(const char*,char*,size_t)", @@ -21710,7 +22212,7 @@ "cimguiname": "igImPow", "defaults": {}, "funcname": "ImPow", - "location": "imgui_internal:408", + "location": "imgui_internal:419", "ov_cimguiname": "igImPowFloat", "ret": "float", "signature": "(float,float)", @@ -21733,13 +22235,48 @@ "cimguiname": "igImPow", "defaults": {}, "funcname": "ImPow", - "location": "imgui_internal:409", + "location": "imgui_internal:420", "ov_cimguiname": "igImPowdouble", "ret": "double", "signature": "(double,double)", "stname": "" } ], + "igImQsort": [ + { + "args": "(void* base,size_t count,size_t size_of_element,int(*compare_func)(void const*,void const*))", + "argsT": [ + { + "name": "base", + "type": "void*" + }, + { + "name": "count", + "type": "size_t" + }, + { + "name": "size_of_element", + "type": "size_t" + }, + { + "name": "compare_func", + "ret": "int", + "signature": "(void const*,void const*)", + "type": "int(*)(void const*,void const*)" + } + ], + "argsoriginal": "(void* base,size_t count,size_t size_of_element,int(*compare_func)(void const*,void const*))", + "call_args": "(base,count,size_of_element,compare_func)", + "cimguiname": "igImQsort", + "defaults": {}, + "funcname": "ImQsort", + "location": "imgui_internal:318", + "ov_cimguiname": "igImQsort", + "ret": "void", + "signature": "(void*,size_t,size_t,int(*)(void const*,void const*))", + "stname": "" + } + ], "igImRotate": [ { "args": "(ImVec2 *pOut,const ImVec2 v,float cos_a,float sin_a)", @@ -21766,7 +22303,7 @@ "cimguiname": "igImRotate", "defaults": {}, "funcname": "ImRotate", - "location": "imgui_internal:449", + "location": "imgui_internal:460", "nonUDT": 1, "ov_cimguiname": "igImRotate", "ret": "void", @@ -21788,7 +22325,7 @@ "cimguiname": "igImRsqrt", "defaults": {}, "funcname": "ImRsqrt", - "location": "imgui_internal:418", + "location": "imgui_internal:429", "ov_cimguiname": "igImRsqrtFloat", "ret": "float", "signature": "(float)", @@ -21807,7 +22344,7 @@ "cimguiname": "igImRsqrt", "defaults": {}, "funcname": "ImRsqrt", - "location": "imgui_internal:422", + "location": "imgui_internal:433", "ov_cimguiname": "igImRsqrtdouble", "ret": "double", "signature": "(double)", @@ -21828,7 +22365,7 @@ "cimguiname": "igImSaturate", "defaults": {}, "funcname": "ImSaturate", - "location": "imgui_internal:440", + "location": "imgui_internal:451", "ov_cimguiname": "igImSaturate", "ret": "float", "signature": "(float)", @@ -21849,7 +22386,7 @@ "cimguiname": "igImSign", "defaults": {}, "funcname": "ImSign", - "location": "imgui_internal:415", + "location": "imgui_internal:426", "ov_cimguiname": "igImSignFloat", "ret": "float", "signature": "(float)", @@ -21868,7 +22405,7 @@ "cimguiname": "igImSign", "defaults": {}, "funcname": "ImSign", - "location": "imgui_internal:416", + "location": "imgui_internal:427", "ov_cimguiname": "igImSigndouble", "ret": "double", "signature": "(double)", @@ -21889,7 +22426,7 @@ "cimguiname": "igImStrSkipBlank", "defaults": {}, "funcname": "ImStrSkipBlank", - "location": "imgui_internal:330", + "location": "imgui_internal:341", "ov_cimguiname": "igImStrSkipBlank", "ret": "const char*", "signature": "(const char*)", @@ -21910,7 +22447,7 @@ "cimguiname": "igImStrTrimBlanks", "defaults": {}, "funcname": "ImStrTrimBlanks", - "location": "imgui_internal:329", + "location": "imgui_internal:340", "ov_cimguiname": "igImStrTrimBlanks", "ret": "void", "signature": "(char*)", @@ -21935,7 +22472,7 @@ "cimguiname": "igImStrbolW", "defaults": {}, "funcname": "ImStrbolW", - "location": "imgui_internal:327", + "location": "imgui_internal:338", "ov_cimguiname": "igImStrbolW", "ret": "const ImWchar*", "signature": "(const ImWchar*,const ImWchar*)", @@ -21964,7 +22501,7 @@ "cimguiname": "igImStrchrRange", "defaults": {}, "funcname": "ImStrchrRange", - "location": "imgui_internal:324", + "location": "imgui_internal:335", "ov_cimguiname": "igImStrchrRange", "ret": "const char*", "signature": "(const char*,const char*,char)", @@ -21985,7 +22522,7 @@ "cimguiname": "igImStrdup", "defaults": {}, "funcname": "ImStrdup", - "location": "imgui_internal:322", + "location": "imgui_internal:333", "ov_cimguiname": "igImStrdup", "ret": "char*", "signature": "(const char*)", @@ -22014,7 +22551,7 @@ "cimguiname": "igImStrdupcpy", "defaults": {}, "funcname": "ImStrdupcpy", - "location": "imgui_internal:323", + "location": "imgui_internal:334", "ov_cimguiname": "igImStrdupcpy", "ret": "char*", "signature": "(char*,size_t*,const char*)", @@ -22039,7 +22576,7 @@ "cimguiname": "igImStreolRange", "defaults": {}, "funcname": "ImStreolRange", - "location": "imgui_internal:326", + "location": "imgui_internal:337", "ov_cimguiname": "igImStreolRange", "ret": "const char*", "signature": "(const char*,const char*)", @@ -22064,7 +22601,7 @@ "cimguiname": "igImStricmp", "defaults": {}, "funcname": "ImStricmp", - "location": "imgui_internal:319", + "location": "imgui_internal:330", "ov_cimguiname": "igImStricmp", "ret": "int", "signature": "(const char*,const char*)", @@ -22097,7 +22634,7 @@ "cimguiname": "igImStristr", "defaults": {}, "funcname": "ImStristr", - "location": "imgui_internal:328", + "location": "imgui_internal:339", "ov_cimguiname": "igImStristr", "ret": "const char*", "signature": "(const char*,const char*,const char*,const char*)", @@ -22118,7 +22655,7 @@ "cimguiname": "igImStrlenW", "defaults": {}, "funcname": "ImStrlenW", - "location": "imgui_internal:325", + "location": "imgui_internal:336", "ov_cimguiname": "igImStrlenW", "ret": "int", "signature": "(const ImWchar*)", @@ -22147,7 +22684,7 @@ "cimguiname": "igImStrncpy", "defaults": {}, "funcname": "ImStrncpy", - "location": "imgui_internal:321", + "location": "imgui_internal:332", "ov_cimguiname": "igImStrncpy", "ret": "void", "signature": "(char*,const char*,size_t)", @@ -22176,7 +22713,7 @@ "cimguiname": "igImStrnicmp", "defaults": {}, "funcname": "ImStrnicmp", - "location": "imgui_internal:320", + "location": "imgui_internal:331", "ov_cimguiname": "igImStrnicmp", "ret": "int", "signature": "(const char*,const char*,size_t)", @@ -22205,7 +22742,7 @@ "cimguiname": "igImTextCharFromUtf8", "defaults": {}, "funcname": "ImTextCharFromUtf8", - "location": "imgui_internal:343", + "location": "imgui_internal:354", "ov_cimguiname": "igImTextCharFromUtf8", "ret": "int", "signature": "(unsigned int*,const char*,const char*)", @@ -22230,7 +22767,7 @@ "cimguiname": "igImTextCharToUtf8", "defaults": {}, "funcname": "ImTextCharToUtf8", - "location": "imgui_internal:341", + "location": "imgui_internal:352", "ov_cimguiname": "igImTextCharToUtf8", "ret": "const char*", "signature": "(char[5],unsigned int)", @@ -22255,7 +22792,7 @@ "cimguiname": "igImTextCountCharsFromUtf8", "defaults": {}, "funcname": "ImTextCountCharsFromUtf8", - "location": "imgui_internal:345", + "location": "imgui_internal:356", "ov_cimguiname": "igImTextCountCharsFromUtf8", "ret": "int", "signature": "(const char*,const char*)", @@ -22280,7 +22817,7 @@ "cimguiname": "igImTextCountUtf8BytesFromChar", "defaults": {}, "funcname": "ImTextCountUtf8BytesFromChar", - "location": "imgui_internal:346", + "location": "imgui_internal:357", "ov_cimguiname": "igImTextCountUtf8BytesFromChar", "ret": "int", "signature": "(const char*,const char*)", @@ -22305,7 +22842,7 @@ "cimguiname": "igImTextCountUtf8BytesFromStr", "defaults": {}, "funcname": "ImTextCountUtf8BytesFromStr", - "location": "imgui_internal:347", + "location": "imgui_internal:358", "ov_cimguiname": "igImTextCountUtf8BytesFromStr", "ret": "int", "signature": "(const ImWchar*,const ImWchar*)", @@ -22344,7 +22881,7 @@ "in_remaining": "NULL" }, "funcname": "ImTextStrFromUtf8", - "location": "imgui_internal:344", + "location": "imgui_internal:355", "ov_cimguiname": "igImTextStrFromUtf8", "ret": "int", "signature": "(ImWchar*,int,const char*,const char*,const char**)", @@ -22377,7 +22914,7 @@ "cimguiname": "igImTextStrToUtf8", "defaults": {}, "funcname": "ImTextStrToUtf8", - "location": "imgui_internal:342", + "location": "imgui_internal:353", "ov_cimguiname": "igImTextStrToUtf8", "ret": "int", "signature": "(char*,int,const ImWchar*,const ImWchar*)", @@ -22406,7 +22943,7 @@ "cimguiname": "igImTriangleArea", "defaults": {}, "funcname": "ImTriangleArea", - "location": "imgui_internal:463", + "location": "imgui_internal:475", "ov_cimguiname": "igImTriangleArea", "ret": "float", "signature": "(const ImVec2,const ImVec2,const ImVec2)", @@ -22454,7 +22991,7 @@ "cimguiname": "igImTriangleBarycentricCoords", "defaults": {}, "funcname": "ImTriangleBarycentricCoords", - "location": "imgui_internal:462", + "location": "imgui_internal:474", "ov_cimguiname": "igImTriangleBarycentricCoords", "ret": "void", "signature": "(const ImVec2,const ImVec2,const ImVec2,const ImVec2,float*,float*,float*)", @@ -22491,7 +23028,7 @@ "cimguiname": "igImTriangleClosestPoint", "defaults": {}, "funcname": "ImTriangleClosestPoint", - "location": "imgui_internal:461", + "location": "imgui_internal:473", "nonUDT": 1, "ov_cimguiname": "igImTriangleClosestPoint", "ret": "void", @@ -22525,7 +23062,7 @@ "cimguiname": "igImTriangleContainsPoint", "defaults": {}, "funcname": "ImTriangleContainsPoint", - "location": "imgui_internal:460", + "location": "imgui_internal:472", "ov_cimguiname": "igImTriangleContainsPoint", "ret": "bool", "signature": "(const ImVec2,const ImVec2,const ImVec2,const ImVec2)", @@ -22546,7 +23083,7 @@ "cimguiname": "igImUpperPowerOfTwo", "defaults": {}, "funcname": "ImUpperPowerOfTwo", - "location": "imgui_internal:316", + "location": "imgui_internal:327", "ov_cimguiname": "igImUpperPowerOfTwo", "ret": "int", "signature": "(int)", @@ -22592,7 +23129,7 @@ "uv1": "ImVec2(1,1)" }, "funcname": "Image", - "location": "imgui:515", + "location": "imgui:516", "namespace": "ImGui", "ov_cimguiname": "igImage", "ret": "void", @@ -22644,7 +23181,7 @@ "uv1": "ImVec2(1,1)" }, "funcname": "ImageButton", - "location": "imgui:516", + "location": "imgui:517", "namespace": "ImGui", "ov_cimguiname": "igImageButton", "ret": "bool", @@ -22694,7 +23231,7 @@ "cimguiname": "igImageButtonEx", "defaults": {}, "funcname": "ImageButtonEx", - "location": "imgui_internal:2888", + "location": "imgui_internal:3009", "namespace": "ImGui", "ov_cimguiname": "igImageButtonEx", "ret": "bool", @@ -22718,7 +23255,7 @@ "indent_w": "0.0f" }, "funcname": "Indent", - "location": "imgui:454", + "location": "imgui:455", "namespace": "ImGui", "ov_cimguiname": "igIndent", "ret": "void", @@ -22740,7 +23277,7 @@ "cimguiname": "igInitialize", "defaults": {}, "funcname": "Initialize", - "location": "imgui_internal:2572", + "location": "imgui_internal:2677", "namespace": "ImGui", "ov_cimguiname": "igInitialize", "ret": "void", @@ -22787,7 +23324,7 @@ "step_fast": "0.0" }, "funcname": "InputDouble", - "location": "imgui:593", + "location": "imgui:594", "namespace": "ImGui", "ov_cimguiname": "igInputDouble", "ret": "bool", @@ -22834,7 +23371,7 @@ "step_fast": "0.0f" }, "funcname": "InputFloat", - "location": "imgui:585", + "location": "imgui:586", "namespace": "ImGui", "ov_cimguiname": "igInputFloat", "ret": "bool", @@ -22871,7 +23408,7 @@ "format": "\"%.3f\"" }, "funcname": "InputFloat2", - "location": "imgui:586", + "location": "imgui:587", "namespace": "ImGui", "ov_cimguiname": "igInputFloat2", "ret": "bool", @@ -22908,7 +23445,7 @@ "format": "\"%.3f\"" }, "funcname": "InputFloat3", - "location": "imgui:587", + "location": "imgui:588", "namespace": "ImGui", "ov_cimguiname": "igInputFloat3", "ret": "bool", @@ -22945,7 +23482,7 @@ "format": "\"%.3f\"" }, "funcname": "InputFloat4", - "location": "imgui:588", + "location": "imgui:589", "namespace": "ImGui", "ov_cimguiname": "igInputFloat4", "ret": "bool", @@ -22987,7 +23524,7 @@ "step_fast": "100" }, "funcname": "InputInt", - "location": "imgui:589", + "location": "imgui:590", "namespace": "ImGui", "ov_cimguiname": "igInputInt", "ret": "bool", @@ -23019,7 +23556,7 @@ "flags": "0" }, "funcname": "InputInt2", - "location": "imgui:590", + "location": "imgui:591", "namespace": "ImGui", "ov_cimguiname": "igInputInt2", "ret": "bool", @@ -23051,7 +23588,7 @@ "flags": "0" }, "funcname": "InputInt3", - "location": "imgui:591", + "location": "imgui:592", "namespace": "ImGui", "ov_cimguiname": "igInputInt3", "ret": "bool", @@ -23083,7 +23620,7 @@ "flags": "0" }, "funcname": "InputInt4", - "location": "imgui:592", + "location": "imgui:593", "namespace": "ImGui", "ov_cimguiname": "igInputInt4", "ret": "bool", @@ -23134,7 +23671,7 @@ "p_step_fast": "NULL" }, "funcname": "InputScalar", - "location": "imgui:594", + "location": "imgui:595", "namespace": "ImGui", "ov_cimguiname": "igInputScalar", "ret": "bool", @@ -23189,7 +23726,7 @@ "p_step_fast": "NULL" }, "funcname": "InputScalarN", - "location": "imgui:595", + "location": "imgui:596", "namespace": "ImGui", "ov_cimguiname": "igInputScalarN", "ret": "bool", @@ -23235,7 +23772,7 @@ "user_data": "NULL" }, "funcname": "InputText", - "location": "imgui:582", + "location": "imgui:583", "namespace": "ImGui", "ov_cimguiname": "igInputText", "ret": "bool", @@ -23288,7 +23825,7 @@ "user_data": "NULL" }, "funcname": "InputTextEx", - "location": "imgui_internal:2925", + "location": "imgui_internal:3046", "namespace": "ImGui", "ov_cimguiname": "igInputTextEx", "ret": "bool", @@ -23339,7 +23876,7 @@ "user_data": "NULL" }, "funcname": "InputTextMultiline", - "location": "imgui:583", + "location": "imgui:584", "namespace": "ImGui", "ov_cimguiname": "igInputTextMultiline", "ret": "bool", @@ -23389,7 +23926,7 @@ "user_data": "NULL" }, "funcname": "InputTextWithHint", - "location": "imgui:584", + "location": "imgui:585", "namespace": "ImGui", "ov_cimguiname": "igInputTextWithHint", "ret": "bool", @@ -23421,7 +23958,7 @@ "flags": "0" }, "funcname": "InvisibleButton", - "location": "imgui:513", + "location": "imgui:514", "namespace": "ImGui", "ov_cimguiname": "igInvisibleButton", "ret": "bool", @@ -23443,7 +23980,7 @@ "cimguiname": "igIsActiveIdUsingKey", "defaults": {}, "funcname": "IsActiveIdUsingKey", - "location": "imgui_internal:2711", + "location": "imgui_internal:2829", "namespace": "ImGui", "ov_cimguiname": "igIsActiveIdUsingKey", "ret": "bool", @@ -23465,7 +24002,7 @@ "cimguiname": "igIsActiveIdUsingNavDir", "defaults": {}, "funcname": "IsActiveIdUsingNavDir", - "location": "imgui_internal:2709", + "location": "imgui_internal:2827", "namespace": "ImGui", "ov_cimguiname": "igIsActiveIdUsingNavDir", "ret": "bool", @@ -23487,7 +24024,7 @@ "cimguiname": "igIsActiveIdUsingNavInput", "defaults": {}, "funcname": "IsActiveIdUsingNavInput", - "location": "imgui_internal:2710", + "location": "imgui_internal:2828", "namespace": "ImGui", "ov_cimguiname": "igIsActiveIdUsingNavInput", "ret": "bool", @@ -23504,7 +24041,7 @@ "cimguiname": "igIsAnyItemActive", "defaults": {}, "funcname": "IsAnyItemActive", - "location": "imgui:877", + "location": "imgui:879", "namespace": "ImGui", "ov_cimguiname": "igIsAnyItemActive", "ret": "bool", @@ -23521,7 +24058,7 @@ "cimguiname": "igIsAnyItemFocused", "defaults": {}, "funcname": "IsAnyItemFocused", - "location": "imgui:878", + "location": "imgui:880", "namespace": "ImGui", "ov_cimguiname": "igIsAnyItemFocused", "ret": "bool", @@ -23538,7 +24075,7 @@ "cimguiname": "igIsAnyItemHovered", "defaults": {}, "funcname": "IsAnyItemHovered", - "location": "imgui:876", + "location": "imgui:878", "namespace": "ImGui", "ov_cimguiname": "igIsAnyItemHovered", "ret": "bool", @@ -23555,7 +24092,7 @@ "cimguiname": "igIsAnyMouseDown", "defaults": {}, "funcname": "IsAnyMouseDown", - "location": "imgui:936", + "location": "imgui:938", "namespace": "ImGui", "ov_cimguiname": "igIsAnyMouseDown", "ret": "bool", @@ -23565,7 +24102,7 @@ ], "igIsClippedEx": [ { - "args": "(const ImRect bb,ImGuiID id,bool clip_even_when_logged)", + "args": "(const ImRect bb,ImGuiID id)", "argsT": [ { "name": "bb", @@ -23574,22 +24111,18 @@ { "name": "id", "type": "ImGuiID" - }, - { - "name": "clip_even_when_logged", - "type": "bool" } ], - "argsoriginal": "(const ImRect& bb,ImGuiID id,bool clip_even_when_logged)", - "call_args": "(bb,id,clip_even_when_logged)", + "argsoriginal": "(const ImRect& bb,ImGuiID id)", + "call_args": "(bb,id)", "cimguiname": "igIsClippedEx", "defaults": {}, "funcname": "IsClippedEx", - "location": "imgui_internal:2633", + "location": "imgui_internal:2744", "namespace": "ImGui", "ov_cimguiname": "igIsClippedEx", "ret": "bool", - "signature": "(const ImRect,ImGuiID,bool)", + "signature": "(const ImRect,ImGuiID)", "stname": "" } ], @@ -23602,7 +24135,7 @@ "cimguiname": "igIsDragDropPayloadBeingAccepted", "defaults": {}, "funcname": "IsDragDropPayloadBeingAccepted", - "location": "imgui_internal:2770", + "location": "imgui_internal:2890", "namespace": "ImGui", "ov_cimguiname": "igIsDragDropPayloadBeingAccepted", "ret": "bool", @@ -23619,7 +24152,7 @@ "cimguiname": "igIsItemActivated", "defaults": {}, "funcname": "IsItemActivated", - "location": "imgui:872", + "location": "imgui:874", "namespace": "ImGui", "ov_cimguiname": "igIsItemActivated", "ret": "bool", @@ -23636,7 +24169,7 @@ "cimguiname": "igIsItemActive", "defaults": {}, "funcname": "IsItemActive", - "location": "imgui:867", + "location": "imgui:869", "namespace": "ImGui", "ov_cimguiname": "igIsItemActive", "ret": "bool", @@ -23660,7 +24193,7 @@ "mouse_button": "0" }, "funcname": "IsItemClicked", - "location": "imgui:869", + "location": "imgui:871", "namespace": "ImGui", "ov_cimguiname": "igIsItemClicked", "ret": "bool", @@ -23677,7 +24210,7 @@ "cimguiname": "igIsItemDeactivated", "defaults": {}, "funcname": "IsItemDeactivated", - "location": "imgui:873", + "location": "imgui:875", "namespace": "ImGui", "ov_cimguiname": "igIsItemDeactivated", "ret": "bool", @@ -23694,7 +24227,7 @@ "cimguiname": "igIsItemDeactivatedAfterEdit", "defaults": {}, "funcname": "IsItemDeactivatedAfterEdit", - "location": "imgui:874", + "location": "imgui:876", "namespace": "ImGui", "ov_cimguiname": "igIsItemDeactivatedAfterEdit", "ret": "bool", @@ -23711,7 +24244,7 @@ "cimguiname": "igIsItemEdited", "defaults": {}, "funcname": "IsItemEdited", - "location": "imgui:871", + "location": "imgui:873", "namespace": "ImGui", "ov_cimguiname": "igIsItemEdited", "ret": "bool", @@ -23728,7 +24261,7 @@ "cimguiname": "igIsItemFocused", "defaults": {}, "funcname": "IsItemFocused", - "location": "imgui:868", + "location": "imgui:870", "namespace": "ImGui", "ov_cimguiname": "igIsItemFocused", "ret": "bool", @@ -23752,7 +24285,7 @@ "flags": "0" }, "funcname": "IsItemHovered", - "location": "imgui:866", + "location": "imgui:868", "namespace": "ImGui", "ov_cimguiname": "igIsItemHovered", "ret": "bool", @@ -23769,7 +24302,7 @@ "cimguiname": "igIsItemToggledOpen", "defaults": {}, "funcname": "IsItemToggledOpen", - "location": "imgui:875", + "location": "imgui:877", "namespace": "ImGui", "ov_cimguiname": "igIsItemToggledOpen", "ret": "bool", @@ -23786,7 +24319,7 @@ "cimguiname": "igIsItemToggledSelection", "defaults": {}, "funcname": "IsItemToggledSelection", - "location": "imgui_internal:2638", + "location": "imgui_internal:2749", "namespace": "ImGui", "ov_cimguiname": "igIsItemToggledSelection", "ret": "bool", @@ -23803,7 +24336,7 @@ "cimguiname": "igIsItemVisible", "defaults": {}, "funcname": "IsItemVisible", - "location": "imgui:870", + "location": "imgui:872", "namespace": "ImGui", "ov_cimguiname": "igIsItemVisible", "ret": "bool", @@ -23825,7 +24358,7 @@ "cimguiname": "igIsKeyDown", "defaults": {}, "funcname": "IsKeyDown", - "location": "imgui:920", + "location": "imgui:921", "namespace": "ImGui", "ov_cimguiname": "igIsKeyDown", "ret": "bool", @@ -23853,7 +24386,7 @@ "repeat": "true" }, "funcname": "IsKeyPressed", - "location": "imgui:921", + "location": "imgui:922", "namespace": "ImGui", "ov_cimguiname": "igIsKeyPressed", "ret": "bool", @@ -23881,7 +24414,7 @@ "repeat": "true" }, "funcname": "IsKeyPressedMap", - "location": "imgui_internal:2713", + "location": "imgui_internal:2831", "namespace": "ImGui", "ov_cimguiname": "igIsKeyPressedMap", "ret": "bool", @@ -23903,7 +24436,7 @@ "cimguiname": "igIsKeyReleased", "defaults": {}, "funcname": "IsKeyReleased", - "location": "imgui:922", + "location": "imgui:923", "namespace": "ImGui", "ov_cimguiname": "igIsKeyReleased", "ret": "bool", @@ -23931,7 +24464,7 @@ "repeat": "false" }, "funcname": "IsMouseClicked", - "location": "imgui:931", + "location": "imgui:932", "namespace": "ImGui", "ov_cimguiname": "igIsMouseClicked", "ret": "bool", @@ -23953,7 +24486,7 @@ "cimguiname": "igIsMouseDoubleClicked", "defaults": {}, "funcname": "IsMouseDoubleClicked", - "location": "imgui:933", + "location": "imgui:934", "namespace": "ImGui", "ov_cimguiname": "igIsMouseDoubleClicked", "ret": "bool", @@ -23975,7 +24508,7 @@ "cimguiname": "igIsMouseDown", "defaults": {}, "funcname": "IsMouseDown", - "location": "imgui:930", + "location": "imgui:931", "namespace": "ImGui", "ov_cimguiname": "igIsMouseDown", "ret": "bool", @@ -24003,7 +24536,7 @@ "lock_threshold": "-1.0f" }, "funcname": "IsMouseDragPastThreshold", - "location": "imgui_internal:2712", + "location": "imgui_internal:2830", "namespace": "ImGui", "ov_cimguiname": "igIsMouseDragPastThreshold", "ret": "bool", @@ -24031,7 +24564,7 @@ "lock_threshold": "-1.0f" }, "funcname": "IsMouseDragging", - "location": "imgui:939", + "location": "imgui:941", "namespace": "ImGui", "ov_cimguiname": "igIsMouseDragging", "ret": "bool", @@ -24063,7 +24596,7 @@ "clip": "true" }, "funcname": "IsMouseHoveringRect", - "location": "imgui:934", + "location": "imgui:936", "namespace": "ImGui", "ov_cimguiname": "igIsMouseHoveringRect", "ret": "bool", @@ -24087,7 +24620,7 @@ "mouse_pos": "NULL" }, "funcname": "IsMousePosValid", - "location": "imgui:935", + "location": "imgui:937", "namespace": "ImGui", "ov_cimguiname": "igIsMousePosValid", "ret": "bool", @@ -24109,7 +24642,7 @@ "cimguiname": "igIsMouseReleased", "defaults": {}, "funcname": "IsMouseReleased", - "location": "imgui:932", + "location": "imgui:933", "namespace": "ImGui", "ov_cimguiname": "igIsMouseReleased", "ret": "bool", @@ -24131,7 +24664,7 @@ "cimguiname": "igIsNavInputDown", "defaults": {}, "funcname": "IsNavInputDown", - "location": "imgui_internal:2714", + "location": "imgui_internal:2832", "namespace": "ImGui", "ov_cimguiname": "igIsNavInputDown", "ret": "bool", @@ -24157,7 +24690,7 @@ "cimguiname": "igIsNavInputTest", "defaults": {}, "funcname": "IsNavInputTest", - "location": "imgui_internal:2715", + "location": "imgui_internal:2833", "namespace": "ImGui", "ov_cimguiname": "igIsNavInputTest", "ret": "bool", @@ -24185,7 +24718,7 @@ "flags": "0" }, "funcname": "IsPopupOpen", - "location": "imgui:720", + "location": "imgui:721", "namespace": "ImGui", "ov_cimguiname": "igIsPopupOpenStr", "ret": "bool", @@ -24209,7 +24742,7 @@ "cimguiname": "igIsPopupOpen", "defaults": {}, "funcname": "IsPopupOpen", - "location": "imgui_internal:2666", + "location": "imgui_internal:2780", "namespace": "ImGui", "ov_cimguiname": "igIsPopupOpenID", "ret": "bool", @@ -24231,7 +24764,7 @@ "cimguiname": "igIsRectVisible", "defaults": {}, "funcname": "IsRectVisible", - "location": "imgui:891", + "location": "imgui:893", "namespace": "ImGui", "ov_cimguiname": "igIsRectVisibleNil", "ret": "bool", @@ -24255,7 +24788,7 @@ "cimguiname": "igIsRectVisible", "defaults": {}, "funcname": "IsRectVisible", - "location": "imgui:892", + "location": "imgui:894", "namespace": "ImGui", "ov_cimguiname": "igIsRectVisibleVec2", "ret": "bool", @@ -24281,7 +24814,7 @@ "cimguiname": "igIsWindowAbove", "defaults": {}, "funcname": "IsWindowAbove", - "location": "imgui_internal:2552", + "location": "imgui_internal:2652", "namespace": "ImGui", "ov_cimguiname": "igIsWindowAbove", "ret": "bool", @@ -24298,7 +24831,7 @@ "cimguiname": "igIsWindowAppearing", "defaults": {}, "funcname": "IsWindowAppearing", - "location": "imgui:358", + "location": "imgui:359", "namespace": "ImGui", "ov_cimguiname": "igIsWindowAppearing", "ret": "bool", @@ -24308,7 +24841,7 @@ ], "igIsWindowChildOf": [ { - "args": "(ImGuiWindow* window,ImGuiWindow* potential_parent)", + "args": "(ImGuiWindow* window,ImGuiWindow* potential_parent,bool popup_hierarchy,bool dock_hierarchy)", "argsT": [ { "name": "window", @@ -24317,18 +24850,26 @@ { "name": "potential_parent", "type": "ImGuiWindow*" + }, + { + "name": "popup_hierarchy", + "type": "bool" + }, + { + "name": "dock_hierarchy", + "type": "bool" } ], - "argsoriginal": "(ImGuiWindow* window,ImGuiWindow* potential_parent)", - "call_args": "(window,potential_parent)", + "argsoriginal": "(ImGuiWindow* window,ImGuiWindow* potential_parent,bool popup_hierarchy,bool dock_hierarchy)", + "call_args": "(window,potential_parent,popup_hierarchy,dock_hierarchy)", "cimguiname": "igIsWindowChildOf", "defaults": {}, "funcname": "IsWindowChildOf", - "location": "imgui_internal:2551", + "location": "imgui_internal:2650", "namespace": "ImGui", "ov_cimguiname": "igIsWindowChildOf", "ret": "bool", - "signature": "(ImGuiWindow*,ImGuiWindow*)", + "signature": "(ImGuiWindow*,ImGuiWindow*,bool,bool)", "stname": "" } ], @@ -24341,7 +24882,7 @@ "cimguiname": "igIsWindowCollapsed", "defaults": {}, "funcname": "IsWindowCollapsed", - "location": "imgui:359", + "location": "imgui:360", "namespace": "ImGui", "ov_cimguiname": "igIsWindowCollapsed", "ret": "bool", @@ -24358,7 +24899,7 @@ "cimguiname": "igIsWindowDocked", "defaults": {}, "funcname": "IsWindowDocked", - "location": "imgui:821", + "location": "imgui:823", "namespace": "ImGui", "ov_cimguiname": "igIsWindowDocked", "ret": "bool", @@ -24382,7 +24923,7 @@ "flags": "0" }, "funcname": "IsWindowFocused", - "location": "imgui:360", + "location": "imgui:361", "namespace": "ImGui", "ov_cimguiname": "igIsWindowFocused", "ret": "bool", @@ -24406,7 +24947,7 @@ "flags": "0" }, "funcname": "IsWindowHovered", - "location": "imgui:361", + "location": "imgui:362", "namespace": "ImGui", "ov_cimguiname": "igIsWindowHovered", "ret": "bool", @@ -24428,7 +24969,7 @@ "cimguiname": "igIsWindowNavFocusable", "defaults": {}, "funcname": "IsWindowNavFocusable", - "location": "imgui_internal:2553", + "location": "imgui_internal:2653", "namespace": "ImGui", "ov_cimguiname": "igIsWindowNavFocusable", "ret": "bool", @@ -24436,9 +24977,35 @@ "stname": "" } ], + "igIsWindowWithinBeginStackOf": [ + { + "args": "(ImGuiWindow* window,ImGuiWindow* potential_parent)", + "argsT": [ + { + "name": "window", + "type": "ImGuiWindow*" + }, + { + "name": "potential_parent", + "type": "ImGuiWindow*" + } + ], + "argsoriginal": "(ImGuiWindow* window,ImGuiWindow* potential_parent)", + "call_args": "(window,potential_parent)", + "cimguiname": "igIsWindowWithinBeginStackOf", + "defaults": {}, + "funcname": "IsWindowWithinBeginStackOf", + "location": "imgui_internal:2651", + "namespace": "ImGui", + "ov_cimguiname": "igIsWindowWithinBeginStackOf", + "ret": "bool", + "signature": "(ImGuiWindow*,ImGuiWindow*)", + "stname": "" + } + ], "igItemAdd": [ { - "args": "(const ImRect bb,ImGuiID id,const ImRect* nav_bb,ImGuiItemAddFlags flags)", + "args": "(const ImRect bb,ImGuiID id,const ImRect* nav_bb,ImGuiItemFlags extra_flags)", "argsT": [ { "name": "bb", @@ -24453,49 +25020,23 @@ "type": "const ImRect*" }, { - "name": "flags", - "type": "ImGuiItemAddFlags" + "name": "extra_flags", + "type": "ImGuiItemFlags" } ], - "argsoriginal": "(const ImRect& bb,ImGuiID id,const ImRect* nav_bb=((void*)0),ImGuiItemAddFlags flags=0)", - "call_args": "(bb,id,nav_bb,flags)", + "argsoriginal": "(const ImRect& bb,ImGuiID id,const ImRect* nav_bb=((void*)0),ImGuiItemFlags extra_flags=0)", + "call_args": "(bb,id,nav_bb,extra_flags)", "cimguiname": "igItemAdd", "defaults": { - "flags": "0", + "extra_flags": "0", "nav_bb": "NULL" }, "funcname": "ItemAdd", - "location": "imgui_internal:2630", + "location": "imgui_internal:2742", "namespace": "ImGui", "ov_cimguiname": "igItemAdd", "ret": "bool", - "signature": "(const ImRect,ImGuiID,const ImRect*,ImGuiItemAddFlags)", - "stname": "" - } - ], - "igItemFocusable": [ - { - "args": "(ImGuiWindow* window,ImGuiID id)", - "argsT": [ - { - "name": "window", - "type": "ImGuiWindow*" - }, - { - "name": "id", - "type": "ImGuiID" - } - ], - "argsoriginal": "(ImGuiWindow* window,ImGuiID id)", - "call_args": "(window,id)", - "cimguiname": "igItemFocusable", - "defaults": {}, - "funcname": "ItemFocusable", - "location": "imgui_internal:2632", - "namespace": "ImGui", - "ov_cimguiname": "igItemFocusable", - "ret": "void", - "signature": "(ImGuiWindow*,ImGuiID)", + "signature": "(const ImRect,ImGuiID,const ImRect*,ImGuiItemFlags)", "stname": "" } ], @@ -24517,7 +25058,7 @@ "cimguiname": "igItemHoverable", "defaults": {}, "funcname": "ItemHoverable", - "location": "imgui_internal:2631", + "location": "imgui_internal:2743", "namespace": "ImGui", "ov_cimguiname": "igItemHoverable", "ret": "bool", @@ -24545,7 +25086,7 @@ "text_baseline_y": "-1.0f" }, "funcname": "ItemSize", - "location": "imgui_internal:2628", + "location": "imgui_internal:2740", "namespace": "ImGui", "ov_cimguiname": "igItemSizeVec2", "ret": "void", @@ -24571,7 +25112,7 @@ "text_baseline_y": "-1.0f" }, "funcname": "ItemSize", - "location": "imgui_internal:2629", + "location": "imgui_internal:2741", "namespace": "ImGui", "ov_cimguiname": "igItemSizeRect", "ret": "void", @@ -24593,7 +25134,7 @@ "cimguiname": "igKeepAliveID", "defaults": {}, "funcname": "KeepAliveID", - "location": "imgui_internal:2622", + "location": "imgui_internal:2734", "namespace": "ImGui", "ov_cimguiname": "igKeepAliveID", "ret": "void", @@ -24624,7 +25165,7 @@ "defaults": {}, "funcname": "LabelText", "isvararg": "...)", - "location": "imgui:503", + "location": "imgui:504", "namespace": "ImGui", "ov_cimguiname": "igLabelText", "ret": "void", @@ -24654,7 +25195,7 @@ "cimguiname": "igLabelTextV", "defaults": {}, "funcname": "LabelTextV", - "location": "imgui:504", + "location": "imgui:505", "namespace": "ImGui", "ov_cimguiname": "igLabelTextV", "ret": "void", @@ -24694,7 +25235,7 @@ "height_in_items": "-1" }, "funcname": "ListBox", - "location": "imgui:641", + "location": "imgui:642", "namespace": "ImGui", "ov_cimguiname": "igListBoxStr_arr", "ret": "bool", @@ -24738,7 +25279,7 @@ "height_in_items": "-1" }, "funcname": "ListBox", - "location": "imgui:642", + "location": "imgui:643", "namespace": "ImGui", "ov_cimguiname": "igListBoxFnBoolPtr", "ret": "bool", @@ -24760,7 +25301,7 @@ "cimguiname": "igLoadIniSettingsFromDisk", "defaults": {}, "funcname": "LoadIniSettingsFromDisk", - "location": "imgui:955", + "location": "imgui:957", "namespace": "ImGui", "ov_cimguiname": "igLoadIniSettingsFromDisk", "ret": "void", @@ -24788,7 +25329,7 @@ "ini_size": "0" }, "funcname": "LoadIniSettingsFromMemory", - "location": "imgui:956", + "location": "imgui:958", "namespace": "ImGui", "ov_cimguiname": "igLoadIniSettingsFromMemory", "ret": "void", @@ -24814,7 +25355,7 @@ "cimguiname": "igLogBegin", "defaults": {}, "funcname": "LogBegin", - "location": "imgui_internal:2656", + "location": "imgui_internal:2769", "namespace": "ImGui", "ov_cimguiname": "igLogBegin", "ret": "void", @@ -24831,7 +25372,7 @@ "cimguiname": "igLogButtons", "defaults": {}, "funcname": "LogButtons", - "location": "imgui:829", + "location": "imgui:831", "namespace": "ImGui", "ov_cimguiname": "igLogButtons", "ret": "void", @@ -24848,7 +25389,7 @@ "cimguiname": "igLogFinish", "defaults": {}, "funcname": "LogFinish", - "location": "imgui:828", + "location": "imgui:830", "namespace": "ImGui", "ov_cimguiname": "igLogFinish", "ret": "void", @@ -24880,7 +25421,7 @@ "text_end": "NULL" }, "funcname": "LogRenderedText", - "location": "imgui_internal:2658", + "location": "imgui_internal:2771", "namespace": "ImGui", "ov_cimguiname": "igLogRenderedText", "ret": "void", @@ -24906,7 +25447,7 @@ "cimguiname": "igLogSetNextTextDecoration", "defaults": {}, "funcname": "LogSetNextTextDecoration", - "location": "imgui_internal:2659", + "location": "imgui_internal:2772", "namespace": "ImGui", "ov_cimguiname": "igLogSetNextTextDecoration", "ret": "void", @@ -24933,7 +25474,7 @@ "defaults": {}, "funcname": "LogText", "isvararg": "...)", - "location": "imgui:830", + "location": "imgui:832", "manual": true, "namespace": "ImGui", "ov_cimguiname": "igLogText", @@ -24960,7 +25501,7 @@ "cimguiname": "igLogTextV", "defaults": {}, "funcname": "LogTextV", - "location": "imgui:831", + "location": "imgui:833", "namespace": "ImGui", "ov_cimguiname": "igLogTextV", "ret": "void", @@ -24984,7 +25525,7 @@ "auto_open_depth": "-1" }, "funcname": "LogToBuffer", - "location": "imgui_internal:2657", + "location": "imgui_internal:2770", "namespace": "ImGui", "ov_cimguiname": "igLogToBuffer", "ret": "void", @@ -25008,7 +25549,7 @@ "auto_open_depth": "-1" }, "funcname": "LogToClipboard", - "location": "imgui:827", + "location": "imgui:829", "namespace": "ImGui", "ov_cimguiname": "igLogToClipboard", "ret": "void", @@ -25037,7 +25578,7 @@ "filename": "NULL" }, "funcname": "LogToFile", - "location": "imgui:826", + "location": "imgui:828", "namespace": "ImGui", "ov_cimguiname": "igLogToFile", "ret": "void", @@ -25061,7 +25602,7 @@ "auto_open_depth": "-1" }, "funcname": "LogToTTY", - "location": "imgui:825", + "location": "imgui:827", "namespace": "ImGui", "ov_cimguiname": "igLogToTTY", "ret": "void", @@ -25078,7 +25619,7 @@ "cimguiname": "igMarkIniSettingsDirty", "defaults": {}, "funcname": "MarkIniSettingsDirty", - "location": "imgui_internal:2595", + "location": "imgui_internal:2700", "namespace": "ImGui", "ov_cimguiname": "igMarkIniSettingsDirtyNil", "ret": "void", @@ -25098,7 +25639,7 @@ "cimguiname": "igMarkIniSettingsDirty", "defaults": {}, "funcname": "MarkIniSettingsDirty", - "location": "imgui_internal:2596", + "location": "imgui_internal:2701", "namespace": "ImGui", "ov_cimguiname": "igMarkIniSettingsDirtyWindowPtr", "ret": "void", @@ -25120,7 +25661,7 @@ "cimguiname": "igMarkItemEdited", "defaults": {}, "funcname": "MarkItemEdited", - "location": "imgui_internal:2623", + "location": "imgui_internal:2735", "namespace": "ImGui", "ov_cimguiname": "igMarkItemEdited", "ret": "void", @@ -25142,7 +25683,7 @@ "cimguiname": "igMemAlloc", "defaults": {}, "funcname": "MemAlloc", - "location": "imgui:970", + "location": "imgui:972", "namespace": "ImGui", "ov_cimguiname": "igMemAlloc", "ret": "void*", @@ -25164,7 +25705,7 @@ "cimguiname": "igMemFree", "defaults": {}, "funcname": "MemFree", - "location": "imgui:971", + "location": "imgui:973", "namespace": "ImGui", "ov_cimguiname": "igMemFree", "ret": "void", @@ -25202,7 +25743,7 @@ "shortcut": "NULL" }, "funcname": "MenuItem", - "location": "imgui:669", + "location": "imgui:670", "namespace": "ImGui", "ov_cimguiname": "igMenuItemBool", "ret": "bool", @@ -25236,7 +25777,7 @@ "enabled": "true" }, "funcname": "MenuItem", - "location": "imgui:670", + "location": "imgui:671", "namespace": "ImGui", "ov_cimguiname": "igMenuItemBoolPtr", "ret": "bool", @@ -25278,7 +25819,7 @@ "shortcut": "NULL" }, "funcname": "MenuItemEx", - "location": "imgui_internal:2677", + "location": "imgui_internal:2792", "namespace": "ImGui", "ov_cimguiname": "igMenuItemEx", "ret": "bool", @@ -25286,6 +25827,23 @@ "stname": "" } ], + "igNavInitRequestApplyResult": [ + { + "args": "()", + "argsT": [], + "argsoriginal": "()", + "call_args": "()", + "cimguiname": "igNavInitRequestApplyResult", + "defaults": {}, + "funcname": "NavInitRequestApplyResult", + "location": "imgui_internal:2801", + "namespace": "ImGui", + "ov_cimguiname": "igNavInitRequestApplyResult", + "ret": "void", + "signature": "()", + "stname": "" + } + ], "igNavInitWindow": [ { "args": "(ImGuiWindow* window,bool force_reinit)", @@ -25304,7 +25862,7 @@ "cimguiname": "igNavInitWindow", "defaults": {}, "funcname": "NavInitWindow", - "location": "imgui_internal:2685", + "location": "imgui_internal:2800", "namespace": "ImGui", "ov_cimguiname": "igNavInitWindow", "ret": "void", @@ -25321,7 +25879,7 @@ "cimguiname": "igNavMoveRequestApplyResult", "defaults": {}, "funcname": "NavMoveRequestApplyResult", - "location": "imgui_internal:2689", + "location": "imgui_internal:2807", "namespace": "ImGui", "ov_cimguiname": "igNavMoveRequestApplyResult", "ret": "void", @@ -25338,7 +25896,7 @@ "cimguiname": "igNavMoveRequestButNoResultYet", "defaults": {}, "funcname": "NavMoveRequestButNoResultYet", - "location": "imgui_internal:2686", + "location": "imgui_internal:2802", "namespace": "ImGui", "ov_cimguiname": "igNavMoveRequestButNoResultYet", "ret": "bool", @@ -25355,7 +25913,7 @@ "cimguiname": "igNavMoveRequestCancel", "defaults": {}, "funcname": "NavMoveRequestCancel", - "location": "imgui_internal:2688", + "location": "imgui_internal:2806", "namespace": "ImGui", "ov_cimguiname": "igNavMoveRequestCancel", "ret": "void", @@ -25365,7 +25923,7 @@ ], "igNavMoveRequestForward": [ { - "args": "(ImGuiDir move_dir,ImGuiDir clip_dir,ImGuiNavMoveFlags move_flags)", + "args": "(ImGuiDir move_dir,ImGuiDir clip_dir,ImGuiNavMoveFlags move_flags,ImGuiScrollFlags scroll_flags)", "argsT": [ { "name": "move_dir", @@ -25378,18 +25936,78 @@ { "name": "move_flags", "type": "ImGuiNavMoveFlags" + }, + { + "name": "scroll_flags", + "type": "ImGuiScrollFlags" } ], - "argsoriginal": "(ImGuiDir move_dir,ImGuiDir clip_dir,ImGuiNavMoveFlags move_flags)", - "call_args": "(move_dir,clip_dir,move_flags)", + "argsoriginal": "(ImGuiDir move_dir,ImGuiDir clip_dir,ImGuiNavMoveFlags move_flags,ImGuiScrollFlags scroll_flags)", + "call_args": "(move_dir,clip_dir,move_flags,scroll_flags)", "cimguiname": "igNavMoveRequestForward", "defaults": {}, "funcname": "NavMoveRequestForward", - "location": "imgui_internal:2687", + "location": "imgui_internal:2804", "namespace": "ImGui", "ov_cimguiname": "igNavMoveRequestForward", "ret": "void", - "signature": "(ImGuiDir,ImGuiDir,ImGuiNavMoveFlags)", + "signature": "(ImGuiDir,ImGuiDir,ImGuiNavMoveFlags,ImGuiScrollFlags)", + "stname": "" + } + ], + "igNavMoveRequestResolveWithLastItem": [ + { + "args": "(ImGuiNavItemData* result)", + "argsT": [ + { + "name": "result", + "type": "ImGuiNavItemData*" + } + ], + "argsoriginal": "(ImGuiNavItemData* result)", + "call_args": "(result)", + "cimguiname": "igNavMoveRequestResolveWithLastItem", + "defaults": {}, + "funcname": "NavMoveRequestResolveWithLastItem", + "location": "imgui_internal:2805", + "namespace": "ImGui", + "ov_cimguiname": "igNavMoveRequestResolveWithLastItem", + "ret": "void", + "signature": "(ImGuiNavItemData*)", + "stname": "" + } + ], + "igNavMoveRequestSubmit": [ + { + "args": "(ImGuiDir move_dir,ImGuiDir clip_dir,ImGuiNavMoveFlags move_flags,ImGuiScrollFlags scroll_flags)", + "argsT": [ + { + "name": "move_dir", + "type": "ImGuiDir" + }, + { + "name": "clip_dir", + "type": "ImGuiDir" + }, + { + "name": "move_flags", + "type": "ImGuiNavMoveFlags" + }, + { + "name": "scroll_flags", + "type": "ImGuiScrollFlags" + } + ], + "argsoriginal": "(ImGuiDir move_dir,ImGuiDir clip_dir,ImGuiNavMoveFlags move_flags,ImGuiScrollFlags scroll_flags)", + "call_args": "(move_dir,clip_dir,move_flags,scroll_flags)", + "cimguiname": "igNavMoveRequestSubmit", + "defaults": {}, + "funcname": "NavMoveRequestSubmit", + "location": "imgui_internal:2803", + "namespace": "ImGui", + "ov_cimguiname": "igNavMoveRequestSubmit", + "ret": "void", + "signature": "(ImGuiDir,ImGuiDir,ImGuiNavMoveFlags,ImGuiScrollFlags)", "stname": "" } ], @@ -25411,7 +26029,7 @@ "cimguiname": "igNavMoveRequestTryWrapping", "defaults": {}, "funcname": "NavMoveRequestTryWrapping", - "location": "imgui_internal:2690", + "location": "imgui_internal:2808", "namespace": "ImGui", "ov_cimguiname": "igNavMoveRequestTryWrapping", "ret": "void", @@ -25445,7 +26063,7 @@ "cimguiname": "igNewLine", "defaults": {}, "funcname": "NewLine", - "location": "imgui:451", + "location": "imgui:452", "namespace": "ImGui", "ov_cimguiname": "igNewLine", "ret": "void", @@ -25462,7 +26080,7 @@ "cimguiname": "igNextColumn", "defaults": {}, "funcname": "NextColumn", - "location": "imgui:787", + "location": "imgui:788", "namespace": "ImGui", "ov_cimguiname": "igNextColumn", "ret": "void", @@ -25490,7 +26108,7 @@ "popup_flags": "0" }, "funcname": "OpenPopup", - "location": "imgui:702", + "location": "imgui:703", "namespace": "ImGui", "ov_cimguiname": "igOpenPopupStr", "ret": "void", @@ -25516,7 +26134,7 @@ "popup_flags": "0" }, "funcname": "OpenPopup", - "location": "imgui:703", + "location": "imgui:704", "namespace": "ImGui", "ov_cimguiname": "igOpenPopupID", "ret": "void", @@ -25544,7 +26162,7 @@ "popup_flags": "ImGuiPopupFlags_None" }, "funcname": "OpenPopupEx", - "location": "imgui_internal:2663", + "location": "imgui_internal:2776", "namespace": "ImGui", "ov_cimguiname": "igOpenPopupEx", "ret": "void", @@ -25573,7 +26191,7 @@ "str_id": "NULL" }, "funcname": "OpenPopupOnItemClick", - "location": "imgui:704", + "location": "imgui:705", "namespace": "ImGui", "ov_cimguiname": "igOpenPopupOnItemClick", "ret": "void", @@ -25633,7 +26251,7 @@ "cimguiname": "igPlotEx", "defaults": {}, "funcname": "PlotEx", - "location": "imgui_internal:2937", + "location": "imgui_internal:3058", "namespace": "ImGui", "ov_cimguiname": "igPlotEx", "ret": "int", @@ -25694,7 +26312,7 @@ "values_offset": "0" }, "funcname": "PlotHistogram", - "location": "imgui:648", + "location": "imgui:649", "namespace": "ImGui", "ov_cimguiname": "igPlotHistogramFloatPtr", "ret": "void", @@ -25754,7 +26372,7 @@ "values_offset": "0" }, "funcname": "PlotHistogram", - "location": "imgui:649", + "location": "imgui:650", "namespace": "ImGui", "ov_cimguiname": "igPlotHistogramFnFloatPtr", "ret": "void", @@ -25815,7 +26433,7 @@ "values_offset": "0" }, "funcname": "PlotLines", - "location": "imgui:646", + "location": "imgui:647", "namespace": "ImGui", "ov_cimguiname": "igPlotLinesFloatPtr", "ret": "void", @@ -25875,7 +26493,7 @@ "values_offset": "0" }, "funcname": "PlotLines", - "location": "imgui:647", + "location": "imgui:648", "namespace": "ImGui", "ov_cimguiname": "igPlotLinesFnFloatPtr", "ret": "void", @@ -25892,7 +26510,7 @@ "cimguiname": "igPopAllowKeyboardFocus", "defaults": {}, "funcname": "PopAllowKeyboardFocus", - "location": "imgui:420", + "location": "imgui:421", "namespace": "ImGui", "ov_cimguiname": "igPopAllowKeyboardFocus", "ret": "void", @@ -25909,7 +26527,7 @@ "cimguiname": "igPopButtonRepeat", "defaults": {}, "funcname": "PopButtonRepeat", - "location": "imgui:422", + "location": "imgui:423", "namespace": "ImGui", "ov_cimguiname": "igPopButtonRepeat", "ret": "void", @@ -25926,7 +26544,7 @@ "cimguiname": "igPopClipRect", "defaults": {}, "funcname": "PopClipRect", - "location": "imgui:856", + "location": "imgui:858", "namespace": "ImGui", "ov_cimguiname": "igPopClipRect", "ret": "void", @@ -25943,7 +26561,7 @@ "cimguiname": "igPopColumnsBackground", "defaults": {}, "funcname": "PopColumnsBackground", - "location": "imgui_internal:2778", + "location": "imgui_internal:2898", "namespace": "ImGui", "ov_cimguiname": "igPopColumnsBackground", "ret": "void", @@ -25960,7 +26578,7 @@ "cimguiname": "igPopFocusScope", "defaults": {}, "funcname": "PopFocusScope", - "location": "imgui_internal:2701", + "location": "imgui_internal:2819", "namespace": "ImGui", "ov_cimguiname": "igPopFocusScope", "ret": "void", @@ -25977,7 +26595,7 @@ "cimguiname": "igPopFont", "defaults": {}, "funcname": "PopFont", - "location": "imgui:412", + "location": "imgui:413", "namespace": "ImGui", "ov_cimguiname": "igPopFont", "ret": "void", @@ -25994,7 +26612,7 @@ "cimguiname": "igPopID", "defaults": {}, "funcname": "PopID", - "location": "imgui:488", + "location": "imgui:489", "namespace": "ImGui", "ov_cimguiname": "igPopID", "ret": "void", @@ -26011,7 +26629,7 @@ "cimguiname": "igPopItemFlag", "defaults": {}, "funcname": "PopItemFlag", - "location": "imgui_internal:2644", + "location": "imgui_internal:2755", "namespace": "ImGui", "ov_cimguiname": "igPopItemFlag", "ret": "void", @@ -26028,7 +26646,7 @@ "cimguiname": "igPopItemWidth", "defaults": {}, "funcname": "PopItemWidth", - "location": "imgui:426", + "location": "imgui:427", "namespace": "ImGui", "ov_cimguiname": "igPopItemWidth", "ret": "void", @@ -26052,7 +26670,7 @@ "count": "1" }, "funcname": "PopStyleColor", - "location": "imgui:415", + "location": "imgui:416", "namespace": "ImGui", "ov_cimguiname": "igPopStyleColor", "ret": "void", @@ -26076,7 +26694,7 @@ "count": "1" }, "funcname": "PopStyleVar", - "location": "imgui:418", + "location": "imgui:419", "namespace": "ImGui", "ov_cimguiname": "igPopStyleVar", "ret": "void", @@ -26093,7 +26711,7 @@ "cimguiname": "igPopTextWrapPos", "defaults": {}, "funcname": "PopTextWrapPos", - "location": "imgui:430", + "location": "imgui:431", "namespace": "ImGui", "ov_cimguiname": "igPopTextWrapPos", "ret": "void", @@ -26126,7 +26744,7 @@ "size_arg": "ImVec2(-FLT_MIN,0)" }, "funcname": "ProgressBar", - "location": "imgui:522", + "location": "imgui:523", "namespace": "ImGui", "ov_cimguiname": "igProgressBar", "ret": "void", @@ -26148,7 +26766,7 @@ "cimguiname": "igPushAllowKeyboardFocus", "defaults": {}, "funcname": "PushAllowKeyboardFocus", - "location": "imgui:419", + "location": "imgui:420", "namespace": "ImGui", "ov_cimguiname": "igPushAllowKeyboardFocus", "ret": "void", @@ -26170,7 +26788,7 @@ "cimguiname": "igPushButtonRepeat", "defaults": {}, "funcname": "PushButtonRepeat", - "location": "imgui:421", + "location": "imgui:422", "namespace": "ImGui", "ov_cimguiname": "igPushButtonRepeat", "ret": "void", @@ -26200,7 +26818,7 @@ "cimguiname": "igPushClipRect", "defaults": {}, "funcname": "PushClipRect", - "location": "imgui:855", + "location": "imgui:857", "namespace": "ImGui", "ov_cimguiname": "igPushClipRect", "ret": "void", @@ -26222,7 +26840,7 @@ "cimguiname": "igPushColumnClipRect", "defaults": {}, "funcname": "PushColumnClipRect", - "location": "imgui_internal:2776", + "location": "imgui_internal:2896", "namespace": "ImGui", "ov_cimguiname": "igPushColumnClipRect", "ret": "void", @@ -26239,7 +26857,7 @@ "cimguiname": "igPushColumnsBackground", "defaults": {}, "funcname": "PushColumnsBackground", - "location": "imgui_internal:2777", + "location": "imgui_internal:2897", "namespace": "ImGui", "ov_cimguiname": "igPushColumnsBackground", "ret": "void", @@ -26261,7 +26879,7 @@ "cimguiname": "igPushFocusScope", "defaults": {}, "funcname": "PushFocusScope", - "location": "imgui_internal:2700", + "location": "imgui_internal:2818", "namespace": "ImGui", "ov_cimguiname": "igPushFocusScope", "ret": "void", @@ -26283,7 +26901,7 @@ "cimguiname": "igPushFont", "defaults": {}, "funcname": "PushFont", - "location": "imgui:411", + "location": "imgui:412", "namespace": "ImGui", "ov_cimguiname": "igPushFont", "ret": "void", @@ -26305,7 +26923,7 @@ "cimguiname": "igPushID", "defaults": {}, "funcname": "PushID", - "location": "imgui:484", + "location": "imgui:485", "namespace": "ImGui", "ov_cimguiname": "igPushIDStr", "ret": "void", @@ -26329,7 +26947,7 @@ "cimguiname": "igPushID", "defaults": {}, "funcname": "PushID", - "location": "imgui:485", + "location": "imgui:486", "namespace": "ImGui", "ov_cimguiname": "igPushIDStrStr", "ret": "void", @@ -26349,7 +26967,7 @@ "cimguiname": "igPushID", "defaults": {}, "funcname": "PushID", - "location": "imgui:486", + "location": "imgui:487", "namespace": "ImGui", "ov_cimguiname": "igPushIDPtr", "ret": "void", @@ -26369,7 +26987,7 @@ "cimguiname": "igPushID", "defaults": {}, "funcname": "PushID", - "location": "imgui:487", + "location": "imgui:488", "namespace": "ImGui", "ov_cimguiname": "igPushIDInt", "ret": "void", @@ -26395,7 +27013,7 @@ "cimguiname": "igPushItemFlag", "defaults": {}, "funcname": "PushItemFlag", - "location": "imgui_internal:2643", + "location": "imgui_internal:2754", "namespace": "ImGui", "ov_cimguiname": "igPushItemFlag", "ret": "void", @@ -26417,7 +27035,7 @@ "cimguiname": "igPushItemWidth", "defaults": {}, "funcname": "PushItemWidth", - "location": "imgui:425", + "location": "imgui:426", "namespace": "ImGui", "ov_cimguiname": "igPushItemWidth", "ret": "void", @@ -26443,7 +27061,7 @@ "cimguiname": "igPushMultiItemsWidths", "defaults": {}, "funcname": "PushMultiItemsWidths", - "location": "imgui_internal:2637", + "location": "imgui_internal:2748", "namespace": "ImGui", "ov_cimguiname": "igPushMultiItemsWidths", "ret": "void", @@ -26465,7 +27083,7 @@ "cimguiname": "igPushOverrideID", "defaults": {}, "funcname": "PushOverrideID", - "location": "imgui_internal:2624", + "location": "imgui_internal:2736", "namespace": "ImGui", "ov_cimguiname": "igPushOverrideID", "ret": "void", @@ -26491,7 +27109,7 @@ "cimguiname": "igPushStyleColor", "defaults": {}, "funcname": "PushStyleColor", - "location": "imgui:413", + "location": "imgui:414", "namespace": "ImGui", "ov_cimguiname": "igPushStyleColorU32", "ret": "void", @@ -26515,7 +27133,7 @@ "cimguiname": "igPushStyleColor", "defaults": {}, "funcname": "PushStyleColor", - "location": "imgui:414", + "location": "imgui:415", "namespace": "ImGui", "ov_cimguiname": "igPushStyleColorVec4", "ret": "void", @@ -26541,7 +27159,7 @@ "cimguiname": "igPushStyleVar", "defaults": {}, "funcname": "PushStyleVar", - "location": "imgui:416", + "location": "imgui:417", "namespace": "ImGui", "ov_cimguiname": "igPushStyleVarFloat", "ret": "void", @@ -26565,7 +27183,7 @@ "cimguiname": "igPushStyleVar", "defaults": {}, "funcname": "PushStyleVar", - "location": "imgui:417", + "location": "imgui:418", "namespace": "ImGui", "ov_cimguiname": "igPushStyleVarVec2", "ret": "void", @@ -26589,7 +27207,7 @@ "wrap_local_pos_x": "0.0f" }, "funcname": "PushTextWrapPos", - "location": "imgui:429", + "location": "imgui:430", "namespace": "ImGui", "ov_cimguiname": "igPushTextWrapPos", "ret": "void", @@ -26615,7 +27233,7 @@ "cimguiname": "igRadioButton", "defaults": {}, "funcname": "RadioButton", - "location": "imgui:520", + "location": "imgui:521", "namespace": "ImGui", "ov_cimguiname": "igRadioButtonBool", "ret": "bool", @@ -26643,7 +27261,7 @@ "cimguiname": "igRadioButton", "defaults": {}, "funcname": "RadioButton", - "location": "imgui:521", + "location": "imgui:522", "namespace": "ImGui", "ov_cimguiname": "igRadioButtonIntPtr", "ret": "bool", @@ -26669,7 +27287,7 @@ "cimguiname": "igRemoveContextHook", "defaults": {}, "funcname": "RemoveContextHook", - "location": "imgui_internal:2584", + "location": "imgui_internal:2689", "namespace": "ImGui", "ov_cimguiname": "igRemoveContextHook", "ret": "void", @@ -26726,7 +27344,7 @@ "scale": "1.0f" }, "funcname": "RenderArrow", - "location": "imgui_internal:2865", + "location": "imgui_internal:2985", "namespace": "ImGui", "ov_cimguiname": "igRenderArrow", "ret": "void", @@ -26760,7 +27378,7 @@ "cimguiname": "igRenderArrowDockMenu", "defaults": {}, "funcname": "RenderArrowDockMenu", - "location": "imgui_internal:2870", + "location": "imgui_internal:2990", "namespace": "ImGui", "ov_cimguiname": "igRenderArrowDockMenu", "ret": "void", @@ -26798,7 +27416,7 @@ "cimguiname": "igRenderArrowPointingAt", "defaults": {}, "funcname": "RenderArrowPointingAt", - "location": "imgui_internal:2869", + "location": "imgui_internal:2989", "namespace": "ImGui", "ov_cimguiname": "igRenderArrowPointingAt", "ret": "void", @@ -26828,7 +27446,7 @@ "cimguiname": "igRenderBullet", "defaults": {}, "funcname": "RenderBullet", - "location": "imgui_internal:2866", + "location": "imgui_internal:2986", "namespace": "ImGui", "ov_cimguiname": "igRenderBullet", "ret": "void", @@ -26862,7 +27480,7 @@ "cimguiname": "igRenderCheckMark", "defaults": {}, "funcname": "RenderCheckMark", - "location": "imgui_internal:2867", + "location": "imgui_internal:2987", "namespace": "ImGui", "ov_cimguiname": "igRenderCheckMark", "ret": "void", @@ -26915,7 +27533,7 @@ "rounding": "0.0f" }, "funcname": "RenderColorRectWithAlphaCheckerboard", - "location": "imgui_internal:2860", + "location": "imgui_internal:2980", "namespace": "ImGui", "ov_cimguiname": "igRenderColorRectWithAlphaCheckerboard", "ret": "void", @@ -26956,7 +27574,7 @@ "rounding": "0.0f" }, "funcname": "RenderFrame", - "location": "imgui_internal:2858", + "location": "imgui_internal:2978", "namespace": "ImGui", "ov_cimguiname": "igRenderFrame", "ret": "void", @@ -26988,7 +27606,7 @@ "rounding": "0.0f" }, "funcname": "RenderFrameBorder", - "location": "imgui_internal:2859", + "location": "imgui_internal:2979", "namespace": "ImGui", "ov_cimguiname": "igRenderFrameBorder", "ret": "void", @@ -27034,7 +27652,7 @@ "cimguiname": "igRenderMouseCursor", "defaults": {}, "funcname": "RenderMouseCursor", - "location": "imgui_internal:2868", + "location": "imgui_internal:2988", "namespace": "ImGui", "ov_cimguiname": "igRenderMouseCursor", "ret": "void", @@ -27066,7 +27684,7 @@ "flags": "ImGuiNavHighlightFlags_TypeDefault" }, "funcname": "RenderNavHighlight", - "location": "imgui_internal:2861", + "location": "imgui_internal:2981", "namespace": "ImGui", "ov_cimguiname": "igRenderNavHighlight", "ret": "void", @@ -27095,7 +27713,7 @@ "renderer_render_arg": "NULL" }, "funcname": "RenderPlatformWindowsDefault", - "location": "imgui:978", + "location": "imgui:980", "namespace": "ImGui", "ov_cimguiname": "igRenderPlatformWindowsDefault", "ret": "void", @@ -27137,7 +27755,7 @@ "cimguiname": "igRenderRectFilledRangeH", "defaults": {}, "funcname": "RenderRectFilledRangeH", - "location": "imgui_internal:2871", + "location": "imgui_internal:2991", "namespace": "ImGui", "ov_cimguiname": "igRenderRectFilledRangeH", "ret": "void", @@ -27175,7 +27793,7 @@ "cimguiname": "igRenderRectFilledWithHole", "defaults": {}, "funcname": "RenderRectFilledWithHole", - "location": "imgui_internal:2872", + "location": "imgui_internal:2992", "namespace": "ImGui", "ov_cimguiname": "igRenderRectFilledWithHole", "ret": "void", @@ -27212,7 +27830,7 @@ "text_end": "NULL" }, "funcname": "RenderText", - "location": "imgui_internal:2853", + "location": "imgui_internal:2973", "namespace": "ImGui", "ov_cimguiname": "igRenderText", "ret": "void", @@ -27261,7 +27879,7 @@ "clip_rect": "NULL" }, "funcname": "RenderTextClipped", - "location": "imgui_internal:2855", + "location": "imgui_internal:2975", "namespace": "ImGui", "ov_cimguiname": "igRenderTextClipped", "ret": "void", @@ -27314,7 +27932,7 @@ "clip_rect": "NULL" }, "funcname": "RenderTextClippedEx", - "location": "imgui_internal:2856", + "location": "imgui_internal:2976", "namespace": "ImGui", "ov_cimguiname": "igRenderTextClippedEx", "ret": "void", @@ -27364,7 +27982,7 @@ "cimguiname": "igRenderTextEllipsis", "defaults": {}, "funcname": "RenderTextEllipsis", - "location": "imgui_internal:2857", + "location": "imgui_internal:2977", "namespace": "ImGui", "ov_cimguiname": "igRenderTextEllipsis", "ret": "void", @@ -27398,7 +28016,7 @@ "cimguiname": "igRenderTextWrapped", "defaults": {}, "funcname": "RenderTextWrapped", - "location": "imgui_internal:2854", + "location": "imgui_internal:2974", "namespace": "ImGui", "ov_cimguiname": "igRenderTextWrapped", "ret": "void", @@ -27422,7 +28040,7 @@ "button": "0" }, "funcname": "ResetMouseDragDelta", - "location": "imgui:941", + "location": "imgui:943", "namespace": "ImGui", "ov_cimguiname": "igResetMouseDragDelta", "ret": "void", @@ -27451,7 +28069,7 @@ "spacing": "-1.0f" }, "funcname": "SameLine", - "location": "imgui:450", + "location": "imgui:451", "namespace": "ImGui", "ov_cimguiname": "igSameLine", "ret": "void", @@ -27473,7 +28091,7 @@ "cimguiname": "igSaveIniSettingsToDisk", "defaults": {}, "funcname": "SaveIniSettingsToDisk", - "location": "imgui:957", + "location": "imgui:959", "namespace": "ImGui", "ov_cimguiname": "igSaveIniSettingsToDisk", "ret": "void", @@ -27497,7 +28115,7 @@ "out_ini_size": "NULL" }, "funcname": "SaveIniSettingsToMemory", - "location": "imgui:958", + "location": "imgui:960", "namespace": "ImGui", "ov_cimguiname": "igSaveIniSettingsToMemory", "ret": "const char*", @@ -27523,7 +28141,7 @@ "cimguiname": "igScaleWindowsInViewport", "defaults": {}, "funcname": "ScaleWindowsInViewport", - "location": "imgui_internal:2589", + "location": "imgui_internal:2694", "namespace": "ImGui", "ov_cimguiname": "igScaleWindowsInViewport", "ret": "void", @@ -27533,35 +28151,123 @@ ], "igScrollToBringRectIntoView": [ { - "args": "(ImVec2 *pOut,ImGuiWindow* window,const ImRect item_rect)", + "args": "(ImGuiWindow* window,const ImRect rect)", "argsT": [ - { - "name": "pOut", - "type": "ImVec2*" - }, { "name": "window", "type": "ImGuiWindow*" }, { - "name": "item_rect", + "name": "rect", "type": "const ImRect" } ], - "argsoriginal": "(ImGuiWindow* window,const ImRect& item_rect)", - "call_args": "(window,item_rect)", + "argsoriginal": "(ImGuiWindow* window,const ImRect& rect)", + "call_args": "(window,rect)", "cimguiname": "igScrollToBringRectIntoView", "defaults": {}, "funcname": "ScrollToBringRectIntoView", - "location": "imgui_internal:2609", + "location": "imgui_internal:2720", "namespace": "ImGui", - "nonUDT": 1, "ov_cimguiname": "igScrollToBringRectIntoView", "ret": "void", "signature": "(ImGuiWindow*,const ImRect)", "stname": "" } ], + "igScrollToItem": [ + { + "args": "(ImGuiScrollFlags flags)", + "argsT": [ + { + "name": "flags", + "type": "ImGuiScrollFlags" + } + ], + "argsoriginal": "(ImGuiScrollFlags flags=0)", + "call_args": "(flags)", + "cimguiname": "igScrollToItem", + "defaults": { + "flags": "0" + }, + "funcname": "ScrollToItem", + "location": "imgui_internal:2716", + "namespace": "ImGui", + "ov_cimguiname": "igScrollToItem", + "ret": "void", + "signature": "(ImGuiScrollFlags)", + "stname": "" + } + ], + "igScrollToRect": [ + { + "args": "(ImGuiWindow* window,const ImRect rect,ImGuiScrollFlags flags)", + "argsT": [ + { + "name": "window", + "type": "ImGuiWindow*" + }, + { + "name": "rect", + "type": "const ImRect" + }, + { + "name": "flags", + "type": "ImGuiScrollFlags" + } + ], + "argsoriginal": "(ImGuiWindow* window,const ImRect& rect,ImGuiScrollFlags flags=0)", + "call_args": "(window,rect,flags)", + "cimguiname": "igScrollToRect", + "defaults": { + "flags": "0" + }, + "funcname": "ScrollToRect", + "location": "imgui_internal:2717", + "namespace": "ImGui", + "ov_cimguiname": "igScrollToRect", + "ret": "void", + "signature": "(ImGuiWindow*,const ImRect,ImGuiScrollFlags)", + "stname": "" + } + ], + "igScrollToRectEx": [ + { + "args": "(ImVec2 *pOut,ImGuiWindow* window,const ImRect rect,ImGuiScrollFlags flags)", + "argsT": [ + { + "name": "pOut", + "type": "ImVec2*" + }, + { + "name": "window", + "type": "ImGuiWindow*" + }, + { + "name": "rect", + "type": "const ImRect" + }, + { + "name": "flags", + "type": "ImGuiScrollFlags" + } + ], + "argsoriginal": "(ImGuiWindow* window,const ImRect& rect,ImGuiScrollFlags flags=0)", + "call_args": "(window,rect,flags)", + "cimguiname": "igScrollToRectEx", + "defaults": { + "flags": "0" + }, + "funcname": "ScrollToRectEx", + "location": "imgui_internal:2718", + "namespace": "ImGui", + "nonUDT": 1, + "ov_cimguiname": "igScrollToRectEx", + "ret": "void", + "signature": "(ImGuiWindow*,const ImRect,ImGuiScrollFlags)", + "stname": "" + } + ], "igScrollbar": [ { "args": "(ImGuiAxis axis)", @@ -27576,7 +28282,7 @@ "cimguiname": "igScrollbar", "defaults": {}, "funcname": "Scrollbar", - "location": "imgui_internal:2886", + "location": "imgui_internal:3007", "namespace": "ImGui", "ov_cimguiname": "igScrollbar", "ret": "void", @@ -27586,7 +28292,7 @@ ], "igScrollbarEx": [ { - "args": "(const ImRect bb,ImGuiID id,ImGuiAxis axis,float* p_scroll_v,float avail_v,float contents_v,ImDrawFlags flags)", + "args": "(const ImRect bb,ImGuiID id,ImGuiAxis axis,ImS64* p_scroll_v,ImS64 avail_v,ImS64 contents_v,ImDrawFlags flags)", "argsT": [ { "name": "bb", @@ -27602,31 +28308,31 @@ }, { "name": "p_scroll_v", - "type": "float*" + "type": "ImS64*" }, { "name": "avail_v", - "type": "float" + "type": "ImS64" }, { "name": "contents_v", - "type": "float" + "type": "ImS64" }, { "name": "flags", "type": "ImDrawFlags" } ], - "argsoriginal": "(const ImRect& bb,ImGuiID id,ImGuiAxis axis,float* p_scroll_v,float avail_v,float contents_v,ImDrawFlags flags)", + "argsoriginal": "(const ImRect& bb,ImGuiID id,ImGuiAxis axis,ImS64* p_scroll_v,ImS64 avail_v,ImS64 contents_v,ImDrawFlags flags)", "call_args": "(bb,id,axis,p_scroll_v,avail_v,contents_v,flags)", "cimguiname": "igScrollbarEx", "defaults": {}, "funcname": "ScrollbarEx", - "location": "imgui_internal:2887", + "location": "imgui_internal:3008", "namespace": "ImGui", "ov_cimguiname": "igScrollbarEx", "ret": "bool", - "signature": "(const ImRect,ImGuiID,ImGuiAxis,float*,float,float,ImDrawFlags)", + "signature": "(const ImRect,ImGuiID,ImGuiAxis,ImS64*,ImS64,ImS64,ImDrawFlags)", "stname": "" } ], @@ -27660,7 +28366,7 @@ "size": "ImVec2(0,0)" }, "funcname": "Selectable", - "location": "imgui:630", + "location": "imgui:631", "namespace": "ImGui", "ov_cimguiname": "igSelectableBool", "ret": "bool", @@ -27695,7 +28401,7 @@ "size": "ImVec2(0,0)" }, "funcname": "Selectable", - "location": "imgui:631", + "location": "imgui:632", "namespace": "ImGui", "ov_cimguiname": "igSelectableBoolPtr", "ret": "bool", @@ -27712,7 +28418,7 @@ "cimguiname": "igSeparator", "defaults": {}, "funcname": "Separator", - "location": "imgui:449", + "location": "imgui:450", "namespace": "ImGui", "ov_cimguiname": "igSeparator", "ret": "void", @@ -27734,7 +28440,7 @@ "cimguiname": "igSeparatorEx", "defaults": {}, "funcname": "SeparatorEx", - "location": "imgui_internal:2893", + "location": "imgui_internal:3014", "namespace": "ImGui", "ov_cimguiname": "igSeparatorEx", "ret": "void", @@ -27760,7 +28466,7 @@ "cimguiname": "igSetActiveID", "defaults": {}, "funcname": "SetActiveID", - "location": "imgui_internal:2617", + "location": "imgui_internal:2729", "namespace": "ImGui", "ov_cimguiname": "igSetActiveID", "ret": "void", @@ -27777,7 +28483,7 @@ "cimguiname": "igSetActiveIdUsingNavAndKeys", "defaults": {}, "funcname": "SetActiveIdUsingNavAndKeys", - "location": "imgui_internal:2708", + "location": "imgui_internal:2826", "namespace": "ImGui", "ov_cimguiname": "igSetActiveIdUsingNavAndKeys", "ret": "void", @@ -27809,7 +28515,7 @@ "user_data": "NULL" }, "funcname": "SetAllocatorFunctions", - "location": "imgui:968", + "location": "imgui:970", "namespace": "ImGui", "ov_cimguiname": "igSetAllocatorFunctions", "ret": "void", @@ -27831,7 +28537,7 @@ "cimguiname": "igSetClipboardText", "defaults": {}, "funcname": "SetClipboardText", - "location": "imgui:949", + "location": "imgui:951", "namespace": "ImGui", "ov_cimguiname": "igSetClipboardText", "ret": "void", @@ -27853,7 +28559,7 @@ "cimguiname": "igSetColorEditOptions", "defaults": {}, "funcname": "SetColorEditOptions", - "location": "imgui:605", + "location": "imgui:606", "namespace": "ImGui", "ov_cimguiname": "igSetColorEditOptions", "ret": "void", @@ -27879,7 +28585,7 @@ "cimguiname": "igSetColumnOffset", "defaults": {}, "funcname": "SetColumnOffset", - "location": "imgui:792", + "location": "imgui:793", "namespace": "ImGui", "ov_cimguiname": "igSetColumnOffset", "ret": "void", @@ -27905,7 +28611,7 @@ "cimguiname": "igSetColumnWidth", "defaults": {}, "funcname": "SetColumnWidth", - "location": "imgui:790", + "location": "imgui:791", "namespace": "ImGui", "ov_cimguiname": "igSetColumnWidth", "ret": "void", @@ -27949,7 +28655,7 @@ "cimguiname": "igSetCurrentFont", "defaults": {}, "funcname": "SetCurrentFont", - "location": "imgui_internal:2567", + "location": "imgui_internal:2672", "namespace": "ImGui", "ov_cimguiname": "igSetCurrentFont", "ret": "void", @@ -27975,7 +28681,7 @@ "cimguiname": "igSetCurrentViewport", "defaults": {}, "funcname": "SetCurrentViewport", - "location": "imgui_internal:2591", + "location": "imgui_internal:2696", "namespace": "ImGui", "ov_cimguiname": "igSetCurrentViewport", "ret": "void", @@ -27997,7 +28703,7 @@ "cimguiname": "igSetCursorPos", "defaults": {}, "funcname": "SetCursorPos", - "location": "imgui:461", + "location": "imgui:462", "namespace": "ImGui", "ov_cimguiname": "igSetCursorPos", "ret": "void", @@ -28019,7 +28725,7 @@ "cimguiname": "igSetCursorPosX", "defaults": {}, "funcname": "SetCursorPosX", - "location": "imgui:462", + "location": "imgui:463", "namespace": "ImGui", "ov_cimguiname": "igSetCursorPosX", "ret": "void", @@ -28041,7 +28747,7 @@ "cimguiname": "igSetCursorPosY", "defaults": {}, "funcname": "SetCursorPosY", - "location": "imgui:463", + "location": "imgui:464", "namespace": "ImGui", "ov_cimguiname": "igSetCursorPosY", "ret": "void", @@ -28063,7 +28769,7 @@ "cimguiname": "igSetCursorScreenPos", "defaults": {}, "funcname": "SetCursorScreenPos", - "location": "imgui:466", + "location": "imgui:467", "namespace": "ImGui", "ov_cimguiname": "igSetCursorScreenPos", "ret": "void", @@ -28099,7 +28805,7 @@ "cond": "0" }, "funcname": "SetDragDropPayload", - "location": "imgui:839", + "location": "imgui:841", "namespace": "ImGui", "ov_cimguiname": "igSetDragDropPayload", "ret": "bool", @@ -28125,7 +28831,7 @@ "cimguiname": "igSetFocusID", "defaults": {}, "funcname": "SetFocusID", - "location": "imgui_internal:2618", + "location": "imgui_internal:2730", "namespace": "ImGui", "ov_cimguiname": "igSetFocusID", "ret": "void", @@ -28147,7 +28853,7 @@ "cimguiname": "igSetHoveredID", "defaults": {}, "funcname": "SetHoveredID", - "location": "imgui_internal:2621", + "location": "imgui_internal:2733", "namespace": "ImGui", "ov_cimguiname": "igSetHoveredID", "ret": "void", @@ -28164,7 +28870,7 @@ "cimguiname": "igSetItemAllowOverlap", "defaults": {}, "funcname": "SetItemAllowOverlap", - "location": "imgui:882", + "location": "imgui:884", "namespace": "ImGui", "ov_cimguiname": "igSetItemAllowOverlap", "ret": "void", @@ -28181,7 +28887,7 @@ "cimguiname": "igSetItemDefaultFocus", "defaults": {}, "funcname": "SetItemDefaultFocus", - "location": "imgui:860", + "location": "imgui:862", "namespace": "ImGui", "ov_cimguiname": "igSetItemDefaultFocus", "ret": "void", @@ -28198,7 +28904,7 @@ "cimguiname": "igSetItemUsingMouseWheel", "defaults": {}, "funcname": "SetItemUsingMouseWheel", - "location": "imgui_internal:2707", + "location": "imgui_internal:2825", "namespace": "ImGui", "ov_cimguiname": "igSetItemUsingMouseWheel", "ret": "void", @@ -28222,7 +28928,7 @@ "offset": "0" }, "funcname": "SetKeyboardFocusHere", - "location": "imgui:861", + "location": "imgui:863", "namespace": "ImGui", "ov_cimguiname": "igSetKeyboardFocusHere", "ret": "void", @@ -28256,7 +28962,7 @@ "cimguiname": "igSetLastItemData", "defaults": {}, "funcname": "SetLastItemData", - "location": "imgui_internal:2634", + "location": "imgui_internal:2745", "namespace": "ImGui", "ov_cimguiname": "igSetLastItemData", "ret": "void", @@ -28278,7 +28984,7 @@ "cimguiname": "igSetMouseCursor", "defaults": {}, "funcname": "SetMouseCursor", - "location": "imgui:943", + "location": "imgui:945", "namespace": "ImGui", "ov_cimguiname": "igSetMouseCursor", "ret": "void", @@ -28312,7 +29018,7 @@ "cimguiname": "igSetNavID", "defaults": {}, "funcname": "SetNavID", - "location": "imgui_internal:2695", + "location": "imgui_internal:2813", "namespace": "ImGui", "ov_cimguiname": "igSetNavID", "ret": "void", @@ -28340,7 +29046,7 @@ "cond": "0" }, "funcname": "SetNextItemOpen", - "location": "imgui:625", + "location": "imgui:626", "namespace": "ImGui", "ov_cimguiname": "igSetNextItemOpen", "ret": "void", @@ -28362,7 +29068,7 @@ "cimguiname": "igSetNextItemWidth", "defaults": {}, "funcname": "SetNextItemWidth", - "location": "imgui:427", + "location": "imgui:428", "namespace": "ImGui", "ov_cimguiname": "igSetNextItemWidth", "ret": "void", @@ -28384,7 +29090,7 @@ "cimguiname": "igSetNextWindowBgAlpha", "defaults": {}, "funcname": "SetNextWindowBgAlpha", - "location": "imgui:378", + "location": "imgui:379", "namespace": "ImGui", "ov_cimguiname": "igSetNextWindowBgAlpha", "ret": "void", @@ -28406,7 +29112,7 @@ "cimguiname": "igSetNextWindowClass", "defaults": {}, "funcname": "SetNextWindowClass", - "location": "imgui:819", + "location": "imgui:821", "namespace": "ImGui", "ov_cimguiname": "igSetNextWindowClass", "ret": "void", @@ -28434,7 +29140,7 @@ "cond": "0" }, "funcname": "SetNextWindowCollapsed", - "location": "imgui:376", + "location": "imgui:377", "namespace": "ImGui", "ov_cimguiname": "igSetNextWindowCollapsed", "ret": "void", @@ -28456,7 +29162,7 @@ "cimguiname": "igSetNextWindowContentSize", "defaults": {}, "funcname": "SetNextWindowContentSize", - "location": "imgui:375", + "location": "imgui:376", "namespace": "ImGui", "ov_cimguiname": "igSetNextWindowContentSize", "ret": "void", @@ -28484,7 +29190,7 @@ "cond": "0" }, "funcname": "SetNextWindowDockID", - "location": "imgui:818", + "location": "imgui:820", "namespace": "ImGui", "ov_cimguiname": "igSetNextWindowDockID", "ret": "void", @@ -28501,7 +29207,7 @@ "cimguiname": "igSetNextWindowFocus", "defaults": {}, "funcname": "SetNextWindowFocus", - "location": "imgui:377", + "location": "imgui:378", "namespace": "ImGui", "ov_cimguiname": "igSetNextWindowFocus", "ret": "void", @@ -28534,7 +29240,7 @@ "pivot": "ImVec2(0,0)" }, "funcname": "SetNextWindowPos", - "location": "imgui:372", + "location": "imgui:373", "namespace": "ImGui", "ov_cimguiname": "igSetNextWindowPos", "ret": "void", @@ -28556,7 +29262,7 @@ "cimguiname": "igSetNextWindowScroll", "defaults": {}, "funcname": "SetNextWindowScroll", - "location": "imgui_internal:2604", + "location": "imgui_internal:2709", "namespace": "ImGui", "ov_cimguiname": "igSetNextWindowScroll", "ret": "void", @@ -28584,7 +29290,7 @@ "cond": "0" }, "funcname": "SetNextWindowSize", - "location": "imgui:373", + "location": "imgui:374", "namespace": "ImGui", "ov_cimguiname": "igSetNextWindowSize", "ret": "void", @@ -28621,7 +29327,7 @@ "custom_callback_data": "NULL" }, "funcname": "SetNextWindowSizeConstraints", - "location": "imgui:374", + "location": "imgui:375", "namespace": "ImGui", "ov_cimguiname": "igSetNextWindowSizeConstraints", "ret": "void", @@ -28643,7 +29349,7 @@ "cimguiname": "igSetNextWindowViewport", "defaults": {}, "funcname": "SetNextWindowViewport", - "location": "imgui:379", + "location": "imgui:380", "namespace": "ImGui", "ov_cimguiname": "igSetNextWindowViewport", "ret": "void", @@ -28671,7 +29377,7 @@ "center_x_ratio": "0.5f" }, "funcname": "SetScrollFromPosX", - "location": "imgui:407", + "location": "imgui:408", "namespace": "ImGui", "ov_cimguiname": "igSetScrollFromPosXFloat", "ret": "void", @@ -28699,7 +29405,7 @@ "cimguiname": "igSetScrollFromPosX", "defaults": {}, "funcname": "SetScrollFromPosX", - "location": "imgui_internal:2607", + "location": "imgui_internal:2712", "namespace": "ImGui", "ov_cimguiname": "igSetScrollFromPosXWindowPtr", "ret": "void", @@ -28727,7 +29433,7 @@ "center_y_ratio": "0.5f" }, "funcname": "SetScrollFromPosY", - "location": "imgui:408", + "location": "imgui:409", "namespace": "ImGui", "ov_cimguiname": "igSetScrollFromPosYFloat", "ret": "void", @@ -28755,7 +29461,7 @@ "cimguiname": "igSetScrollFromPosY", "defaults": {}, "funcname": "SetScrollFromPosY", - "location": "imgui_internal:2608", + "location": "imgui_internal:2713", "namespace": "ImGui", "ov_cimguiname": "igSetScrollFromPosYWindowPtr", "ret": "void", @@ -28779,7 +29485,7 @@ "center_x_ratio": "0.5f" }, "funcname": "SetScrollHereX", - "location": "imgui:405", + "location": "imgui:406", "namespace": "ImGui", "ov_cimguiname": "igSetScrollHereX", "ret": "void", @@ -28803,7 +29509,7 @@ "center_y_ratio": "0.5f" }, "funcname": "SetScrollHereY", - "location": "imgui:406", + "location": "imgui:407", "namespace": "ImGui", "ov_cimguiname": "igSetScrollHereY", "ret": "void", @@ -28825,7 +29531,7 @@ "cimguiname": "igSetScrollX", "defaults": {}, "funcname": "SetScrollX", - "location": "imgui:401", + "location": "imgui:402", "namespace": "ImGui", "ov_cimguiname": "igSetScrollXFloat", "ret": "void", @@ -28849,7 +29555,7 @@ "cimguiname": "igSetScrollX", "defaults": {}, "funcname": "SetScrollX", - "location": "imgui_internal:2605", + "location": "imgui_internal:2710", "namespace": "ImGui", "ov_cimguiname": "igSetScrollXWindowPtr", "ret": "void", @@ -28871,7 +29577,7 @@ "cimguiname": "igSetScrollY", "defaults": {}, "funcname": "SetScrollY", - "location": "imgui:402", + "location": "imgui:403", "namespace": "ImGui", "ov_cimguiname": "igSetScrollYFloat", "ret": "void", @@ -28895,7 +29601,7 @@ "cimguiname": "igSetScrollY", "defaults": {}, "funcname": "SetScrollY", - "location": "imgui_internal:2606", + "location": "imgui_internal:2711", "namespace": "ImGui", "ov_cimguiname": "igSetScrollYWindowPtr", "ret": "void", @@ -28917,7 +29623,7 @@ "cimguiname": "igSetStateStorage", "defaults": {}, "funcname": "SetStateStorage", - "location": "imgui:901", + "location": "imgui:903", "namespace": "ImGui", "ov_cimguiname": "igSetStateStorage", "ret": "void", @@ -28939,7 +29645,7 @@ "cimguiname": "igSetTabItemClosed", "defaults": {}, "funcname": "SetTabItemClosed", - "location": "imgui:802", + "location": "imgui:803", "namespace": "ImGui", "ov_cimguiname": "igSetTabItemClosed", "ret": "void", @@ -28966,7 +29672,7 @@ "defaults": {}, "funcname": "SetTooltip", "isvararg": "...)", - "location": "imgui:676", + "location": "imgui:677", "namespace": "ImGui", "ov_cimguiname": "igSetTooltip", "ret": "void", @@ -28992,7 +29698,7 @@ "cimguiname": "igSetTooltipV", "defaults": {}, "funcname": "SetTooltipV", - "location": "imgui:677", + "location": "imgui:678", "namespace": "ImGui", "ov_cimguiname": "igSetTooltipV", "ret": "void", @@ -29018,7 +29724,7 @@ "cimguiname": "igSetWindowClipRectBeforeSetChannel", "defaults": {}, "funcname": "SetWindowClipRectBeforeSetChannel", - "location": "imgui_internal:2773", + "location": "imgui_internal:2893", "namespace": "ImGui", "ov_cimguiname": "igSetWindowClipRectBeforeSetChannel", "ret": "void", @@ -29046,7 +29752,7 @@ "cond": "0" }, "funcname": "SetWindowCollapsed", - "location": "imgui:382", + "location": "imgui:383", "namespace": "ImGui", "ov_cimguiname": "igSetWindowCollapsedBool", "ret": "void", @@ -29076,7 +29782,7 @@ "cond": "0" }, "funcname": "SetWindowCollapsed", - "location": "imgui:387", + "location": "imgui:388", "namespace": "ImGui", "ov_cimguiname": "igSetWindowCollapsedStr", "ret": "void", @@ -29106,7 +29812,7 @@ "cond": "0" }, "funcname": "SetWindowCollapsed", - "location": "imgui_internal:2556", + "location": "imgui_internal:2656", "namespace": "ImGui", "ov_cimguiname": "igSetWindowCollapsedWindowPtr", "ret": "void", @@ -29136,7 +29842,7 @@ "cimguiname": "igSetWindowDock", "defaults": {}, "funcname": "SetWindowDock", - "location": "imgui_internal:2741", + "location": "imgui_internal:2861", "namespace": "ImGui", "ov_cimguiname": "igSetWindowDock", "ret": "void", @@ -29153,7 +29859,7 @@ "cimguiname": "igSetWindowFocus", "defaults": {}, "funcname": "SetWindowFocus", - "location": "imgui:383", + "location": "imgui:384", "namespace": "ImGui", "ov_cimguiname": "igSetWindowFocusNil", "ret": "void", @@ -29173,7 +29879,7 @@ "cimguiname": "igSetWindowFocus", "defaults": {}, "funcname": "SetWindowFocus", - "location": "imgui:388", + "location": "imgui:389", "namespace": "ImGui", "ov_cimguiname": "igSetWindowFocusStr", "ret": "void", @@ -29195,7 +29901,7 @@ "cimguiname": "igSetWindowFontScale", "defaults": {}, "funcname": "SetWindowFontScale", - "location": "imgui:384", + "location": "imgui:385", "namespace": "ImGui", "ov_cimguiname": "igSetWindowFontScale", "ret": "void", @@ -29225,7 +29931,7 @@ "cimguiname": "igSetWindowHitTestHole", "defaults": {}, "funcname": "SetWindowHitTestHole", - "location": "imgui_internal:2557", + "location": "imgui_internal:2657", "namespace": "ImGui", "ov_cimguiname": "igSetWindowHitTestHole", "ret": "void", @@ -29253,7 +29959,7 @@ "cond": "0" }, "funcname": "SetWindowPos", - "location": "imgui:380", + "location": "imgui:381", "namespace": "ImGui", "ov_cimguiname": "igSetWindowPosVec2", "ret": "void", @@ -29283,7 +29989,7 @@ "cond": "0" }, "funcname": "SetWindowPos", - "location": "imgui:385", + "location": "imgui:386", "namespace": "ImGui", "ov_cimguiname": "igSetWindowPosStr", "ret": "void", @@ -29313,7 +30019,7 @@ "cond": "0" }, "funcname": "SetWindowPos", - "location": "imgui_internal:2554", + "location": "imgui_internal:2654", "namespace": "ImGui", "ov_cimguiname": "igSetWindowPosWindowPtr", "ret": "void", @@ -29341,7 +30047,7 @@ "cond": "0" }, "funcname": "SetWindowSize", - "location": "imgui:381", + "location": "imgui:382", "namespace": "ImGui", "ov_cimguiname": "igSetWindowSizeVec2", "ret": "void", @@ -29371,7 +30077,7 @@ "cond": "0" }, "funcname": "SetWindowSize", - "location": "imgui:386", + "location": "imgui:387", "namespace": "ImGui", "ov_cimguiname": "igSetWindowSizeStr", "ret": "void", @@ -29401,7 +30107,7 @@ "cond": "0" }, "funcname": "SetWindowSize", - "location": "imgui_internal:2555", + "location": "imgui_internal:2655", "namespace": "ImGui", "ov_cimguiname": "igSetWindowSizeWindowPtr", "ret": "void", @@ -29447,7 +30153,7 @@ "cimguiname": "igShadeVertsLinearColorGradientKeepAlpha", "defaults": {}, "funcname": "ShadeVertsLinearColorGradientKeepAlpha", - "location": "imgui_internal:2940", + "location": "imgui_internal:3061", "namespace": "ImGui", "ov_cimguiname": "igShadeVertsLinearColorGradientKeepAlpha", "ret": "void", @@ -29497,7 +30203,7 @@ "cimguiname": "igShadeVertsLinearUV", "defaults": {}, "funcname": "ShadeVertsLinearUV", - "location": "imgui_internal:2941", + "location": "imgui_internal:3062", "namespace": "ImGui", "ov_cimguiname": "igShadeVertsLinearUV", "ret": "void", @@ -29521,7 +30227,7 @@ "p_open": "NULL" }, "funcname": "ShowAboutWindow", - "location": "imgui:317", + "location": "imgui:318", "namespace": "ImGui", "ov_cimguiname": "igShowAboutWindow", "ret": "void", @@ -29567,7 +30273,7 @@ "cimguiname": "igShowFontAtlas", "defaults": {}, "funcname": "ShowFontAtlas", - "location": "imgui_internal:2953", + "location": "imgui_internal:3075", "namespace": "ImGui", "ov_cimguiname": "igShowFontAtlas", "ret": "void", @@ -29589,7 +30295,7 @@ "cimguiname": "igShowFontSelector", "defaults": {}, "funcname": "ShowFontSelector", - "location": "imgui:320", + "location": "imgui:321", "namespace": "ImGui", "ov_cimguiname": "igShowFontSelector", "ret": "void", @@ -29621,6 +30327,30 @@ "stname": "" } ], + "igShowStackToolWindow": [ + { + "args": "(bool* p_open)", + "argsT": [ + { + "name": "p_open", + "type": "bool*" + } + ], + "argsoriginal": "(bool* p_open=((void*)0))", + "call_args": "(p_open)", + "cimguiname": "igShowStackToolWindow", + "defaults": { + "p_open": "NULL" + }, + "funcname": "ShowStackToolWindow", + "location": "imgui:317", + "namespace": "ImGui", + "ov_cimguiname": "igShowStackToolWindow", + "ret": "void", + "signature": "(bool*)", + "stname": "" + } + ], "igShowStyleEditor": [ { "args": "(ImGuiStyle* ref)", @@ -29637,7 +30367,7 @@ "ref": "NULL" }, "funcname": "ShowStyleEditor", - "location": "imgui:318", + "location": "imgui:319", "namespace": "ImGui", "ov_cimguiname": "igShowStyleEditor", "ret": "void", @@ -29659,7 +30389,7 @@ "cimguiname": "igShowStyleSelector", "defaults": {}, "funcname": "ShowStyleSelector", - "location": "imgui:319", + "location": "imgui:320", "namespace": "ImGui", "ov_cimguiname": "igShowStyleSelector", "ret": "bool", @@ -29676,7 +30406,7 @@ "cimguiname": "igShowUserGuide", "defaults": {}, "funcname": "ShowUserGuide", - "location": "imgui:321", + "location": "imgui:322", "namespace": "ImGui", "ov_cimguiname": "igShowUserGuide", "ret": "void", @@ -29706,7 +30436,7 @@ "cimguiname": "igShrinkWidths", "defaults": {}, "funcname": "ShrinkWidths", - "location": "imgui_internal:2640", + "location": "imgui_internal:2751", "namespace": "ImGui", "ov_cimguiname": "igShrinkWidths", "ret": "void", @@ -29728,7 +30458,7 @@ "cimguiname": "igShutdown", "defaults": {}, "funcname": "Shutdown", - "location": "imgui_internal:2573", + "location": "imgui_internal:2678", "namespace": "ImGui", "ov_cimguiname": "igShutdown", "ret": "void", @@ -29775,7 +30505,7 @@ "v_degrees_min": "-360.0f" }, "funcname": "SliderAngle", - "location": "imgui:568", + "location": "imgui:569", "namespace": "ImGui", "ov_cimguiname": "igSliderAngle", "ret": "bool", @@ -29829,7 +30559,7 @@ "cimguiname": "igSliderBehavior", "defaults": {}, "funcname": "SliderBehavior", - "location": "imgui_internal:2900", + "location": "imgui_internal:3021", "namespace": "ImGui", "ov_cimguiname": "igSliderBehavior", "ret": "bool", @@ -29874,7 +30604,7 @@ "format": "\"%.3f\"" }, "funcname": "SliderFloat", - "location": "imgui:564", + "location": "imgui:565", "namespace": "ImGui", "ov_cimguiname": "igSliderFloat", "ret": "bool", @@ -29919,7 +30649,7 @@ "format": "\"%.3f\"" }, "funcname": "SliderFloat2", - "location": "imgui:565", + "location": "imgui:566", "namespace": "ImGui", "ov_cimguiname": "igSliderFloat2", "ret": "bool", @@ -29964,7 +30694,7 @@ "format": "\"%.3f\"" }, "funcname": "SliderFloat3", - "location": "imgui:566", + "location": "imgui:567", "namespace": "ImGui", "ov_cimguiname": "igSliderFloat3", "ret": "bool", @@ -30009,7 +30739,7 @@ "format": "\"%.3f\"" }, "funcname": "SliderFloat4", - "location": "imgui:567", + "location": "imgui:568", "namespace": "ImGui", "ov_cimguiname": "igSliderFloat4", "ret": "bool", @@ -30054,7 +30784,7 @@ "format": "\"%d\"" }, "funcname": "SliderInt", - "location": "imgui:569", + "location": "imgui:570", "namespace": "ImGui", "ov_cimguiname": "igSliderInt", "ret": "bool", @@ -30099,7 +30829,7 @@ "format": "\"%d\"" }, "funcname": "SliderInt2", - "location": "imgui:570", + "location": "imgui:571", "namespace": "ImGui", "ov_cimguiname": "igSliderInt2", "ret": "bool", @@ -30144,7 +30874,7 @@ "format": "\"%d\"" }, "funcname": "SliderInt3", - "location": "imgui:571", + "location": "imgui:572", "namespace": "ImGui", "ov_cimguiname": "igSliderInt3", "ret": "bool", @@ -30189,7 +30919,7 @@ "format": "\"%d\"" }, "funcname": "SliderInt4", - "location": "imgui:572", + "location": "imgui:573", "namespace": "ImGui", "ov_cimguiname": "igSliderInt4", "ret": "bool", @@ -30238,7 +30968,7 @@ "format": "NULL" }, "funcname": "SliderScalar", - "location": "imgui:573", + "location": "imgui:574", "namespace": "ImGui", "ov_cimguiname": "igSliderScalar", "ret": "bool", @@ -30291,7 +31021,7 @@ "format": "NULL" }, "funcname": "SliderScalarN", - "location": "imgui:574", + "location": "imgui:575", "namespace": "ImGui", "ov_cimguiname": "igSliderScalarN", "ret": "bool", @@ -30313,7 +31043,7 @@ "cimguiname": "igSmallButton", "defaults": {}, "funcname": "SmallButton", - "location": "imgui:512", + "location": "imgui:513", "namespace": "ImGui", "ov_cimguiname": "igSmallButton", "ret": "bool", @@ -30330,7 +31060,7 @@ "cimguiname": "igSpacing", "defaults": {}, "funcname": "Spacing", - "location": "imgui:452", + "location": "imgui:453", "namespace": "ImGui", "ov_cimguiname": "igSpacing", "ret": "void", @@ -30340,7 +31070,7 @@ ], "igSplitterBehavior": [ { - "args": "(const ImRect bb,ImGuiID id,ImGuiAxis axis,float* size1,float* size2,float min_size1,float min_size2,float hover_extend,float hover_visibility_delay)", + "args": "(const ImRect bb,ImGuiID id,ImGuiAxis axis,float* size1,float* size2,float min_size1,float min_size2,float hover_extend,float hover_visibility_delay,ImU32 bg_col)", "argsT": [ { "name": "bb", @@ -30377,21 +31107,26 @@ { "name": "hover_visibility_delay", "type": "float" + }, + { + "name": "bg_col", + "type": "ImU32" } ], - "argsoriginal": "(const ImRect& bb,ImGuiID id,ImGuiAxis axis,float* size1,float* size2,float min_size1,float min_size2,float hover_extend=0.0f,float hover_visibility_delay=0.0f)", - "call_args": "(bb,id,axis,size1,size2,min_size1,min_size2,hover_extend,hover_visibility_delay)", + "argsoriginal": "(const ImRect& bb,ImGuiID id,ImGuiAxis axis,float* size1,float* size2,float min_size1,float min_size2,float hover_extend=0.0f,float hover_visibility_delay=0.0f,ImU32 bg_col=0)", + "call_args": "(bb,id,axis,size1,size2,min_size1,min_size2,hover_extend,hover_visibility_delay,bg_col)", "cimguiname": "igSplitterBehavior", "defaults": { + "bg_col": "0", "hover_extend": "0.0f", "hover_visibility_delay": "0.0f" }, "funcname": "SplitterBehavior", - "location": "imgui_internal:2901", + "location": "imgui_internal:3022", "namespace": "ImGui", "ov_cimguiname": "igSplitterBehavior", "ret": "bool", - "signature": "(const ImRect,ImGuiID,ImGuiAxis,float*,float*,float,float,float,float)", + "signature": "(const ImRect,ImGuiID,ImGuiAxis,float*,float*,float,float,float,float,ImU32)", "stname": "" } ], @@ -30409,7 +31144,7 @@ "cimguiname": "igStartMouseMovingWindow", "defaults": {}, "funcname": "StartMouseMovingWindow", - "location": "imgui_internal:2577", + "location": "imgui_internal:2682", "namespace": "ImGui", "ov_cimguiname": "igStartMouseMovingWindow", "ret": "void", @@ -30439,7 +31174,7 @@ "cimguiname": "igStartMouseMovingWindowOrNode", "defaults": {}, "funcname": "StartMouseMovingWindowOrNode", - "location": "imgui_internal:2578", + "location": "imgui_internal:2683", "namespace": "ImGui", "ov_cimguiname": "igStartMouseMovingWindowOrNode", "ret": "void", @@ -30463,7 +31198,7 @@ "dst": "NULL" }, "funcname": "StyleColorsClassic", - "location": "imgui:327", + "location": "imgui:328", "namespace": "ImGui", "ov_cimguiname": "igStyleColorsClassic", "ret": "void", @@ -30487,7 +31222,7 @@ "dst": "NULL" }, "funcname": "StyleColorsDark", - "location": "imgui:325", + "location": "imgui:326", "namespace": "ImGui", "ov_cimguiname": "igStyleColorsDark", "ret": "void", @@ -30511,7 +31246,7 @@ "dst": "NULL" }, "funcname": "StyleColorsLight", - "location": "imgui:326", + "location": "imgui:327", "namespace": "ImGui", "ov_cimguiname": "igStyleColorsLight", "ret": "void", @@ -30541,7 +31276,7 @@ "cimguiname": "igTabBarAddTab", "defaults": {}, "funcname": "TabBarAddTab", - "location": "imgui_internal:2839", + "location": "imgui_internal:2959", "namespace": "ImGui", "ov_cimguiname": "igTabBarAddTab", "ret": "void", @@ -30567,7 +31302,7 @@ "cimguiname": "igTabBarCloseTab", "defaults": {}, "funcname": "TabBarCloseTab", - "location": "imgui_internal:2841", + "location": "imgui_internal:2961", "namespace": "ImGui", "ov_cimguiname": "igTabBarCloseTab", "ret": "void", @@ -30589,7 +31324,7 @@ "cimguiname": "igTabBarFindMostRecentlySelectedTabForActiveWindow", "defaults": {}, "funcname": "TabBarFindMostRecentlySelectedTabForActiveWindow", - "location": "imgui_internal:2838", + "location": "imgui_internal:2958", "namespace": "ImGui", "ov_cimguiname": "igTabBarFindMostRecentlySelectedTabForActiveWindow", "ret": "ImGuiTabItem*", @@ -30615,7 +31350,7 @@ "cimguiname": "igTabBarFindTabByID", "defaults": {}, "funcname": "TabBarFindTabByID", - "location": "imgui_internal:2837", + "location": "imgui_internal:2957", "namespace": "ImGui", "ov_cimguiname": "igTabBarFindTabByID", "ret": "ImGuiTabItem*", @@ -30637,7 +31372,7 @@ "cimguiname": "igTabBarProcessReorder", "defaults": {}, "funcname": "TabBarProcessReorder", - "location": "imgui_internal:2844", + "location": "imgui_internal:2964", "namespace": "ImGui", "ov_cimguiname": "igTabBarProcessReorder", "ret": "bool", @@ -30667,7 +31402,7 @@ "cimguiname": "igTabBarQueueReorder", "defaults": {}, "funcname": "TabBarQueueReorder", - "location": "imgui_internal:2842", + "location": "imgui_internal:2962", "namespace": "ImGui", "ov_cimguiname": "igTabBarQueueReorder", "ret": "void", @@ -30697,7 +31432,7 @@ "cimguiname": "igTabBarQueueReorderFromMousePos", "defaults": {}, "funcname": "TabBarQueueReorderFromMousePos", - "location": "imgui_internal:2843", + "location": "imgui_internal:2963", "namespace": "ImGui", "ov_cimguiname": "igTabBarQueueReorderFromMousePos", "ret": "void", @@ -30723,7 +31458,7 @@ "cimguiname": "igTabBarRemoveTab", "defaults": {}, "funcname": "TabBarRemoveTab", - "location": "imgui_internal:2840", + "location": "imgui_internal:2960", "namespace": "ImGui", "ov_cimguiname": "igTabBarRemoveTab", "ret": "void", @@ -30757,7 +31492,7 @@ "cimguiname": "igTabItemBackground", "defaults": {}, "funcname": "TabItemBackground", - "location": "imgui_internal:2847", + "location": "imgui_internal:2967", "namespace": "ImGui", "ov_cimguiname": "igTabItemBackground", "ret": "void", @@ -30785,7 +31520,7 @@ "flags": "0" }, "funcname": "TabItemButton", - "location": "imgui:801", + "location": "imgui:802", "namespace": "ImGui", "ov_cimguiname": "igTabItemButton", "ret": "bool", @@ -30815,7 +31550,7 @@ "cimguiname": "igTabItemCalcSize", "defaults": {}, "funcname": "TabItemCalcSize", - "location": "imgui_internal:2846", + "location": "imgui_internal:2966", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igTabItemCalcSize", @@ -30854,7 +31589,7 @@ "cimguiname": "igTabItemEx", "defaults": {}, "funcname": "TabItemEx", - "location": "imgui_internal:2845", + "location": "imgui_internal:2965", "namespace": "ImGui", "ov_cimguiname": "igTabItemEx", "ret": "bool", @@ -30912,7 +31647,7 @@ "cimguiname": "igTabItemLabelAndCloseButton", "defaults": {}, "funcname": "TabItemLabelAndCloseButton", - "location": "imgui_internal:2848", + "location": "imgui_internal:2968", "namespace": "ImGui", "ov_cimguiname": "igTabItemLabelAndCloseButton", "ret": "void", @@ -30934,7 +31669,7 @@ "cimguiname": "igTableBeginApplyRequests", "defaults": {}, "funcname": "TableBeginApplyRequests", - "location": "imgui_internal:2798", + "location": "imgui_internal:2918", "namespace": "ImGui", "ov_cimguiname": "igTableBeginApplyRequests", "ret": "void", @@ -30960,7 +31695,7 @@ "cimguiname": "igTableBeginCell", "defaults": {}, "funcname": "TableBeginCell", - "location": "imgui_internal:2813", + "location": "imgui_internal:2933", "namespace": "ImGui", "ov_cimguiname": "igTableBeginCell", "ret": "void", @@ -30986,7 +31721,7 @@ "cimguiname": "igTableBeginInitMemory", "defaults": {}, "funcname": "TableBeginInitMemory", - "location": "imgui_internal:2797", + "location": "imgui_internal:2917", "namespace": "ImGui", "ov_cimguiname": "igTableBeginInitMemory", "ret": "void", @@ -31008,7 +31743,7 @@ "cimguiname": "igTableBeginRow", "defaults": {}, "funcname": "TableBeginRow", - "location": "imgui_internal:2811", + "location": "imgui_internal:2931", "namespace": "ImGui", "ov_cimguiname": "igTableBeginRow", "ret": "void", @@ -31030,7 +31765,7 @@ "cimguiname": "igTableDrawBorders", "defaults": {}, "funcname": "TableDrawBorders", - "location": "imgui_internal:2803", + "location": "imgui_internal:2923", "namespace": "ImGui", "ov_cimguiname": "igTableDrawBorders", "ret": "void", @@ -31052,7 +31787,7 @@ "cimguiname": "igTableDrawContextMenu", "defaults": {}, "funcname": "TableDrawContextMenu", - "location": "imgui_internal:2804", + "location": "imgui_internal:2924", "namespace": "ImGui", "ov_cimguiname": "igTableDrawContextMenu", "ret": "void", @@ -31074,7 +31809,7 @@ "cimguiname": "igTableEndCell", "defaults": {}, "funcname": "TableEndCell", - "location": "imgui_internal:2814", + "location": "imgui_internal:2934", "namespace": "ImGui", "ov_cimguiname": "igTableEndCell", "ret": "void", @@ -31096,7 +31831,7 @@ "cimguiname": "igTableEndRow", "defaults": {}, "funcname": "TableEndRow", - "location": "imgui_internal:2812", + "location": "imgui_internal:2932", "namespace": "ImGui", "ov_cimguiname": "igTableEndRow", "ret": "void", @@ -31118,7 +31853,7 @@ "cimguiname": "igTableFindByID", "defaults": {}, "funcname": "TableFindByID", - "location": "imgui_internal:2795", + "location": "imgui_internal:2915", "namespace": "ImGui", "ov_cimguiname": "igTableFindByID", "ret": "ImGuiTable*", @@ -31144,7 +31879,7 @@ "cimguiname": "igTableFixColumnSortDirection", "defaults": {}, "funcname": "TableFixColumnSortDirection", - "location": "imgui_internal:2809", + "location": "imgui_internal:2929", "namespace": "ImGui", "ov_cimguiname": "igTableFixColumnSortDirection", "ret": "void", @@ -31161,7 +31896,7 @@ "cimguiname": "igTableGcCompactSettings", "defaults": {}, "funcname": "TableGcCompactSettings", - "location": "imgui_internal:2824", + "location": "imgui_internal:2944", "namespace": "ImGui", "ov_cimguiname": "igTableGcCompactSettings", "ret": "void", @@ -31183,7 +31918,7 @@ "cimguiname": "igTableGcCompactTransientBuffers", "defaults": {}, "funcname": "TableGcCompactTransientBuffers", - "location": "imgui_internal:2822", + "location": "imgui_internal:2942", "namespace": "ImGui", "ov_cimguiname": "igTableGcCompactTransientBuffersTablePtr", "ret": "void", @@ -31203,7 +31938,7 @@ "cimguiname": "igTableGcCompactTransientBuffers", "defaults": {}, "funcname": "TableGcCompactTransientBuffers", - "location": "imgui_internal:2823", + "location": "imgui_internal:2943", "namespace": "ImGui", "ov_cimguiname": "igTableGcCompactTransientBuffersTableTempDataPtr", "ret": "void", @@ -31225,7 +31960,7 @@ "cimguiname": "igTableGetBoundSettings", "defaults": {}, "funcname": "TableGetBoundSettings", - "location": "imgui_internal:2830", + "location": "imgui_internal:2950", "namespace": "ImGui", "ov_cimguiname": "igTableGetBoundSettings", "ret": "ImGuiTableSettings*", @@ -31255,7 +31990,7 @@ "cimguiname": "igTableGetCellBgRect", "defaults": {}, "funcname": "TableGetCellBgRect", - "location": "imgui_internal:2815", + "location": "imgui_internal:2935", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igTableGetCellBgRect", @@ -31273,7 +32008,7 @@ "cimguiname": "igTableGetColumnCount", "defaults": {}, "funcname": "TableGetColumnCount", - "location": "imgui:776", + "location": "imgui:777", "namespace": "ImGui", "ov_cimguiname": "igTableGetColumnCount", "ret": "int", @@ -31297,7 +32032,7 @@ "column_n": "-1" }, "funcname": "TableGetColumnFlags", - "location": "imgui:780", + "location": "imgui:781", "namespace": "ImGui", "ov_cimguiname": "igTableGetColumnFlags", "ret": "ImGuiTableColumnFlags", @@ -31314,7 +32049,7 @@ "cimguiname": "igTableGetColumnIndex", "defaults": {}, "funcname": "TableGetColumnIndex", - "location": "imgui:777", + "location": "imgui:778", "namespace": "ImGui", "ov_cimguiname": "igTableGetColumnIndex", "ret": "int", @@ -31338,7 +32073,7 @@ "column_n": "-1" }, "funcname": "TableGetColumnName", - "location": "imgui:779", + "location": "imgui:780", "namespace": "ImGui", "ov_cimguiname": "igTableGetColumnNameInt", "ret": "const char*", @@ -31362,7 +32097,7 @@ "cimguiname": "igTableGetColumnName", "defaults": {}, "funcname": "TableGetColumnName", - "location": "imgui_internal:2816", + "location": "imgui_internal:2936", "namespace": "ImGui", "ov_cimguiname": "igTableGetColumnNameTablePtr", "ret": "const char*", @@ -31384,7 +32119,7 @@ "cimguiname": "igTableGetColumnNextSortDirection", "defaults": {}, "funcname": "TableGetColumnNextSortDirection", - "location": "imgui_internal:2808", + "location": "imgui_internal:2928", "namespace": "ImGui", "ov_cimguiname": "igTableGetColumnNextSortDirection", "ret": "ImGuiSortDirection", @@ -31416,7 +32151,7 @@ "instance_no": "0" }, "funcname": "TableGetColumnResizeID", - "location": "imgui_internal:2817", + "location": "imgui_internal:2937", "namespace": "ImGui", "ov_cimguiname": "igTableGetColumnResizeID", "ret": "ImGuiID", @@ -31442,7 +32177,7 @@ "cimguiname": "igTableGetColumnWidthAuto", "defaults": {}, "funcname": "TableGetColumnWidthAuto", - "location": "imgui_internal:2810", + "location": "imgui_internal:2930", "namespace": "ImGui", "ov_cimguiname": "igTableGetColumnWidthAuto", "ret": "float", @@ -31459,7 +32194,7 @@ "cimguiname": "igTableGetHeaderRowHeight", "defaults": {}, "funcname": "TableGetHeaderRowHeight", - "location": "imgui_internal:2789", + "location": "imgui_internal:2909", "namespace": "ImGui", "ov_cimguiname": "igTableGetHeaderRowHeight", "ret": "float", @@ -31476,7 +32211,7 @@ "cimguiname": "igTableGetHoveredColumn", "defaults": {}, "funcname": "TableGetHoveredColumn", - "location": "imgui_internal:2788", + "location": "imgui_internal:2908", "namespace": "ImGui", "ov_cimguiname": "igTableGetHoveredColumn", "ret": "int", @@ -31502,7 +32237,7 @@ "cimguiname": "igTableGetMaxColumnWidth", "defaults": {}, "funcname": "TableGetMaxColumnWidth", - "location": "imgui_internal:2818", + "location": "imgui_internal:2938", "namespace": "ImGui", "ov_cimguiname": "igTableGetMaxColumnWidth", "ret": "float", @@ -31519,7 +32254,7 @@ "cimguiname": "igTableGetRowIndex", "defaults": {}, "funcname": "TableGetRowIndex", - "location": "imgui:778", + "location": "imgui:779", "namespace": "ImGui", "ov_cimguiname": "igTableGetRowIndex", "ret": "int", @@ -31536,7 +32271,7 @@ "cimguiname": "igTableGetSortSpecs", "defaults": {}, "funcname": "TableGetSortSpecs", - "location": "imgui:772", + "location": "imgui:773", "namespace": "ImGui", "ov_cimguiname": "igTableGetSortSpecs", "ret": "ImGuiTableSortSpecs*", @@ -31558,7 +32293,7 @@ "cimguiname": "igTableHeader", "defaults": {}, "funcname": "TableHeader", - "location": "imgui:764", + "location": "imgui:765", "namespace": "ImGui", "ov_cimguiname": "igTableHeader", "ret": "void", @@ -31575,7 +32310,7 @@ "cimguiname": "igTableHeadersRow", "defaults": {}, "funcname": "TableHeadersRow", - "location": "imgui:763", + "location": "imgui:764", "namespace": "ImGui", "ov_cimguiname": "igTableHeadersRow", "ret": "void", @@ -31597,7 +32332,7 @@ "cimguiname": "igTableLoadSettings", "defaults": {}, "funcname": "TableLoadSettings", - "location": "imgui_internal:2827", + "location": "imgui_internal:2947", "namespace": "ImGui", "ov_cimguiname": "igTableLoadSettings", "ret": "void", @@ -31619,7 +32354,7 @@ "cimguiname": "igTableMergeDrawChannels", "defaults": {}, "funcname": "TableMergeDrawChannels", - "location": "imgui_internal:2805", + "location": "imgui_internal:2925", "namespace": "ImGui", "ov_cimguiname": "igTableMergeDrawChannels", "ret": "void", @@ -31636,7 +32371,7 @@ "cimguiname": "igTableNextColumn", "defaults": {}, "funcname": "TableNextColumn", - "location": "imgui:750", + "location": "imgui:751", "namespace": "ImGui", "ov_cimguiname": "igTableNextColumn", "ret": "bool", @@ -31665,7 +32400,7 @@ "row_flags": "0" }, "funcname": "TableNextRow", - "location": "imgui:749", + "location": "imgui:750", "namespace": "ImGui", "ov_cimguiname": "igTableNextRow", "ret": "void", @@ -31689,7 +32424,7 @@ "column_n": "-1" }, "funcname": "TableOpenContextMenu", - "location": "imgui_internal:2785", + "location": "imgui_internal:2905", "namespace": "ImGui", "ov_cimguiname": "igTableOpenContextMenu", "ret": "void", @@ -31706,7 +32441,7 @@ "cimguiname": "igTablePopBackgroundChannel", "defaults": {}, "funcname": "TablePopBackgroundChannel", - "location": "imgui_internal:2791", + "location": "imgui_internal:2911", "namespace": "ImGui", "ov_cimguiname": "igTablePopBackgroundChannel", "ret": "void", @@ -31723,7 +32458,7 @@ "cimguiname": "igTablePushBackgroundChannel", "defaults": {}, "funcname": "TablePushBackgroundChannel", - "location": "imgui_internal:2790", + "location": "imgui_internal:2910", "namespace": "ImGui", "ov_cimguiname": "igTablePushBackgroundChannel", "ret": "void", @@ -31745,7 +32480,7 @@ "cimguiname": "igTableRemove", "defaults": {}, "funcname": "TableRemove", - "location": "imgui_internal:2821", + "location": "imgui_internal:2941", "namespace": "ImGui", "ov_cimguiname": "igTableRemove", "ret": "void", @@ -31767,7 +32502,7 @@ "cimguiname": "igTableResetSettings", "defaults": {}, "funcname": "TableResetSettings", - "location": "imgui_internal:2829", + "location": "imgui_internal:2949", "namespace": "ImGui", "ov_cimguiname": "igTableResetSettings", "ret": "void", @@ -31789,7 +32524,7 @@ "cimguiname": "igTableSaveSettings", "defaults": {}, "funcname": "TableSaveSettings", - "location": "imgui_internal:2828", + "location": "imgui_internal:2948", "namespace": "ImGui", "ov_cimguiname": "igTableSaveSettings", "ret": "void", @@ -31821,7 +32556,7 @@ "column_n": "-1" }, "funcname": "TableSetBgColor", - "location": "imgui:782", + "location": "imgui:783", "namespace": "ImGui", "ov_cimguiname": "igTableSetBgColor", "ret": "void", @@ -31847,7 +32582,7 @@ "cimguiname": "igTableSetColumnEnabled", "defaults": {}, "funcname": "TableSetColumnEnabled", - "location": "imgui:781", + "location": "imgui:782", "namespace": "ImGui", "ov_cimguiname": "igTableSetColumnEnabled", "ret": "void", @@ -31869,7 +32604,7 @@ "cimguiname": "igTableSetColumnIndex", "defaults": {}, "funcname": "TableSetColumnIndex", - "location": "imgui:751", + "location": "imgui:752", "namespace": "ImGui", "ov_cimguiname": "igTableSetColumnIndex", "ret": "bool", @@ -31899,7 +32634,7 @@ "cimguiname": "igTableSetColumnSortDirection", "defaults": {}, "funcname": "TableSetColumnSortDirection", - "location": "imgui_internal:2787", + "location": "imgui_internal:2907", "namespace": "ImGui", "ov_cimguiname": "igTableSetColumnSortDirection", "ret": "void", @@ -31925,7 +32660,7 @@ "cimguiname": "igTableSetColumnWidth", "defaults": {}, "funcname": "TableSetColumnWidth", - "location": "imgui_internal:2786", + "location": "imgui_internal:2906", "namespace": "ImGui", "ov_cimguiname": "igTableSetColumnWidth", "ret": "void", @@ -31947,7 +32682,7 @@ "cimguiname": "igTableSetColumnWidthAutoAll", "defaults": {}, "funcname": "TableSetColumnWidthAutoAll", - "location": "imgui_internal:2820", + "location": "imgui_internal:2940", "namespace": "ImGui", "ov_cimguiname": "igTableSetColumnWidthAutoAll", "ret": "void", @@ -31973,7 +32708,7 @@ "cimguiname": "igTableSetColumnWidthAutoSingle", "defaults": {}, "funcname": "TableSetColumnWidthAutoSingle", - "location": "imgui_internal:2819", + "location": "imgui_internal:2939", "namespace": "ImGui", "ov_cimguiname": "igTableSetColumnWidthAutoSingle", "ret": "void", @@ -31999,7 +32734,7 @@ "cimguiname": "igTableSettingsCreate", "defaults": {}, "funcname": "TableSettingsCreate", - "location": "imgui_internal:2832", + "location": "imgui_internal:2952", "namespace": "ImGui", "ov_cimguiname": "igTableSettingsCreate", "ret": "ImGuiTableSettings*", @@ -32021,7 +32756,7 @@ "cimguiname": "igTableSettingsFindByID", "defaults": {}, "funcname": "TableSettingsFindByID", - "location": "imgui_internal:2833", + "location": "imgui_internal:2953", "namespace": "ImGui", "ov_cimguiname": "igTableSettingsFindByID", "ret": "ImGuiTableSettings*", @@ -32043,7 +32778,7 @@ "cimguiname": "igTableSettingsInstallHandler", "defaults": {}, "funcname": "TableSettingsInstallHandler", - "location": "imgui_internal:2831", + "location": "imgui_internal:2951", "namespace": "ImGui", "ov_cimguiname": "igTableSettingsInstallHandler", "ret": "void", @@ -32081,7 +32816,7 @@ "user_id": "0" }, "funcname": "TableSetupColumn", - "location": "imgui:761", + "location": "imgui:762", "namespace": "ImGui", "ov_cimguiname": "igTableSetupColumn", "ret": "void", @@ -32103,7 +32838,7 @@ "cimguiname": "igTableSetupDrawChannels", "defaults": {}, "funcname": "TableSetupDrawChannels", - "location": "imgui_internal:2799", + "location": "imgui_internal:2919", "namespace": "ImGui", "ov_cimguiname": "igTableSetupDrawChannels", "ret": "void", @@ -32129,7 +32864,7 @@ "cimguiname": "igTableSetupScrollFreeze", "defaults": {}, "funcname": "TableSetupScrollFreeze", - "location": "imgui:762", + "location": "imgui:763", "namespace": "ImGui", "ov_cimguiname": "igTableSetupScrollFreeze", "ret": "void", @@ -32151,7 +32886,7 @@ "cimguiname": "igTableSortSpecsBuild", "defaults": {}, "funcname": "TableSortSpecsBuild", - "location": "imgui_internal:2807", + "location": "imgui_internal:2927", "namespace": "ImGui", "ov_cimguiname": "igTableSortSpecsBuild", "ret": "void", @@ -32173,7 +32908,7 @@ "cimguiname": "igTableSortSpecsSanitize", "defaults": {}, "funcname": "TableSortSpecsSanitize", - "location": "imgui_internal:2806", + "location": "imgui_internal:2926", "namespace": "ImGui", "ov_cimguiname": "igTableSortSpecsSanitize", "ret": "void", @@ -32195,7 +32930,7 @@ "cimguiname": "igTableUpdateBorders", "defaults": {}, "funcname": "TableUpdateBorders", - "location": "imgui_internal:2801", + "location": "imgui_internal:2921", "namespace": "ImGui", "ov_cimguiname": "igTableUpdateBorders", "ret": "void", @@ -32217,7 +32952,7 @@ "cimguiname": "igTableUpdateColumnsWeightFromWidth", "defaults": {}, "funcname": "TableUpdateColumnsWeightFromWidth", - "location": "imgui_internal:2802", + "location": "imgui_internal:2922", "namespace": "ImGui", "ov_cimguiname": "igTableUpdateColumnsWeightFromWidth", "ret": "void", @@ -32239,7 +32974,7 @@ "cimguiname": "igTableUpdateLayout", "defaults": {}, "funcname": "TableUpdateLayout", - "location": "imgui_internal:2800", + "location": "imgui_internal:2920", "namespace": "ImGui", "ov_cimguiname": "igTableUpdateLayout", "ret": "void", @@ -32261,7 +32996,7 @@ "cimguiname": "igTempInputIsActive", "defaults": {}, "funcname": "TempInputIsActive", - "location": "imgui_internal:2928", + "location": "imgui_internal:3049", "namespace": "ImGui", "ov_cimguiname": "igTempInputIsActive", "ret": "bool", @@ -32314,7 +33049,7 @@ "p_clamp_min": "NULL" }, "funcname": "TempInputScalar", - "location": "imgui_internal:2927", + "location": "imgui_internal:3048", "namespace": "ImGui", "ov_cimguiname": "igTempInputScalar", "ret": "bool", @@ -32356,7 +33091,7 @@ "cimguiname": "igTempInputText", "defaults": {}, "funcname": "TempInputText", - "location": "imgui_internal:2926", + "location": "imgui_internal:3047", "namespace": "ImGui", "ov_cimguiname": "igTempInputText", "ret": "bool", @@ -32383,7 +33118,7 @@ "defaults": {}, "funcname": "Text", "isvararg": "...)", - "location": "imgui:495", + "location": "imgui:496", "namespace": "ImGui", "ov_cimguiname": "igText", "ret": "void", @@ -32414,7 +33149,7 @@ "defaults": {}, "funcname": "TextColored", "isvararg": "...)", - "location": "imgui:497", + "location": "imgui:498", "namespace": "ImGui", "ov_cimguiname": "igTextColored", "ret": "void", @@ -32444,7 +33179,7 @@ "cimguiname": "igTextColoredV", "defaults": {}, "funcname": "TextColoredV", - "location": "imgui:498", + "location": "imgui:499", "namespace": "ImGui", "ov_cimguiname": "igTextColoredV", "ret": "void", @@ -32471,7 +33206,7 @@ "defaults": {}, "funcname": "TextDisabled", "isvararg": "...)", - "location": "imgui:499", + "location": "imgui:500", "namespace": "ImGui", "ov_cimguiname": "igTextDisabled", "ret": "void", @@ -32497,7 +33232,7 @@ "cimguiname": "igTextDisabledV", "defaults": {}, "funcname": "TextDisabledV", - "location": "imgui:500", + "location": "imgui:501", "namespace": "ImGui", "ov_cimguiname": "igTextDisabledV", "ret": "void", @@ -32530,7 +33265,7 @@ "text_end": "NULL" }, "funcname": "TextEx", - "location": "imgui_internal:2881", + "location": "imgui_internal:3002", "namespace": "ImGui", "ov_cimguiname": "igTextEx", "ret": "void", @@ -32558,7 +33293,7 @@ "text_end": "NULL" }, "funcname": "TextUnformatted", - "location": "imgui:494", + "location": "imgui:495", "namespace": "ImGui", "ov_cimguiname": "igTextUnformatted", "ret": "void", @@ -32584,7 +33319,7 @@ "cimguiname": "igTextV", "defaults": {}, "funcname": "TextV", - "location": "imgui:496", + "location": "imgui:497", "namespace": "ImGui", "ov_cimguiname": "igTextV", "ret": "void", @@ -32611,7 +33346,7 @@ "defaults": {}, "funcname": "TextWrapped", "isvararg": "...)", - "location": "imgui:501", + "location": "imgui:502", "namespace": "ImGui", "ov_cimguiname": "igTextWrapped", "ret": "void", @@ -32637,7 +33372,7 @@ "cimguiname": "igTextWrappedV", "defaults": {}, "funcname": "TextWrappedV", - "location": "imgui:502", + "location": "imgui:503", "namespace": "ImGui", "ov_cimguiname": "igTextWrappedV", "ret": "void", @@ -32667,7 +33402,7 @@ "cimguiname": "igTranslateWindowsInViewport", "defaults": {}, "funcname": "TranslateWindowsInViewport", - "location": "imgui_internal:2588", + "location": "imgui_internal:2693", "namespace": "ImGui", "ov_cimguiname": "igTranslateWindowsInViewport", "ret": "void", @@ -32689,7 +33424,7 @@ "cimguiname": "igTreeNode", "defaults": {}, "funcname": "TreeNode", - "location": "imgui:609", + "location": "imgui:610", "namespace": "ImGui", "ov_cimguiname": "igTreeNodeStr", "ret": "bool", @@ -32718,7 +33453,7 @@ "defaults": {}, "funcname": "TreeNode", "isvararg": "...)", - "location": "imgui:610", + "location": "imgui:611", "namespace": "ImGui", "ov_cimguiname": "igTreeNodeStrStr", "ret": "bool", @@ -32747,7 +33482,7 @@ "defaults": {}, "funcname": "TreeNode", "isvararg": "...)", - "location": "imgui:611", + "location": "imgui:612", "namespace": "ImGui", "ov_cimguiname": "igTreeNodePtr", "ret": "bool", @@ -32783,7 +33518,7 @@ "label_end": "NULL" }, "funcname": "TreeNodeBehavior", - "location": "imgui_internal:2902", + "location": "imgui_internal:3023", "namespace": "ImGui", "ov_cimguiname": "igTreeNodeBehavior", "ret": "bool", @@ -32811,7 +33546,7 @@ "flags": "0" }, "funcname": "TreeNodeBehaviorIsOpen", - "location": "imgui_internal:2903", + "location": "imgui_internal:3024", "namespace": "ImGui", "ov_cimguiname": "igTreeNodeBehaviorIsOpen", "ret": "bool", @@ -32839,7 +33574,7 @@ "flags": "0" }, "funcname": "TreeNodeEx", - "location": "imgui:614", + "location": "imgui:615", "namespace": "ImGui", "ov_cimguiname": "igTreeNodeExStr", "ret": "bool", @@ -32872,7 +33607,7 @@ "defaults": {}, "funcname": "TreeNodeEx", "isvararg": "...)", - "location": "imgui:615", + "location": "imgui:616", "namespace": "ImGui", "ov_cimguiname": "igTreeNodeExStrStr", "ret": "bool", @@ -32905,7 +33640,7 @@ "defaults": {}, "funcname": "TreeNodeEx", "isvararg": "...)", - "location": "imgui:616", + "location": "imgui:617", "namespace": "ImGui", "ov_cimguiname": "igTreeNodeExPtr", "ret": "bool", @@ -32939,7 +33674,7 @@ "cimguiname": "igTreeNodeExV", "defaults": {}, "funcname": "TreeNodeExV", - "location": "imgui:617", + "location": "imgui:618", "namespace": "ImGui", "ov_cimguiname": "igTreeNodeExVStr", "ret": "bool", @@ -32971,7 +33706,7 @@ "cimguiname": "igTreeNodeExV", "defaults": {}, "funcname": "TreeNodeExV", - "location": "imgui:618", + "location": "imgui:619", "namespace": "ImGui", "ov_cimguiname": "igTreeNodeExVPtr", "ret": "bool", @@ -33001,7 +33736,7 @@ "cimguiname": "igTreeNodeV", "defaults": {}, "funcname": "TreeNodeV", - "location": "imgui:612", + "location": "imgui:613", "namespace": "ImGui", "ov_cimguiname": "igTreeNodeVStr", "ret": "bool", @@ -33029,7 +33764,7 @@ "cimguiname": "igTreeNodeV", "defaults": {}, "funcname": "TreeNodeV", - "location": "imgui:613", + "location": "imgui:614", "namespace": "ImGui", "ov_cimguiname": "igTreeNodeVPtr", "ret": "bool", @@ -33046,7 +33781,7 @@ "cimguiname": "igTreePop", "defaults": {}, "funcname": "TreePop", - "location": "imgui:621", + "location": "imgui:622", "namespace": "ImGui", "ov_cimguiname": "igTreePop", "ret": "void", @@ -33068,7 +33803,7 @@ "cimguiname": "igTreePush", "defaults": {}, "funcname": "TreePush", - "location": "imgui:619", + "location": "imgui:620", "namespace": "ImGui", "ov_cimguiname": "igTreePushStr", "ret": "void", @@ -33090,7 +33825,7 @@ "ptr_id": "NULL" }, "funcname": "TreePush", - "location": "imgui:620", + "location": "imgui:621", "namespace": "ImGui", "ov_cimguiname": "igTreePushPtr", "ret": "void", @@ -33112,7 +33847,7 @@ "cimguiname": "igTreePushOverrideID", "defaults": {}, "funcname": "TreePushOverrideID", - "location": "imgui_internal:2904", + "location": "imgui_internal:3025", "namespace": "ImGui", "ov_cimguiname": "igTreePushOverrideID", "ret": "void", @@ -33136,7 +33871,7 @@ "indent_w": "0.0f" }, "funcname": "Unindent", - "location": "imgui:455", + "location": "imgui:456", "namespace": "ImGui", "ov_cimguiname": "igUnindent", "ret": "void", @@ -33153,7 +33888,7 @@ "cimguiname": "igUpdateHoveredWindowAndCaptureFlags", "defaults": {}, "funcname": "UpdateHoveredWindowAndCaptureFlags", - "location": "imgui_internal:2576", + "location": "imgui_internal:2681", "namespace": "ImGui", "ov_cimguiname": "igUpdateHoveredWindowAndCaptureFlags", "ret": "void", @@ -33170,7 +33905,7 @@ "cimguiname": "igUpdateMouseMovingWindowEndFrame", "defaults": {}, "funcname": "UpdateMouseMovingWindowEndFrame", - "location": "imgui_internal:2580", + "location": "imgui_internal:2685", "namespace": "ImGui", "ov_cimguiname": "igUpdateMouseMovingWindowEndFrame", "ret": "void", @@ -33187,7 +33922,7 @@ "cimguiname": "igUpdateMouseMovingWindowNewFrame", "defaults": {}, "funcname": "UpdateMouseMovingWindowNewFrame", - "location": "imgui_internal:2579", + "location": "imgui_internal:2684", "namespace": "ImGui", "ov_cimguiname": "igUpdateMouseMovingWindowNewFrame", "ret": "void", @@ -33204,7 +33939,7 @@ "cimguiname": "igUpdatePlatformWindows", "defaults": {}, "funcname": "UpdatePlatformWindows", - "location": "imgui:977", + "location": "imgui:979", "namespace": "ImGui", "ov_cimguiname": "igUpdatePlatformWindows", "ret": "void", @@ -33234,7 +33969,7 @@ "cimguiname": "igUpdateWindowParentAndRootLinks", "defaults": {}, "funcname": "UpdateWindowParentAndRootLinks", - "location": "imgui_internal:2549", + "location": "imgui_internal:2648", "namespace": "ImGui", "ov_cimguiname": "igUpdateWindowParentAndRootLinks", "ret": "void", @@ -33283,7 +34018,7 @@ "format": "\"%.3f\"" }, "funcname": "VSliderFloat", - "location": "imgui:575", + "location": "imgui:576", "namespace": "ImGui", "ov_cimguiname": "igVSliderFloat", "ret": "bool", @@ -33332,7 +34067,7 @@ "format": "\"%d\"" }, "funcname": "VSliderInt", - "location": "imgui:576", + "location": "imgui:577", "namespace": "ImGui", "ov_cimguiname": "igVSliderInt", "ret": "bool", @@ -33385,7 +34120,7 @@ "format": "NULL" }, "funcname": "VSliderScalar", - "location": "imgui:577", + "location": "imgui:578", "namespace": "ImGui", "ov_cimguiname": "igVSliderScalar", "ret": "bool", @@ -33411,7 +34146,7 @@ "cimguiname": "igValue", "defaults": {}, "funcname": "Value", - "location": "imgui:653", + "location": "imgui:654", "namespace": "ImGui", "ov_cimguiname": "igValueBool", "ret": "void", @@ -33435,7 +34170,7 @@ "cimguiname": "igValue", "defaults": {}, "funcname": "Value", - "location": "imgui:654", + "location": "imgui:655", "namespace": "ImGui", "ov_cimguiname": "igValueInt", "ret": "void", @@ -33459,7 +34194,7 @@ "cimguiname": "igValue", "defaults": {}, "funcname": "Value", - "location": "imgui:655", + "location": "imgui:656", "namespace": "ImGui", "ov_cimguiname": "igValueUint", "ret": "void", @@ -33489,12 +34224,74 @@ "float_format": "NULL" }, "funcname": "Value", - "location": "imgui:656", + "location": "imgui:657", "namespace": "ImGui", "ov_cimguiname": "igValueFloat", "ret": "void", "signature": "(const char*,float,const char*)", "stname": "" } + ], + "igWindowRectAbsToRel": [ + { + "args": "(ImRect *pOut,ImGuiWindow* window,const ImRect r)", + "argsT": [ + { + "name": "pOut", + "type": "ImRect*" + }, + { + "name": "window", + "type": "ImGuiWindow*" + }, + { + "name": "r", + "type": "const ImRect" + } + ], + "argsoriginal": "(ImGuiWindow* window,const ImRect& r)", + "call_args": "(window,r)", + "cimguiname": "igWindowRectAbsToRel", + "defaults": {}, + "funcname": "WindowRectAbsToRel", + "location": "imgui_internal:2658", + "namespace": "ImGui", + "nonUDT": 1, + "ov_cimguiname": "igWindowRectAbsToRel", + "ret": "void", + "signature": "(ImGuiWindow*,const ImRect)", + "stname": "" + } + ], + "igWindowRectRelToAbs": [ + { + "args": "(ImRect *pOut,ImGuiWindow* window,const ImRect r)", + "argsT": [ + { + "name": "pOut", + "type": "ImRect*" + }, + { + "name": "window", + "type": "ImGuiWindow*" + }, + { + "name": "r", + "type": "const ImRect" + } + ], + "argsoriginal": "(ImGuiWindow* window,const ImRect& r)", + "call_args": "(window,r)", + "cimguiname": "igWindowRectRelToAbs", + "defaults": {}, + "funcname": "WindowRectRelToAbs", + "location": "imgui_internal:2659", + "namespace": "ImGui", + "nonUDT": 1, + "ov_cimguiname": "igWindowRectRelToAbs", + "ret": "void", + "signature": "(ImGuiWindow*,const ImRect)", + "stname": "" + } ] } \ No newline at end of file diff --git a/imgui-sys/third-party/imgui-docking/definitions.lua b/imgui-sys/third-party/imgui-docking/definitions.lua index b7a9eda5b..806a84096 100644 --- a/imgui-sys/third-party/imgui-docking/definitions.lua +++ b/imgui-sys/third-party/imgui-docking/definitions.lua @@ -11,7 +11,7 @@ defs["ImBitArray_ClearAllBits"][1]["call_args"] = "()" defs["ImBitArray_ClearAllBits"][1]["cimguiname"] = "ImBitArray_ClearAllBits" defs["ImBitArray_ClearAllBits"][1]["defaults"] = {} defs["ImBitArray_ClearAllBits"][1]["funcname"] = "ClearAllBits" -defs["ImBitArray_ClearAllBits"][1]["location"] = "imgui_internal:548" +defs["ImBitArray_ClearAllBits"][1]["location"] = "imgui_internal:560" defs["ImBitArray_ClearAllBits"][1]["ov_cimguiname"] = "ImBitArray_ClearAllBits" defs["ImBitArray_ClearAllBits"][1]["ret"] = "void" defs["ImBitArray_ClearAllBits"][1]["signature"] = "()" @@ -33,7 +33,7 @@ defs["ImBitArray_ClearBit"][1]["call_args"] = "(n)" defs["ImBitArray_ClearBit"][1]["cimguiname"] = "ImBitArray_ClearBit" defs["ImBitArray_ClearBit"][1]["defaults"] = {} defs["ImBitArray_ClearBit"][1]["funcname"] = "ClearBit" -defs["ImBitArray_ClearBit"][1]["location"] = "imgui_internal:552" +defs["ImBitArray_ClearBit"][1]["location"] = "imgui_internal:564" defs["ImBitArray_ClearBit"][1]["ov_cimguiname"] = "ImBitArray_ClearBit" defs["ImBitArray_ClearBit"][1]["ret"] = "void" defs["ImBitArray_ClearBit"][1]["signature"] = "(int)" @@ -50,7 +50,7 @@ defs["ImBitArray_ImBitArray"][1]["cimguiname"] = "ImBitArray_ImBitArray" defs["ImBitArray_ImBitArray"][1]["constructor"] = true defs["ImBitArray_ImBitArray"][1]["defaults"] = {} defs["ImBitArray_ImBitArray"][1]["funcname"] = "ImBitArray" -defs["ImBitArray_ImBitArray"][1]["location"] = "imgui_internal:547" +defs["ImBitArray_ImBitArray"][1]["location"] = "imgui_internal:559" defs["ImBitArray_ImBitArray"][1]["ov_cimguiname"] = "ImBitArray_ImBitArray" defs["ImBitArray_ImBitArray"][1]["signature"] = "()" defs["ImBitArray_ImBitArray"][1]["stname"] = "ImBitArray" @@ -68,7 +68,7 @@ defs["ImBitArray_SetAllBits"][1]["call_args"] = "()" defs["ImBitArray_SetAllBits"][1]["cimguiname"] = "ImBitArray_SetAllBits" defs["ImBitArray_SetAllBits"][1]["defaults"] = {} defs["ImBitArray_SetAllBits"][1]["funcname"] = "SetAllBits" -defs["ImBitArray_SetAllBits"][1]["location"] = "imgui_internal:549" +defs["ImBitArray_SetAllBits"][1]["location"] = "imgui_internal:561" defs["ImBitArray_SetAllBits"][1]["ov_cimguiname"] = "ImBitArray_SetAllBits" defs["ImBitArray_SetAllBits"][1]["ret"] = "void" defs["ImBitArray_SetAllBits"][1]["signature"] = "()" @@ -90,7 +90,7 @@ defs["ImBitArray_SetBit"][1]["call_args"] = "(n)" defs["ImBitArray_SetBit"][1]["cimguiname"] = "ImBitArray_SetBit" defs["ImBitArray_SetBit"][1]["defaults"] = {} defs["ImBitArray_SetBit"][1]["funcname"] = "SetBit" -defs["ImBitArray_SetBit"][1]["location"] = "imgui_internal:551" +defs["ImBitArray_SetBit"][1]["location"] = "imgui_internal:563" defs["ImBitArray_SetBit"][1]["ov_cimguiname"] = "ImBitArray_SetBit" defs["ImBitArray_SetBit"][1]["ret"] = "void" defs["ImBitArray_SetBit"][1]["signature"] = "(int)" @@ -115,7 +115,7 @@ defs["ImBitArray_SetBitRange"][1]["call_args"] = "(n,n2)" defs["ImBitArray_SetBitRange"][1]["cimguiname"] = "ImBitArray_SetBitRange" defs["ImBitArray_SetBitRange"][1]["defaults"] = {} defs["ImBitArray_SetBitRange"][1]["funcname"] = "SetBitRange" -defs["ImBitArray_SetBitRange"][1]["location"] = "imgui_internal:553" +defs["ImBitArray_SetBitRange"][1]["location"] = "imgui_internal:565" defs["ImBitArray_SetBitRange"][1]["ov_cimguiname"] = "ImBitArray_SetBitRange" defs["ImBitArray_SetBitRange"][1]["ret"] = "void" defs["ImBitArray_SetBitRange"][1]["signature"] = "(int,int)" @@ -137,7 +137,7 @@ defs["ImBitArray_TestBit"][1]["call_args"] = "(n)" defs["ImBitArray_TestBit"][1]["cimguiname"] = "ImBitArray_TestBit" defs["ImBitArray_TestBit"][1]["defaults"] = {} defs["ImBitArray_TestBit"][1]["funcname"] = "TestBit" -defs["ImBitArray_TestBit"][1]["location"] = "imgui_internal:550" +defs["ImBitArray_TestBit"][1]["location"] = "imgui_internal:562" defs["ImBitArray_TestBit"][1]["ov_cimguiname"] = "ImBitArray_TestBit" defs["ImBitArray_TestBit"][1]["ret"] = "bool" defs["ImBitArray_TestBit"][1]["signature"] = "(int)const" @@ -173,7 +173,7 @@ defs["ImBitVector_Clear"][1]["call_args"] = "()" defs["ImBitVector_Clear"][1]["cimguiname"] = "ImBitVector_Clear" defs["ImBitVector_Clear"][1]["defaults"] = {} defs["ImBitVector_Clear"][1]["funcname"] = "Clear" -defs["ImBitVector_Clear"][1]["location"] = "imgui_internal:562" +defs["ImBitVector_Clear"][1]["location"] = "imgui_internal:574" defs["ImBitVector_Clear"][1]["ov_cimguiname"] = "ImBitVector_Clear" defs["ImBitVector_Clear"][1]["ret"] = "void" defs["ImBitVector_Clear"][1]["signature"] = "()" @@ -194,7 +194,7 @@ defs["ImBitVector_ClearBit"][1]["call_args"] = "(n)" defs["ImBitVector_ClearBit"][1]["cimguiname"] = "ImBitVector_ClearBit" defs["ImBitVector_ClearBit"][1]["defaults"] = {} defs["ImBitVector_ClearBit"][1]["funcname"] = "ClearBit" -defs["ImBitVector_ClearBit"][1]["location"] = "imgui_internal:565" +defs["ImBitVector_ClearBit"][1]["location"] = "imgui_internal:577" defs["ImBitVector_ClearBit"][1]["ov_cimguiname"] = "ImBitVector_ClearBit" defs["ImBitVector_ClearBit"][1]["ret"] = "void" defs["ImBitVector_ClearBit"][1]["signature"] = "(int)" @@ -215,7 +215,7 @@ defs["ImBitVector_Create"][1]["call_args"] = "(sz)" defs["ImBitVector_Create"][1]["cimguiname"] = "ImBitVector_Create" defs["ImBitVector_Create"][1]["defaults"] = {} defs["ImBitVector_Create"][1]["funcname"] = "Create" -defs["ImBitVector_Create"][1]["location"] = "imgui_internal:561" +defs["ImBitVector_Create"][1]["location"] = "imgui_internal:573" defs["ImBitVector_Create"][1]["ov_cimguiname"] = "ImBitVector_Create" defs["ImBitVector_Create"][1]["ret"] = "void" defs["ImBitVector_Create"][1]["signature"] = "(int)" @@ -236,7 +236,7 @@ defs["ImBitVector_SetBit"][1]["call_args"] = "(n)" defs["ImBitVector_SetBit"][1]["cimguiname"] = "ImBitVector_SetBit" defs["ImBitVector_SetBit"][1]["defaults"] = {} defs["ImBitVector_SetBit"][1]["funcname"] = "SetBit" -defs["ImBitVector_SetBit"][1]["location"] = "imgui_internal:564" +defs["ImBitVector_SetBit"][1]["location"] = "imgui_internal:576" defs["ImBitVector_SetBit"][1]["ov_cimguiname"] = "ImBitVector_SetBit" defs["ImBitVector_SetBit"][1]["ret"] = "void" defs["ImBitVector_SetBit"][1]["signature"] = "(int)" @@ -257,7 +257,7 @@ defs["ImBitVector_TestBit"][1]["call_args"] = "(n)" defs["ImBitVector_TestBit"][1]["cimguiname"] = "ImBitVector_TestBit" defs["ImBitVector_TestBit"][1]["defaults"] = {} defs["ImBitVector_TestBit"][1]["funcname"] = "TestBit" -defs["ImBitVector_TestBit"][1]["location"] = "imgui_internal:563" +defs["ImBitVector_TestBit"][1]["location"] = "imgui_internal:575" defs["ImBitVector_TestBit"][1]["ov_cimguiname"] = "ImBitVector_TestBit" defs["ImBitVector_TestBit"][1]["ret"] = "bool" defs["ImBitVector_TestBit"][1]["signature"] = "(int)const" @@ -278,7 +278,7 @@ defs["ImChunkStream_alloc_chunk"][1]["call_args"] = "(sz)" defs["ImChunkStream_alloc_chunk"][1]["cimguiname"] = "ImChunkStream_alloc_chunk" defs["ImChunkStream_alloc_chunk"][1]["defaults"] = {} defs["ImChunkStream_alloc_chunk"][1]["funcname"] = "alloc_chunk" -defs["ImChunkStream_alloc_chunk"][1]["location"] = "imgui_internal:668" +defs["ImChunkStream_alloc_chunk"][1]["location"] = "imgui_internal:680" defs["ImChunkStream_alloc_chunk"][1]["ov_cimguiname"] = "ImChunkStream_alloc_chunk" defs["ImChunkStream_alloc_chunk"][1]["ret"] = "T*" defs["ImChunkStream_alloc_chunk"][1]["signature"] = "(size_t)" @@ -297,7 +297,7 @@ defs["ImChunkStream_begin"][1]["call_args"] = "()" defs["ImChunkStream_begin"][1]["cimguiname"] = "ImChunkStream_begin" defs["ImChunkStream_begin"][1]["defaults"] = {} defs["ImChunkStream_begin"][1]["funcname"] = "begin" -defs["ImChunkStream_begin"][1]["location"] = "imgui_internal:669" +defs["ImChunkStream_begin"][1]["location"] = "imgui_internal:681" defs["ImChunkStream_begin"][1]["ov_cimguiname"] = "ImChunkStream_begin" defs["ImChunkStream_begin"][1]["ret"] = "T*" defs["ImChunkStream_begin"][1]["signature"] = "()" @@ -319,7 +319,7 @@ defs["ImChunkStream_chunk_size"][1]["call_args"] = "(p)" defs["ImChunkStream_chunk_size"][1]["cimguiname"] = "ImChunkStream_chunk_size" defs["ImChunkStream_chunk_size"][1]["defaults"] = {} defs["ImChunkStream_chunk_size"][1]["funcname"] = "chunk_size" -defs["ImChunkStream_chunk_size"][1]["location"] = "imgui_internal:671" +defs["ImChunkStream_chunk_size"][1]["location"] = "imgui_internal:683" defs["ImChunkStream_chunk_size"][1]["ov_cimguiname"] = "ImChunkStream_chunk_size" defs["ImChunkStream_chunk_size"][1]["ret"] = "int" defs["ImChunkStream_chunk_size"][1]["signature"] = "(const T*)" @@ -338,7 +338,7 @@ defs["ImChunkStream_clear"][1]["call_args"] = "()" defs["ImChunkStream_clear"][1]["cimguiname"] = "ImChunkStream_clear" defs["ImChunkStream_clear"][1]["defaults"] = {} defs["ImChunkStream_clear"][1]["funcname"] = "clear" -defs["ImChunkStream_clear"][1]["location"] = "imgui_internal:665" +defs["ImChunkStream_clear"][1]["location"] = "imgui_internal:677" defs["ImChunkStream_clear"][1]["ov_cimguiname"] = "ImChunkStream_clear" defs["ImChunkStream_clear"][1]["ret"] = "void" defs["ImChunkStream_clear"][1]["signature"] = "()" @@ -357,7 +357,7 @@ defs["ImChunkStream_empty"][1]["call_args"] = "()" defs["ImChunkStream_empty"][1]["cimguiname"] = "ImChunkStream_empty" defs["ImChunkStream_empty"][1]["defaults"] = {} defs["ImChunkStream_empty"][1]["funcname"] = "empty" -defs["ImChunkStream_empty"][1]["location"] = "imgui_internal:666" +defs["ImChunkStream_empty"][1]["location"] = "imgui_internal:678" defs["ImChunkStream_empty"][1]["ov_cimguiname"] = "ImChunkStream_empty" defs["ImChunkStream_empty"][1]["ret"] = "bool" defs["ImChunkStream_empty"][1]["signature"] = "()const" @@ -376,7 +376,7 @@ defs["ImChunkStream_end"][1]["call_args"] = "()" defs["ImChunkStream_end"][1]["cimguiname"] = "ImChunkStream_end" defs["ImChunkStream_end"][1]["defaults"] = {} defs["ImChunkStream_end"][1]["funcname"] = "end" -defs["ImChunkStream_end"][1]["location"] = "imgui_internal:672" +defs["ImChunkStream_end"][1]["location"] = "imgui_internal:684" defs["ImChunkStream_end"][1]["ov_cimguiname"] = "ImChunkStream_end" defs["ImChunkStream_end"][1]["ret"] = "T*" defs["ImChunkStream_end"][1]["signature"] = "()" @@ -398,7 +398,7 @@ defs["ImChunkStream_next_chunk"][1]["call_args"] = "(p)" defs["ImChunkStream_next_chunk"][1]["cimguiname"] = "ImChunkStream_next_chunk" defs["ImChunkStream_next_chunk"][1]["defaults"] = {} defs["ImChunkStream_next_chunk"][1]["funcname"] = "next_chunk" -defs["ImChunkStream_next_chunk"][1]["location"] = "imgui_internal:670" +defs["ImChunkStream_next_chunk"][1]["location"] = "imgui_internal:682" defs["ImChunkStream_next_chunk"][1]["ov_cimguiname"] = "ImChunkStream_next_chunk" defs["ImChunkStream_next_chunk"][1]["ret"] = "T*" defs["ImChunkStream_next_chunk"][1]["signature"] = "(T*)" @@ -420,7 +420,7 @@ defs["ImChunkStream_offset_from_ptr"][1]["call_args"] = "(p)" defs["ImChunkStream_offset_from_ptr"][1]["cimguiname"] = "ImChunkStream_offset_from_ptr" defs["ImChunkStream_offset_from_ptr"][1]["defaults"] = {} defs["ImChunkStream_offset_from_ptr"][1]["funcname"] = "offset_from_ptr" -defs["ImChunkStream_offset_from_ptr"][1]["location"] = "imgui_internal:673" +defs["ImChunkStream_offset_from_ptr"][1]["location"] = "imgui_internal:685" defs["ImChunkStream_offset_from_ptr"][1]["ov_cimguiname"] = "ImChunkStream_offset_from_ptr" defs["ImChunkStream_offset_from_ptr"][1]["ret"] = "int" defs["ImChunkStream_offset_from_ptr"][1]["signature"] = "(const T*)" @@ -442,7 +442,7 @@ defs["ImChunkStream_ptr_from_offset"][1]["call_args"] = "(off)" defs["ImChunkStream_ptr_from_offset"][1]["cimguiname"] = "ImChunkStream_ptr_from_offset" defs["ImChunkStream_ptr_from_offset"][1]["defaults"] = {} defs["ImChunkStream_ptr_from_offset"][1]["funcname"] = "ptr_from_offset" -defs["ImChunkStream_ptr_from_offset"][1]["location"] = "imgui_internal:674" +defs["ImChunkStream_ptr_from_offset"][1]["location"] = "imgui_internal:686" defs["ImChunkStream_ptr_from_offset"][1]["ov_cimguiname"] = "ImChunkStream_ptr_from_offset" defs["ImChunkStream_ptr_from_offset"][1]["ret"] = "T*" defs["ImChunkStream_ptr_from_offset"][1]["signature"] = "(int)" @@ -461,7 +461,7 @@ defs["ImChunkStream_size"][1]["call_args"] = "()" defs["ImChunkStream_size"][1]["cimguiname"] = "ImChunkStream_size" defs["ImChunkStream_size"][1]["defaults"] = {} defs["ImChunkStream_size"][1]["funcname"] = "size" -defs["ImChunkStream_size"][1]["location"] = "imgui_internal:667" +defs["ImChunkStream_size"][1]["location"] = "imgui_internal:679" defs["ImChunkStream_size"][1]["ov_cimguiname"] = "ImChunkStream_size" defs["ImChunkStream_size"][1]["ret"] = "int" defs["ImChunkStream_size"][1]["signature"] = "()const" @@ -484,7 +484,7 @@ defs["ImChunkStream_swap"][1]["call_args"] = "(*rhs)" defs["ImChunkStream_swap"][1]["cimguiname"] = "ImChunkStream_swap" defs["ImChunkStream_swap"][1]["defaults"] = {} defs["ImChunkStream_swap"][1]["funcname"] = "swap" -defs["ImChunkStream_swap"][1]["location"] = "imgui_internal:675" +defs["ImChunkStream_swap"][1]["location"] = "imgui_internal:687" defs["ImChunkStream_swap"][1]["ov_cimguiname"] = "ImChunkStream_swap" defs["ImChunkStream_swap"][1]["ret"] = "void" defs["ImChunkStream_swap"][1]["signature"] = "(ImChunkStream*)" @@ -517,7 +517,7 @@ defs["ImColor_HSV"][1]["defaults"] = {} defs["ImColor_HSV"][1]["defaults"]["a"] = "1.0f" defs["ImColor_HSV"][1]["funcname"] = "HSV" defs["ImColor_HSV"][1]["is_static_function"] = true -defs["ImColor_HSV"][1]["location"] = "imgui:2351" +defs["ImColor_HSV"][1]["location"] = "imgui:2361" defs["ImColor_HSV"][1]["nonUDT"] = 1 defs["ImColor_HSV"][1]["ov_cimguiname"] = "ImColor_HSV" defs["ImColor_HSV"][1]["ret"] = "void" @@ -534,7 +534,7 @@ defs["ImColor_ImColor"][1]["cimguiname"] = "ImColor_ImColor" defs["ImColor_ImColor"][1]["constructor"] = true defs["ImColor_ImColor"][1]["defaults"] = {} defs["ImColor_ImColor"][1]["funcname"] = "ImColor" -defs["ImColor_ImColor"][1]["location"] = "imgui:2341" +defs["ImColor_ImColor"][1]["location"] = "imgui:2351" defs["ImColor_ImColor"][1]["ov_cimguiname"] = "ImColor_ImColorNil" defs["ImColor_ImColor"][1]["signature"] = "()" defs["ImColor_ImColor"][1]["stname"] = "ImColor" @@ -560,7 +560,7 @@ defs["ImColor_ImColor"][2]["constructor"] = true defs["ImColor_ImColor"][2]["defaults"] = {} defs["ImColor_ImColor"][2]["defaults"]["a"] = "255" defs["ImColor_ImColor"][2]["funcname"] = "ImColor" -defs["ImColor_ImColor"][2]["location"] = "imgui:2342" +defs["ImColor_ImColor"][2]["location"] = "imgui:2352" defs["ImColor_ImColor"][2]["ov_cimguiname"] = "ImColor_ImColorInt" defs["ImColor_ImColor"][2]["signature"] = "(int,int,int,int)" defs["ImColor_ImColor"][2]["stname"] = "ImColor" @@ -576,7 +576,7 @@ defs["ImColor_ImColor"][3]["cimguiname"] = "ImColor_ImColor" defs["ImColor_ImColor"][3]["constructor"] = true defs["ImColor_ImColor"][3]["defaults"] = {} defs["ImColor_ImColor"][3]["funcname"] = "ImColor" -defs["ImColor_ImColor"][3]["location"] = "imgui:2343" +defs["ImColor_ImColor"][3]["location"] = "imgui:2353" defs["ImColor_ImColor"][3]["ov_cimguiname"] = "ImColor_ImColorU32" defs["ImColor_ImColor"][3]["signature"] = "(ImU32)" defs["ImColor_ImColor"][3]["stname"] = "ImColor" @@ -602,7 +602,7 @@ defs["ImColor_ImColor"][4]["constructor"] = true defs["ImColor_ImColor"][4]["defaults"] = {} defs["ImColor_ImColor"][4]["defaults"]["a"] = "1.0f" defs["ImColor_ImColor"][4]["funcname"] = "ImColor" -defs["ImColor_ImColor"][4]["location"] = "imgui:2344" +defs["ImColor_ImColor"][4]["location"] = "imgui:2354" defs["ImColor_ImColor"][4]["ov_cimguiname"] = "ImColor_ImColorFloat" defs["ImColor_ImColor"][4]["signature"] = "(float,float,float,float)" defs["ImColor_ImColor"][4]["stname"] = "ImColor" @@ -618,7 +618,7 @@ defs["ImColor_ImColor"][5]["cimguiname"] = "ImColor_ImColor" defs["ImColor_ImColor"][5]["constructor"] = true defs["ImColor_ImColor"][5]["defaults"] = {} defs["ImColor_ImColor"][5]["funcname"] = "ImColor" -defs["ImColor_ImColor"][5]["location"] = "imgui:2345" +defs["ImColor_ImColor"][5]["location"] = "imgui:2355" defs["ImColor_ImColor"][5]["ov_cimguiname"] = "ImColor_ImColorVec4" defs["ImColor_ImColor"][5]["signature"] = "(const ImVec4)" defs["ImColor_ImColor"][5]["stname"] = "ImColor" @@ -652,7 +652,7 @@ defs["ImColor_SetHSV"][1]["cimguiname"] = "ImColor_SetHSV" defs["ImColor_SetHSV"][1]["defaults"] = {} defs["ImColor_SetHSV"][1]["defaults"]["a"] = "1.0f" defs["ImColor_SetHSV"][1]["funcname"] = "SetHSV" -defs["ImColor_SetHSV"][1]["location"] = "imgui:2350" +defs["ImColor_SetHSV"][1]["location"] = "imgui:2360" defs["ImColor_SetHSV"][1]["ov_cimguiname"] = "ImColor_SetHSV" defs["ImColor_SetHSV"][1]["ret"] = "void" defs["ImColor_SetHSV"][1]["signature"] = "(float,float,float,float)" @@ -686,7 +686,7 @@ defs["ImDrawCmd_GetTexID"][1]["call_args"] = "()" defs["ImDrawCmd_GetTexID"][1]["cimguiname"] = "ImDrawCmd_GetTexID" defs["ImDrawCmd_GetTexID"][1]["defaults"] = {} defs["ImDrawCmd_GetTexID"][1]["funcname"] = "GetTexID" -defs["ImDrawCmd_GetTexID"][1]["location"] = "imgui:2399" +defs["ImDrawCmd_GetTexID"][1]["location"] = "imgui:2409" defs["ImDrawCmd_GetTexID"][1]["ov_cimguiname"] = "ImDrawCmd_GetTexID" defs["ImDrawCmd_GetTexID"][1]["ret"] = "ImTextureID" defs["ImDrawCmd_GetTexID"][1]["signature"] = "()const" @@ -702,7 +702,7 @@ defs["ImDrawCmd_ImDrawCmd"][1]["cimguiname"] = "ImDrawCmd_ImDrawCmd" defs["ImDrawCmd_ImDrawCmd"][1]["constructor"] = true defs["ImDrawCmd_ImDrawCmd"][1]["defaults"] = {} defs["ImDrawCmd_ImDrawCmd"][1]["funcname"] = "ImDrawCmd" -defs["ImDrawCmd_ImDrawCmd"][1]["location"] = "imgui:2396" +defs["ImDrawCmd_ImDrawCmd"][1]["location"] = "imgui:2406" defs["ImDrawCmd_ImDrawCmd"][1]["ov_cimguiname"] = "ImDrawCmd_ImDrawCmd" defs["ImDrawCmd_ImDrawCmd"][1]["signature"] = "()" defs["ImDrawCmd_ImDrawCmd"][1]["stname"] = "ImDrawCmd" @@ -735,7 +735,7 @@ defs["ImDrawDataBuilder_Clear"][1]["call_args"] = "()" defs["ImDrawDataBuilder_Clear"][1]["cimguiname"] = "ImDrawDataBuilder_Clear" defs["ImDrawDataBuilder_Clear"][1]["defaults"] = {} defs["ImDrawDataBuilder_Clear"][1]["funcname"] = "Clear" -defs["ImDrawDataBuilder_Clear"][1]["location"] = "imgui_internal:735" +defs["ImDrawDataBuilder_Clear"][1]["location"] = "imgui_internal:747" defs["ImDrawDataBuilder_Clear"][1]["ov_cimguiname"] = "ImDrawDataBuilder_Clear" defs["ImDrawDataBuilder_Clear"][1]["ret"] = "void" defs["ImDrawDataBuilder_Clear"][1]["signature"] = "()" @@ -753,7 +753,7 @@ defs["ImDrawDataBuilder_ClearFreeMemory"][1]["call_args"] = "()" defs["ImDrawDataBuilder_ClearFreeMemory"][1]["cimguiname"] = "ImDrawDataBuilder_ClearFreeMemory" defs["ImDrawDataBuilder_ClearFreeMemory"][1]["defaults"] = {} defs["ImDrawDataBuilder_ClearFreeMemory"][1]["funcname"] = "ClearFreeMemory" -defs["ImDrawDataBuilder_ClearFreeMemory"][1]["location"] = "imgui_internal:736" +defs["ImDrawDataBuilder_ClearFreeMemory"][1]["location"] = "imgui_internal:748" defs["ImDrawDataBuilder_ClearFreeMemory"][1]["ov_cimguiname"] = "ImDrawDataBuilder_ClearFreeMemory" defs["ImDrawDataBuilder_ClearFreeMemory"][1]["ret"] = "void" defs["ImDrawDataBuilder_ClearFreeMemory"][1]["signature"] = "()" @@ -771,7 +771,7 @@ defs["ImDrawDataBuilder_FlattenIntoSingleLayer"][1]["call_args"] = "()" defs["ImDrawDataBuilder_FlattenIntoSingleLayer"][1]["cimguiname"] = "ImDrawDataBuilder_FlattenIntoSingleLayer" defs["ImDrawDataBuilder_FlattenIntoSingleLayer"][1]["defaults"] = {} defs["ImDrawDataBuilder_FlattenIntoSingleLayer"][1]["funcname"] = "FlattenIntoSingleLayer" -defs["ImDrawDataBuilder_FlattenIntoSingleLayer"][1]["location"] = "imgui_internal:738" +defs["ImDrawDataBuilder_FlattenIntoSingleLayer"][1]["location"] = "imgui_internal:750" defs["ImDrawDataBuilder_FlattenIntoSingleLayer"][1]["ov_cimguiname"] = "ImDrawDataBuilder_FlattenIntoSingleLayer" defs["ImDrawDataBuilder_FlattenIntoSingleLayer"][1]["ret"] = "void" defs["ImDrawDataBuilder_FlattenIntoSingleLayer"][1]["signature"] = "()" @@ -789,7 +789,7 @@ defs["ImDrawDataBuilder_GetDrawListCount"][1]["call_args"] = "()" defs["ImDrawDataBuilder_GetDrawListCount"][1]["cimguiname"] = "ImDrawDataBuilder_GetDrawListCount" defs["ImDrawDataBuilder_GetDrawListCount"][1]["defaults"] = {} defs["ImDrawDataBuilder_GetDrawListCount"][1]["funcname"] = "GetDrawListCount" -defs["ImDrawDataBuilder_GetDrawListCount"][1]["location"] = "imgui_internal:737" +defs["ImDrawDataBuilder_GetDrawListCount"][1]["location"] = "imgui_internal:749" defs["ImDrawDataBuilder_GetDrawListCount"][1]["ov_cimguiname"] = "ImDrawDataBuilder_GetDrawListCount" defs["ImDrawDataBuilder_GetDrawListCount"][1]["ret"] = "int" defs["ImDrawDataBuilder_GetDrawListCount"][1]["signature"] = "()const" @@ -807,7 +807,7 @@ defs["ImDrawData_Clear"][1]["call_args"] = "()" defs["ImDrawData_Clear"][1]["cimguiname"] = "ImDrawData_Clear" defs["ImDrawData_Clear"][1]["defaults"] = {} defs["ImDrawData_Clear"][1]["funcname"] = "Clear" -defs["ImDrawData_Clear"][1]["location"] = "imgui:2631" +defs["ImDrawData_Clear"][1]["location"] = "imgui:2641" defs["ImDrawData_Clear"][1]["ov_cimguiname"] = "ImDrawData_Clear" defs["ImDrawData_Clear"][1]["ret"] = "void" defs["ImDrawData_Clear"][1]["signature"] = "()" @@ -825,7 +825,7 @@ defs["ImDrawData_DeIndexAllBuffers"][1]["call_args"] = "()" defs["ImDrawData_DeIndexAllBuffers"][1]["cimguiname"] = "ImDrawData_DeIndexAllBuffers" defs["ImDrawData_DeIndexAllBuffers"][1]["defaults"] = {} defs["ImDrawData_DeIndexAllBuffers"][1]["funcname"] = "DeIndexAllBuffers" -defs["ImDrawData_DeIndexAllBuffers"][1]["location"] = "imgui:2632" +defs["ImDrawData_DeIndexAllBuffers"][1]["location"] = "imgui:2642" defs["ImDrawData_DeIndexAllBuffers"][1]["ov_cimguiname"] = "ImDrawData_DeIndexAllBuffers" defs["ImDrawData_DeIndexAllBuffers"][1]["ret"] = "void" defs["ImDrawData_DeIndexAllBuffers"][1]["signature"] = "()" @@ -841,7 +841,7 @@ defs["ImDrawData_ImDrawData"][1]["cimguiname"] = "ImDrawData_ImDrawData" defs["ImDrawData_ImDrawData"][1]["constructor"] = true defs["ImDrawData_ImDrawData"][1]["defaults"] = {} defs["ImDrawData_ImDrawData"][1]["funcname"] = "ImDrawData" -defs["ImDrawData_ImDrawData"][1]["location"] = "imgui:2630" +defs["ImDrawData_ImDrawData"][1]["location"] = "imgui:2640" defs["ImDrawData_ImDrawData"][1]["ov_cimguiname"] = "ImDrawData_ImDrawData" defs["ImDrawData_ImDrawData"][1]["signature"] = "()" defs["ImDrawData_ImDrawData"][1]["stname"] = "ImDrawData" @@ -861,7 +861,7 @@ defs["ImDrawData_ScaleClipRects"][1]["call_args"] = "(fb_scale)" defs["ImDrawData_ScaleClipRects"][1]["cimguiname"] = "ImDrawData_ScaleClipRects" defs["ImDrawData_ScaleClipRects"][1]["defaults"] = {} defs["ImDrawData_ScaleClipRects"][1]["funcname"] = "ScaleClipRects" -defs["ImDrawData_ScaleClipRects"][1]["location"] = "imgui:2633" +defs["ImDrawData_ScaleClipRects"][1]["location"] = "imgui:2643" defs["ImDrawData_ScaleClipRects"][1]["ov_cimguiname"] = "ImDrawData_ScaleClipRects" defs["ImDrawData_ScaleClipRects"][1]["ret"] = "void" defs["ImDrawData_ScaleClipRects"][1]["signature"] = "(const ImVec2)" @@ -893,7 +893,7 @@ defs["ImDrawListSharedData_ImDrawListSharedData"][1]["cimguiname"] = "ImDrawList defs["ImDrawListSharedData_ImDrawListSharedData"][1]["constructor"] = true defs["ImDrawListSharedData_ImDrawListSharedData"][1]["defaults"] = {} defs["ImDrawListSharedData_ImDrawListSharedData"][1]["funcname"] = "ImDrawListSharedData" -defs["ImDrawListSharedData_ImDrawListSharedData"][1]["location"] = "imgui_internal:727" +defs["ImDrawListSharedData_ImDrawListSharedData"][1]["location"] = "imgui_internal:739" defs["ImDrawListSharedData_ImDrawListSharedData"][1]["ov_cimguiname"] = "ImDrawListSharedData_ImDrawListSharedData" defs["ImDrawListSharedData_ImDrawListSharedData"][1]["signature"] = "()" defs["ImDrawListSharedData_ImDrawListSharedData"][1]["stname"] = "ImDrawListSharedData" @@ -913,7 +913,7 @@ defs["ImDrawListSharedData_SetCircleTessellationMaxError"][1]["call_args"] = "(m defs["ImDrawListSharedData_SetCircleTessellationMaxError"][1]["cimguiname"] = "ImDrawListSharedData_SetCircleTessellationMaxError" defs["ImDrawListSharedData_SetCircleTessellationMaxError"][1]["defaults"] = {} defs["ImDrawListSharedData_SetCircleTessellationMaxError"][1]["funcname"] = "SetCircleTessellationMaxError" -defs["ImDrawListSharedData_SetCircleTessellationMaxError"][1]["location"] = "imgui_internal:728" +defs["ImDrawListSharedData_SetCircleTessellationMaxError"][1]["location"] = "imgui_internal:740" defs["ImDrawListSharedData_SetCircleTessellationMaxError"][1]["ov_cimguiname"] = "ImDrawListSharedData_SetCircleTessellationMaxError" defs["ImDrawListSharedData_SetCircleTessellationMaxError"][1]["ret"] = "void" defs["ImDrawListSharedData_SetCircleTessellationMaxError"][1]["signature"] = "(float)" @@ -947,7 +947,7 @@ defs["ImDrawListSplitter_Clear"][1]["call_args"] = "()" defs["ImDrawListSplitter_Clear"][1]["cimguiname"] = "ImDrawListSplitter_Clear" defs["ImDrawListSplitter_Clear"][1]["defaults"] = {} defs["ImDrawListSplitter_Clear"][1]["funcname"] = "Clear" -defs["ImDrawListSplitter_Clear"][1]["location"] = "imgui:2444" +defs["ImDrawListSplitter_Clear"][1]["location"] = "imgui:2454" defs["ImDrawListSplitter_Clear"][1]["ov_cimguiname"] = "ImDrawListSplitter_Clear" defs["ImDrawListSplitter_Clear"][1]["ret"] = "void" defs["ImDrawListSplitter_Clear"][1]["signature"] = "()" @@ -965,7 +965,7 @@ defs["ImDrawListSplitter_ClearFreeMemory"][1]["call_args"] = "()" defs["ImDrawListSplitter_ClearFreeMemory"][1]["cimguiname"] = "ImDrawListSplitter_ClearFreeMemory" defs["ImDrawListSplitter_ClearFreeMemory"][1]["defaults"] = {} defs["ImDrawListSplitter_ClearFreeMemory"][1]["funcname"] = "ClearFreeMemory" -defs["ImDrawListSplitter_ClearFreeMemory"][1]["location"] = "imgui:2445" +defs["ImDrawListSplitter_ClearFreeMemory"][1]["location"] = "imgui:2455" defs["ImDrawListSplitter_ClearFreeMemory"][1]["ov_cimguiname"] = "ImDrawListSplitter_ClearFreeMemory" defs["ImDrawListSplitter_ClearFreeMemory"][1]["ret"] = "void" defs["ImDrawListSplitter_ClearFreeMemory"][1]["signature"] = "()" @@ -981,7 +981,7 @@ defs["ImDrawListSplitter_ImDrawListSplitter"][1]["cimguiname"] = "ImDrawListSpli defs["ImDrawListSplitter_ImDrawListSplitter"][1]["constructor"] = true defs["ImDrawListSplitter_ImDrawListSplitter"][1]["defaults"] = {} defs["ImDrawListSplitter_ImDrawListSplitter"][1]["funcname"] = "ImDrawListSplitter" -defs["ImDrawListSplitter_ImDrawListSplitter"][1]["location"] = "imgui:2442" +defs["ImDrawListSplitter_ImDrawListSplitter"][1]["location"] = "imgui:2452" defs["ImDrawListSplitter_ImDrawListSplitter"][1]["ov_cimguiname"] = "ImDrawListSplitter_ImDrawListSplitter" defs["ImDrawListSplitter_ImDrawListSplitter"][1]["signature"] = "()" defs["ImDrawListSplitter_ImDrawListSplitter"][1]["stname"] = "ImDrawListSplitter" @@ -1001,7 +1001,7 @@ defs["ImDrawListSplitter_Merge"][1]["call_args"] = "(draw_list)" defs["ImDrawListSplitter_Merge"][1]["cimguiname"] = "ImDrawListSplitter_Merge" defs["ImDrawListSplitter_Merge"][1]["defaults"] = {} defs["ImDrawListSplitter_Merge"][1]["funcname"] = "Merge" -defs["ImDrawListSplitter_Merge"][1]["location"] = "imgui:2447" +defs["ImDrawListSplitter_Merge"][1]["location"] = "imgui:2457" defs["ImDrawListSplitter_Merge"][1]["ov_cimguiname"] = "ImDrawListSplitter_Merge" defs["ImDrawListSplitter_Merge"][1]["ret"] = "void" defs["ImDrawListSplitter_Merge"][1]["signature"] = "(ImDrawList*)" @@ -1025,7 +1025,7 @@ defs["ImDrawListSplitter_SetCurrentChannel"][1]["call_args"] = "(draw_list,chann defs["ImDrawListSplitter_SetCurrentChannel"][1]["cimguiname"] = "ImDrawListSplitter_SetCurrentChannel" defs["ImDrawListSplitter_SetCurrentChannel"][1]["defaults"] = {} defs["ImDrawListSplitter_SetCurrentChannel"][1]["funcname"] = "SetCurrentChannel" -defs["ImDrawListSplitter_SetCurrentChannel"][1]["location"] = "imgui:2448" +defs["ImDrawListSplitter_SetCurrentChannel"][1]["location"] = "imgui:2458" defs["ImDrawListSplitter_SetCurrentChannel"][1]["ov_cimguiname"] = "ImDrawListSplitter_SetCurrentChannel" defs["ImDrawListSplitter_SetCurrentChannel"][1]["ret"] = "void" defs["ImDrawListSplitter_SetCurrentChannel"][1]["signature"] = "(ImDrawList*,int)" @@ -1049,7 +1049,7 @@ defs["ImDrawListSplitter_Split"][1]["call_args"] = "(draw_list,count)" defs["ImDrawListSplitter_Split"][1]["cimguiname"] = "ImDrawListSplitter_Split" defs["ImDrawListSplitter_Split"][1]["defaults"] = {} defs["ImDrawListSplitter_Split"][1]["funcname"] = "Split" -defs["ImDrawListSplitter_Split"][1]["location"] = "imgui:2446" +defs["ImDrawListSplitter_Split"][1]["location"] = "imgui:2456" defs["ImDrawListSplitter_Split"][1]["ov_cimguiname"] = "ImDrawListSplitter_Split" defs["ImDrawListSplitter_Split"][1]["ret"] = "void" defs["ImDrawListSplitter_Split"][1]["signature"] = "(ImDrawList*,int)" @@ -1066,7 +1066,7 @@ defs["ImDrawListSplitter_destroy"][1]["call_args"] = "(self)" defs["ImDrawListSplitter_destroy"][1]["cimguiname"] = "ImDrawListSplitter_destroy" defs["ImDrawListSplitter_destroy"][1]["defaults"] = {} defs["ImDrawListSplitter_destroy"][1]["destructor"] = true -defs["ImDrawListSplitter_destroy"][1]["location"] = "imgui:2443" +defs["ImDrawListSplitter_destroy"][1]["location"] = "imgui:2453" defs["ImDrawListSplitter_destroy"][1]["ov_cimguiname"] = "ImDrawListSplitter_destroy" defs["ImDrawListSplitter_destroy"][1]["realdestructor"] = true defs["ImDrawListSplitter_destroy"][1]["ret"] = "void" @@ -1107,7 +1107,7 @@ defs["ImDrawList_AddBezierCubic"][1]["cimguiname"] = "ImDrawList_AddBezierCubic" defs["ImDrawList_AddBezierCubic"][1]["defaults"] = {} defs["ImDrawList_AddBezierCubic"][1]["defaults"]["num_segments"] = "0" defs["ImDrawList_AddBezierCubic"][1]["funcname"] = "AddBezierCubic" -defs["ImDrawList_AddBezierCubic"][1]["location"] = "imgui:2546" +defs["ImDrawList_AddBezierCubic"][1]["location"] = "imgui:2556" defs["ImDrawList_AddBezierCubic"][1]["ov_cimguiname"] = "ImDrawList_AddBezierCubic" defs["ImDrawList_AddBezierCubic"][1]["ret"] = "void" defs["ImDrawList_AddBezierCubic"][1]["signature"] = "(const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32,float,int)" @@ -1144,7 +1144,7 @@ defs["ImDrawList_AddBezierQuadratic"][1]["cimguiname"] = "ImDrawList_AddBezierQu defs["ImDrawList_AddBezierQuadratic"][1]["defaults"] = {} defs["ImDrawList_AddBezierQuadratic"][1]["defaults"]["num_segments"] = "0" defs["ImDrawList_AddBezierQuadratic"][1]["funcname"] = "AddBezierQuadratic" -defs["ImDrawList_AddBezierQuadratic"][1]["location"] = "imgui:2547" +defs["ImDrawList_AddBezierQuadratic"][1]["location"] = "imgui:2557" defs["ImDrawList_AddBezierQuadratic"][1]["ov_cimguiname"] = "ImDrawList_AddBezierQuadratic" defs["ImDrawList_AddBezierQuadratic"][1]["ret"] = "void" defs["ImDrawList_AddBezierQuadratic"][1]["signature"] = "(const ImVec2,const ImVec2,const ImVec2,ImU32,float,int)" @@ -1168,7 +1168,7 @@ defs["ImDrawList_AddCallback"][1]["call_args"] = "(callback,callback_data)" defs["ImDrawList_AddCallback"][1]["cimguiname"] = "ImDrawList_AddCallback" defs["ImDrawList_AddCallback"][1]["defaults"] = {} defs["ImDrawList_AddCallback"][1]["funcname"] = "AddCallback" -defs["ImDrawList_AddCallback"][1]["location"] = "imgui:2570" +defs["ImDrawList_AddCallback"][1]["location"] = "imgui:2580" defs["ImDrawList_AddCallback"][1]["ov_cimguiname"] = "ImDrawList_AddCallback" defs["ImDrawList_AddCallback"][1]["ret"] = "void" defs["ImDrawList_AddCallback"][1]["signature"] = "(ImDrawCallback,void*)" @@ -1203,7 +1203,7 @@ defs["ImDrawList_AddCircle"][1]["defaults"] = {} defs["ImDrawList_AddCircle"][1]["defaults"]["num_segments"] = "0" defs["ImDrawList_AddCircle"][1]["defaults"]["thickness"] = "1.0f" defs["ImDrawList_AddCircle"][1]["funcname"] = "AddCircle" -defs["ImDrawList_AddCircle"][1]["location"] = "imgui:2538" +defs["ImDrawList_AddCircle"][1]["location"] = "imgui:2548" defs["ImDrawList_AddCircle"][1]["ov_cimguiname"] = "ImDrawList_AddCircle" defs["ImDrawList_AddCircle"][1]["ret"] = "void" defs["ImDrawList_AddCircle"][1]["signature"] = "(const ImVec2,float,ImU32,int,float)" @@ -1234,7 +1234,7 @@ defs["ImDrawList_AddCircleFilled"][1]["cimguiname"] = "ImDrawList_AddCircleFille defs["ImDrawList_AddCircleFilled"][1]["defaults"] = {} defs["ImDrawList_AddCircleFilled"][1]["defaults"]["num_segments"] = "0" defs["ImDrawList_AddCircleFilled"][1]["funcname"] = "AddCircleFilled" -defs["ImDrawList_AddCircleFilled"][1]["location"] = "imgui:2539" +defs["ImDrawList_AddCircleFilled"][1]["location"] = "imgui:2549" defs["ImDrawList_AddCircleFilled"][1]["ov_cimguiname"] = "ImDrawList_AddCircleFilled" defs["ImDrawList_AddCircleFilled"][1]["ret"] = "void" defs["ImDrawList_AddCircleFilled"][1]["signature"] = "(const ImVec2,float,ImU32,int)" @@ -1261,7 +1261,7 @@ defs["ImDrawList_AddConvexPolyFilled"][1]["call_args"] = "(points,num_points,col defs["ImDrawList_AddConvexPolyFilled"][1]["cimguiname"] = "ImDrawList_AddConvexPolyFilled" defs["ImDrawList_AddConvexPolyFilled"][1]["defaults"] = {} defs["ImDrawList_AddConvexPolyFilled"][1]["funcname"] = "AddConvexPolyFilled" -defs["ImDrawList_AddConvexPolyFilled"][1]["location"] = "imgui:2545" +defs["ImDrawList_AddConvexPolyFilled"][1]["location"] = "imgui:2555" defs["ImDrawList_AddConvexPolyFilled"][1]["ov_cimguiname"] = "ImDrawList_AddConvexPolyFilled" defs["ImDrawList_AddConvexPolyFilled"][1]["ret"] = "void" defs["ImDrawList_AddConvexPolyFilled"][1]["signature"] = "(const ImVec2*,int,ImU32)" @@ -1279,7 +1279,7 @@ defs["ImDrawList_AddDrawCmd"][1]["call_args"] = "()" defs["ImDrawList_AddDrawCmd"][1]["cimguiname"] = "ImDrawList_AddDrawCmd" defs["ImDrawList_AddDrawCmd"][1]["defaults"] = {} defs["ImDrawList_AddDrawCmd"][1]["funcname"] = "AddDrawCmd" -defs["ImDrawList_AddDrawCmd"][1]["location"] = "imgui:2571" +defs["ImDrawList_AddDrawCmd"][1]["location"] = "imgui:2581" defs["ImDrawList_AddDrawCmd"][1]["ov_cimguiname"] = "ImDrawList_AddDrawCmd" defs["ImDrawList_AddDrawCmd"][1]["ret"] = "void" defs["ImDrawList_AddDrawCmd"][1]["signature"] = "()" @@ -1318,7 +1318,7 @@ defs["ImDrawList_AddImage"][1]["defaults"]["col"] = "4294967295" defs["ImDrawList_AddImage"][1]["defaults"]["uv_max"] = "ImVec2(1,1)" defs["ImDrawList_AddImage"][1]["defaults"]["uv_min"] = "ImVec2(0,0)" defs["ImDrawList_AddImage"][1]["funcname"] = "AddImage" -defs["ImDrawList_AddImage"][1]["location"] = "imgui:2553" +defs["ImDrawList_AddImage"][1]["location"] = "imgui:2563" defs["ImDrawList_AddImage"][1]["ov_cimguiname"] = "ImDrawList_AddImage" defs["ImDrawList_AddImage"][1]["ret"] = "void" defs["ImDrawList_AddImage"][1]["signature"] = "(ImTextureID,const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32)" @@ -1371,7 +1371,7 @@ defs["ImDrawList_AddImageQuad"][1]["defaults"]["uv2"] = "ImVec2(1,0)" defs["ImDrawList_AddImageQuad"][1]["defaults"]["uv3"] = "ImVec2(1,1)" defs["ImDrawList_AddImageQuad"][1]["defaults"]["uv4"] = "ImVec2(0,1)" defs["ImDrawList_AddImageQuad"][1]["funcname"] = "AddImageQuad" -defs["ImDrawList_AddImageQuad"][1]["location"] = "imgui:2554" +defs["ImDrawList_AddImageQuad"][1]["location"] = "imgui:2564" defs["ImDrawList_AddImageQuad"][1]["ov_cimguiname"] = "ImDrawList_AddImageQuad" defs["ImDrawList_AddImageQuad"][1]["ret"] = "void" defs["ImDrawList_AddImageQuad"][1]["signature"] = "(ImTextureID,const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32)" @@ -1414,7 +1414,7 @@ defs["ImDrawList_AddImageRounded"][1]["cimguiname"] = "ImDrawList_AddImageRounde defs["ImDrawList_AddImageRounded"][1]["defaults"] = {} defs["ImDrawList_AddImageRounded"][1]["defaults"]["flags"] = "0" defs["ImDrawList_AddImageRounded"][1]["funcname"] = "AddImageRounded" -defs["ImDrawList_AddImageRounded"][1]["location"] = "imgui:2555" +defs["ImDrawList_AddImageRounded"][1]["location"] = "imgui:2565" defs["ImDrawList_AddImageRounded"][1]["ov_cimguiname"] = "ImDrawList_AddImageRounded" defs["ImDrawList_AddImageRounded"][1]["ret"] = "void" defs["ImDrawList_AddImageRounded"][1]["signature"] = "(ImTextureID,const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32,float,ImDrawFlags)" @@ -1445,7 +1445,7 @@ defs["ImDrawList_AddLine"][1]["cimguiname"] = "ImDrawList_AddLine" defs["ImDrawList_AddLine"][1]["defaults"] = {} defs["ImDrawList_AddLine"][1]["defaults"]["thickness"] = "1.0f" defs["ImDrawList_AddLine"][1]["funcname"] = "AddLine" -defs["ImDrawList_AddLine"][1]["location"] = "imgui:2530" +defs["ImDrawList_AddLine"][1]["location"] = "imgui:2540" defs["ImDrawList_AddLine"][1]["ov_cimguiname"] = "ImDrawList_AddLine" defs["ImDrawList_AddLine"][1]["ret"] = "void" defs["ImDrawList_AddLine"][1]["signature"] = "(const ImVec2,const ImVec2,ImU32,float)" @@ -1479,7 +1479,7 @@ defs["ImDrawList_AddNgon"][1]["cimguiname"] = "ImDrawList_AddNgon" defs["ImDrawList_AddNgon"][1]["defaults"] = {} defs["ImDrawList_AddNgon"][1]["defaults"]["thickness"] = "1.0f" defs["ImDrawList_AddNgon"][1]["funcname"] = "AddNgon" -defs["ImDrawList_AddNgon"][1]["location"] = "imgui:2540" +defs["ImDrawList_AddNgon"][1]["location"] = "imgui:2550" defs["ImDrawList_AddNgon"][1]["ov_cimguiname"] = "ImDrawList_AddNgon" defs["ImDrawList_AddNgon"][1]["ret"] = "void" defs["ImDrawList_AddNgon"][1]["signature"] = "(const ImVec2,float,ImU32,int,float)" @@ -1509,7 +1509,7 @@ defs["ImDrawList_AddNgonFilled"][1]["call_args"] = "(center,radius,col,num_segme defs["ImDrawList_AddNgonFilled"][1]["cimguiname"] = "ImDrawList_AddNgonFilled" defs["ImDrawList_AddNgonFilled"][1]["defaults"] = {} defs["ImDrawList_AddNgonFilled"][1]["funcname"] = "AddNgonFilled" -defs["ImDrawList_AddNgonFilled"][1]["location"] = "imgui:2541" +defs["ImDrawList_AddNgonFilled"][1]["location"] = "imgui:2551" defs["ImDrawList_AddNgonFilled"][1]["ov_cimguiname"] = "ImDrawList_AddNgonFilled" defs["ImDrawList_AddNgonFilled"][1]["ret"] = "void" defs["ImDrawList_AddNgonFilled"][1]["signature"] = "(const ImVec2,float,ImU32,int)" @@ -1542,7 +1542,7 @@ defs["ImDrawList_AddPolyline"][1]["call_args"] = "(points,num_points,col,flags,t defs["ImDrawList_AddPolyline"][1]["cimguiname"] = "ImDrawList_AddPolyline" defs["ImDrawList_AddPolyline"][1]["defaults"] = {} defs["ImDrawList_AddPolyline"][1]["funcname"] = "AddPolyline" -defs["ImDrawList_AddPolyline"][1]["location"] = "imgui:2544" +defs["ImDrawList_AddPolyline"][1]["location"] = "imgui:2554" defs["ImDrawList_AddPolyline"][1]["ov_cimguiname"] = "ImDrawList_AddPolyline" defs["ImDrawList_AddPolyline"][1]["ret"] = "void" defs["ImDrawList_AddPolyline"][1]["signature"] = "(const ImVec2*,int,ImU32,ImDrawFlags,float)" @@ -1579,7 +1579,7 @@ defs["ImDrawList_AddQuad"][1]["cimguiname"] = "ImDrawList_AddQuad" defs["ImDrawList_AddQuad"][1]["defaults"] = {} defs["ImDrawList_AddQuad"][1]["defaults"]["thickness"] = "1.0f" defs["ImDrawList_AddQuad"][1]["funcname"] = "AddQuad" -defs["ImDrawList_AddQuad"][1]["location"] = "imgui:2534" +defs["ImDrawList_AddQuad"][1]["location"] = "imgui:2544" defs["ImDrawList_AddQuad"][1]["ov_cimguiname"] = "ImDrawList_AddQuad" defs["ImDrawList_AddQuad"][1]["ret"] = "void" defs["ImDrawList_AddQuad"][1]["signature"] = "(const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32,float)" @@ -1612,7 +1612,7 @@ defs["ImDrawList_AddQuadFilled"][1]["call_args"] = "(p1,p2,p3,p4,col)" defs["ImDrawList_AddQuadFilled"][1]["cimguiname"] = "ImDrawList_AddQuadFilled" defs["ImDrawList_AddQuadFilled"][1]["defaults"] = {} defs["ImDrawList_AddQuadFilled"][1]["funcname"] = "AddQuadFilled" -defs["ImDrawList_AddQuadFilled"][1]["location"] = "imgui:2535" +defs["ImDrawList_AddQuadFilled"][1]["location"] = "imgui:2545" defs["ImDrawList_AddQuadFilled"][1]["ov_cimguiname"] = "ImDrawList_AddQuadFilled" defs["ImDrawList_AddQuadFilled"][1]["ret"] = "void" defs["ImDrawList_AddQuadFilled"][1]["signature"] = "(const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32)" @@ -1651,7 +1651,7 @@ defs["ImDrawList_AddRect"][1]["defaults"]["flags"] = "0" defs["ImDrawList_AddRect"][1]["defaults"]["rounding"] = "0.0f" defs["ImDrawList_AddRect"][1]["defaults"]["thickness"] = "1.0f" defs["ImDrawList_AddRect"][1]["funcname"] = "AddRect" -defs["ImDrawList_AddRect"][1]["location"] = "imgui:2531" +defs["ImDrawList_AddRect"][1]["location"] = "imgui:2541" defs["ImDrawList_AddRect"][1]["ov_cimguiname"] = "ImDrawList_AddRect" defs["ImDrawList_AddRect"][1]["ret"] = "void" defs["ImDrawList_AddRect"][1]["signature"] = "(const ImVec2,const ImVec2,ImU32,float,ImDrawFlags,float)" @@ -1686,7 +1686,7 @@ defs["ImDrawList_AddRectFilled"][1]["defaults"] = {} defs["ImDrawList_AddRectFilled"][1]["defaults"]["flags"] = "0" defs["ImDrawList_AddRectFilled"][1]["defaults"]["rounding"] = "0.0f" defs["ImDrawList_AddRectFilled"][1]["funcname"] = "AddRectFilled" -defs["ImDrawList_AddRectFilled"][1]["location"] = "imgui:2532" +defs["ImDrawList_AddRectFilled"][1]["location"] = "imgui:2542" defs["ImDrawList_AddRectFilled"][1]["ov_cimguiname"] = "ImDrawList_AddRectFilled" defs["ImDrawList_AddRectFilled"][1]["ret"] = "void" defs["ImDrawList_AddRectFilled"][1]["signature"] = "(const ImVec2,const ImVec2,ImU32,float,ImDrawFlags)" @@ -1722,7 +1722,7 @@ defs["ImDrawList_AddRectFilledMultiColor"][1]["call_args"] = "(p_min,p_max,col_u defs["ImDrawList_AddRectFilledMultiColor"][1]["cimguiname"] = "ImDrawList_AddRectFilledMultiColor" defs["ImDrawList_AddRectFilledMultiColor"][1]["defaults"] = {} defs["ImDrawList_AddRectFilledMultiColor"][1]["funcname"] = "AddRectFilledMultiColor" -defs["ImDrawList_AddRectFilledMultiColor"][1]["location"] = "imgui:2533" +defs["ImDrawList_AddRectFilledMultiColor"][1]["location"] = "imgui:2543" defs["ImDrawList_AddRectFilledMultiColor"][1]["ov_cimguiname"] = "ImDrawList_AddRectFilledMultiColor" defs["ImDrawList_AddRectFilledMultiColor"][1]["ret"] = "void" defs["ImDrawList_AddRectFilledMultiColor"][1]["signature"] = "(const ImVec2,const ImVec2,ImU32,ImU32,ImU32,ImU32)" @@ -1753,7 +1753,7 @@ defs["ImDrawList_AddText"][1]["cimguiname"] = "ImDrawList_AddText" defs["ImDrawList_AddText"][1]["defaults"] = {} defs["ImDrawList_AddText"][1]["defaults"]["text_end"] = "NULL" defs["ImDrawList_AddText"][1]["funcname"] = "AddText" -defs["ImDrawList_AddText"][1]["location"] = "imgui:2542" +defs["ImDrawList_AddText"][1]["location"] = "imgui:2552" defs["ImDrawList_AddText"][1]["ov_cimguiname"] = "ImDrawList_AddTextVec2" defs["ImDrawList_AddText"][1]["ret"] = "void" defs["ImDrawList_AddText"][1]["signature"] = "(const ImVec2,ImU32,const char*,const char*)" @@ -1796,7 +1796,7 @@ defs["ImDrawList_AddText"][2]["defaults"]["cpu_fine_clip_rect"] = "NULL" defs["ImDrawList_AddText"][2]["defaults"]["text_end"] = "NULL" defs["ImDrawList_AddText"][2]["defaults"]["wrap_width"] = "0.0f" defs["ImDrawList_AddText"][2]["funcname"] = "AddText" -defs["ImDrawList_AddText"][2]["location"] = "imgui:2543" +defs["ImDrawList_AddText"][2]["location"] = "imgui:2553" defs["ImDrawList_AddText"][2]["ov_cimguiname"] = "ImDrawList_AddTextFontPtr" defs["ImDrawList_AddText"][2]["ret"] = "void" defs["ImDrawList_AddText"][2]["signature"] = "(const ImFont*,float,const ImVec2,ImU32,const char*,const char*,float,const ImVec4*)" @@ -1831,7 +1831,7 @@ defs["ImDrawList_AddTriangle"][1]["cimguiname"] = "ImDrawList_AddTriangle" defs["ImDrawList_AddTriangle"][1]["defaults"] = {} defs["ImDrawList_AddTriangle"][1]["defaults"]["thickness"] = "1.0f" defs["ImDrawList_AddTriangle"][1]["funcname"] = "AddTriangle" -defs["ImDrawList_AddTriangle"][1]["location"] = "imgui:2536" +defs["ImDrawList_AddTriangle"][1]["location"] = "imgui:2546" defs["ImDrawList_AddTriangle"][1]["ov_cimguiname"] = "ImDrawList_AddTriangle" defs["ImDrawList_AddTriangle"][1]["ret"] = "void" defs["ImDrawList_AddTriangle"][1]["signature"] = "(const ImVec2,const ImVec2,const ImVec2,ImU32,float)" @@ -1861,7 +1861,7 @@ defs["ImDrawList_AddTriangleFilled"][1]["call_args"] = "(p1,p2,p3,col)" defs["ImDrawList_AddTriangleFilled"][1]["cimguiname"] = "ImDrawList_AddTriangleFilled" defs["ImDrawList_AddTriangleFilled"][1]["defaults"] = {} defs["ImDrawList_AddTriangleFilled"][1]["funcname"] = "AddTriangleFilled" -defs["ImDrawList_AddTriangleFilled"][1]["location"] = "imgui:2537" +defs["ImDrawList_AddTriangleFilled"][1]["location"] = "imgui:2547" defs["ImDrawList_AddTriangleFilled"][1]["ov_cimguiname"] = "ImDrawList_AddTriangleFilled" defs["ImDrawList_AddTriangleFilled"][1]["ret"] = "void" defs["ImDrawList_AddTriangleFilled"][1]["signature"] = "(const ImVec2,const ImVec2,const ImVec2,ImU32)" @@ -1879,7 +1879,7 @@ defs["ImDrawList_ChannelsMerge"][1]["call_args"] = "()" defs["ImDrawList_ChannelsMerge"][1]["cimguiname"] = "ImDrawList_ChannelsMerge" defs["ImDrawList_ChannelsMerge"][1]["defaults"] = {} defs["ImDrawList_ChannelsMerge"][1]["funcname"] = "ChannelsMerge" -defs["ImDrawList_ChannelsMerge"][1]["location"] = "imgui:2581" +defs["ImDrawList_ChannelsMerge"][1]["location"] = "imgui:2591" defs["ImDrawList_ChannelsMerge"][1]["ov_cimguiname"] = "ImDrawList_ChannelsMerge" defs["ImDrawList_ChannelsMerge"][1]["ret"] = "void" defs["ImDrawList_ChannelsMerge"][1]["signature"] = "()" @@ -1900,7 +1900,7 @@ defs["ImDrawList_ChannelsSetCurrent"][1]["call_args"] = "(n)" defs["ImDrawList_ChannelsSetCurrent"][1]["cimguiname"] = "ImDrawList_ChannelsSetCurrent" defs["ImDrawList_ChannelsSetCurrent"][1]["defaults"] = {} defs["ImDrawList_ChannelsSetCurrent"][1]["funcname"] = "ChannelsSetCurrent" -defs["ImDrawList_ChannelsSetCurrent"][1]["location"] = "imgui:2582" +defs["ImDrawList_ChannelsSetCurrent"][1]["location"] = "imgui:2592" defs["ImDrawList_ChannelsSetCurrent"][1]["ov_cimguiname"] = "ImDrawList_ChannelsSetCurrent" defs["ImDrawList_ChannelsSetCurrent"][1]["ret"] = "void" defs["ImDrawList_ChannelsSetCurrent"][1]["signature"] = "(int)" @@ -1921,7 +1921,7 @@ defs["ImDrawList_ChannelsSplit"][1]["call_args"] = "(count)" defs["ImDrawList_ChannelsSplit"][1]["cimguiname"] = "ImDrawList_ChannelsSplit" defs["ImDrawList_ChannelsSplit"][1]["defaults"] = {} defs["ImDrawList_ChannelsSplit"][1]["funcname"] = "ChannelsSplit" -defs["ImDrawList_ChannelsSplit"][1]["location"] = "imgui:2580" +defs["ImDrawList_ChannelsSplit"][1]["location"] = "imgui:2590" defs["ImDrawList_ChannelsSplit"][1]["ov_cimguiname"] = "ImDrawList_ChannelsSplit" defs["ImDrawList_ChannelsSplit"][1]["ret"] = "void" defs["ImDrawList_ChannelsSplit"][1]["signature"] = "(int)" @@ -1939,7 +1939,7 @@ defs["ImDrawList_CloneOutput"][1]["call_args"] = "()" defs["ImDrawList_CloneOutput"][1]["cimguiname"] = "ImDrawList_CloneOutput" defs["ImDrawList_CloneOutput"][1]["defaults"] = {} defs["ImDrawList_CloneOutput"][1]["funcname"] = "CloneOutput" -defs["ImDrawList_CloneOutput"][1]["location"] = "imgui:2572" +defs["ImDrawList_CloneOutput"][1]["location"] = "imgui:2582" defs["ImDrawList_CloneOutput"][1]["ov_cimguiname"] = "ImDrawList_CloneOutput" defs["ImDrawList_CloneOutput"][1]["ret"] = "ImDrawList*" defs["ImDrawList_CloneOutput"][1]["signature"] = "()const" @@ -1960,7 +1960,7 @@ defs["ImDrawList_GetClipRectMax"][1]["call_args"] = "()" defs["ImDrawList_GetClipRectMax"][1]["cimguiname"] = "ImDrawList_GetClipRectMax" defs["ImDrawList_GetClipRectMax"][1]["defaults"] = {} defs["ImDrawList_GetClipRectMax"][1]["funcname"] = "GetClipRectMax" -defs["ImDrawList_GetClipRectMax"][1]["location"] = "imgui:2522" +defs["ImDrawList_GetClipRectMax"][1]["location"] = "imgui:2532" defs["ImDrawList_GetClipRectMax"][1]["nonUDT"] = 1 defs["ImDrawList_GetClipRectMax"][1]["ov_cimguiname"] = "ImDrawList_GetClipRectMax" defs["ImDrawList_GetClipRectMax"][1]["ret"] = "void" @@ -1982,7 +1982,7 @@ defs["ImDrawList_GetClipRectMin"][1]["call_args"] = "()" defs["ImDrawList_GetClipRectMin"][1]["cimguiname"] = "ImDrawList_GetClipRectMin" defs["ImDrawList_GetClipRectMin"][1]["defaults"] = {} defs["ImDrawList_GetClipRectMin"][1]["funcname"] = "GetClipRectMin" -defs["ImDrawList_GetClipRectMin"][1]["location"] = "imgui:2521" +defs["ImDrawList_GetClipRectMin"][1]["location"] = "imgui:2531" defs["ImDrawList_GetClipRectMin"][1]["nonUDT"] = 1 defs["ImDrawList_GetClipRectMin"][1]["ov_cimguiname"] = "ImDrawList_GetClipRectMin" defs["ImDrawList_GetClipRectMin"][1]["ret"] = "void" @@ -2002,7 +2002,7 @@ defs["ImDrawList_ImDrawList"][1]["cimguiname"] = "ImDrawList_ImDrawList" defs["ImDrawList_ImDrawList"][1]["constructor"] = true defs["ImDrawList_ImDrawList"][1]["defaults"] = {} defs["ImDrawList_ImDrawList"][1]["funcname"] = "ImDrawList" -defs["ImDrawList_ImDrawList"][1]["location"] = "imgui:2513" +defs["ImDrawList_ImDrawList"][1]["location"] = "imgui:2523" defs["ImDrawList_ImDrawList"][1]["ov_cimguiname"] = "ImDrawList_ImDrawList" defs["ImDrawList_ImDrawList"][1]["signature"] = "(const ImDrawListSharedData*)" defs["ImDrawList_ImDrawList"][1]["stname"] = "ImDrawList" @@ -2035,7 +2035,7 @@ defs["ImDrawList_PathArcTo"][1]["cimguiname"] = "ImDrawList_PathArcTo" defs["ImDrawList_PathArcTo"][1]["defaults"] = {} defs["ImDrawList_PathArcTo"][1]["defaults"]["num_segments"] = "0" defs["ImDrawList_PathArcTo"][1]["funcname"] = "PathArcTo" -defs["ImDrawList_PathArcTo"][1]["location"] = "imgui:2563" +defs["ImDrawList_PathArcTo"][1]["location"] = "imgui:2573" defs["ImDrawList_PathArcTo"][1]["ov_cimguiname"] = "ImDrawList_PathArcTo" defs["ImDrawList_PathArcTo"][1]["ret"] = "void" defs["ImDrawList_PathArcTo"][1]["signature"] = "(const ImVec2,float,float,float,int)" @@ -2065,7 +2065,7 @@ defs["ImDrawList_PathArcToFast"][1]["call_args"] = "(center,radius,a_min_of_12,a defs["ImDrawList_PathArcToFast"][1]["cimguiname"] = "ImDrawList_PathArcToFast" defs["ImDrawList_PathArcToFast"][1]["defaults"] = {} defs["ImDrawList_PathArcToFast"][1]["funcname"] = "PathArcToFast" -defs["ImDrawList_PathArcToFast"][1]["location"] = "imgui:2564" +defs["ImDrawList_PathArcToFast"][1]["location"] = "imgui:2574" defs["ImDrawList_PathArcToFast"][1]["ov_cimguiname"] = "ImDrawList_PathArcToFast" defs["ImDrawList_PathArcToFast"][1]["ret"] = "void" defs["ImDrawList_PathArcToFast"][1]["signature"] = "(const ImVec2,float,int,int)" @@ -2096,7 +2096,7 @@ defs["ImDrawList_PathBezierCubicCurveTo"][1]["cimguiname"] = "ImDrawList_PathBez defs["ImDrawList_PathBezierCubicCurveTo"][1]["defaults"] = {} defs["ImDrawList_PathBezierCubicCurveTo"][1]["defaults"]["num_segments"] = "0" defs["ImDrawList_PathBezierCubicCurveTo"][1]["funcname"] = "PathBezierCubicCurveTo" -defs["ImDrawList_PathBezierCubicCurveTo"][1]["location"] = "imgui:2565" +defs["ImDrawList_PathBezierCubicCurveTo"][1]["location"] = "imgui:2575" defs["ImDrawList_PathBezierCubicCurveTo"][1]["ov_cimguiname"] = "ImDrawList_PathBezierCubicCurveTo" defs["ImDrawList_PathBezierCubicCurveTo"][1]["ret"] = "void" defs["ImDrawList_PathBezierCubicCurveTo"][1]["signature"] = "(const ImVec2,const ImVec2,const ImVec2,int)" @@ -2124,7 +2124,7 @@ defs["ImDrawList_PathBezierQuadraticCurveTo"][1]["cimguiname"] = "ImDrawList_Pat defs["ImDrawList_PathBezierQuadraticCurveTo"][1]["defaults"] = {} defs["ImDrawList_PathBezierQuadraticCurveTo"][1]["defaults"]["num_segments"] = "0" defs["ImDrawList_PathBezierQuadraticCurveTo"][1]["funcname"] = "PathBezierQuadraticCurveTo" -defs["ImDrawList_PathBezierQuadraticCurveTo"][1]["location"] = "imgui:2566" +defs["ImDrawList_PathBezierQuadraticCurveTo"][1]["location"] = "imgui:2576" defs["ImDrawList_PathBezierQuadraticCurveTo"][1]["ov_cimguiname"] = "ImDrawList_PathBezierQuadraticCurveTo" defs["ImDrawList_PathBezierQuadraticCurveTo"][1]["ret"] = "void" defs["ImDrawList_PathBezierQuadraticCurveTo"][1]["signature"] = "(const ImVec2,const ImVec2,int)" @@ -2142,7 +2142,7 @@ defs["ImDrawList_PathClear"][1]["call_args"] = "()" defs["ImDrawList_PathClear"][1]["cimguiname"] = "ImDrawList_PathClear" defs["ImDrawList_PathClear"][1]["defaults"] = {} defs["ImDrawList_PathClear"][1]["funcname"] = "PathClear" -defs["ImDrawList_PathClear"][1]["location"] = "imgui:2558" +defs["ImDrawList_PathClear"][1]["location"] = "imgui:2568" defs["ImDrawList_PathClear"][1]["ov_cimguiname"] = "ImDrawList_PathClear" defs["ImDrawList_PathClear"][1]["ret"] = "void" defs["ImDrawList_PathClear"][1]["signature"] = "()" @@ -2163,7 +2163,7 @@ defs["ImDrawList_PathFillConvex"][1]["call_args"] = "(col)" defs["ImDrawList_PathFillConvex"][1]["cimguiname"] = "ImDrawList_PathFillConvex" defs["ImDrawList_PathFillConvex"][1]["defaults"] = {} defs["ImDrawList_PathFillConvex"][1]["funcname"] = "PathFillConvex" -defs["ImDrawList_PathFillConvex"][1]["location"] = "imgui:2561" +defs["ImDrawList_PathFillConvex"][1]["location"] = "imgui:2571" defs["ImDrawList_PathFillConvex"][1]["ov_cimguiname"] = "ImDrawList_PathFillConvex" defs["ImDrawList_PathFillConvex"][1]["ret"] = "void" defs["ImDrawList_PathFillConvex"][1]["signature"] = "(ImU32)" @@ -2184,7 +2184,7 @@ defs["ImDrawList_PathLineTo"][1]["call_args"] = "(pos)" defs["ImDrawList_PathLineTo"][1]["cimguiname"] = "ImDrawList_PathLineTo" defs["ImDrawList_PathLineTo"][1]["defaults"] = {} defs["ImDrawList_PathLineTo"][1]["funcname"] = "PathLineTo" -defs["ImDrawList_PathLineTo"][1]["location"] = "imgui:2559" +defs["ImDrawList_PathLineTo"][1]["location"] = "imgui:2569" defs["ImDrawList_PathLineTo"][1]["ov_cimguiname"] = "ImDrawList_PathLineTo" defs["ImDrawList_PathLineTo"][1]["ret"] = "void" defs["ImDrawList_PathLineTo"][1]["signature"] = "(const ImVec2)" @@ -2205,7 +2205,7 @@ defs["ImDrawList_PathLineToMergeDuplicate"][1]["call_args"] = "(pos)" defs["ImDrawList_PathLineToMergeDuplicate"][1]["cimguiname"] = "ImDrawList_PathLineToMergeDuplicate" defs["ImDrawList_PathLineToMergeDuplicate"][1]["defaults"] = {} defs["ImDrawList_PathLineToMergeDuplicate"][1]["funcname"] = "PathLineToMergeDuplicate" -defs["ImDrawList_PathLineToMergeDuplicate"][1]["location"] = "imgui:2560" +defs["ImDrawList_PathLineToMergeDuplicate"][1]["location"] = "imgui:2570" defs["ImDrawList_PathLineToMergeDuplicate"][1]["ov_cimguiname"] = "ImDrawList_PathLineToMergeDuplicate" defs["ImDrawList_PathLineToMergeDuplicate"][1]["ret"] = "void" defs["ImDrawList_PathLineToMergeDuplicate"][1]["signature"] = "(const ImVec2)" @@ -2237,7 +2237,7 @@ defs["ImDrawList_PathRect"][1]["defaults"] = {} defs["ImDrawList_PathRect"][1]["defaults"]["flags"] = "0" defs["ImDrawList_PathRect"][1]["defaults"]["rounding"] = "0.0f" defs["ImDrawList_PathRect"][1]["funcname"] = "PathRect" -defs["ImDrawList_PathRect"][1]["location"] = "imgui:2567" +defs["ImDrawList_PathRect"][1]["location"] = "imgui:2577" defs["ImDrawList_PathRect"][1]["ov_cimguiname"] = "ImDrawList_PathRect" defs["ImDrawList_PathRect"][1]["ret"] = "void" defs["ImDrawList_PathRect"][1]["signature"] = "(const ImVec2,const ImVec2,float,ImDrawFlags)" @@ -2266,7 +2266,7 @@ defs["ImDrawList_PathStroke"][1]["defaults"] = {} defs["ImDrawList_PathStroke"][1]["defaults"]["flags"] = "0" defs["ImDrawList_PathStroke"][1]["defaults"]["thickness"] = "1.0f" defs["ImDrawList_PathStroke"][1]["funcname"] = "PathStroke" -defs["ImDrawList_PathStroke"][1]["location"] = "imgui:2562" +defs["ImDrawList_PathStroke"][1]["location"] = "imgui:2572" defs["ImDrawList_PathStroke"][1]["ov_cimguiname"] = "ImDrawList_PathStroke" defs["ImDrawList_PathStroke"][1]["ret"] = "void" defs["ImDrawList_PathStroke"][1]["signature"] = "(ImU32,ImDrawFlags,float)" @@ -2284,7 +2284,7 @@ defs["ImDrawList_PopClipRect"][1]["call_args"] = "()" defs["ImDrawList_PopClipRect"][1]["cimguiname"] = "ImDrawList_PopClipRect" defs["ImDrawList_PopClipRect"][1]["defaults"] = {} defs["ImDrawList_PopClipRect"][1]["funcname"] = "PopClipRect" -defs["ImDrawList_PopClipRect"][1]["location"] = "imgui:2518" +defs["ImDrawList_PopClipRect"][1]["location"] = "imgui:2528" defs["ImDrawList_PopClipRect"][1]["ov_cimguiname"] = "ImDrawList_PopClipRect" defs["ImDrawList_PopClipRect"][1]["ret"] = "void" defs["ImDrawList_PopClipRect"][1]["signature"] = "()" @@ -2302,7 +2302,7 @@ defs["ImDrawList_PopTextureID"][1]["call_args"] = "()" defs["ImDrawList_PopTextureID"][1]["cimguiname"] = "ImDrawList_PopTextureID" defs["ImDrawList_PopTextureID"][1]["defaults"] = {} defs["ImDrawList_PopTextureID"][1]["funcname"] = "PopTextureID" -defs["ImDrawList_PopTextureID"][1]["location"] = "imgui:2520" +defs["ImDrawList_PopTextureID"][1]["location"] = "imgui:2530" defs["ImDrawList_PopTextureID"][1]["ov_cimguiname"] = "ImDrawList_PopTextureID" defs["ImDrawList_PopTextureID"][1]["ret"] = "void" defs["ImDrawList_PopTextureID"][1]["signature"] = "()" @@ -2347,7 +2347,7 @@ defs["ImDrawList_PrimQuadUV"][1]["call_args"] = "(a,b,c,d,uv_a,uv_b,uv_c,uv_d,co defs["ImDrawList_PrimQuadUV"][1]["cimguiname"] = "ImDrawList_PrimQuadUV" defs["ImDrawList_PrimQuadUV"][1]["defaults"] = {} defs["ImDrawList_PrimQuadUV"][1]["funcname"] = "PrimQuadUV" -defs["ImDrawList_PrimQuadUV"][1]["location"] = "imgui:2591" +defs["ImDrawList_PrimQuadUV"][1]["location"] = "imgui:2601" defs["ImDrawList_PrimQuadUV"][1]["ov_cimguiname"] = "ImDrawList_PrimQuadUV" defs["ImDrawList_PrimQuadUV"][1]["ret"] = "void" defs["ImDrawList_PrimQuadUV"][1]["signature"] = "(const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32)" @@ -2374,7 +2374,7 @@ defs["ImDrawList_PrimRect"][1]["call_args"] = "(a,b,col)" defs["ImDrawList_PrimRect"][1]["cimguiname"] = "ImDrawList_PrimRect" defs["ImDrawList_PrimRect"][1]["defaults"] = {} defs["ImDrawList_PrimRect"][1]["funcname"] = "PrimRect" -defs["ImDrawList_PrimRect"][1]["location"] = "imgui:2589" +defs["ImDrawList_PrimRect"][1]["location"] = "imgui:2599" defs["ImDrawList_PrimRect"][1]["ov_cimguiname"] = "ImDrawList_PrimRect" defs["ImDrawList_PrimRect"][1]["ret"] = "void" defs["ImDrawList_PrimRect"][1]["signature"] = "(const ImVec2,const ImVec2,ImU32)" @@ -2407,7 +2407,7 @@ defs["ImDrawList_PrimRectUV"][1]["call_args"] = "(a,b,uv_a,uv_b,col)" defs["ImDrawList_PrimRectUV"][1]["cimguiname"] = "ImDrawList_PrimRectUV" defs["ImDrawList_PrimRectUV"][1]["defaults"] = {} defs["ImDrawList_PrimRectUV"][1]["funcname"] = "PrimRectUV" -defs["ImDrawList_PrimRectUV"][1]["location"] = "imgui:2590" +defs["ImDrawList_PrimRectUV"][1]["location"] = "imgui:2600" defs["ImDrawList_PrimRectUV"][1]["ov_cimguiname"] = "ImDrawList_PrimRectUV" defs["ImDrawList_PrimRectUV"][1]["ret"] = "void" defs["ImDrawList_PrimRectUV"][1]["signature"] = "(const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32)" @@ -2431,7 +2431,7 @@ defs["ImDrawList_PrimReserve"][1]["call_args"] = "(idx_count,vtx_count)" defs["ImDrawList_PrimReserve"][1]["cimguiname"] = "ImDrawList_PrimReserve" defs["ImDrawList_PrimReserve"][1]["defaults"] = {} defs["ImDrawList_PrimReserve"][1]["funcname"] = "PrimReserve" -defs["ImDrawList_PrimReserve"][1]["location"] = "imgui:2587" +defs["ImDrawList_PrimReserve"][1]["location"] = "imgui:2597" defs["ImDrawList_PrimReserve"][1]["ov_cimguiname"] = "ImDrawList_PrimReserve" defs["ImDrawList_PrimReserve"][1]["ret"] = "void" defs["ImDrawList_PrimReserve"][1]["signature"] = "(int,int)" @@ -2455,7 +2455,7 @@ defs["ImDrawList_PrimUnreserve"][1]["call_args"] = "(idx_count,vtx_count)" defs["ImDrawList_PrimUnreserve"][1]["cimguiname"] = "ImDrawList_PrimUnreserve" defs["ImDrawList_PrimUnreserve"][1]["defaults"] = {} defs["ImDrawList_PrimUnreserve"][1]["funcname"] = "PrimUnreserve" -defs["ImDrawList_PrimUnreserve"][1]["location"] = "imgui:2588" +defs["ImDrawList_PrimUnreserve"][1]["location"] = "imgui:2598" defs["ImDrawList_PrimUnreserve"][1]["ov_cimguiname"] = "ImDrawList_PrimUnreserve" defs["ImDrawList_PrimUnreserve"][1]["ret"] = "void" defs["ImDrawList_PrimUnreserve"][1]["signature"] = "(int,int)" @@ -2482,7 +2482,7 @@ defs["ImDrawList_PrimVtx"][1]["call_args"] = "(pos,uv,col)" defs["ImDrawList_PrimVtx"][1]["cimguiname"] = "ImDrawList_PrimVtx" defs["ImDrawList_PrimVtx"][1]["defaults"] = {} defs["ImDrawList_PrimVtx"][1]["funcname"] = "PrimVtx" -defs["ImDrawList_PrimVtx"][1]["location"] = "imgui:2594" +defs["ImDrawList_PrimVtx"][1]["location"] = "imgui:2604" defs["ImDrawList_PrimVtx"][1]["ov_cimguiname"] = "ImDrawList_PrimVtx" defs["ImDrawList_PrimVtx"][1]["ret"] = "void" defs["ImDrawList_PrimVtx"][1]["signature"] = "(const ImVec2,const ImVec2,ImU32)" @@ -2503,7 +2503,7 @@ defs["ImDrawList_PrimWriteIdx"][1]["call_args"] = "(idx)" defs["ImDrawList_PrimWriteIdx"][1]["cimguiname"] = "ImDrawList_PrimWriteIdx" defs["ImDrawList_PrimWriteIdx"][1]["defaults"] = {} defs["ImDrawList_PrimWriteIdx"][1]["funcname"] = "PrimWriteIdx" -defs["ImDrawList_PrimWriteIdx"][1]["location"] = "imgui:2593" +defs["ImDrawList_PrimWriteIdx"][1]["location"] = "imgui:2603" defs["ImDrawList_PrimWriteIdx"][1]["ov_cimguiname"] = "ImDrawList_PrimWriteIdx" defs["ImDrawList_PrimWriteIdx"][1]["ret"] = "void" defs["ImDrawList_PrimWriteIdx"][1]["signature"] = "(ImDrawIdx)" @@ -2530,7 +2530,7 @@ defs["ImDrawList_PrimWriteVtx"][1]["call_args"] = "(pos,uv,col)" defs["ImDrawList_PrimWriteVtx"][1]["cimguiname"] = "ImDrawList_PrimWriteVtx" defs["ImDrawList_PrimWriteVtx"][1]["defaults"] = {} defs["ImDrawList_PrimWriteVtx"][1]["funcname"] = "PrimWriteVtx" -defs["ImDrawList_PrimWriteVtx"][1]["location"] = "imgui:2592" +defs["ImDrawList_PrimWriteVtx"][1]["location"] = "imgui:2602" defs["ImDrawList_PrimWriteVtx"][1]["ov_cimguiname"] = "ImDrawList_PrimWriteVtx" defs["ImDrawList_PrimWriteVtx"][1]["ret"] = "void" defs["ImDrawList_PrimWriteVtx"][1]["signature"] = "(const ImVec2,const ImVec2,ImU32)" @@ -2558,7 +2558,7 @@ defs["ImDrawList_PushClipRect"][1]["cimguiname"] = "ImDrawList_PushClipRect" defs["ImDrawList_PushClipRect"][1]["defaults"] = {} defs["ImDrawList_PushClipRect"][1]["defaults"]["intersect_with_current_clip_rect"] = "false" defs["ImDrawList_PushClipRect"][1]["funcname"] = "PushClipRect" -defs["ImDrawList_PushClipRect"][1]["location"] = "imgui:2516" +defs["ImDrawList_PushClipRect"][1]["location"] = "imgui:2526" defs["ImDrawList_PushClipRect"][1]["ov_cimguiname"] = "ImDrawList_PushClipRect" defs["ImDrawList_PushClipRect"][1]["ret"] = "void" defs["ImDrawList_PushClipRect"][1]["signature"] = "(ImVec2,ImVec2,bool)" @@ -2576,7 +2576,7 @@ defs["ImDrawList_PushClipRectFullScreen"][1]["call_args"] = "()" defs["ImDrawList_PushClipRectFullScreen"][1]["cimguiname"] = "ImDrawList_PushClipRectFullScreen" defs["ImDrawList_PushClipRectFullScreen"][1]["defaults"] = {} defs["ImDrawList_PushClipRectFullScreen"][1]["funcname"] = "PushClipRectFullScreen" -defs["ImDrawList_PushClipRectFullScreen"][1]["location"] = "imgui:2517" +defs["ImDrawList_PushClipRectFullScreen"][1]["location"] = "imgui:2527" defs["ImDrawList_PushClipRectFullScreen"][1]["ov_cimguiname"] = "ImDrawList_PushClipRectFullScreen" defs["ImDrawList_PushClipRectFullScreen"][1]["ret"] = "void" defs["ImDrawList_PushClipRectFullScreen"][1]["signature"] = "()" @@ -2597,7 +2597,7 @@ defs["ImDrawList_PushTextureID"][1]["call_args"] = "(texture_id)" defs["ImDrawList_PushTextureID"][1]["cimguiname"] = "ImDrawList_PushTextureID" defs["ImDrawList_PushTextureID"][1]["defaults"] = {} defs["ImDrawList_PushTextureID"][1]["funcname"] = "PushTextureID" -defs["ImDrawList_PushTextureID"][1]["location"] = "imgui:2519" +defs["ImDrawList_PushTextureID"][1]["location"] = "imgui:2529" defs["ImDrawList_PushTextureID"][1]["ov_cimguiname"] = "ImDrawList_PushTextureID" defs["ImDrawList_PushTextureID"][1]["ret"] = "void" defs["ImDrawList_PushTextureID"][1]["signature"] = "(ImTextureID)" @@ -2618,7 +2618,7 @@ defs["ImDrawList__CalcCircleAutoSegmentCount"][1]["call_args"] = "(radius)" defs["ImDrawList__CalcCircleAutoSegmentCount"][1]["cimguiname"] = "ImDrawList__CalcCircleAutoSegmentCount" defs["ImDrawList__CalcCircleAutoSegmentCount"][1]["defaults"] = {} defs["ImDrawList__CalcCircleAutoSegmentCount"][1]["funcname"] = "_CalcCircleAutoSegmentCount" -defs["ImDrawList__CalcCircleAutoSegmentCount"][1]["location"] = "imgui:2609" +defs["ImDrawList__CalcCircleAutoSegmentCount"][1]["location"] = "imgui:2619" defs["ImDrawList__CalcCircleAutoSegmentCount"][1]["ov_cimguiname"] = "ImDrawList__CalcCircleAutoSegmentCount" defs["ImDrawList__CalcCircleAutoSegmentCount"][1]["ret"] = "int" defs["ImDrawList__CalcCircleAutoSegmentCount"][1]["signature"] = "(float)const" @@ -2636,7 +2636,7 @@ defs["ImDrawList__ClearFreeMemory"][1]["call_args"] = "()" defs["ImDrawList__ClearFreeMemory"][1]["cimguiname"] = "ImDrawList__ClearFreeMemory" defs["ImDrawList__ClearFreeMemory"][1]["defaults"] = {} defs["ImDrawList__ClearFreeMemory"][1]["funcname"] = "_ClearFreeMemory" -defs["ImDrawList__ClearFreeMemory"][1]["location"] = "imgui:2603" +defs["ImDrawList__ClearFreeMemory"][1]["location"] = "imgui:2613" defs["ImDrawList__ClearFreeMemory"][1]["ov_cimguiname"] = "ImDrawList__ClearFreeMemory" defs["ImDrawList__ClearFreeMemory"][1]["ret"] = "void" defs["ImDrawList__ClearFreeMemory"][1]["signature"] = "()" @@ -2654,7 +2654,7 @@ defs["ImDrawList__OnChangedClipRect"][1]["call_args"] = "()" defs["ImDrawList__OnChangedClipRect"][1]["cimguiname"] = "ImDrawList__OnChangedClipRect" defs["ImDrawList__OnChangedClipRect"][1]["defaults"] = {} defs["ImDrawList__OnChangedClipRect"][1]["funcname"] = "_OnChangedClipRect" -defs["ImDrawList__OnChangedClipRect"][1]["location"] = "imgui:2606" +defs["ImDrawList__OnChangedClipRect"][1]["location"] = "imgui:2616" defs["ImDrawList__OnChangedClipRect"][1]["ov_cimguiname"] = "ImDrawList__OnChangedClipRect" defs["ImDrawList__OnChangedClipRect"][1]["ret"] = "void" defs["ImDrawList__OnChangedClipRect"][1]["signature"] = "()" @@ -2672,7 +2672,7 @@ defs["ImDrawList__OnChangedTextureID"][1]["call_args"] = "()" defs["ImDrawList__OnChangedTextureID"][1]["cimguiname"] = "ImDrawList__OnChangedTextureID" defs["ImDrawList__OnChangedTextureID"][1]["defaults"] = {} defs["ImDrawList__OnChangedTextureID"][1]["funcname"] = "_OnChangedTextureID" -defs["ImDrawList__OnChangedTextureID"][1]["location"] = "imgui:2607" +defs["ImDrawList__OnChangedTextureID"][1]["location"] = "imgui:2617" defs["ImDrawList__OnChangedTextureID"][1]["ov_cimguiname"] = "ImDrawList__OnChangedTextureID" defs["ImDrawList__OnChangedTextureID"][1]["ret"] = "void" defs["ImDrawList__OnChangedTextureID"][1]["signature"] = "()" @@ -2690,7 +2690,7 @@ defs["ImDrawList__OnChangedVtxOffset"][1]["call_args"] = "()" defs["ImDrawList__OnChangedVtxOffset"][1]["cimguiname"] = "ImDrawList__OnChangedVtxOffset" defs["ImDrawList__OnChangedVtxOffset"][1]["defaults"] = {} defs["ImDrawList__OnChangedVtxOffset"][1]["funcname"] = "_OnChangedVtxOffset" -defs["ImDrawList__OnChangedVtxOffset"][1]["location"] = "imgui:2608" +defs["ImDrawList__OnChangedVtxOffset"][1]["location"] = "imgui:2618" defs["ImDrawList__OnChangedVtxOffset"][1]["ov_cimguiname"] = "ImDrawList__OnChangedVtxOffset" defs["ImDrawList__OnChangedVtxOffset"][1]["ret"] = "void" defs["ImDrawList__OnChangedVtxOffset"][1]["signature"] = "()" @@ -2723,7 +2723,7 @@ defs["ImDrawList__PathArcToFastEx"][1]["call_args"] = "(center,radius,a_min_samp defs["ImDrawList__PathArcToFastEx"][1]["cimguiname"] = "ImDrawList__PathArcToFastEx" defs["ImDrawList__PathArcToFastEx"][1]["defaults"] = {} defs["ImDrawList__PathArcToFastEx"][1]["funcname"] = "_PathArcToFastEx" -defs["ImDrawList__PathArcToFastEx"][1]["location"] = "imgui:2610" +defs["ImDrawList__PathArcToFastEx"][1]["location"] = "imgui:2620" defs["ImDrawList__PathArcToFastEx"][1]["ov_cimguiname"] = "ImDrawList__PathArcToFastEx" defs["ImDrawList__PathArcToFastEx"][1]["ret"] = "void" defs["ImDrawList__PathArcToFastEx"][1]["signature"] = "(const ImVec2,float,int,int,int)" @@ -2756,7 +2756,7 @@ defs["ImDrawList__PathArcToN"][1]["call_args"] = "(center,radius,a_min,a_max,num defs["ImDrawList__PathArcToN"][1]["cimguiname"] = "ImDrawList__PathArcToN" defs["ImDrawList__PathArcToN"][1]["defaults"] = {} defs["ImDrawList__PathArcToN"][1]["funcname"] = "_PathArcToN" -defs["ImDrawList__PathArcToN"][1]["location"] = "imgui:2611" +defs["ImDrawList__PathArcToN"][1]["location"] = "imgui:2621" defs["ImDrawList__PathArcToN"][1]["ov_cimguiname"] = "ImDrawList__PathArcToN" defs["ImDrawList__PathArcToN"][1]["ret"] = "void" defs["ImDrawList__PathArcToN"][1]["signature"] = "(const ImVec2,float,float,float,int)" @@ -2774,7 +2774,7 @@ defs["ImDrawList__PopUnusedDrawCmd"][1]["call_args"] = "()" defs["ImDrawList__PopUnusedDrawCmd"][1]["cimguiname"] = "ImDrawList__PopUnusedDrawCmd" defs["ImDrawList__PopUnusedDrawCmd"][1]["defaults"] = {} defs["ImDrawList__PopUnusedDrawCmd"][1]["funcname"] = "_PopUnusedDrawCmd" -defs["ImDrawList__PopUnusedDrawCmd"][1]["location"] = "imgui:2604" +defs["ImDrawList__PopUnusedDrawCmd"][1]["location"] = "imgui:2614" defs["ImDrawList__PopUnusedDrawCmd"][1]["ov_cimguiname"] = "ImDrawList__PopUnusedDrawCmd" defs["ImDrawList__PopUnusedDrawCmd"][1]["ret"] = "void" defs["ImDrawList__PopUnusedDrawCmd"][1]["signature"] = "()" @@ -2792,7 +2792,7 @@ defs["ImDrawList__ResetForNewFrame"][1]["call_args"] = "()" defs["ImDrawList__ResetForNewFrame"][1]["cimguiname"] = "ImDrawList__ResetForNewFrame" defs["ImDrawList__ResetForNewFrame"][1]["defaults"] = {} defs["ImDrawList__ResetForNewFrame"][1]["funcname"] = "_ResetForNewFrame" -defs["ImDrawList__ResetForNewFrame"][1]["location"] = "imgui:2602" +defs["ImDrawList__ResetForNewFrame"][1]["location"] = "imgui:2612" defs["ImDrawList__ResetForNewFrame"][1]["ov_cimguiname"] = "ImDrawList__ResetForNewFrame" defs["ImDrawList__ResetForNewFrame"][1]["ret"] = "void" defs["ImDrawList__ResetForNewFrame"][1]["signature"] = "()" @@ -2810,7 +2810,7 @@ defs["ImDrawList__TryMergeDrawCmds"][1]["call_args"] = "()" defs["ImDrawList__TryMergeDrawCmds"][1]["cimguiname"] = "ImDrawList__TryMergeDrawCmds" defs["ImDrawList__TryMergeDrawCmds"][1]["defaults"] = {} defs["ImDrawList__TryMergeDrawCmds"][1]["funcname"] = "_TryMergeDrawCmds" -defs["ImDrawList__TryMergeDrawCmds"][1]["location"] = "imgui:2605" +defs["ImDrawList__TryMergeDrawCmds"][1]["location"] = "imgui:2615" defs["ImDrawList__TryMergeDrawCmds"][1]["ov_cimguiname"] = "ImDrawList__TryMergeDrawCmds" defs["ImDrawList__TryMergeDrawCmds"][1]["ret"] = "void" defs["ImDrawList__TryMergeDrawCmds"][1]["signature"] = "()" @@ -2827,7 +2827,7 @@ defs["ImDrawList_destroy"][1]["call_args"] = "(self)" defs["ImDrawList_destroy"][1]["cimguiname"] = "ImDrawList_destroy" defs["ImDrawList_destroy"][1]["defaults"] = {} defs["ImDrawList_destroy"][1]["destructor"] = true -defs["ImDrawList_destroy"][1]["location"] = "imgui:2515" +defs["ImDrawList_destroy"][1]["location"] = "imgui:2525" defs["ImDrawList_destroy"][1]["ov_cimguiname"] = "ImDrawList_destroy" defs["ImDrawList_destroy"][1]["realdestructor"] = true defs["ImDrawList_destroy"][1]["ret"] = "void" @@ -2844,7 +2844,7 @@ defs["ImFontAtlasCustomRect_ImFontAtlasCustomRect"][1]["cimguiname"] = "ImFontAt defs["ImFontAtlasCustomRect_ImFontAtlasCustomRect"][1]["constructor"] = true defs["ImFontAtlasCustomRect_ImFontAtlasCustomRect"][1]["defaults"] = {} defs["ImFontAtlasCustomRect_ImFontAtlasCustomRect"][1]["funcname"] = "ImFontAtlasCustomRect" -defs["ImFontAtlasCustomRect_ImFontAtlasCustomRect"][1]["location"] = "imgui:2704" +defs["ImFontAtlasCustomRect_ImFontAtlasCustomRect"][1]["location"] = "imgui:2714" defs["ImFontAtlasCustomRect_ImFontAtlasCustomRect"][1]["ov_cimguiname"] = "ImFontAtlasCustomRect_ImFontAtlasCustomRect" defs["ImFontAtlasCustomRect_ImFontAtlasCustomRect"][1]["signature"] = "()" defs["ImFontAtlasCustomRect_ImFontAtlasCustomRect"][1]["stname"] = "ImFontAtlasCustomRect" @@ -2861,7 +2861,7 @@ defs["ImFontAtlasCustomRect_IsPacked"][1]["call_args"] = "()" defs["ImFontAtlasCustomRect_IsPacked"][1]["cimguiname"] = "ImFontAtlasCustomRect_IsPacked" defs["ImFontAtlasCustomRect_IsPacked"][1]["defaults"] = {} defs["ImFontAtlasCustomRect_IsPacked"][1]["funcname"] = "IsPacked" -defs["ImFontAtlasCustomRect_IsPacked"][1]["location"] = "imgui:2705" +defs["ImFontAtlasCustomRect_IsPacked"][1]["location"] = "imgui:2715" defs["ImFontAtlasCustomRect_IsPacked"][1]["ov_cimguiname"] = "ImFontAtlasCustomRect_IsPacked" defs["ImFontAtlasCustomRect_IsPacked"][1]["ret"] = "bool" defs["ImFontAtlasCustomRect_IsPacked"][1]["signature"] = "()const" @@ -2914,7 +2914,7 @@ defs["ImFontAtlas_AddCustomRectFontGlyph"][1]["cimguiname"] = "ImFontAtlas_AddCu defs["ImFontAtlas_AddCustomRectFontGlyph"][1]["defaults"] = {} defs["ImFontAtlas_AddCustomRectFontGlyph"][1]["defaults"]["offset"] = "ImVec2(0,0)" defs["ImFontAtlas_AddCustomRectFontGlyph"][1]["funcname"] = "AddCustomRectFontGlyph" -defs["ImFontAtlas_AddCustomRectFontGlyph"][1]["location"] = "imgui:2788" +defs["ImFontAtlas_AddCustomRectFontGlyph"][1]["location"] = "imgui:2798" defs["ImFontAtlas_AddCustomRectFontGlyph"][1]["ov_cimguiname"] = "ImFontAtlas_AddCustomRectFontGlyph" defs["ImFontAtlas_AddCustomRectFontGlyph"][1]["ret"] = "int" defs["ImFontAtlas_AddCustomRectFontGlyph"][1]["signature"] = "(ImFont*,ImWchar,int,int,float,const ImVec2)" @@ -2938,7 +2938,7 @@ defs["ImFontAtlas_AddCustomRectRegular"][1]["call_args"] = "(width,height)" defs["ImFontAtlas_AddCustomRectRegular"][1]["cimguiname"] = "ImFontAtlas_AddCustomRectRegular" defs["ImFontAtlas_AddCustomRectRegular"][1]["defaults"] = {} defs["ImFontAtlas_AddCustomRectRegular"][1]["funcname"] = "AddCustomRectRegular" -defs["ImFontAtlas_AddCustomRectRegular"][1]["location"] = "imgui:2787" +defs["ImFontAtlas_AddCustomRectRegular"][1]["location"] = "imgui:2797" defs["ImFontAtlas_AddCustomRectRegular"][1]["ov_cimguiname"] = "ImFontAtlas_AddCustomRectRegular" defs["ImFontAtlas_AddCustomRectRegular"][1]["ret"] = "int" defs["ImFontAtlas_AddCustomRectRegular"][1]["signature"] = "(int,int)" @@ -2959,7 +2959,7 @@ defs["ImFontAtlas_AddFont"][1]["call_args"] = "(font_cfg)" defs["ImFontAtlas_AddFont"][1]["cimguiname"] = "ImFontAtlas_AddFont" defs["ImFontAtlas_AddFont"][1]["defaults"] = {} defs["ImFontAtlas_AddFont"][1]["funcname"] = "AddFont" -defs["ImFontAtlas_AddFont"][1]["location"] = "imgui:2738" +defs["ImFontAtlas_AddFont"][1]["location"] = "imgui:2748" defs["ImFontAtlas_AddFont"][1]["ov_cimguiname"] = "ImFontAtlas_AddFont" defs["ImFontAtlas_AddFont"][1]["ret"] = "ImFont*" defs["ImFontAtlas_AddFont"][1]["signature"] = "(const ImFontConfig*)" @@ -2981,7 +2981,7 @@ defs["ImFontAtlas_AddFontDefault"][1]["cimguiname"] = "ImFontAtlas_AddFontDefaul defs["ImFontAtlas_AddFontDefault"][1]["defaults"] = {} defs["ImFontAtlas_AddFontDefault"][1]["defaults"]["font_cfg"] = "NULL" defs["ImFontAtlas_AddFontDefault"][1]["funcname"] = "AddFontDefault" -defs["ImFontAtlas_AddFontDefault"][1]["location"] = "imgui:2739" +defs["ImFontAtlas_AddFontDefault"][1]["location"] = "imgui:2749" defs["ImFontAtlas_AddFontDefault"][1]["ov_cimguiname"] = "ImFontAtlas_AddFontDefault" defs["ImFontAtlas_AddFontDefault"][1]["ret"] = "ImFont*" defs["ImFontAtlas_AddFontDefault"][1]["signature"] = "(const ImFontConfig*)" @@ -3013,7 +3013,7 @@ defs["ImFontAtlas_AddFontFromFileTTF"][1]["defaults"] = {} defs["ImFontAtlas_AddFontFromFileTTF"][1]["defaults"]["font_cfg"] = "NULL" defs["ImFontAtlas_AddFontFromFileTTF"][1]["defaults"]["glyph_ranges"] = "NULL" defs["ImFontAtlas_AddFontFromFileTTF"][1]["funcname"] = "AddFontFromFileTTF" -defs["ImFontAtlas_AddFontFromFileTTF"][1]["location"] = "imgui:2740" +defs["ImFontAtlas_AddFontFromFileTTF"][1]["location"] = "imgui:2750" defs["ImFontAtlas_AddFontFromFileTTF"][1]["ov_cimguiname"] = "ImFontAtlas_AddFontFromFileTTF" defs["ImFontAtlas_AddFontFromFileTTF"][1]["ret"] = "ImFont*" defs["ImFontAtlas_AddFontFromFileTTF"][1]["signature"] = "(const char*,float,const ImFontConfig*,const ImWchar*)" @@ -3045,7 +3045,7 @@ defs["ImFontAtlas_AddFontFromMemoryCompressedBase85TTF"][1]["defaults"] = {} defs["ImFontAtlas_AddFontFromMemoryCompressedBase85TTF"][1]["defaults"]["font_cfg"] = "NULL" defs["ImFontAtlas_AddFontFromMemoryCompressedBase85TTF"][1]["defaults"]["glyph_ranges"] = "NULL" defs["ImFontAtlas_AddFontFromMemoryCompressedBase85TTF"][1]["funcname"] = "AddFontFromMemoryCompressedBase85TTF" -defs["ImFontAtlas_AddFontFromMemoryCompressedBase85TTF"][1]["location"] = "imgui:2743" +defs["ImFontAtlas_AddFontFromMemoryCompressedBase85TTF"][1]["location"] = "imgui:2753" defs["ImFontAtlas_AddFontFromMemoryCompressedBase85TTF"][1]["ov_cimguiname"] = "ImFontAtlas_AddFontFromMemoryCompressedBase85TTF" defs["ImFontAtlas_AddFontFromMemoryCompressedBase85TTF"][1]["ret"] = "ImFont*" defs["ImFontAtlas_AddFontFromMemoryCompressedBase85TTF"][1]["signature"] = "(const char*,float,const ImFontConfig*,const ImWchar*)" @@ -3080,7 +3080,7 @@ defs["ImFontAtlas_AddFontFromMemoryCompressedTTF"][1]["defaults"] = {} defs["ImFontAtlas_AddFontFromMemoryCompressedTTF"][1]["defaults"]["font_cfg"] = "NULL" defs["ImFontAtlas_AddFontFromMemoryCompressedTTF"][1]["defaults"]["glyph_ranges"] = "NULL" defs["ImFontAtlas_AddFontFromMemoryCompressedTTF"][1]["funcname"] = "AddFontFromMemoryCompressedTTF" -defs["ImFontAtlas_AddFontFromMemoryCompressedTTF"][1]["location"] = "imgui:2742" +defs["ImFontAtlas_AddFontFromMemoryCompressedTTF"][1]["location"] = "imgui:2752" defs["ImFontAtlas_AddFontFromMemoryCompressedTTF"][1]["ov_cimguiname"] = "ImFontAtlas_AddFontFromMemoryCompressedTTF" defs["ImFontAtlas_AddFontFromMemoryCompressedTTF"][1]["ret"] = "ImFont*" defs["ImFontAtlas_AddFontFromMemoryCompressedTTF"][1]["signature"] = "(const void*,int,float,const ImFontConfig*,const ImWchar*)" @@ -3115,7 +3115,7 @@ defs["ImFontAtlas_AddFontFromMemoryTTF"][1]["defaults"] = {} defs["ImFontAtlas_AddFontFromMemoryTTF"][1]["defaults"]["font_cfg"] = "NULL" defs["ImFontAtlas_AddFontFromMemoryTTF"][1]["defaults"]["glyph_ranges"] = "NULL" defs["ImFontAtlas_AddFontFromMemoryTTF"][1]["funcname"] = "AddFontFromMemoryTTF" -defs["ImFontAtlas_AddFontFromMemoryTTF"][1]["location"] = "imgui:2741" +defs["ImFontAtlas_AddFontFromMemoryTTF"][1]["location"] = "imgui:2751" defs["ImFontAtlas_AddFontFromMemoryTTF"][1]["ov_cimguiname"] = "ImFontAtlas_AddFontFromMemoryTTF" defs["ImFontAtlas_AddFontFromMemoryTTF"][1]["ret"] = "ImFont*" defs["ImFontAtlas_AddFontFromMemoryTTF"][1]["signature"] = "(void*,int,float,const ImFontConfig*,const ImWchar*)" @@ -3133,7 +3133,7 @@ defs["ImFontAtlas_Build"][1]["call_args"] = "()" defs["ImFontAtlas_Build"][1]["cimguiname"] = "ImFontAtlas_Build" defs["ImFontAtlas_Build"][1]["defaults"] = {} defs["ImFontAtlas_Build"][1]["funcname"] = "Build" -defs["ImFontAtlas_Build"][1]["location"] = "imgui:2754" +defs["ImFontAtlas_Build"][1]["location"] = "imgui:2764" defs["ImFontAtlas_Build"][1]["ov_cimguiname"] = "ImFontAtlas_Build" defs["ImFontAtlas_Build"][1]["ret"] = "bool" defs["ImFontAtlas_Build"][1]["signature"] = "()" @@ -3160,7 +3160,7 @@ defs["ImFontAtlas_CalcCustomRectUV"][1]["call_args"] = "(rect,out_uv_min,out_uv_ defs["ImFontAtlas_CalcCustomRectUV"][1]["cimguiname"] = "ImFontAtlas_CalcCustomRectUV" defs["ImFontAtlas_CalcCustomRectUV"][1]["defaults"] = {} defs["ImFontAtlas_CalcCustomRectUV"][1]["funcname"] = "CalcCustomRectUV" -defs["ImFontAtlas_CalcCustomRectUV"][1]["location"] = "imgui:2792" +defs["ImFontAtlas_CalcCustomRectUV"][1]["location"] = "imgui:2802" defs["ImFontAtlas_CalcCustomRectUV"][1]["ov_cimguiname"] = "ImFontAtlas_CalcCustomRectUV" defs["ImFontAtlas_CalcCustomRectUV"][1]["ret"] = "void" defs["ImFontAtlas_CalcCustomRectUV"][1]["signature"] = "(const ImFontAtlasCustomRect*,ImVec2*,ImVec2*)const" @@ -3178,7 +3178,7 @@ defs["ImFontAtlas_Clear"][1]["call_args"] = "()" defs["ImFontAtlas_Clear"][1]["cimguiname"] = "ImFontAtlas_Clear" defs["ImFontAtlas_Clear"][1]["defaults"] = {} defs["ImFontAtlas_Clear"][1]["funcname"] = "Clear" -defs["ImFontAtlas_Clear"][1]["location"] = "imgui:2747" +defs["ImFontAtlas_Clear"][1]["location"] = "imgui:2757" defs["ImFontAtlas_Clear"][1]["ov_cimguiname"] = "ImFontAtlas_Clear" defs["ImFontAtlas_Clear"][1]["ret"] = "void" defs["ImFontAtlas_Clear"][1]["signature"] = "()" @@ -3196,7 +3196,7 @@ defs["ImFontAtlas_ClearFonts"][1]["call_args"] = "()" defs["ImFontAtlas_ClearFonts"][1]["cimguiname"] = "ImFontAtlas_ClearFonts" defs["ImFontAtlas_ClearFonts"][1]["defaults"] = {} defs["ImFontAtlas_ClearFonts"][1]["funcname"] = "ClearFonts" -defs["ImFontAtlas_ClearFonts"][1]["location"] = "imgui:2746" +defs["ImFontAtlas_ClearFonts"][1]["location"] = "imgui:2756" defs["ImFontAtlas_ClearFonts"][1]["ov_cimguiname"] = "ImFontAtlas_ClearFonts" defs["ImFontAtlas_ClearFonts"][1]["ret"] = "void" defs["ImFontAtlas_ClearFonts"][1]["signature"] = "()" @@ -3214,7 +3214,7 @@ defs["ImFontAtlas_ClearInputData"][1]["call_args"] = "()" defs["ImFontAtlas_ClearInputData"][1]["cimguiname"] = "ImFontAtlas_ClearInputData" defs["ImFontAtlas_ClearInputData"][1]["defaults"] = {} defs["ImFontAtlas_ClearInputData"][1]["funcname"] = "ClearInputData" -defs["ImFontAtlas_ClearInputData"][1]["location"] = "imgui:2744" +defs["ImFontAtlas_ClearInputData"][1]["location"] = "imgui:2754" defs["ImFontAtlas_ClearInputData"][1]["ov_cimguiname"] = "ImFontAtlas_ClearInputData" defs["ImFontAtlas_ClearInputData"][1]["ret"] = "void" defs["ImFontAtlas_ClearInputData"][1]["signature"] = "()" @@ -3232,7 +3232,7 @@ defs["ImFontAtlas_ClearTexData"][1]["call_args"] = "()" defs["ImFontAtlas_ClearTexData"][1]["cimguiname"] = "ImFontAtlas_ClearTexData" defs["ImFontAtlas_ClearTexData"][1]["defaults"] = {} defs["ImFontAtlas_ClearTexData"][1]["funcname"] = "ClearTexData" -defs["ImFontAtlas_ClearTexData"][1]["location"] = "imgui:2745" +defs["ImFontAtlas_ClearTexData"][1]["location"] = "imgui:2755" defs["ImFontAtlas_ClearTexData"][1]["ov_cimguiname"] = "ImFontAtlas_ClearTexData" defs["ImFontAtlas_ClearTexData"][1]["ret"] = "void" defs["ImFontAtlas_ClearTexData"][1]["signature"] = "()" @@ -3253,7 +3253,7 @@ defs["ImFontAtlas_GetCustomRectByIndex"][1]["call_args"] = "(index)" defs["ImFontAtlas_GetCustomRectByIndex"][1]["cimguiname"] = "ImFontAtlas_GetCustomRectByIndex" defs["ImFontAtlas_GetCustomRectByIndex"][1]["defaults"] = {} defs["ImFontAtlas_GetCustomRectByIndex"][1]["funcname"] = "GetCustomRectByIndex" -defs["ImFontAtlas_GetCustomRectByIndex"][1]["location"] = "imgui:2789" +defs["ImFontAtlas_GetCustomRectByIndex"][1]["location"] = "imgui:2799" defs["ImFontAtlas_GetCustomRectByIndex"][1]["ov_cimguiname"] = "ImFontAtlas_GetCustomRectByIndex" defs["ImFontAtlas_GetCustomRectByIndex"][1]["ret"] = "ImFontAtlasCustomRect*" defs["ImFontAtlas_GetCustomRectByIndex"][1]["signature"] = "(int)" @@ -3271,7 +3271,7 @@ defs["ImFontAtlas_GetGlyphRangesChineseFull"][1]["call_args"] = "()" defs["ImFontAtlas_GetGlyphRangesChineseFull"][1]["cimguiname"] = "ImFontAtlas_GetGlyphRangesChineseFull" defs["ImFontAtlas_GetGlyphRangesChineseFull"][1]["defaults"] = {} defs["ImFontAtlas_GetGlyphRangesChineseFull"][1]["funcname"] = "GetGlyphRangesChineseFull" -defs["ImFontAtlas_GetGlyphRangesChineseFull"][1]["location"] = "imgui:2770" +defs["ImFontAtlas_GetGlyphRangesChineseFull"][1]["location"] = "imgui:2780" defs["ImFontAtlas_GetGlyphRangesChineseFull"][1]["ov_cimguiname"] = "ImFontAtlas_GetGlyphRangesChineseFull" defs["ImFontAtlas_GetGlyphRangesChineseFull"][1]["ret"] = "const ImWchar*" defs["ImFontAtlas_GetGlyphRangesChineseFull"][1]["signature"] = "()" @@ -3289,7 +3289,7 @@ defs["ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon"][1]["call_args"] = "()" defs["ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon"][1]["cimguiname"] = "ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon" defs["ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon"][1]["defaults"] = {} defs["ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon"][1]["funcname"] = "GetGlyphRangesChineseSimplifiedCommon" -defs["ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon"][1]["location"] = "imgui:2771" +defs["ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon"][1]["location"] = "imgui:2781" defs["ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon"][1]["ov_cimguiname"] = "ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon" defs["ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon"][1]["ret"] = "const ImWchar*" defs["ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon"][1]["signature"] = "()" @@ -3307,7 +3307,7 @@ defs["ImFontAtlas_GetGlyphRangesCyrillic"][1]["call_args"] = "()" defs["ImFontAtlas_GetGlyphRangesCyrillic"][1]["cimguiname"] = "ImFontAtlas_GetGlyphRangesCyrillic" defs["ImFontAtlas_GetGlyphRangesCyrillic"][1]["defaults"] = {} defs["ImFontAtlas_GetGlyphRangesCyrillic"][1]["funcname"] = "GetGlyphRangesCyrillic" -defs["ImFontAtlas_GetGlyphRangesCyrillic"][1]["location"] = "imgui:2772" +defs["ImFontAtlas_GetGlyphRangesCyrillic"][1]["location"] = "imgui:2782" defs["ImFontAtlas_GetGlyphRangesCyrillic"][1]["ov_cimguiname"] = "ImFontAtlas_GetGlyphRangesCyrillic" defs["ImFontAtlas_GetGlyphRangesCyrillic"][1]["ret"] = "const ImWchar*" defs["ImFontAtlas_GetGlyphRangesCyrillic"][1]["signature"] = "()" @@ -3325,7 +3325,7 @@ defs["ImFontAtlas_GetGlyphRangesDefault"][1]["call_args"] = "()" defs["ImFontAtlas_GetGlyphRangesDefault"][1]["cimguiname"] = "ImFontAtlas_GetGlyphRangesDefault" defs["ImFontAtlas_GetGlyphRangesDefault"][1]["defaults"] = {} defs["ImFontAtlas_GetGlyphRangesDefault"][1]["funcname"] = "GetGlyphRangesDefault" -defs["ImFontAtlas_GetGlyphRangesDefault"][1]["location"] = "imgui:2767" +defs["ImFontAtlas_GetGlyphRangesDefault"][1]["location"] = "imgui:2777" defs["ImFontAtlas_GetGlyphRangesDefault"][1]["ov_cimguiname"] = "ImFontAtlas_GetGlyphRangesDefault" defs["ImFontAtlas_GetGlyphRangesDefault"][1]["ret"] = "const ImWchar*" defs["ImFontAtlas_GetGlyphRangesDefault"][1]["signature"] = "()" @@ -3343,7 +3343,7 @@ defs["ImFontAtlas_GetGlyphRangesJapanese"][1]["call_args"] = "()" defs["ImFontAtlas_GetGlyphRangesJapanese"][1]["cimguiname"] = "ImFontAtlas_GetGlyphRangesJapanese" defs["ImFontAtlas_GetGlyphRangesJapanese"][1]["defaults"] = {} defs["ImFontAtlas_GetGlyphRangesJapanese"][1]["funcname"] = "GetGlyphRangesJapanese" -defs["ImFontAtlas_GetGlyphRangesJapanese"][1]["location"] = "imgui:2769" +defs["ImFontAtlas_GetGlyphRangesJapanese"][1]["location"] = "imgui:2779" defs["ImFontAtlas_GetGlyphRangesJapanese"][1]["ov_cimguiname"] = "ImFontAtlas_GetGlyphRangesJapanese" defs["ImFontAtlas_GetGlyphRangesJapanese"][1]["ret"] = "const ImWchar*" defs["ImFontAtlas_GetGlyphRangesJapanese"][1]["signature"] = "()" @@ -3361,7 +3361,7 @@ defs["ImFontAtlas_GetGlyphRangesKorean"][1]["call_args"] = "()" defs["ImFontAtlas_GetGlyphRangesKorean"][1]["cimguiname"] = "ImFontAtlas_GetGlyphRangesKorean" defs["ImFontAtlas_GetGlyphRangesKorean"][1]["defaults"] = {} defs["ImFontAtlas_GetGlyphRangesKorean"][1]["funcname"] = "GetGlyphRangesKorean" -defs["ImFontAtlas_GetGlyphRangesKorean"][1]["location"] = "imgui:2768" +defs["ImFontAtlas_GetGlyphRangesKorean"][1]["location"] = "imgui:2778" defs["ImFontAtlas_GetGlyphRangesKorean"][1]["ov_cimguiname"] = "ImFontAtlas_GetGlyphRangesKorean" defs["ImFontAtlas_GetGlyphRangesKorean"][1]["ret"] = "const ImWchar*" defs["ImFontAtlas_GetGlyphRangesKorean"][1]["signature"] = "()" @@ -3379,7 +3379,7 @@ defs["ImFontAtlas_GetGlyphRangesThai"][1]["call_args"] = "()" defs["ImFontAtlas_GetGlyphRangesThai"][1]["cimguiname"] = "ImFontAtlas_GetGlyphRangesThai" defs["ImFontAtlas_GetGlyphRangesThai"][1]["defaults"] = {} defs["ImFontAtlas_GetGlyphRangesThai"][1]["funcname"] = "GetGlyphRangesThai" -defs["ImFontAtlas_GetGlyphRangesThai"][1]["location"] = "imgui:2773" +defs["ImFontAtlas_GetGlyphRangesThai"][1]["location"] = "imgui:2783" defs["ImFontAtlas_GetGlyphRangesThai"][1]["ov_cimguiname"] = "ImFontAtlas_GetGlyphRangesThai" defs["ImFontAtlas_GetGlyphRangesThai"][1]["ret"] = "const ImWchar*" defs["ImFontAtlas_GetGlyphRangesThai"][1]["signature"] = "()" @@ -3397,7 +3397,7 @@ defs["ImFontAtlas_GetGlyphRangesVietnamese"][1]["call_args"] = "()" defs["ImFontAtlas_GetGlyphRangesVietnamese"][1]["cimguiname"] = "ImFontAtlas_GetGlyphRangesVietnamese" defs["ImFontAtlas_GetGlyphRangesVietnamese"][1]["defaults"] = {} defs["ImFontAtlas_GetGlyphRangesVietnamese"][1]["funcname"] = "GetGlyphRangesVietnamese" -defs["ImFontAtlas_GetGlyphRangesVietnamese"][1]["location"] = "imgui:2774" +defs["ImFontAtlas_GetGlyphRangesVietnamese"][1]["location"] = "imgui:2784" defs["ImFontAtlas_GetGlyphRangesVietnamese"][1]["ov_cimguiname"] = "ImFontAtlas_GetGlyphRangesVietnamese" defs["ImFontAtlas_GetGlyphRangesVietnamese"][1]["ret"] = "const ImWchar*" defs["ImFontAtlas_GetGlyphRangesVietnamese"][1]["signature"] = "()" @@ -3430,7 +3430,7 @@ defs["ImFontAtlas_GetMouseCursorTexData"][1]["call_args"] = "(cursor,out_offset, defs["ImFontAtlas_GetMouseCursorTexData"][1]["cimguiname"] = "ImFontAtlas_GetMouseCursorTexData" defs["ImFontAtlas_GetMouseCursorTexData"][1]["defaults"] = {} defs["ImFontAtlas_GetMouseCursorTexData"][1]["funcname"] = "GetMouseCursorTexData" -defs["ImFontAtlas_GetMouseCursorTexData"][1]["location"] = "imgui:2793" +defs["ImFontAtlas_GetMouseCursorTexData"][1]["location"] = "imgui:2803" defs["ImFontAtlas_GetMouseCursorTexData"][1]["ov_cimguiname"] = "ImFontAtlas_GetMouseCursorTexData" defs["ImFontAtlas_GetMouseCursorTexData"][1]["ret"] = "bool" defs["ImFontAtlas_GetMouseCursorTexData"][1]["signature"] = "(ImGuiMouseCursor,ImVec2*,ImVec2*,ImVec2[2],ImVec2[2])" @@ -3461,7 +3461,7 @@ defs["ImFontAtlas_GetTexDataAsAlpha8"][1]["cimguiname"] = "ImFontAtlas_GetTexDat defs["ImFontAtlas_GetTexDataAsAlpha8"][1]["defaults"] = {} defs["ImFontAtlas_GetTexDataAsAlpha8"][1]["defaults"]["out_bytes_per_pixel"] = "NULL" defs["ImFontAtlas_GetTexDataAsAlpha8"][1]["funcname"] = "GetTexDataAsAlpha8" -defs["ImFontAtlas_GetTexDataAsAlpha8"][1]["location"] = "imgui:2755" +defs["ImFontAtlas_GetTexDataAsAlpha8"][1]["location"] = "imgui:2765" defs["ImFontAtlas_GetTexDataAsAlpha8"][1]["ov_cimguiname"] = "ImFontAtlas_GetTexDataAsAlpha8" defs["ImFontAtlas_GetTexDataAsAlpha8"][1]["ret"] = "void" defs["ImFontAtlas_GetTexDataAsAlpha8"][1]["signature"] = "(unsigned char**,int*,int*,int*)" @@ -3492,7 +3492,7 @@ defs["ImFontAtlas_GetTexDataAsRGBA32"][1]["cimguiname"] = "ImFontAtlas_GetTexDat defs["ImFontAtlas_GetTexDataAsRGBA32"][1]["defaults"] = {} defs["ImFontAtlas_GetTexDataAsRGBA32"][1]["defaults"]["out_bytes_per_pixel"] = "NULL" defs["ImFontAtlas_GetTexDataAsRGBA32"][1]["funcname"] = "GetTexDataAsRGBA32" -defs["ImFontAtlas_GetTexDataAsRGBA32"][1]["location"] = "imgui:2756" +defs["ImFontAtlas_GetTexDataAsRGBA32"][1]["location"] = "imgui:2766" defs["ImFontAtlas_GetTexDataAsRGBA32"][1]["ov_cimguiname"] = "ImFontAtlas_GetTexDataAsRGBA32" defs["ImFontAtlas_GetTexDataAsRGBA32"][1]["ret"] = "void" defs["ImFontAtlas_GetTexDataAsRGBA32"][1]["signature"] = "(unsigned char**,int*,int*,int*)" @@ -3508,7 +3508,7 @@ defs["ImFontAtlas_ImFontAtlas"][1]["cimguiname"] = "ImFontAtlas_ImFontAtlas" defs["ImFontAtlas_ImFontAtlas"][1]["constructor"] = true defs["ImFontAtlas_ImFontAtlas"][1]["defaults"] = {} defs["ImFontAtlas_ImFontAtlas"][1]["funcname"] = "ImFontAtlas" -defs["ImFontAtlas_ImFontAtlas"][1]["location"] = "imgui:2736" +defs["ImFontAtlas_ImFontAtlas"][1]["location"] = "imgui:2746" defs["ImFontAtlas_ImFontAtlas"][1]["ov_cimguiname"] = "ImFontAtlas_ImFontAtlas" defs["ImFontAtlas_ImFontAtlas"][1]["signature"] = "()" defs["ImFontAtlas_ImFontAtlas"][1]["stname"] = "ImFontAtlas" @@ -3525,7 +3525,7 @@ defs["ImFontAtlas_IsBuilt"][1]["call_args"] = "()" defs["ImFontAtlas_IsBuilt"][1]["cimguiname"] = "ImFontAtlas_IsBuilt" defs["ImFontAtlas_IsBuilt"][1]["defaults"] = {} defs["ImFontAtlas_IsBuilt"][1]["funcname"] = "IsBuilt" -defs["ImFontAtlas_IsBuilt"][1]["location"] = "imgui:2757" +defs["ImFontAtlas_IsBuilt"][1]["location"] = "imgui:2767" defs["ImFontAtlas_IsBuilt"][1]["ov_cimguiname"] = "ImFontAtlas_IsBuilt" defs["ImFontAtlas_IsBuilt"][1]["ret"] = "bool" defs["ImFontAtlas_IsBuilt"][1]["signature"] = "()const" @@ -3546,7 +3546,7 @@ defs["ImFontAtlas_SetTexID"][1]["call_args"] = "(id)" defs["ImFontAtlas_SetTexID"][1]["cimguiname"] = "ImFontAtlas_SetTexID" defs["ImFontAtlas_SetTexID"][1]["defaults"] = {} defs["ImFontAtlas_SetTexID"][1]["funcname"] = "SetTexID" -defs["ImFontAtlas_SetTexID"][1]["location"] = "imgui:2758" +defs["ImFontAtlas_SetTexID"][1]["location"] = "imgui:2768" defs["ImFontAtlas_SetTexID"][1]["ov_cimguiname"] = "ImFontAtlas_SetTexID" defs["ImFontAtlas_SetTexID"][1]["ret"] = "void" defs["ImFontAtlas_SetTexID"][1]["signature"] = "(ImTextureID)" @@ -3563,7 +3563,7 @@ defs["ImFontAtlas_destroy"][1]["call_args"] = "(self)" defs["ImFontAtlas_destroy"][1]["cimguiname"] = "ImFontAtlas_destroy" defs["ImFontAtlas_destroy"][1]["defaults"] = {} defs["ImFontAtlas_destroy"][1]["destructor"] = true -defs["ImFontAtlas_destroy"][1]["location"] = "imgui:2737" +defs["ImFontAtlas_destroy"][1]["location"] = "imgui:2747" defs["ImFontAtlas_destroy"][1]["ov_cimguiname"] = "ImFontAtlas_destroy" defs["ImFontAtlas_destroy"][1]["realdestructor"] = true defs["ImFontAtlas_destroy"][1]["ret"] = "void" @@ -3580,7 +3580,7 @@ defs["ImFontConfig_ImFontConfig"][1]["cimguiname"] = "ImFontConfig_ImFontConfig" defs["ImFontConfig_ImFontConfig"][1]["constructor"] = true defs["ImFontConfig_ImFontConfig"][1]["defaults"] = {} defs["ImFontConfig_ImFontConfig"][1]["funcname"] = "ImFontConfig" -defs["ImFontConfig_ImFontConfig"][1]["location"] = "imgui:2664" +defs["ImFontConfig_ImFontConfig"][1]["location"] = "imgui:2674" defs["ImFontConfig_ImFontConfig"][1]["ov_cimguiname"] = "ImFontConfig_ImFontConfig" defs["ImFontConfig_ImFontConfig"][1]["signature"] = "()" defs["ImFontConfig_ImFontConfig"][1]["stname"] = "ImFontConfig" @@ -3616,7 +3616,7 @@ defs["ImFontGlyphRangesBuilder_AddChar"][1]["call_args"] = "(c)" defs["ImFontGlyphRangesBuilder_AddChar"][1]["cimguiname"] = "ImFontGlyphRangesBuilder_AddChar" defs["ImFontGlyphRangesBuilder_AddChar"][1]["defaults"] = {} defs["ImFontGlyphRangesBuilder_AddChar"][1]["funcname"] = "AddChar" -defs["ImFontGlyphRangesBuilder_AddChar"][1]["location"] = "imgui:2689" +defs["ImFontGlyphRangesBuilder_AddChar"][1]["location"] = "imgui:2699" defs["ImFontGlyphRangesBuilder_AddChar"][1]["ov_cimguiname"] = "ImFontGlyphRangesBuilder_AddChar" defs["ImFontGlyphRangesBuilder_AddChar"][1]["ret"] = "void" defs["ImFontGlyphRangesBuilder_AddChar"][1]["signature"] = "(ImWchar)" @@ -3637,7 +3637,7 @@ defs["ImFontGlyphRangesBuilder_AddRanges"][1]["call_args"] = "(ranges)" defs["ImFontGlyphRangesBuilder_AddRanges"][1]["cimguiname"] = "ImFontGlyphRangesBuilder_AddRanges" defs["ImFontGlyphRangesBuilder_AddRanges"][1]["defaults"] = {} defs["ImFontGlyphRangesBuilder_AddRanges"][1]["funcname"] = "AddRanges" -defs["ImFontGlyphRangesBuilder_AddRanges"][1]["location"] = "imgui:2691" +defs["ImFontGlyphRangesBuilder_AddRanges"][1]["location"] = "imgui:2701" defs["ImFontGlyphRangesBuilder_AddRanges"][1]["ov_cimguiname"] = "ImFontGlyphRangesBuilder_AddRanges" defs["ImFontGlyphRangesBuilder_AddRanges"][1]["ret"] = "void" defs["ImFontGlyphRangesBuilder_AddRanges"][1]["signature"] = "(const ImWchar*)" @@ -3662,7 +3662,7 @@ defs["ImFontGlyphRangesBuilder_AddText"][1]["cimguiname"] = "ImFontGlyphRangesBu defs["ImFontGlyphRangesBuilder_AddText"][1]["defaults"] = {} defs["ImFontGlyphRangesBuilder_AddText"][1]["defaults"]["text_end"] = "NULL" defs["ImFontGlyphRangesBuilder_AddText"][1]["funcname"] = "AddText" -defs["ImFontGlyphRangesBuilder_AddText"][1]["location"] = "imgui:2690" +defs["ImFontGlyphRangesBuilder_AddText"][1]["location"] = "imgui:2700" defs["ImFontGlyphRangesBuilder_AddText"][1]["ov_cimguiname"] = "ImFontGlyphRangesBuilder_AddText" defs["ImFontGlyphRangesBuilder_AddText"][1]["ret"] = "void" defs["ImFontGlyphRangesBuilder_AddText"][1]["signature"] = "(const char*,const char*)" @@ -3683,7 +3683,7 @@ defs["ImFontGlyphRangesBuilder_BuildRanges"][1]["call_args"] = "(out_ranges)" defs["ImFontGlyphRangesBuilder_BuildRanges"][1]["cimguiname"] = "ImFontGlyphRangesBuilder_BuildRanges" defs["ImFontGlyphRangesBuilder_BuildRanges"][1]["defaults"] = {} defs["ImFontGlyphRangesBuilder_BuildRanges"][1]["funcname"] = "BuildRanges" -defs["ImFontGlyphRangesBuilder_BuildRanges"][1]["location"] = "imgui:2692" +defs["ImFontGlyphRangesBuilder_BuildRanges"][1]["location"] = "imgui:2702" defs["ImFontGlyphRangesBuilder_BuildRanges"][1]["ov_cimguiname"] = "ImFontGlyphRangesBuilder_BuildRanges" defs["ImFontGlyphRangesBuilder_BuildRanges"][1]["ret"] = "void" defs["ImFontGlyphRangesBuilder_BuildRanges"][1]["signature"] = "(ImVector_ImWchar*)" @@ -3701,7 +3701,7 @@ defs["ImFontGlyphRangesBuilder_Clear"][1]["call_args"] = "()" defs["ImFontGlyphRangesBuilder_Clear"][1]["cimguiname"] = "ImFontGlyphRangesBuilder_Clear" defs["ImFontGlyphRangesBuilder_Clear"][1]["defaults"] = {} defs["ImFontGlyphRangesBuilder_Clear"][1]["funcname"] = "Clear" -defs["ImFontGlyphRangesBuilder_Clear"][1]["location"] = "imgui:2686" +defs["ImFontGlyphRangesBuilder_Clear"][1]["location"] = "imgui:2696" defs["ImFontGlyphRangesBuilder_Clear"][1]["ov_cimguiname"] = "ImFontGlyphRangesBuilder_Clear" defs["ImFontGlyphRangesBuilder_Clear"][1]["ret"] = "void" defs["ImFontGlyphRangesBuilder_Clear"][1]["signature"] = "()" @@ -3722,7 +3722,7 @@ defs["ImFontGlyphRangesBuilder_GetBit"][1]["call_args"] = "(n)" defs["ImFontGlyphRangesBuilder_GetBit"][1]["cimguiname"] = "ImFontGlyphRangesBuilder_GetBit" defs["ImFontGlyphRangesBuilder_GetBit"][1]["defaults"] = {} defs["ImFontGlyphRangesBuilder_GetBit"][1]["funcname"] = "GetBit" -defs["ImFontGlyphRangesBuilder_GetBit"][1]["location"] = "imgui:2687" +defs["ImFontGlyphRangesBuilder_GetBit"][1]["location"] = "imgui:2697" defs["ImFontGlyphRangesBuilder_GetBit"][1]["ov_cimguiname"] = "ImFontGlyphRangesBuilder_GetBit" defs["ImFontGlyphRangesBuilder_GetBit"][1]["ret"] = "bool" defs["ImFontGlyphRangesBuilder_GetBit"][1]["signature"] = "(size_t)const" @@ -3738,7 +3738,7 @@ defs["ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder"][1]["cimguiname"] = "Im defs["ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder"][1]["constructor"] = true defs["ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder"][1]["defaults"] = {} defs["ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder"][1]["funcname"] = "ImFontGlyphRangesBuilder" -defs["ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder"][1]["location"] = "imgui:2685" +defs["ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder"][1]["location"] = "imgui:2695" defs["ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder"][1]["ov_cimguiname"] = "ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder" defs["ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder"][1]["signature"] = "()" defs["ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder"][1]["stname"] = "ImFontGlyphRangesBuilder" @@ -3758,7 +3758,7 @@ defs["ImFontGlyphRangesBuilder_SetBit"][1]["call_args"] = "(n)" defs["ImFontGlyphRangesBuilder_SetBit"][1]["cimguiname"] = "ImFontGlyphRangesBuilder_SetBit" defs["ImFontGlyphRangesBuilder_SetBit"][1]["defaults"] = {} defs["ImFontGlyphRangesBuilder_SetBit"][1]["funcname"] = "SetBit" -defs["ImFontGlyphRangesBuilder_SetBit"][1]["location"] = "imgui:2688" +defs["ImFontGlyphRangesBuilder_SetBit"][1]["location"] = "imgui:2698" defs["ImFontGlyphRangesBuilder_SetBit"][1]["ov_cimguiname"] = "ImFontGlyphRangesBuilder_SetBit" defs["ImFontGlyphRangesBuilder_SetBit"][1]["ret"] = "void" defs["ImFontGlyphRangesBuilder_SetBit"][1]["signature"] = "(size_t)" @@ -3825,7 +3825,7 @@ defs["ImFont_AddGlyph"][1]["call_args"] = "(src_cfg,c,x0,y0,x1,y1,u0,v0,u1,v1,ad defs["ImFont_AddGlyph"][1]["cimguiname"] = "ImFont_AddGlyph" defs["ImFont_AddGlyph"][1]["defaults"] = {} defs["ImFont_AddGlyph"][1]["funcname"] = "AddGlyph" -defs["ImFont_AddGlyph"][1]["location"] = "imgui:2881" +defs["ImFont_AddGlyph"][1]["location"] = "imgui:2891" defs["ImFont_AddGlyph"][1]["ov_cimguiname"] = "ImFont_AddGlyph" defs["ImFont_AddGlyph"][1]["ret"] = "void" defs["ImFont_AddGlyph"][1]["signature"] = "(const ImFontConfig*,ImWchar,float,float,float,float,float,float,float,float,float)" @@ -3853,7 +3853,7 @@ defs["ImFont_AddRemapChar"][1]["cimguiname"] = "ImFont_AddRemapChar" defs["ImFont_AddRemapChar"][1]["defaults"] = {} defs["ImFont_AddRemapChar"][1]["defaults"]["overwrite_dst"] = "true" defs["ImFont_AddRemapChar"][1]["funcname"] = "AddRemapChar" -defs["ImFont_AddRemapChar"][1]["location"] = "imgui:2882" +defs["ImFont_AddRemapChar"][1]["location"] = "imgui:2892" defs["ImFont_AddRemapChar"][1]["ov_cimguiname"] = "ImFont_AddRemapChar" defs["ImFont_AddRemapChar"][1]["ret"] = "void" defs["ImFont_AddRemapChar"][1]["signature"] = "(ImWchar,ImWchar,bool)" @@ -3871,7 +3871,7 @@ defs["ImFont_BuildLookupTable"][1]["call_args"] = "()" defs["ImFont_BuildLookupTable"][1]["cimguiname"] = "ImFont_BuildLookupTable" defs["ImFont_BuildLookupTable"][1]["defaults"] = {} defs["ImFont_BuildLookupTable"][1]["funcname"] = "BuildLookupTable" -defs["ImFont_BuildLookupTable"][1]["location"] = "imgui:2878" +defs["ImFont_BuildLookupTable"][1]["location"] = "imgui:2888" defs["ImFont_BuildLookupTable"][1]["ov_cimguiname"] = "ImFont_BuildLookupTable" defs["ImFont_BuildLookupTable"][1]["ret"] = "void" defs["ImFont_BuildLookupTable"][1]["signature"] = "()" @@ -3912,7 +3912,7 @@ defs["ImFont_CalcTextSizeA"][1]["defaults"] = {} defs["ImFont_CalcTextSizeA"][1]["defaults"]["remaining"] = "NULL" defs["ImFont_CalcTextSizeA"][1]["defaults"]["text_end"] = "NULL" defs["ImFont_CalcTextSizeA"][1]["funcname"] = "CalcTextSizeA" -defs["ImFont_CalcTextSizeA"][1]["location"] = "imgui:2872" +defs["ImFont_CalcTextSizeA"][1]["location"] = "imgui:2882" defs["ImFont_CalcTextSizeA"][1]["nonUDT"] = 1 defs["ImFont_CalcTextSizeA"][1]["ov_cimguiname"] = "ImFont_CalcTextSizeA" defs["ImFont_CalcTextSizeA"][1]["ret"] = "void" @@ -3943,7 +3943,7 @@ defs["ImFont_CalcWordWrapPositionA"][1]["call_args"] = "(scale,text,text_end,wra defs["ImFont_CalcWordWrapPositionA"][1]["cimguiname"] = "ImFont_CalcWordWrapPositionA" defs["ImFont_CalcWordWrapPositionA"][1]["defaults"] = {} defs["ImFont_CalcWordWrapPositionA"][1]["funcname"] = "CalcWordWrapPositionA" -defs["ImFont_CalcWordWrapPositionA"][1]["location"] = "imgui:2873" +defs["ImFont_CalcWordWrapPositionA"][1]["location"] = "imgui:2883" defs["ImFont_CalcWordWrapPositionA"][1]["ov_cimguiname"] = "ImFont_CalcWordWrapPositionA" defs["ImFont_CalcWordWrapPositionA"][1]["ret"] = "const char*" defs["ImFont_CalcWordWrapPositionA"][1]["signature"] = "(float,const char*,const char*,float)const" @@ -3961,7 +3961,7 @@ defs["ImFont_ClearOutputData"][1]["call_args"] = "()" defs["ImFont_ClearOutputData"][1]["cimguiname"] = "ImFont_ClearOutputData" defs["ImFont_ClearOutputData"][1]["defaults"] = {} defs["ImFont_ClearOutputData"][1]["funcname"] = "ClearOutputData" -defs["ImFont_ClearOutputData"][1]["location"] = "imgui:2879" +defs["ImFont_ClearOutputData"][1]["location"] = "imgui:2889" defs["ImFont_ClearOutputData"][1]["ov_cimguiname"] = "ImFont_ClearOutputData" defs["ImFont_ClearOutputData"][1]["ret"] = "void" defs["ImFont_ClearOutputData"][1]["signature"] = "()" @@ -3982,7 +3982,7 @@ defs["ImFont_FindGlyph"][1]["call_args"] = "(c)" defs["ImFont_FindGlyph"][1]["cimguiname"] = "ImFont_FindGlyph" defs["ImFont_FindGlyph"][1]["defaults"] = {} defs["ImFont_FindGlyph"][1]["funcname"] = "FindGlyph" -defs["ImFont_FindGlyph"][1]["location"] = "imgui:2864" +defs["ImFont_FindGlyph"][1]["location"] = "imgui:2874" defs["ImFont_FindGlyph"][1]["ov_cimguiname"] = "ImFont_FindGlyph" defs["ImFont_FindGlyph"][1]["ret"] = "const ImFontGlyph*" defs["ImFont_FindGlyph"][1]["signature"] = "(ImWchar)const" @@ -4003,7 +4003,7 @@ defs["ImFont_FindGlyphNoFallback"][1]["call_args"] = "(c)" defs["ImFont_FindGlyphNoFallback"][1]["cimguiname"] = "ImFont_FindGlyphNoFallback" defs["ImFont_FindGlyphNoFallback"][1]["defaults"] = {} defs["ImFont_FindGlyphNoFallback"][1]["funcname"] = "FindGlyphNoFallback" -defs["ImFont_FindGlyphNoFallback"][1]["location"] = "imgui:2865" +defs["ImFont_FindGlyphNoFallback"][1]["location"] = "imgui:2875" defs["ImFont_FindGlyphNoFallback"][1]["ov_cimguiname"] = "ImFont_FindGlyphNoFallback" defs["ImFont_FindGlyphNoFallback"][1]["ret"] = "const ImFontGlyph*" defs["ImFont_FindGlyphNoFallback"][1]["signature"] = "(ImWchar)const" @@ -4024,7 +4024,7 @@ defs["ImFont_GetCharAdvance"][1]["call_args"] = "(c)" defs["ImFont_GetCharAdvance"][1]["cimguiname"] = "ImFont_GetCharAdvance" defs["ImFont_GetCharAdvance"][1]["defaults"] = {} defs["ImFont_GetCharAdvance"][1]["funcname"] = "GetCharAdvance" -defs["ImFont_GetCharAdvance"][1]["location"] = "imgui:2866" +defs["ImFont_GetCharAdvance"][1]["location"] = "imgui:2876" defs["ImFont_GetCharAdvance"][1]["ov_cimguiname"] = "ImFont_GetCharAdvance" defs["ImFont_GetCharAdvance"][1]["ret"] = "float" defs["ImFont_GetCharAdvance"][1]["signature"] = "(ImWchar)const" @@ -4042,7 +4042,7 @@ defs["ImFont_GetDebugName"][1]["call_args"] = "()" defs["ImFont_GetDebugName"][1]["cimguiname"] = "ImFont_GetDebugName" defs["ImFont_GetDebugName"][1]["defaults"] = {} defs["ImFont_GetDebugName"][1]["funcname"] = "GetDebugName" -defs["ImFont_GetDebugName"][1]["location"] = "imgui:2868" +defs["ImFont_GetDebugName"][1]["location"] = "imgui:2878" defs["ImFont_GetDebugName"][1]["ov_cimguiname"] = "ImFont_GetDebugName" defs["ImFont_GetDebugName"][1]["ret"] = "const char*" defs["ImFont_GetDebugName"][1]["signature"] = "()const" @@ -4063,7 +4063,7 @@ defs["ImFont_GrowIndex"][1]["call_args"] = "(new_size)" defs["ImFont_GrowIndex"][1]["cimguiname"] = "ImFont_GrowIndex" defs["ImFont_GrowIndex"][1]["defaults"] = {} defs["ImFont_GrowIndex"][1]["funcname"] = "GrowIndex" -defs["ImFont_GrowIndex"][1]["location"] = "imgui:2880" +defs["ImFont_GrowIndex"][1]["location"] = "imgui:2890" defs["ImFont_GrowIndex"][1]["ov_cimguiname"] = "ImFont_GrowIndex" defs["ImFont_GrowIndex"][1]["ret"] = "void" defs["ImFont_GrowIndex"][1]["signature"] = "(int)" @@ -4079,7 +4079,7 @@ defs["ImFont_ImFont"][1]["cimguiname"] = "ImFont_ImFont" defs["ImFont_ImFont"][1]["constructor"] = true defs["ImFont_ImFont"][1]["defaults"] = {} defs["ImFont_ImFont"][1]["funcname"] = "ImFont" -defs["ImFont_ImFont"][1]["location"] = "imgui:2862" +defs["ImFont_ImFont"][1]["location"] = "imgui:2872" defs["ImFont_ImFont"][1]["ov_cimguiname"] = "ImFont_ImFont" defs["ImFont_ImFont"][1]["signature"] = "()" defs["ImFont_ImFont"][1]["stname"] = "ImFont" @@ -4102,7 +4102,7 @@ defs["ImFont_IsGlyphRangeUnused"][1]["call_args"] = "(c_begin,c_last)" defs["ImFont_IsGlyphRangeUnused"][1]["cimguiname"] = "ImFont_IsGlyphRangeUnused" defs["ImFont_IsGlyphRangeUnused"][1]["defaults"] = {} defs["ImFont_IsGlyphRangeUnused"][1]["funcname"] = "IsGlyphRangeUnused" -defs["ImFont_IsGlyphRangeUnused"][1]["location"] = "imgui:2884" +defs["ImFont_IsGlyphRangeUnused"][1]["location"] = "imgui:2894" defs["ImFont_IsGlyphRangeUnused"][1]["ov_cimguiname"] = "ImFont_IsGlyphRangeUnused" defs["ImFont_IsGlyphRangeUnused"][1]["ret"] = "bool" defs["ImFont_IsGlyphRangeUnused"][1]["signature"] = "(unsigned int,unsigned int)" @@ -4120,7 +4120,7 @@ defs["ImFont_IsLoaded"][1]["call_args"] = "()" defs["ImFont_IsLoaded"][1]["cimguiname"] = "ImFont_IsLoaded" defs["ImFont_IsLoaded"][1]["defaults"] = {} defs["ImFont_IsLoaded"][1]["funcname"] = "IsLoaded" -defs["ImFont_IsLoaded"][1]["location"] = "imgui:2867" +defs["ImFont_IsLoaded"][1]["location"] = "imgui:2877" defs["ImFont_IsLoaded"][1]["ov_cimguiname"] = "ImFont_IsLoaded" defs["ImFont_IsLoaded"][1]["ret"] = "bool" defs["ImFont_IsLoaded"][1]["signature"] = "()const" @@ -4153,7 +4153,7 @@ defs["ImFont_RenderChar"][1]["call_args"] = "(draw_list,size,pos,col,c)" defs["ImFont_RenderChar"][1]["cimguiname"] = "ImFont_RenderChar" defs["ImFont_RenderChar"][1]["defaults"] = {} defs["ImFont_RenderChar"][1]["funcname"] = "RenderChar" -defs["ImFont_RenderChar"][1]["location"] = "imgui:2874" +defs["ImFont_RenderChar"][1]["location"] = "imgui:2884" defs["ImFont_RenderChar"][1]["ov_cimguiname"] = "ImFont_RenderChar" defs["ImFont_RenderChar"][1]["ret"] = "void" defs["ImFont_RenderChar"][1]["signature"] = "(ImDrawList*,float,ImVec2,ImU32,ImWchar)const" @@ -4200,7 +4200,7 @@ defs["ImFont_RenderText"][1]["defaults"] = {} defs["ImFont_RenderText"][1]["defaults"]["cpu_fine_clip"] = "false" defs["ImFont_RenderText"][1]["defaults"]["wrap_width"] = "0.0f" defs["ImFont_RenderText"][1]["funcname"] = "RenderText" -defs["ImFont_RenderText"][1]["location"] = "imgui:2875" +defs["ImFont_RenderText"][1]["location"] = "imgui:2885" defs["ImFont_RenderText"][1]["ov_cimguiname"] = "ImFont_RenderText" defs["ImFont_RenderText"][1]["ret"] = "void" defs["ImFont_RenderText"][1]["signature"] = "(ImDrawList*,float,ImVec2,ImU32,const ImVec4,const char*,const char*,float,bool)const" @@ -4224,7 +4224,7 @@ defs["ImFont_SetGlyphVisible"][1]["call_args"] = "(c,visible)" defs["ImFont_SetGlyphVisible"][1]["cimguiname"] = "ImFont_SetGlyphVisible" defs["ImFont_SetGlyphVisible"][1]["defaults"] = {} defs["ImFont_SetGlyphVisible"][1]["funcname"] = "SetGlyphVisible" -defs["ImFont_SetGlyphVisible"][1]["location"] = "imgui:2883" +defs["ImFont_SetGlyphVisible"][1]["location"] = "imgui:2893" defs["ImFont_SetGlyphVisible"][1]["ov_cimguiname"] = "ImFont_SetGlyphVisible" defs["ImFont_SetGlyphVisible"][1]["ret"] = "void" defs["ImFont_SetGlyphVisible"][1]["signature"] = "(ImWchar,bool)" @@ -4241,7 +4241,7 @@ defs["ImFont_destroy"][1]["call_args"] = "(self)" defs["ImFont_destroy"][1]["cimguiname"] = "ImFont_destroy" defs["ImFont_destroy"][1]["defaults"] = {} defs["ImFont_destroy"][1]["destructor"] = true -defs["ImFont_destroy"][1]["location"] = "imgui:2863" +defs["ImFont_destroy"][1]["location"] = "imgui:2873" defs["ImFont_destroy"][1]["ov_cimguiname"] = "ImFont_destroy" defs["ImFont_destroy"][1]["realdestructor"] = true defs["ImFont_destroy"][1]["ret"] = "void" @@ -4258,7 +4258,7 @@ defs["ImGuiComboPreviewData_ImGuiComboPreviewData"][1]["cimguiname"] = "ImGuiCom defs["ImGuiComboPreviewData_ImGuiComboPreviewData"][1]["constructor"] = true defs["ImGuiComboPreviewData_ImGuiComboPreviewData"][1]["defaults"] = {} defs["ImGuiComboPreviewData_ImGuiComboPreviewData"][1]["funcname"] = "ImGuiComboPreviewData" -defs["ImGuiComboPreviewData_ImGuiComboPreviewData"][1]["location"] = "imgui_internal:987" +defs["ImGuiComboPreviewData_ImGuiComboPreviewData"][1]["location"] = "imgui_internal:990" defs["ImGuiComboPreviewData_ImGuiComboPreviewData"][1]["ov_cimguiname"] = "ImGuiComboPreviewData_ImGuiComboPreviewData" defs["ImGuiComboPreviewData_ImGuiComboPreviewData"][1]["signature"] = "()" defs["ImGuiComboPreviewData_ImGuiComboPreviewData"][1]["stname"] = "ImGuiComboPreviewData" @@ -4289,7 +4289,7 @@ defs["ImGuiContextHook_ImGuiContextHook"][1]["cimguiname"] = "ImGuiContextHook_I defs["ImGuiContextHook_ImGuiContextHook"][1]["constructor"] = true defs["ImGuiContextHook_ImGuiContextHook"][1]["defaults"] = {} defs["ImGuiContextHook_ImGuiContextHook"][1]["funcname"] = "ImGuiContextHook" -defs["ImGuiContextHook_ImGuiContextHook"][1]["location"] = "imgui_internal:1573" +defs["ImGuiContextHook_ImGuiContextHook"][1]["location"] = "imgui_internal:1663" defs["ImGuiContextHook_ImGuiContextHook"][1]["ov_cimguiname"] = "ImGuiContextHook_ImGuiContextHook" defs["ImGuiContextHook_ImGuiContextHook"][1]["signature"] = "()" defs["ImGuiContextHook_ImGuiContextHook"][1]["stname"] = "ImGuiContextHook" @@ -4323,7 +4323,7 @@ defs["ImGuiContext_ImGuiContext"][1]["cimguiname"] = "ImGuiContext_ImGuiContext" defs["ImGuiContext_ImGuiContext"][1]["constructor"] = true defs["ImGuiContext_ImGuiContext"][1]["defaults"] = {} defs["ImGuiContext_ImGuiContext"][1]["funcname"] = "ImGuiContext" -defs["ImGuiContext_ImGuiContext"][1]["location"] = "imgui_internal:1844" +defs["ImGuiContext_ImGuiContext"][1]["location"] = "imgui_internal:1941" defs["ImGuiContext_ImGuiContext"][1]["ov_cimguiname"] = "ImGuiContext_ImGuiContext" defs["ImGuiContext_ImGuiContext"][1]["signature"] = "(ImFontAtlas*)" defs["ImGuiContext_ImGuiContext"][1]["stname"] = "ImGuiContext" @@ -4354,7 +4354,7 @@ defs["ImGuiDockContext_ImGuiDockContext"][1]["cimguiname"] = "ImGuiDockContext_I defs["ImGuiDockContext_ImGuiDockContext"][1]["constructor"] = true defs["ImGuiDockContext_ImGuiDockContext"][1]["defaults"] = {} defs["ImGuiDockContext_ImGuiDockContext"][1]["funcname"] = "ImGuiDockContext" -defs["ImGuiDockContext_ImGuiDockContext"][1]["location"] = "imgui_internal:1426" +defs["ImGuiDockContext_ImGuiDockContext"][1]["location"] = "imgui_internal:1508" defs["ImGuiDockContext_ImGuiDockContext"][1]["ov_cimguiname"] = "ImGuiDockContext_ImGuiDockContext" defs["ImGuiDockContext_ImGuiDockContext"][1]["signature"] = "()" defs["ImGuiDockContext_ImGuiDockContext"][1]["stname"] = "ImGuiDockContext" @@ -4388,7 +4388,7 @@ defs["ImGuiDockNode_ImGuiDockNode"][1]["cimguiname"] = "ImGuiDockNode_ImGuiDockN defs["ImGuiDockNode_ImGuiDockNode"][1]["constructor"] = true defs["ImGuiDockNode_ImGuiDockNode"][1]["defaults"] = {} defs["ImGuiDockNode_ImGuiDockNode"][1]["funcname"] = "ImGuiDockNode" -defs["ImGuiDockNode_ImGuiDockNode"][1]["location"] = "imgui_internal:1383" +defs["ImGuiDockNode_ImGuiDockNode"][1]["location"] = "imgui_internal:1465" defs["ImGuiDockNode_ImGuiDockNode"][1]["ov_cimguiname"] = "ImGuiDockNode_ImGuiDockNode" defs["ImGuiDockNode_ImGuiDockNode"][1]["signature"] = "(ImGuiID)" defs["ImGuiDockNode_ImGuiDockNode"][1]["stname"] = "ImGuiDockNode" @@ -4405,7 +4405,7 @@ defs["ImGuiDockNode_IsCentralNode"][1]["call_args"] = "()" defs["ImGuiDockNode_IsCentralNode"][1]["cimguiname"] = "ImGuiDockNode_IsCentralNode" defs["ImGuiDockNode_IsCentralNode"][1]["defaults"] = {} defs["ImGuiDockNode_IsCentralNode"][1]["funcname"] = "IsCentralNode" -defs["ImGuiDockNode_IsCentralNode"][1]["location"] = "imgui_internal:1388" +defs["ImGuiDockNode_IsCentralNode"][1]["location"] = "imgui_internal:1470" defs["ImGuiDockNode_IsCentralNode"][1]["ov_cimguiname"] = "ImGuiDockNode_IsCentralNode" defs["ImGuiDockNode_IsCentralNode"][1]["ret"] = "bool" defs["ImGuiDockNode_IsCentralNode"][1]["signature"] = "()const" @@ -4423,7 +4423,7 @@ defs["ImGuiDockNode_IsDockSpace"][1]["call_args"] = "()" defs["ImGuiDockNode_IsDockSpace"][1]["cimguiname"] = "ImGuiDockNode_IsDockSpace" defs["ImGuiDockNode_IsDockSpace"][1]["defaults"] = {} defs["ImGuiDockNode_IsDockSpace"][1]["funcname"] = "IsDockSpace" -defs["ImGuiDockNode_IsDockSpace"][1]["location"] = "imgui_internal:1386" +defs["ImGuiDockNode_IsDockSpace"][1]["location"] = "imgui_internal:1468" defs["ImGuiDockNode_IsDockSpace"][1]["ov_cimguiname"] = "ImGuiDockNode_IsDockSpace" defs["ImGuiDockNode_IsDockSpace"][1]["ret"] = "bool" defs["ImGuiDockNode_IsDockSpace"][1]["signature"] = "()const" @@ -4441,7 +4441,7 @@ defs["ImGuiDockNode_IsEmpty"][1]["call_args"] = "()" defs["ImGuiDockNode_IsEmpty"][1]["cimguiname"] = "ImGuiDockNode_IsEmpty" defs["ImGuiDockNode_IsEmpty"][1]["defaults"] = {} defs["ImGuiDockNode_IsEmpty"][1]["funcname"] = "IsEmpty" -defs["ImGuiDockNode_IsEmpty"][1]["location"] = "imgui_internal:1393" +defs["ImGuiDockNode_IsEmpty"][1]["location"] = "imgui_internal:1475" defs["ImGuiDockNode_IsEmpty"][1]["ov_cimguiname"] = "ImGuiDockNode_IsEmpty" defs["ImGuiDockNode_IsEmpty"][1]["ret"] = "bool" defs["ImGuiDockNode_IsEmpty"][1]["signature"] = "()const" @@ -4459,7 +4459,7 @@ defs["ImGuiDockNode_IsFloatingNode"][1]["call_args"] = "()" defs["ImGuiDockNode_IsFloatingNode"][1]["cimguiname"] = "ImGuiDockNode_IsFloatingNode" defs["ImGuiDockNode_IsFloatingNode"][1]["defaults"] = {} defs["ImGuiDockNode_IsFloatingNode"][1]["funcname"] = "IsFloatingNode" -defs["ImGuiDockNode_IsFloatingNode"][1]["location"] = "imgui_internal:1387" +defs["ImGuiDockNode_IsFloatingNode"][1]["location"] = "imgui_internal:1469" defs["ImGuiDockNode_IsFloatingNode"][1]["ov_cimguiname"] = "ImGuiDockNode_IsFloatingNode" defs["ImGuiDockNode_IsFloatingNode"][1]["ret"] = "bool" defs["ImGuiDockNode_IsFloatingNode"][1]["signature"] = "()const" @@ -4477,7 +4477,7 @@ defs["ImGuiDockNode_IsHiddenTabBar"][1]["call_args"] = "()" defs["ImGuiDockNode_IsHiddenTabBar"][1]["cimguiname"] = "ImGuiDockNode_IsHiddenTabBar" defs["ImGuiDockNode_IsHiddenTabBar"][1]["defaults"] = {} defs["ImGuiDockNode_IsHiddenTabBar"][1]["funcname"] = "IsHiddenTabBar" -defs["ImGuiDockNode_IsHiddenTabBar"][1]["location"] = "imgui_internal:1389" +defs["ImGuiDockNode_IsHiddenTabBar"][1]["location"] = "imgui_internal:1471" defs["ImGuiDockNode_IsHiddenTabBar"][1]["ov_cimguiname"] = "ImGuiDockNode_IsHiddenTabBar" defs["ImGuiDockNode_IsHiddenTabBar"][1]["ret"] = "bool" defs["ImGuiDockNode_IsHiddenTabBar"][1]["signature"] = "()const" @@ -4495,7 +4495,7 @@ defs["ImGuiDockNode_IsLeafNode"][1]["call_args"] = "()" defs["ImGuiDockNode_IsLeafNode"][1]["cimguiname"] = "ImGuiDockNode_IsLeafNode" defs["ImGuiDockNode_IsLeafNode"][1]["defaults"] = {} defs["ImGuiDockNode_IsLeafNode"][1]["funcname"] = "IsLeafNode" -defs["ImGuiDockNode_IsLeafNode"][1]["location"] = "imgui_internal:1392" +defs["ImGuiDockNode_IsLeafNode"][1]["location"] = "imgui_internal:1474" defs["ImGuiDockNode_IsLeafNode"][1]["ov_cimguiname"] = "ImGuiDockNode_IsLeafNode" defs["ImGuiDockNode_IsLeafNode"][1]["ret"] = "bool" defs["ImGuiDockNode_IsLeafNode"][1]["signature"] = "()const" @@ -4513,7 +4513,7 @@ defs["ImGuiDockNode_IsNoTabBar"][1]["call_args"] = "()" defs["ImGuiDockNode_IsNoTabBar"][1]["cimguiname"] = "ImGuiDockNode_IsNoTabBar" defs["ImGuiDockNode_IsNoTabBar"][1]["defaults"] = {} defs["ImGuiDockNode_IsNoTabBar"][1]["funcname"] = "IsNoTabBar" -defs["ImGuiDockNode_IsNoTabBar"][1]["location"] = "imgui_internal:1390" +defs["ImGuiDockNode_IsNoTabBar"][1]["location"] = "imgui_internal:1472" defs["ImGuiDockNode_IsNoTabBar"][1]["ov_cimguiname"] = "ImGuiDockNode_IsNoTabBar" defs["ImGuiDockNode_IsNoTabBar"][1]["ret"] = "bool" defs["ImGuiDockNode_IsNoTabBar"][1]["signature"] = "()const" @@ -4531,7 +4531,7 @@ defs["ImGuiDockNode_IsRootNode"][1]["call_args"] = "()" defs["ImGuiDockNode_IsRootNode"][1]["cimguiname"] = "ImGuiDockNode_IsRootNode" defs["ImGuiDockNode_IsRootNode"][1]["defaults"] = {} defs["ImGuiDockNode_IsRootNode"][1]["funcname"] = "IsRootNode" -defs["ImGuiDockNode_IsRootNode"][1]["location"] = "imgui_internal:1385" +defs["ImGuiDockNode_IsRootNode"][1]["location"] = "imgui_internal:1467" defs["ImGuiDockNode_IsRootNode"][1]["ov_cimguiname"] = "ImGuiDockNode_IsRootNode" defs["ImGuiDockNode_IsRootNode"][1]["ret"] = "bool" defs["ImGuiDockNode_IsRootNode"][1]["signature"] = "()const" @@ -4549,7 +4549,7 @@ defs["ImGuiDockNode_IsSplitNode"][1]["call_args"] = "()" defs["ImGuiDockNode_IsSplitNode"][1]["cimguiname"] = "ImGuiDockNode_IsSplitNode" defs["ImGuiDockNode_IsSplitNode"][1]["defaults"] = {} defs["ImGuiDockNode_IsSplitNode"][1]["funcname"] = "IsSplitNode" -defs["ImGuiDockNode_IsSplitNode"][1]["location"] = "imgui_internal:1391" +defs["ImGuiDockNode_IsSplitNode"][1]["location"] = "imgui_internal:1473" defs["ImGuiDockNode_IsSplitNode"][1]["ov_cimguiname"] = "ImGuiDockNode_IsSplitNode" defs["ImGuiDockNode_IsSplitNode"][1]["ret"] = "bool" defs["ImGuiDockNode_IsSplitNode"][1]["signature"] = "()const" @@ -4570,7 +4570,7 @@ defs["ImGuiDockNode_Rect"][1]["call_args"] = "()" defs["ImGuiDockNode_Rect"][1]["cimguiname"] = "ImGuiDockNode_Rect" defs["ImGuiDockNode_Rect"][1]["defaults"] = {} defs["ImGuiDockNode_Rect"][1]["funcname"] = "Rect" -defs["ImGuiDockNode_Rect"][1]["location"] = "imgui_internal:1394" +defs["ImGuiDockNode_Rect"][1]["location"] = "imgui_internal:1476" defs["ImGuiDockNode_Rect"][1]["nonUDT"] = 1 defs["ImGuiDockNode_Rect"][1]["ov_cimguiname"] = "ImGuiDockNode_Rect" defs["ImGuiDockNode_Rect"][1]["ret"] = "void" @@ -4592,7 +4592,7 @@ defs["ImGuiDockNode_SetLocalFlags"][1]["call_args"] = "(flags)" defs["ImGuiDockNode_SetLocalFlags"][1]["cimguiname"] = "ImGuiDockNode_SetLocalFlags" defs["ImGuiDockNode_SetLocalFlags"][1]["defaults"] = {} defs["ImGuiDockNode_SetLocalFlags"][1]["funcname"] = "SetLocalFlags" -defs["ImGuiDockNode_SetLocalFlags"][1]["location"] = "imgui_internal:1396" +defs["ImGuiDockNode_SetLocalFlags"][1]["location"] = "imgui_internal:1478" defs["ImGuiDockNode_SetLocalFlags"][1]["ov_cimguiname"] = "ImGuiDockNode_SetLocalFlags" defs["ImGuiDockNode_SetLocalFlags"][1]["ret"] = "void" defs["ImGuiDockNode_SetLocalFlags"][1]["signature"] = "(ImGuiDockNodeFlags)" @@ -4610,7 +4610,7 @@ defs["ImGuiDockNode_UpdateMergedFlags"][1]["call_args"] = "()" defs["ImGuiDockNode_UpdateMergedFlags"][1]["cimguiname"] = "ImGuiDockNode_UpdateMergedFlags" defs["ImGuiDockNode_UpdateMergedFlags"][1]["defaults"] = {} defs["ImGuiDockNode_UpdateMergedFlags"][1]["funcname"] = "UpdateMergedFlags" -defs["ImGuiDockNode_UpdateMergedFlags"][1]["location"] = "imgui_internal:1397" +defs["ImGuiDockNode_UpdateMergedFlags"][1]["location"] = "imgui_internal:1479" defs["ImGuiDockNode_UpdateMergedFlags"][1]["ov_cimguiname"] = "ImGuiDockNode_UpdateMergedFlags" defs["ImGuiDockNode_UpdateMergedFlags"][1]["ret"] = "void" defs["ImGuiDockNode_UpdateMergedFlags"][1]["signature"] = "()" @@ -4627,7 +4627,7 @@ defs["ImGuiDockNode_destroy"][1]["call_args"] = "(self)" defs["ImGuiDockNode_destroy"][1]["cimguiname"] = "ImGuiDockNode_destroy" defs["ImGuiDockNode_destroy"][1]["defaults"] = {} defs["ImGuiDockNode_destroy"][1]["destructor"] = true -defs["ImGuiDockNode_destroy"][1]["location"] = "imgui_internal:1384" +defs["ImGuiDockNode_destroy"][1]["location"] = "imgui_internal:1466" defs["ImGuiDockNode_destroy"][1]["ov_cimguiname"] = "ImGuiDockNode_destroy" defs["ImGuiDockNode_destroy"][1]["realdestructor"] = true defs["ImGuiDockNode_destroy"][1]["ret"] = "void" @@ -4649,7 +4649,7 @@ defs["ImGuiIO_AddFocusEvent"][1]["call_args"] = "(focused)" defs["ImGuiIO_AddFocusEvent"][1]["cimguiname"] = "ImGuiIO_AddFocusEvent" defs["ImGuiIO_AddFocusEvent"][1]["defaults"] = {} defs["ImGuiIO_AddFocusEvent"][1]["funcname"] = "AddFocusEvent" -defs["ImGuiIO_AddFocusEvent"][1]["location"] = "imgui:1976" +defs["ImGuiIO_AddFocusEvent"][1]["location"] = "imgui:1983" defs["ImGuiIO_AddFocusEvent"][1]["ov_cimguiname"] = "ImGuiIO_AddFocusEvent" defs["ImGuiIO_AddFocusEvent"][1]["ret"] = "void" defs["ImGuiIO_AddFocusEvent"][1]["signature"] = "(bool)" @@ -4670,7 +4670,7 @@ defs["ImGuiIO_AddInputCharacter"][1]["call_args"] = "(c)" defs["ImGuiIO_AddInputCharacter"][1]["cimguiname"] = "ImGuiIO_AddInputCharacter" defs["ImGuiIO_AddInputCharacter"][1]["defaults"] = {} defs["ImGuiIO_AddInputCharacter"][1]["funcname"] = "AddInputCharacter" -defs["ImGuiIO_AddInputCharacter"][1]["location"] = "imgui:1973" +defs["ImGuiIO_AddInputCharacter"][1]["location"] = "imgui:1980" defs["ImGuiIO_AddInputCharacter"][1]["ov_cimguiname"] = "ImGuiIO_AddInputCharacter" defs["ImGuiIO_AddInputCharacter"][1]["ret"] = "void" defs["ImGuiIO_AddInputCharacter"][1]["signature"] = "(unsigned int)" @@ -4691,7 +4691,7 @@ defs["ImGuiIO_AddInputCharacterUTF16"][1]["call_args"] = "(c)" defs["ImGuiIO_AddInputCharacterUTF16"][1]["cimguiname"] = "ImGuiIO_AddInputCharacterUTF16" defs["ImGuiIO_AddInputCharacterUTF16"][1]["defaults"] = {} defs["ImGuiIO_AddInputCharacterUTF16"][1]["funcname"] = "AddInputCharacterUTF16" -defs["ImGuiIO_AddInputCharacterUTF16"][1]["location"] = "imgui:1974" +defs["ImGuiIO_AddInputCharacterUTF16"][1]["location"] = "imgui:1981" defs["ImGuiIO_AddInputCharacterUTF16"][1]["ov_cimguiname"] = "ImGuiIO_AddInputCharacterUTF16" defs["ImGuiIO_AddInputCharacterUTF16"][1]["ret"] = "void" defs["ImGuiIO_AddInputCharacterUTF16"][1]["signature"] = "(ImWchar16)" @@ -4712,7 +4712,7 @@ defs["ImGuiIO_AddInputCharactersUTF8"][1]["call_args"] = "(str)" defs["ImGuiIO_AddInputCharactersUTF8"][1]["cimguiname"] = "ImGuiIO_AddInputCharactersUTF8" defs["ImGuiIO_AddInputCharactersUTF8"][1]["defaults"] = {} defs["ImGuiIO_AddInputCharactersUTF8"][1]["funcname"] = "AddInputCharactersUTF8" -defs["ImGuiIO_AddInputCharactersUTF8"][1]["location"] = "imgui:1975" +defs["ImGuiIO_AddInputCharactersUTF8"][1]["location"] = "imgui:1982" defs["ImGuiIO_AddInputCharactersUTF8"][1]["ov_cimguiname"] = "ImGuiIO_AddInputCharactersUTF8" defs["ImGuiIO_AddInputCharactersUTF8"][1]["ret"] = "void" defs["ImGuiIO_AddInputCharactersUTF8"][1]["signature"] = "(const char*)" @@ -4730,7 +4730,7 @@ defs["ImGuiIO_ClearInputCharacters"][1]["call_args"] = "()" defs["ImGuiIO_ClearInputCharacters"][1]["cimguiname"] = "ImGuiIO_ClearInputCharacters" defs["ImGuiIO_ClearInputCharacters"][1]["defaults"] = {} defs["ImGuiIO_ClearInputCharacters"][1]["funcname"] = "ClearInputCharacters" -defs["ImGuiIO_ClearInputCharacters"][1]["location"] = "imgui:1977" +defs["ImGuiIO_ClearInputCharacters"][1]["location"] = "imgui:1984" defs["ImGuiIO_ClearInputCharacters"][1]["ov_cimguiname"] = "ImGuiIO_ClearInputCharacters" defs["ImGuiIO_ClearInputCharacters"][1]["ret"] = "void" defs["ImGuiIO_ClearInputCharacters"][1]["signature"] = "()" @@ -4748,7 +4748,7 @@ defs["ImGuiIO_ClearInputKeys"][1]["call_args"] = "()" defs["ImGuiIO_ClearInputKeys"][1]["cimguiname"] = "ImGuiIO_ClearInputKeys" defs["ImGuiIO_ClearInputKeys"][1]["defaults"] = {} defs["ImGuiIO_ClearInputKeys"][1]["funcname"] = "ClearInputKeys" -defs["ImGuiIO_ClearInputKeys"][1]["location"] = "imgui:1978" +defs["ImGuiIO_ClearInputKeys"][1]["location"] = "imgui:1985" defs["ImGuiIO_ClearInputKeys"][1]["ov_cimguiname"] = "ImGuiIO_ClearInputKeys" defs["ImGuiIO_ClearInputKeys"][1]["ret"] = "void" defs["ImGuiIO_ClearInputKeys"][1]["signature"] = "()" @@ -4764,7 +4764,7 @@ defs["ImGuiIO_ImGuiIO"][1]["cimguiname"] = "ImGuiIO_ImGuiIO" defs["ImGuiIO_ImGuiIO"][1]["constructor"] = true defs["ImGuiIO_ImGuiIO"][1]["defaults"] = {} defs["ImGuiIO_ImGuiIO"][1]["funcname"] = "ImGuiIO" -defs["ImGuiIO_ImGuiIO"][1]["location"] = "imgui:2030" +defs["ImGuiIO_ImGuiIO"][1]["location"] = "imgui:2038" defs["ImGuiIO_ImGuiIO"][1]["ov_cimguiname"] = "ImGuiIO_ImGuiIO" defs["ImGuiIO_ImGuiIO"][1]["signature"] = "()" defs["ImGuiIO_ImGuiIO"][1]["stname"] = "ImGuiIO" @@ -4797,7 +4797,7 @@ defs["ImGuiInputTextCallbackData_ClearSelection"][1]["call_args"] = "()" defs["ImGuiInputTextCallbackData_ClearSelection"][1]["cimguiname"] = "ImGuiInputTextCallbackData_ClearSelection" defs["ImGuiInputTextCallbackData_ClearSelection"][1]["defaults"] = {} defs["ImGuiInputTextCallbackData_ClearSelection"][1]["funcname"] = "ClearSelection" -defs["ImGuiInputTextCallbackData_ClearSelection"][1]["location"] = "imgui:2071" +defs["ImGuiInputTextCallbackData_ClearSelection"][1]["location"] = "imgui:2079" defs["ImGuiInputTextCallbackData_ClearSelection"][1]["ov_cimguiname"] = "ImGuiInputTextCallbackData_ClearSelection" defs["ImGuiInputTextCallbackData_ClearSelection"][1]["ret"] = "void" defs["ImGuiInputTextCallbackData_ClearSelection"][1]["signature"] = "()" @@ -4821,7 +4821,7 @@ defs["ImGuiInputTextCallbackData_DeleteChars"][1]["call_args"] = "(pos,bytes_cou defs["ImGuiInputTextCallbackData_DeleteChars"][1]["cimguiname"] = "ImGuiInputTextCallbackData_DeleteChars" defs["ImGuiInputTextCallbackData_DeleteChars"][1]["defaults"] = {} defs["ImGuiInputTextCallbackData_DeleteChars"][1]["funcname"] = "DeleteChars" -defs["ImGuiInputTextCallbackData_DeleteChars"][1]["location"] = "imgui:2068" +defs["ImGuiInputTextCallbackData_DeleteChars"][1]["location"] = "imgui:2076" defs["ImGuiInputTextCallbackData_DeleteChars"][1]["ov_cimguiname"] = "ImGuiInputTextCallbackData_DeleteChars" defs["ImGuiInputTextCallbackData_DeleteChars"][1]["ret"] = "void" defs["ImGuiInputTextCallbackData_DeleteChars"][1]["signature"] = "(int,int)" @@ -4839,7 +4839,7 @@ defs["ImGuiInputTextCallbackData_HasSelection"][1]["call_args"] = "()" defs["ImGuiInputTextCallbackData_HasSelection"][1]["cimguiname"] = "ImGuiInputTextCallbackData_HasSelection" defs["ImGuiInputTextCallbackData_HasSelection"][1]["defaults"] = {} defs["ImGuiInputTextCallbackData_HasSelection"][1]["funcname"] = "HasSelection" -defs["ImGuiInputTextCallbackData_HasSelection"][1]["location"] = "imgui:2072" +defs["ImGuiInputTextCallbackData_HasSelection"][1]["location"] = "imgui:2080" defs["ImGuiInputTextCallbackData_HasSelection"][1]["ov_cimguiname"] = "ImGuiInputTextCallbackData_HasSelection" defs["ImGuiInputTextCallbackData_HasSelection"][1]["ret"] = "bool" defs["ImGuiInputTextCallbackData_HasSelection"][1]["signature"] = "()const" @@ -4855,7 +4855,7 @@ defs["ImGuiInputTextCallbackData_ImGuiInputTextCallbackData"][1]["cimguiname"] = defs["ImGuiInputTextCallbackData_ImGuiInputTextCallbackData"][1]["constructor"] = true defs["ImGuiInputTextCallbackData_ImGuiInputTextCallbackData"][1]["defaults"] = {} defs["ImGuiInputTextCallbackData_ImGuiInputTextCallbackData"][1]["funcname"] = "ImGuiInputTextCallbackData" -defs["ImGuiInputTextCallbackData_ImGuiInputTextCallbackData"][1]["location"] = "imgui:2067" +defs["ImGuiInputTextCallbackData_ImGuiInputTextCallbackData"][1]["location"] = "imgui:2075" defs["ImGuiInputTextCallbackData_ImGuiInputTextCallbackData"][1]["ov_cimguiname"] = "ImGuiInputTextCallbackData_ImGuiInputTextCallbackData" defs["ImGuiInputTextCallbackData_ImGuiInputTextCallbackData"][1]["signature"] = "()" defs["ImGuiInputTextCallbackData_ImGuiInputTextCallbackData"][1]["stname"] = "ImGuiInputTextCallbackData" @@ -4882,7 +4882,7 @@ defs["ImGuiInputTextCallbackData_InsertChars"][1]["cimguiname"] = "ImGuiInputTex defs["ImGuiInputTextCallbackData_InsertChars"][1]["defaults"] = {} defs["ImGuiInputTextCallbackData_InsertChars"][1]["defaults"]["text_end"] = "NULL" defs["ImGuiInputTextCallbackData_InsertChars"][1]["funcname"] = "InsertChars" -defs["ImGuiInputTextCallbackData_InsertChars"][1]["location"] = "imgui:2069" +defs["ImGuiInputTextCallbackData_InsertChars"][1]["location"] = "imgui:2077" defs["ImGuiInputTextCallbackData_InsertChars"][1]["ov_cimguiname"] = "ImGuiInputTextCallbackData_InsertChars" defs["ImGuiInputTextCallbackData_InsertChars"][1]["ret"] = "void" defs["ImGuiInputTextCallbackData_InsertChars"][1]["signature"] = "(int,const char*,const char*)" @@ -4900,7 +4900,7 @@ defs["ImGuiInputTextCallbackData_SelectAll"][1]["call_args"] = "()" defs["ImGuiInputTextCallbackData_SelectAll"][1]["cimguiname"] = "ImGuiInputTextCallbackData_SelectAll" defs["ImGuiInputTextCallbackData_SelectAll"][1]["defaults"] = {} defs["ImGuiInputTextCallbackData_SelectAll"][1]["funcname"] = "SelectAll" -defs["ImGuiInputTextCallbackData_SelectAll"][1]["location"] = "imgui:2070" +defs["ImGuiInputTextCallbackData_SelectAll"][1]["location"] = "imgui:2078" defs["ImGuiInputTextCallbackData_SelectAll"][1]["ov_cimguiname"] = "ImGuiInputTextCallbackData_SelectAll" defs["ImGuiInputTextCallbackData_SelectAll"][1]["ret"] = "void" defs["ImGuiInputTextCallbackData_SelectAll"][1]["signature"] = "()" @@ -4934,7 +4934,7 @@ defs["ImGuiInputTextState_ClearFreeMemory"][1]["call_args"] = "()" defs["ImGuiInputTextState_ClearFreeMemory"][1]["cimguiname"] = "ImGuiInputTextState_ClearFreeMemory" defs["ImGuiInputTextState_ClearFreeMemory"][1]["defaults"] = {} defs["ImGuiInputTextState_ClearFreeMemory"][1]["funcname"] = "ClearFreeMemory" -defs["ImGuiInputTextState_ClearFreeMemory"][1]["location"] = "imgui_internal:1047" +defs["ImGuiInputTextState_ClearFreeMemory"][1]["location"] = "imgui_internal:1048" defs["ImGuiInputTextState_ClearFreeMemory"][1]["ov_cimguiname"] = "ImGuiInputTextState_ClearFreeMemory" defs["ImGuiInputTextState_ClearFreeMemory"][1]["ret"] = "void" defs["ImGuiInputTextState_ClearFreeMemory"][1]["signature"] = "()" @@ -4952,7 +4952,7 @@ defs["ImGuiInputTextState_ClearSelection"][1]["call_args"] = "()" defs["ImGuiInputTextState_ClearSelection"][1]["cimguiname"] = "ImGuiInputTextState_ClearSelection" defs["ImGuiInputTextState_ClearSelection"][1]["defaults"] = {} defs["ImGuiInputTextState_ClearSelection"][1]["funcname"] = "ClearSelection" -defs["ImGuiInputTextState_ClearSelection"][1]["location"] = "imgui_internal:1056" +defs["ImGuiInputTextState_ClearSelection"][1]["location"] = "imgui_internal:1057" defs["ImGuiInputTextState_ClearSelection"][1]["ov_cimguiname"] = "ImGuiInputTextState_ClearSelection" defs["ImGuiInputTextState_ClearSelection"][1]["ret"] = "void" defs["ImGuiInputTextState_ClearSelection"][1]["signature"] = "()" @@ -4970,7 +4970,7 @@ defs["ImGuiInputTextState_ClearText"][1]["call_args"] = "()" defs["ImGuiInputTextState_ClearText"][1]["cimguiname"] = "ImGuiInputTextState_ClearText" defs["ImGuiInputTextState_ClearText"][1]["defaults"] = {} defs["ImGuiInputTextState_ClearText"][1]["funcname"] = "ClearText" -defs["ImGuiInputTextState_ClearText"][1]["location"] = "imgui_internal:1046" +defs["ImGuiInputTextState_ClearText"][1]["location"] = "imgui_internal:1047" defs["ImGuiInputTextState_ClearText"][1]["ov_cimguiname"] = "ImGuiInputTextState_ClearText" defs["ImGuiInputTextState_ClearText"][1]["ret"] = "void" defs["ImGuiInputTextState_ClearText"][1]["signature"] = "()" @@ -4988,7 +4988,7 @@ defs["ImGuiInputTextState_CursorAnimReset"][1]["call_args"] = "()" defs["ImGuiInputTextState_CursorAnimReset"][1]["cimguiname"] = "ImGuiInputTextState_CursorAnimReset" defs["ImGuiInputTextState_CursorAnimReset"][1]["defaults"] = {} defs["ImGuiInputTextState_CursorAnimReset"][1]["funcname"] = "CursorAnimReset" -defs["ImGuiInputTextState_CursorAnimReset"][1]["location"] = "imgui_internal:1053" +defs["ImGuiInputTextState_CursorAnimReset"][1]["location"] = "imgui_internal:1054" defs["ImGuiInputTextState_CursorAnimReset"][1]["ov_cimguiname"] = "ImGuiInputTextState_CursorAnimReset" defs["ImGuiInputTextState_CursorAnimReset"][1]["ret"] = "void" defs["ImGuiInputTextState_CursorAnimReset"][1]["signature"] = "()" @@ -5006,7 +5006,7 @@ defs["ImGuiInputTextState_CursorClamp"][1]["call_args"] = "()" defs["ImGuiInputTextState_CursorClamp"][1]["cimguiname"] = "ImGuiInputTextState_CursorClamp" defs["ImGuiInputTextState_CursorClamp"][1]["defaults"] = {} defs["ImGuiInputTextState_CursorClamp"][1]["funcname"] = "CursorClamp" -defs["ImGuiInputTextState_CursorClamp"][1]["location"] = "imgui_internal:1054" +defs["ImGuiInputTextState_CursorClamp"][1]["location"] = "imgui_internal:1055" defs["ImGuiInputTextState_CursorClamp"][1]["ov_cimguiname"] = "ImGuiInputTextState_CursorClamp" defs["ImGuiInputTextState_CursorClamp"][1]["ret"] = "void" defs["ImGuiInputTextState_CursorClamp"][1]["signature"] = "()" @@ -5024,7 +5024,7 @@ defs["ImGuiInputTextState_GetCursorPos"][1]["call_args"] = "()" defs["ImGuiInputTextState_GetCursorPos"][1]["cimguiname"] = "ImGuiInputTextState_GetCursorPos" defs["ImGuiInputTextState_GetCursorPos"][1]["defaults"] = {} defs["ImGuiInputTextState_GetCursorPos"][1]["funcname"] = "GetCursorPos" -defs["ImGuiInputTextState_GetCursorPos"][1]["location"] = "imgui_internal:1057" +defs["ImGuiInputTextState_GetCursorPos"][1]["location"] = "imgui_internal:1058" defs["ImGuiInputTextState_GetCursorPos"][1]["ov_cimguiname"] = "ImGuiInputTextState_GetCursorPos" defs["ImGuiInputTextState_GetCursorPos"][1]["ret"] = "int" defs["ImGuiInputTextState_GetCursorPos"][1]["signature"] = "()const" @@ -5042,7 +5042,7 @@ defs["ImGuiInputTextState_GetRedoAvailCount"][1]["call_args"] = "()" defs["ImGuiInputTextState_GetRedoAvailCount"][1]["cimguiname"] = "ImGuiInputTextState_GetRedoAvailCount" defs["ImGuiInputTextState_GetRedoAvailCount"][1]["defaults"] = {} defs["ImGuiInputTextState_GetRedoAvailCount"][1]["funcname"] = "GetRedoAvailCount" -defs["ImGuiInputTextState_GetRedoAvailCount"][1]["location"] = "imgui_internal:1049" +defs["ImGuiInputTextState_GetRedoAvailCount"][1]["location"] = "imgui_internal:1050" defs["ImGuiInputTextState_GetRedoAvailCount"][1]["ov_cimguiname"] = "ImGuiInputTextState_GetRedoAvailCount" defs["ImGuiInputTextState_GetRedoAvailCount"][1]["ret"] = "int" defs["ImGuiInputTextState_GetRedoAvailCount"][1]["signature"] = "()const" @@ -5060,7 +5060,7 @@ defs["ImGuiInputTextState_GetSelectionEnd"][1]["call_args"] = "()" defs["ImGuiInputTextState_GetSelectionEnd"][1]["cimguiname"] = "ImGuiInputTextState_GetSelectionEnd" defs["ImGuiInputTextState_GetSelectionEnd"][1]["defaults"] = {} defs["ImGuiInputTextState_GetSelectionEnd"][1]["funcname"] = "GetSelectionEnd" -defs["ImGuiInputTextState_GetSelectionEnd"][1]["location"] = "imgui_internal:1059" +defs["ImGuiInputTextState_GetSelectionEnd"][1]["location"] = "imgui_internal:1060" defs["ImGuiInputTextState_GetSelectionEnd"][1]["ov_cimguiname"] = "ImGuiInputTextState_GetSelectionEnd" defs["ImGuiInputTextState_GetSelectionEnd"][1]["ret"] = "int" defs["ImGuiInputTextState_GetSelectionEnd"][1]["signature"] = "()const" @@ -5078,7 +5078,7 @@ defs["ImGuiInputTextState_GetSelectionStart"][1]["call_args"] = "()" defs["ImGuiInputTextState_GetSelectionStart"][1]["cimguiname"] = "ImGuiInputTextState_GetSelectionStart" defs["ImGuiInputTextState_GetSelectionStart"][1]["defaults"] = {} defs["ImGuiInputTextState_GetSelectionStart"][1]["funcname"] = "GetSelectionStart" -defs["ImGuiInputTextState_GetSelectionStart"][1]["location"] = "imgui_internal:1058" +defs["ImGuiInputTextState_GetSelectionStart"][1]["location"] = "imgui_internal:1059" defs["ImGuiInputTextState_GetSelectionStart"][1]["ov_cimguiname"] = "ImGuiInputTextState_GetSelectionStart" defs["ImGuiInputTextState_GetSelectionStart"][1]["ret"] = "int" defs["ImGuiInputTextState_GetSelectionStart"][1]["signature"] = "()const" @@ -5096,7 +5096,7 @@ defs["ImGuiInputTextState_GetUndoAvailCount"][1]["call_args"] = "()" defs["ImGuiInputTextState_GetUndoAvailCount"][1]["cimguiname"] = "ImGuiInputTextState_GetUndoAvailCount" defs["ImGuiInputTextState_GetUndoAvailCount"][1]["defaults"] = {} defs["ImGuiInputTextState_GetUndoAvailCount"][1]["funcname"] = "GetUndoAvailCount" -defs["ImGuiInputTextState_GetUndoAvailCount"][1]["location"] = "imgui_internal:1048" +defs["ImGuiInputTextState_GetUndoAvailCount"][1]["location"] = "imgui_internal:1049" defs["ImGuiInputTextState_GetUndoAvailCount"][1]["ov_cimguiname"] = "ImGuiInputTextState_GetUndoAvailCount" defs["ImGuiInputTextState_GetUndoAvailCount"][1]["ret"] = "int" defs["ImGuiInputTextState_GetUndoAvailCount"][1]["signature"] = "()const" @@ -5114,7 +5114,7 @@ defs["ImGuiInputTextState_HasSelection"][1]["call_args"] = "()" defs["ImGuiInputTextState_HasSelection"][1]["cimguiname"] = "ImGuiInputTextState_HasSelection" defs["ImGuiInputTextState_HasSelection"][1]["defaults"] = {} defs["ImGuiInputTextState_HasSelection"][1]["funcname"] = "HasSelection" -defs["ImGuiInputTextState_HasSelection"][1]["location"] = "imgui_internal:1055" +defs["ImGuiInputTextState_HasSelection"][1]["location"] = "imgui_internal:1056" defs["ImGuiInputTextState_HasSelection"][1]["ov_cimguiname"] = "ImGuiInputTextState_HasSelection" defs["ImGuiInputTextState_HasSelection"][1]["ret"] = "bool" defs["ImGuiInputTextState_HasSelection"][1]["signature"] = "()const" @@ -5130,7 +5130,7 @@ defs["ImGuiInputTextState_ImGuiInputTextState"][1]["cimguiname"] = "ImGuiInputTe defs["ImGuiInputTextState_ImGuiInputTextState"][1]["constructor"] = true defs["ImGuiInputTextState_ImGuiInputTextState"][1]["defaults"] = {} defs["ImGuiInputTextState_ImGuiInputTextState"][1]["funcname"] = "ImGuiInputTextState" -defs["ImGuiInputTextState_ImGuiInputTextState"][1]["location"] = "imgui_internal:1045" +defs["ImGuiInputTextState_ImGuiInputTextState"][1]["location"] = "imgui_internal:1046" defs["ImGuiInputTextState_ImGuiInputTextState"][1]["ov_cimguiname"] = "ImGuiInputTextState_ImGuiInputTextState" defs["ImGuiInputTextState_ImGuiInputTextState"][1]["signature"] = "()" defs["ImGuiInputTextState_ImGuiInputTextState"][1]["stname"] = "ImGuiInputTextState" @@ -5150,7 +5150,7 @@ defs["ImGuiInputTextState_OnKeyPressed"][1]["call_args"] = "(key)" defs["ImGuiInputTextState_OnKeyPressed"][1]["cimguiname"] = "ImGuiInputTextState_OnKeyPressed" defs["ImGuiInputTextState_OnKeyPressed"][1]["defaults"] = {} defs["ImGuiInputTextState_OnKeyPressed"][1]["funcname"] = "OnKeyPressed" -defs["ImGuiInputTextState_OnKeyPressed"][1]["location"] = "imgui_internal:1050" +defs["ImGuiInputTextState_OnKeyPressed"][1]["location"] = "imgui_internal:1051" defs["ImGuiInputTextState_OnKeyPressed"][1]["ov_cimguiname"] = "ImGuiInputTextState_OnKeyPressed" defs["ImGuiInputTextState_OnKeyPressed"][1]["ret"] = "void" defs["ImGuiInputTextState_OnKeyPressed"][1]["signature"] = "(int)" @@ -5168,7 +5168,7 @@ defs["ImGuiInputTextState_SelectAll"][1]["call_args"] = "()" defs["ImGuiInputTextState_SelectAll"][1]["cimguiname"] = "ImGuiInputTextState_SelectAll" defs["ImGuiInputTextState_SelectAll"][1]["defaults"] = {} defs["ImGuiInputTextState_SelectAll"][1]["funcname"] = "SelectAll" -defs["ImGuiInputTextState_SelectAll"][1]["location"] = "imgui_internal:1060" +defs["ImGuiInputTextState_SelectAll"][1]["location"] = "imgui_internal:1061" defs["ImGuiInputTextState_SelectAll"][1]["ov_cimguiname"] = "ImGuiInputTextState_SelectAll" defs["ImGuiInputTextState_SelectAll"][1]["ret"] = "void" defs["ImGuiInputTextState_SelectAll"][1]["signature"] = "()" @@ -5200,7 +5200,7 @@ defs["ImGuiLastItemData_ImGuiLastItemData"][1]["cimguiname"] = "ImGuiLastItemDat defs["ImGuiLastItemData_ImGuiLastItemData"][1]["constructor"] = true defs["ImGuiLastItemData_ImGuiLastItemData"][1]["defaults"] = {} defs["ImGuiLastItemData_ImGuiLastItemData"][1]["funcname"] = "ImGuiLastItemData" -defs["ImGuiLastItemData_ImGuiLastItemData"][1]["location"] = "imgui_internal:1149" +defs["ImGuiLastItemData_ImGuiLastItemData"][1]["location"] = "imgui_internal:1151" defs["ImGuiLastItemData_ImGuiLastItemData"][1]["ov_cimguiname"] = "ImGuiLastItemData_ImGuiLastItemData" defs["ImGuiLastItemData_ImGuiLastItemData"][1]["signature"] = "()" defs["ImGuiLastItemData_ImGuiLastItemData"][1]["stname"] = "ImGuiLastItemData" @@ -5221,6 +5221,108 @@ defs["ImGuiLastItemData_destroy"][1]["ret"] = "void" defs["ImGuiLastItemData_destroy"][1]["signature"] = "(ImGuiLastItemData*)" defs["ImGuiLastItemData_destroy"][1]["stname"] = "ImGuiLastItemData" defs["ImGuiLastItemData_destroy"]["(ImGuiLastItemData*)"] = defs["ImGuiLastItemData_destroy"][1] +defs["ImGuiListClipperData_ImGuiListClipperData"] = {} +defs["ImGuiListClipperData_ImGuiListClipperData"][1] = {} +defs["ImGuiListClipperData_ImGuiListClipperData"][1]["args"] = "()" +defs["ImGuiListClipperData_ImGuiListClipperData"][1]["argsT"] = {} +defs["ImGuiListClipperData_ImGuiListClipperData"][1]["argsoriginal"] = "()" +defs["ImGuiListClipperData_ImGuiListClipperData"][1]["call_args"] = "()" +defs["ImGuiListClipperData_ImGuiListClipperData"][1]["cimguiname"] = "ImGuiListClipperData_ImGuiListClipperData" +defs["ImGuiListClipperData_ImGuiListClipperData"][1]["constructor"] = true +defs["ImGuiListClipperData_ImGuiListClipperData"][1]["defaults"] = {} +defs["ImGuiListClipperData_ImGuiListClipperData"][1]["funcname"] = "ImGuiListClipperData" +defs["ImGuiListClipperData_ImGuiListClipperData"][1]["location"] = "imgui_internal:1219" +defs["ImGuiListClipperData_ImGuiListClipperData"][1]["ov_cimguiname"] = "ImGuiListClipperData_ImGuiListClipperData" +defs["ImGuiListClipperData_ImGuiListClipperData"][1]["signature"] = "()" +defs["ImGuiListClipperData_ImGuiListClipperData"][1]["stname"] = "ImGuiListClipperData" +defs["ImGuiListClipperData_ImGuiListClipperData"]["()"] = defs["ImGuiListClipperData_ImGuiListClipperData"][1] +defs["ImGuiListClipperData_Reset"] = {} +defs["ImGuiListClipperData_Reset"][1] = {} +defs["ImGuiListClipperData_Reset"][1]["args"] = "(ImGuiListClipperData* self,ImGuiListClipper* clipper)" +defs["ImGuiListClipperData_Reset"][1]["argsT"] = {} +defs["ImGuiListClipperData_Reset"][1]["argsT"][1] = {} +defs["ImGuiListClipperData_Reset"][1]["argsT"][1]["name"] = "self" +defs["ImGuiListClipperData_Reset"][1]["argsT"][1]["type"] = "ImGuiListClipperData*" +defs["ImGuiListClipperData_Reset"][1]["argsT"][2] = {} +defs["ImGuiListClipperData_Reset"][1]["argsT"][2]["name"] = "clipper" +defs["ImGuiListClipperData_Reset"][1]["argsT"][2]["type"] = "ImGuiListClipper*" +defs["ImGuiListClipperData_Reset"][1]["argsoriginal"] = "(ImGuiListClipper* clipper)" +defs["ImGuiListClipperData_Reset"][1]["call_args"] = "(clipper)" +defs["ImGuiListClipperData_Reset"][1]["cimguiname"] = "ImGuiListClipperData_Reset" +defs["ImGuiListClipperData_Reset"][1]["defaults"] = {} +defs["ImGuiListClipperData_Reset"][1]["funcname"] = "Reset" +defs["ImGuiListClipperData_Reset"][1]["location"] = "imgui_internal:1220" +defs["ImGuiListClipperData_Reset"][1]["ov_cimguiname"] = "ImGuiListClipperData_Reset" +defs["ImGuiListClipperData_Reset"][1]["ret"] = "void" +defs["ImGuiListClipperData_Reset"][1]["signature"] = "(ImGuiListClipper*)" +defs["ImGuiListClipperData_Reset"][1]["stname"] = "ImGuiListClipperData" +defs["ImGuiListClipperData_Reset"]["(ImGuiListClipper*)"] = defs["ImGuiListClipperData_Reset"][1] +defs["ImGuiListClipperData_destroy"] = {} +defs["ImGuiListClipperData_destroy"][1] = {} +defs["ImGuiListClipperData_destroy"][1]["args"] = "(ImGuiListClipperData* self)" +defs["ImGuiListClipperData_destroy"][1]["argsT"] = {} +defs["ImGuiListClipperData_destroy"][1]["argsT"][1] = {} +defs["ImGuiListClipperData_destroy"][1]["argsT"][1]["name"] = "self" +defs["ImGuiListClipperData_destroy"][1]["argsT"][1]["type"] = "ImGuiListClipperData*" +defs["ImGuiListClipperData_destroy"][1]["call_args"] = "(self)" +defs["ImGuiListClipperData_destroy"][1]["cimguiname"] = "ImGuiListClipperData_destroy" +defs["ImGuiListClipperData_destroy"][1]["defaults"] = {} +defs["ImGuiListClipperData_destroy"][1]["destructor"] = true +defs["ImGuiListClipperData_destroy"][1]["ov_cimguiname"] = "ImGuiListClipperData_destroy" +defs["ImGuiListClipperData_destroy"][1]["ret"] = "void" +defs["ImGuiListClipperData_destroy"][1]["signature"] = "(ImGuiListClipperData*)" +defs["ImGuiListClipperData_destroy"][1]["stname"] = "ImGuiListClipperData" +defs["ImGuiListClipperData_destroy"]["(ImGuiListClipperData*)"] = defs["ImGuiListClipperData_destroy"][1] +defs["ImGuiListClipperRange_FromIndices"] = {} +defs["ImGuiListClipperRange_FromIndices"][1] = {} +defs["ImGuiListClipperRange_FromIndices"][1]["args"] = "(int min,int max)" +defs["ImGuiListClipperRange_FromIndices"][1]["argsT"] = {} +defs["ImGuiListClipperRange_FromIndices"][1]["argsT"][1] = {} +defs["ImGuiListClipperRange_FromIndices"][1]["argsT"][1]["name"] = "min" +defs["ImGuiListClipperRange_FromIndices"][1]["argsT"][1]["type"] = "int" +defs["ImGuiListClipperRange_FromIndices"][1]["argsT"][2] = {} +defs["ImGuiListClipperRange_FromIndices"][1]["argsT"][2]["name"] = "max" +defs["ImGuiListClipperRange_FromIndices"][1]["argsT"][2]["type"] = "int" +defs["ImGuiListClipperRange_FromIndices"][1]["argsoriginal"] = "(int min,int max)" +defs["ImGuiListClipperRange_FromIndices"][1]["call_args"] = "(min,max)" +defs["ImGuiListClipperRange_FromIndices"][1]["cimguiname"] = "ImGuiListClipperRange_FromIndices" +defs["ImGuiListClipperRange_FromIndices"][1]["defaults"] = {} +defs["ImGuiListClipperRange_FromIndices"][1]["funcname"] = "FromIndices" +defs["ImGuiListClipperRange_FromIndices"][1]["is_static_function"] = true +defs["ImGuiListClipperRange_FromIndices"][1]["location"] = "imgui_internal:1206" +defs["ImGuiListClipperRange_FromIndices"][1]["ov_cimguiname"] = "ImGuiListClipperRange_FromIndices" +defs["ImGuiListClipperRange_FromIndices"][1]["ret"] = "ImGuiListClipperRange" +defs["ImGuiListClipperRange_FromIndices"][1]["signature"] = "(int,int)" +defs["ImGuiListClipperRange_FromIndices"][1]["stname"] = "ImGuiListClipperRange" +defs["ImGuiListClipperRange_FromIndices"]["(int,int)"] = defs["ImGuiListClipperRange_FromIndices"][1] +defs["ImGuiListClipperRange_FromPositions"] = {} +defs["ImGuiListClipperRange_FromPositions"][1] = {} +defs["ImGuiListClipperRange_FromPositions"][1]["args"] = "(float y1,float y2,int off_min,int off_max)" +defs["ImGuiListClipperRange_FromPositions"][1]["argsT"] = {} +defs["ImGuiListClipperRange_FromPositions"][1]["argsT"][1] = {} +defs["ImGuiListClipperRange_FromPositions"][1]["argsT"][1]["name"] = "y1" +defs["ImGuiListClipperRange_FromPositions"][1]["argsT"][1]["type"] = "float" +defs["ImGuiListClipperRange_FromPositions"][1]["argsT"][2] = {} +defs["ImGuiListClipperRange_FromPositions"][1]["argsT"][2]["name"] = "y2" +defs["ImGuiListClipperRange_FromPositions"][1]["argsT"][2]["type"] = "float" +defs["ImGuiListClipperRange_FromPositions"][1]["argsT"][3] = {} +defs["ImGuiListClipperRange_FromPositions"][1]["argsT"][3]["name"] = "off_min" +defs["ImGuiListClipperRange_FromPositions"][1]["argsT"][3]["type"] = "int" +defs["ImGuiListClipperRange_FromPositions"][1]["argsT"][4] = {} +defs["ImGuiListClipperRange_FromPositions"][1]["argsT"][4]["name"] = "off_max" +defs["ImGuiListClipperRange_FromPositions"][1]["argsT"][4]["type"] = "int" +defs["ImGuiListClipperRange_FromPositions"][1]["argsoriginal"] = "(float y1,float y2,int off_min,int off_max)" +defs["ImGuiListClipperRange_FromPositions"][1]["call_args"] = "(y1,y2,off_min,off_max)" +defs["ImGuiListClipperRange_FromPositions"][1]["cimguiname"] = "ImGuiListClipperRange_FromPositions" +defs["ImGuiListClipperRange_FromPositions"][1]["defaults"] = {} +defs["ImGuiListClipperRange_FromPositions"][1]["funcname"] = "FromPositions" +defs["ImGuiListClipperRange_FromPositions"][1]["is_static_function"] = true +defs["ImGuiListClipperRange_FromPositions"][1]["location"] = "imgui_internal:1207" +defs["ImGuiListClipperRange_FromPositions"][1]["ov_cimguiname"] = "ImGuiListClipperRange_FromPositions" +defs["ImGuiListClipperRange_FromPositions"][1]["ret"] = "ImGuiListClipperRange" +defs["ImGuiListClipperRange_FromPositions"][1]["signature"] = "(float,float,int,int)" +defs["ImGuiListClipperRange_FromPositions"][1]["stname"] = "ImGuiListClipperRange" +defs["ImGuiListClipperRange_FromPositions"]["(float,float,int,int)"] = defs["ImGuiListClipperRange_FromPositions"][1] defs["ImGuiListClipper_Begin"] = {} defs["ImGuiListClipper_Begin"][1] = {} defs["ImGuiListClipper_Begin"][1]["args"] = "(ImGuiListClipper* self,int items_count,float items_height)" @@ -5240,7 +5342,7 @@ defs["ImGuiListClipper_Begin"][1]["cimguiname"] = "ImGuiListClipper_Begin" defs["ImGuiListClipper_Begin"][1]["defaults"] = {} defs["ImGuiListClipper_Begin"][1]["defaults"]["items_height"] = "-1.0f" defs["ImGuiListClipper_Begin"][1]["funcname"] = "Begin" -defs["ImGuiListClipper_Begin"][1]["location"] = "imgui:2305" +defs["ImGuiListClipper_Begin"][1]["location"] = "imgui:2312" defs["ImGuiListClipper_Begin"][1]["ov_cimguiname"] = "ImGuiListClipper_Begin" defs["ImGuiListClipper_Begin"][1]["ret"] = "void" defs["ImGuiListClipper_Begin"][1]["signature"] = "(int,float)" @@ -5258,12 +5360,36 @@ defs["ImGuiListClipper_End"][1]["call_args"] = "()" defs["ImGuiListClipper_End"][1]["cimguiname"] = "ImGuiListClipper_End" defs["ImGuiListClipper_End"][1]["defaults"] = {} defs["ImGuiListClipper_End"][1]["funcname"] = "End" -defs["ImGuiListClipper_End"][1]["location"] = "imgui:2306" +defs["ImGuiListClipper_End"][1]["location"] = "imgui:2313" defs["ImGuiListClipper_End"][1]["ov_cimguiname"] = "ImGuiListClipper_End" defs["ImGuiListClipper_End"][1]["ret"] = "void" defs["ImGuiListClipper_End"][1]["signature"] = "()" defs["ImGuiListClipper_End"][1]["stname"] = "ImGuiListClipper" defs["ImGuiListClipper_End"]["()"] = defs["ImGuiListClipper_End"][1] +defs["ImGuiListClipper_ForceDisplayRangeByIndices"] = {} +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1] = {} +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["args"] = "(ImGuiListClipper* self,int item_min,int item_max)" +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["argsT"] = {} +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["argsT"][1] = {} +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["argsT"][1]["name"] = "self" +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["argsT"][1]["type"] = "ImGuiListClipper*" +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["argsT"][2] = {} +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["argsT"][2]["name"] = "item_min" +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["argsT"][2]["type"] = "int" +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["argsT"][3] = {} +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["argsT"][3]["name"] = "item_max" +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["argsT"][3]["type"] = "int" +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["argsoriginal"] = "(int item_min,int item_max)" +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["call_args"] = "(item_min,item_max)" +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["cimguiname"] = "ImGuiListClipper_ForceDisplayRangeByIndices" +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["defaults"] = {} +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["funcname"] = "ForceDisplayRangeByIndices" +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["location"] = "imgui:2317" +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["ov_cimguiname"] = "ImGuiListClipper_ForceDisplayRangeByIndices" +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["ret"] = "void" +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["signature"] = "(int,int)" +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["stname"] = "ImGuiListClipper" +defs["ImGuiListClipper_ForceDisplayRangeByIndices"]["(int,int)"] = defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1] defs["ImGuiListClipper_ImGuiListClipper"] = {} defs["ImGuiListClipper_ImGuiListClipper"][1] = {} defs["ImGuiListClipper_ImGuiListClipper"][1]["args"] = "()" @@ -5274,7 +5400,7 @@ defs["ImGuiListClipper_ImGuiListClipper"][1]["cimguiname"] = "ImGuiListClipper_I defs["ImGuiListClipper_ImGuiListClipper"][1]["constructor"] = true defs["ImGuiListClipper_ImGuiListClipper"][1]["defaults"] = {} defs["ImGuiListClipper_ImGuiListClipper"][1]["funcname"] = "ImGuiListClipper" -defs["ImGuiListClipper_ImGuiListClipper"][1]["location"] = "imgui:2300" +defs["ImGuiListClipper_ImGuiListClipper"][1]["location"] = "imgui:2310" defs["ImGuiListClipper_ImGuiListClipper"][1]["ov_cimguiname"] = "ImGuiListClipper_ImGuiListClipper" defs["ImGuiListClipper_ImGuiListClipper"][1]["signature"] = "()" defs["ImGuiListClipper_ImGuiListClipper"][1]["stname"] = "ImGuiListClipper" @@ -5291,7 +5417,7 @@ defs["ImGuiListClipper_Step"][1]["call_args"] = "()" defs["ImGuiListClipper_Step"][1]["cimguiname"] = "ImGuiListClipper_Step" defs["ImGuiListClipper_Step"][1]["defaults"] = {} defs["ImGuiListClipper_Step"][1]["funcname"] = "Step" -defs["ImGuiListClipper_Step"][1]["location"] = "imgui:2307" +defs["ImGuiListClipper_Step"][1]["location"] = "imgui:2314" defs["ImGuiListClipper_Step"][1]["ov_cimguiname"] = "ImGuiListClipper_Step" defs["ImGuiListClipper_Step"][1]["ret"] = "bool" defs["ImGuiListClipper_Step"][1]["signature"] = "()" @@ -5308,7 +5434,7 @@ defs["ImGuiListClipper_destroy"][1]["call_args"] = "(self)" defs["ImGuiListClipper_destroy"][1]["cimguiname"] = "ImGuiListClipper_destroy" defs["ImGuiListClipper_destroy"][1]["defaults"] = {} defs["ImGuiListClipper_destroy"][1]["destructor"] = true -defs["ImGuiListClipper_destroy"][1]["location"] = "imgui:2301" +defs["ImGuiListClipper_destroy"][1]["location"] = "imgui:2311" defs["ImGuiListClipper_destroy"][1]["ov_cimguiname"] = "ImGuiListClipper_destroy" defs["ImGuiListClipper_destroy"][1]["realdestructor"] = true defs["ImGuiListClipper_destroy"][1]["ret"] = "void" @@ -5330,7 +5456,7 @@ defs["ImGuiMenuColumns_CalcNextTotalWidth"][1]["call_args"] = "(update_offsets)" defs["ImGuiMenuColumns_CalcNextTotalWidth"][1]["cimguiname"] = "ImGuiMenuColumns_CalcNextTotalWidth" defs["ImGuiMenuColumns_CalcNextTotalWidth"][1]["defaults"] = {} defs["ImGuiMenuColumns_CalcNextTotalWidth"][1]["funcname"] = "CalcNextTotalWidth" -defs["ImGuiMenuColumns_CalcNextTotalWidth"][1]["location"] = "imgui_internal:1021" +defs["ImGuiMenuColumns_CalcNextTotalWidth"][1]["location"] = "imgui_internal:1024" defs["ImGuiMenuColumns_CalcNextTotalWidth"][1]["ov_cimguiname"] = "ImGuiMenuColumns_CalcNextTotalWidth" defs["ImGuiMenuColumns_CalcNextTotalWidth"][1]["ret"] = "void" defs["ImGuiMenuColumns_CalcNextTotalWidth"][1]["signature"] = "(bool)" @@ -5360,7 +5486,7 @@ defs["ImGuiMenuColumns_DeclColumns"][1]["call_args"] = "(w_icon,w_label,w_shortc defs["ImGuiMenuColumns_DeclColumns"][1]["cimguiname"] = "ImGuiMenuColumns_DeclColumns" defs["ImGuiMenuColumns_DeclColumns"][1]["defaults"] = {} defs["ImGuiMenuColumns_DeclColumns"][1]["funcname"] = "DeclColumns" -defs["ImGuiMenuColumns_DeclColumns"][1]["location"] = "imgui_internal:1020" +defs["ImGuiMenuColumns_DeclColumns"][1]["location"] = "imgui_internal:1023" defs["ImGuiMenuColumns_DeclColumns"][1]["ov_cimguiname"] = "ImGuiMenuColumns_DeclColumns" defs["ImGuiMenuColumns_DeclColumns"][1]["ret"] = "float" defs["ImGuiMenuColumns_DeclColumns"][1]["signature"] = "(float,float,float,float)" @@ -5376,7 +5502,7 @@ defs["ImGuiMenuColumns_ImGuiMenuColumns"][1]["cimguiname"] = "ImGuiMenuColumns_I defs["ImGuiMenuColumns_ImGuiMenuColumns"][1]["constructor"] = true defs["ImGuiMenuColumns_ImGuiMenuColumns"][1]["defaults"] = {} defs["ImGuiMenuColumns_ImGuiMenuColumns"][1]["funcname"] = "ImGuiMenuColumns" -defs["ImGuiMenuColumns_ImGuiMenuColumns"][1]["location"] = "imgui_internal:1018" +defs["ImGuiMenuColumns_ImGuiMenuColumns"][1]["location"] = "imgui_internal:1021" defs["ImGuiMenuColumns_ImGuiMenuColumns"][1]["ov_cimguiname"] = "ImGuiMenuColumns_ImGuiMenuColumns" defs["ImGuiMenuColumns_ImGuiMenuColumns"][1]["signature"] = "()" defs["ImGuiMenuColumns_ImGuiMenuColumns"][1]["stname"] = "ImGuiMenuColumns" @@ -5399,7 +5525,7 @@ defs["ImGuiMenuColumns_Update"][1]["call_args"] = "(spacing,window_reappearing)" defs["ImGuiMenuColumns_Update"][1]["cimguiname"] = "ImGuiMenuColumns_Update" defs["ImGuiMenuColumns_Update"][1]["defaults"] = {} defs["ImGuiMenuColumns_Update"][1]["funcname"] = "Update" -defs["ImGuiMenuColumns_Update"][1]["location"] = "imgui_internal:1019" +defs["ImGuiMenuColumns_Update"][1]["location"] = "imgui_internal:1022" defs["ImGuiMenuColumns_Update"][1]["ov_cimguiname"] = "ImGuiMenuColumns_Update" defs["ImGuiMenuColumns_Update"][1]["ret"] = "void" defs["ImGuiMenuColumns_Update"][1]["signature"] = "(float,bool)" @@ -5431,7 +5557,7 @@ defs["ImGuiMetricsConfig_ImGuiMetricsConfig"][1]["cimguiname"] = "ImGuiMetricsCo defs["ImGuiMetricsConfig_ImGuiMetricsConfig"][1]["constructor"] = true defs["ImGuiMetricsConfig_ImGuiMetricsConfig"][1]["defaults"] = {} defs["ImGuiMetricsConfig_ImGuiMetricsConfig"][1]["funcname"] = "ImGuiMetricsConfig" -defs["ImGuiMetricsConfig_ImGuiMetricsConfig"][1]["location"] = "imgui_internal:1530" +defs["ImGuiMetricsConfig_ImGuiMetricsConfig"][1]["location"] = "imgui_internal:1613" defs["ImGuiMetricsConfig_ImGuiMetricsConfig"][1]["ov_cimguiname"] = "ImGuiMetricsConfig_ImGuiMetricsConfig" defs["ImGuiMetricsConfig_ImGuiMetricsConfig"][1]["signature"] = "()" defs["ImGuiMetricsConfig_ImGuiMetricsConfig"][1]["stname"] = "ImGuiMetricsConfig" @@ -5464,7 +5590,7 @@ defs["ImGuiNavItemData_Clear"][1]["call_args"] = "()" defs["ImGuiNavItemData_Clear"][1]["cimguiname"] = "ImGuiNavItemData_Clear" defs["ImGuiNavItemData_Clear"][1]["defaults"] = {} defs["ImGuiNavItemData_Clear"][1]["funcname"] = "Clear" -defs["ImGuiNavItemData_Clear"][1]["location"] = "imgui_internal:1226" +defs["ImGuiNavItemData_Clear"][1]["location"] = "imgui_internal:1305" defs["ImGuiNavItemData_Clear"][1]["ov_cimguiname"] = "ImGuiNavItemData_Clear" defs["ImGuiNavItemData_Clear"][1]["ret"] = "void" defs["ImGuiNavItemData_Clear"][1]["signature"] = "()" @@ -5480,7 +5606,7 @@ defs["ImGuiNavItemData_ImGuiNavItemData"][1]["cimguiname"] = "ImGuiNavItemData_I defs["ImGuiNavItemData_ImGuiNavItemData"][1]["constructor"] = true defs["ImGuiNavItemData_ImGuiNavItemData"][1]["defaults"] = {} defs["ImGuiNavItemData_ImGuiNavItemData"][1]["funcname"] = "ImGuiNavItemData" -defs["ImGuiNavItemData_ImGuiNavItemData"][1]["location"] = "imgui_internal:1225" +defs["ImGuiNavItemData_ImGuiNavItemData"][1]["location"] = "imgui_internal:1304" defs["ImGuiNavItemData_ImGuiNavItemData"][1]["ov_cimguiname"] = "ImGuiNavItemData_ImGuiNavItemData" defs["ImGuiNavItemData_ImGuiNavItemData"][1]["signature"] = "()" defs["ImGuiNavItemData_ImGuiNavItemData"][1]["stname"] = "ImGuiNavItemData" @@ -5513,7 +5639,7 @@ defs["ImGuiNextItemData_ClearFlags"][1]["call_args"] = "()" defs["ImGuiNextItemData_ClearFlags"][1]["cimguiname"] = "ImGuiNextItemData_ClearFlags" defs["ImGuiNextItemData_ClearFlags"][1]["defaults"] = {} defs["ImGuiNextItemData_ClearFlags"][1]["funcname"] = "ClearFlags" -defs["ImGuiNextItemData_ClearFlags"][1]["location"] = "imgui_internal:1137" +defs["ImGuiNextItemData_ClearFlags"][1]["location"] = "imgui_internal:1138" defs["ImGuiNextItemData_ClearFlags"][1]["ov_cimguiname"] = "ImGuiNextItemData_ClearFlags" defs["ImGuiNextItemData_ClearFlags"][1]["ret"] = "void" defs["ImGuiNextItemData_ClearFlags"][1]["signature"] = "()" @@ -5529,7 +5655,7 @@ defs["ImGuiNextItemData_ImGuiNextItemData"][1]["cimguiname"] = "ImGuiNextItemDat defs["ImGuiNextItemData_ImGuiNextItemData"][1]["constructor"] = true defs["ImGuiNextItemData_ImGuiNextItemData"][1]["defaults"] = {} defs["ImGuiNextItemData_ImGuiNextItemData"][1]["funcname"] = "ImGuiNextItemData" -defs["ImGuiNextItemData_ImGuiNextItemData"][1]["location"] = "imgui_internal:1136" +defs["ImGuiNextItemData_ImGuiNextItemData"][1]["location"] = "imgui_internal:1137" defs["ImGuiNextItemData_ImGuiNextItemData"][1]["ov_cimguiname"] = "ImGuiNextItemData_ImGuiNextItemData" defs["ImGuiNextItemData_ImGuiNextItemData"][1]["signature"] = "()" defs["ImGuiNextItemData_ImGuiNextItemData"][1]["stname"] = "ImGuiNextItemData" @@ -5562,7 +5688,7 @@ defs["ImGuiNextWindowData_ClearFlags"][1]["call_args"] = "()" defs["ImGuiNextWindowData_ClearFlags"][1]["cimguiname"] = "ImGuiNextWindowData_ClearFlags" defs["ImGuiNextWindowData_ClearFlags"][1]["defaults"] = {} defs["ImGuiNextWindowData_ClearFlags"][1]["funcname"] = "ClearFlags" -defs["ImGuiNextWindowData_ClearFlags"][1]["location"] = "imgui_internal:1118" +defs["ImGuiNextWindowData_ClearFlags"][1]["location"] = "imgui_internal:1119" defs["ImGuiNextWindowData_ClearFlags"][1]["ov_cimguiname"] = "ImGuiNextWindowData_ClearFlags" defs["ImGuiNextWindowData_ClearFlags"][1]["ret"] = "void" defs["ImGuiNextWindowData_ClearFlags"][1]["signature"] = "()" @@ -5578,7 +5704,7 @@ defs["ImGuiNextWindowData_ImGuiNextWindowData"][1]["cimguiname"] = "ImGuiNextWin defs["ImGuiNextWindowData_ImGuiNextWindowData"][1]["constructor"] = true defs["ImGuiNextWindowData_ImGuiNextWindowData"][1]["defaults"] = {} defs["ImGuiNextWindowData_ImGuiNextWindowData"][1]["funcname"] = "ImGuiNextWindowData" -defs["ImGuiNextWindowData_ImGuiNextWindowData"][1]["location"] = "imgui_internal:1117" +defs["ImGuiNextWindowData_ImGuiNextWindowData"][1]["location"] = "imgui_internal:1118" defs["ImGuiNextWindowData_ImGuiNextWindowData"][1]["ov_cimguiname"] = "ImGuiNextWindowData_ImGuiNextWindowData" defs["ImGuiNextWindowData_ImGuiNextWindowData"][1]["signature"] = "()" defs["ImGuiNextWindowData_ImGuiNextWindowData"][1]["stname"] = "ImGuiNextWindowData" @@ -5609,7 +5735,7 @@ defs["ImGuiOldColumnData_ImGuiOldColumnData"][1]["cimguiname"] = "ImGuiOldColumn defs["ImGuiOldColumnData_ImGuiOldColumnData"][1]["constructor"] = true defs["ImGuiOldColumnData_ImGuiOldColumnData"][1]["defaults"] = {} defs["ImGuiOldColumnData_ImGuiOldColumnData"][1]["funcname"] = "ImGuiOldColumnData" -defs["ImGuiOldColumnData_ImGuiOldColumnData"][1]["location"] = "imgui_internal:1261" +defs["ImGuiOldColumnData_ImGuiOldColumnData"][1]["location"] = "imgui_internal:1340" defs["ImGuiOldColumnData_ImGuiOldColumnData"][1]["ov_cimguiname"] = "ImGuiOldColumnData_ImGuiOldColumnData" defs["ImGuiOldColumnData_ImGuiOldColumnData"][1]["signature"] = "()" defs["ImGuiOldColumnData_ImGuiOldColumnData"][1]["stname"] = "ImGuiOldColumnData" @@ -5640,7 +5766,7 @@ defs["ImGuiOldColumns_ImGuiOldColumns"][1]["cimguiname"] = "ImGuiOldColumns_ImGu defs["ImGuiOldColumns_ImGuiOldColumns"][1]["constructor"] = true defs["ImGuiOldColumns_ImGuiOldColumns"][1]["defaults"] = {} defs["ImGuiOldColumns_ImGuiOldColumns"][1]["funcname"] = "ImGuiOldColumns" -defs["ImGuiOldColumns_ImGuiOldColumns"][1]["location"] = "imgui_internal:1282" +defs["ImGuiOldColumns_ImGuiOldColumns"][1]["location"] = "imgui_internal:1361" defs["ImGuiOldColumns_ImGuiOldColumns"][1]["ov_cimguiname"] = "ImGuiOldColumns_ImGuiOldColumns" defs["ImGuiOldColumns_ImGuiOldColumns"][1]["signature"] = "()" defs["ImGuiOldColumns_ImGuiOldColumns"][1]["stname"] = "ImGuiOldColumns" @@ -5671,7 +5797,7 @@ defs["ImGuiOnceUponAFrame_ImGuiOnceUponAFrame"][1]["cimguiname"] = "ImGuiOnceUpo defs["ImGuiOnceUponAFrame_ImGuiOnceUponAFrame"][1]["constructor"] = true defs["ImGuiOnceUponAFrame_ImGuiOnceUponAFrame"][1]["defaults"] = {} defs["ImGuiOnceUponAFrame_ImGuiOnceUponAFrame"][1]["funcname"] = "ImGuiOnceUponAFrame" -defs["ImGuiOnceUponAFrame_ImGuiOnceUponAFrame"][1]["location"] = "imgui:2168" +defs["ImGuiOnceUponAFrame_ImGuiOnceUponAFrame"][1]["location"] = "imgui:2176" defs["ImGuiOnceUponAFrame_ImGuiOnceUponAFrame"][1]["ov_cimguiname"] = "ImGuiOnceUponAFrame_ImGuiOnceUponAFrame" defs["ImGuiOnceUponAFrame_ImGuiOnceUponAFrame"][1]["signature"] = "()" defs["ImGuiOnceUponAFrame_ImGuiOnceUponAFrame"][1]["stname"] = "ImGuiOnceUponAFrame" @@ -5704,7 +5830,7 @@ defs["ImGuiPayload_Clear"][1]["call_args"] = "()" defs["ImGuiPayload_Clear"][1]["cimguiname"] = "ImGuiPayload_Clear" defs["ImGuiPayload_Clear"][1]["defaults"] = {} defs["ImGuiPayload_Clear"][1]["funcname"] = "Clear" -defs["ImGuiPayload_Clear"][1]["location"] = "imgui:2122" +defs["ImGuiPayload_Clear"][1]["location"] = "imgui:2130" defs["ImGuiPayload_Clear"][1]["ov_cimguiname"] = "ImGuiPayload_Clear" defs["ImGuiPayload_Clear"][1]["ret"] = "void" defs["ImGuiPayload_Clear"][1]["signature"] = "()" @@ -5720,7 +5846,7 @@ defs["ImGuiPayload_ImGuiPayload"][1]["cimguiname"] = "ImGuiPayload_ImGuiPayload" defs["ImGuiPayload_ImGuiPayload"][1]["constructor"] = true defs["ImGuiPayload_ImGuiPayload"][1]["defaults"] = {} defs["ImGuiPayload_ImGuiPayload"][1]["funcname"] = "ImGuiPayload" -defs["ImGuiPayload_ImGuiPayload"][1]["location"] = "imgui:2121" +defs["ImGuiPayload_ImGuiPayload"][1]["location"] = "imgui:2129" defs["ImGuiPayload_ImGuiPayload"][1]["ov_cimguiname"] = "ImGuiPayload_ImGuiPayload" defs["ImGuiPayload_ImGuiPayload"][1]["signature"] = "()" defs["ImGuiPayload_ImGuiPayload"][1]["stname"] = "ImGuiPayload" @@ -5740,7 +5866,7 @@ defs["ImGuiPayload_IsDataType"][1]["call_args"] = "(type)" defs["ImGuiPayload_IsDataType"][1]["cimguiname"] = "ImGuiPayload_IsDataType" defs["ImGuiPayload_IsDataType"][1]["defaults"] = {} defs["ImGuiPayload_IsDataType"][1]["funcname"] = "IsDataType" -defs["ImGuiPayload_IsDataType"][1]["location"] = "imgui:2123" +defs["ImGuiPayload_IsDataType"][1]["location"] = "imgui:2131" defs["ImGuiPayload_IsDataType"][1]["ov_cimguiname"] = "ImGuiPayload_IsDataType" defs["ImGuiPayload_IsDataType"][1]["ret"] = "bool" defs["ImGuiPayload_IsDataType"][1]["signature"] = "(const char*)const" @@ -5758,7 +5884,7 @@ defs["ImGuiPayload_IsDelivery"][1]["call_args"] = "()" defs["ImGuiPayload_IsDelivery"][1]["cimguiname"] = "ImGuiPayload_IsDelivery" defs["ImGuiPayload_IsDelivery"][1]["defaults"] = {} defs["ImGuiPayload_IsDelivery"][1]["funcname"] = "IsDelivery" -defs["ImGuiPayload_IsDelivery"][1]["location"] = "imgui:2125" +defs["ImGuiPayload_IsDelivery"][1]["location"] = "imgui:2133" defs["ImGuiPayload_IsDelivery"][1]["ov_cimguiname"] = "ImGuiPayload_IsDelivery" defs["ImGuiPayload_IsDelivery"][1]["ret"] = "bool" defs["ImGuiPayload_IsDelivery"][1]["signature"] = "()const" @@ -5776,7 +5902,7 @@ defs["ImGuiPayload_IsPreview"][1]["call_args"] = "()" defs["ImGuiPayload_IsPreview"][1]["cimguiname"] = "ImGuiPayload_IsPreview" defs["ImGuiPayload_IsPreview"][1]["defaults"] = {} defs["ImGuiPayload_IsPreview"][1]["funcname"] = "IsPreview" -defs["ImGuiPayload_IsPreview"][1]["location"] = "imgui:2124" +defs["ImGuiPayload_IsPreview"][1]["location"] = "imgui:2132" defs["ImGuiPayload_IsPreview"][1]["ov_cimguiname"] = "ImGuiPayload_IsPreview" defs["ImGuiPayload_IsPreview"][1]["ret"] = "bool" defs["ImGuiPayload_IsPreview"][1]["signature"] = "()const" @@ -5808,7 +5934,7 @@ defs["ImGuiPlatformIO_ImGuiPlatformIO"][1]["cimguiname"] = "ImGuiPlatformIO_ImGu defs["ImGuiPlatformIO_ImGuiPlatformIO"][1]["constructor"] = true defs["ImGuiPlatformIO_ImGuiPlatformIO"][1]["defaults"] = {} defs["ImGuiPlatformIO_ImGuiPlatformIO"][1]["funcname"] = "ImGuiPlatformIO" -defs["ImGuiPlatformIO_ImGuiPlatformIO"][1]["location"] = "imgui:3058" +defs["ImGuiPlatformIO_ImGuiPlatformIO"][1]["location"] = "imgui:3068" defs["ImGuiPlatformIO_ImGuiPlatformIO"][1]["ov_cimguiname"] = "ImGuiPlatformIO_ImGuiPlatformIO" defs["ImGuiPlatformIO_ImGuiPlatformIO"][1]["signature"] = "()" defs["ImGuiPlatformIO_ImGuiPlatformIO"][1]["stname"] = "ImGuiPlatformIO" @@ -5839,7 +5965,7 @@ defs["ImGuiPlatformMonitor_ImGuiPlatformMonitor"][1]["cimguiname"] = "ImGuiPlatf defs["ImGuiPlatformMonitor_ImGuiPlatformMonitor"][1]["constructor"] = true defs["ImGuiPlatformMonitor_ImGuiPlatformMonitor"][1]["defaults"] = {} defs["ImGuiPlatformMonitor_ImGuiPlatformMonitor"][1]["funcname"] = "ImGuiPlatformMonitor" -defs["ImGuiPlatformMonitor_ImGuiPlatformMonitor"][1]["location"] = "imgui:3068" +defs["ImGuiPlatformMonitor_ImGuiPlatformMonitor"][1]["location"] = "imgui:3078" defs["ImGuiPlatformMonitor_ImGuiPlatformMonitor"][1]["ov_cimguiname"] = "ImGuiPlatformMonitor_ImGuiPlatformMonitor" defs["ImGuiPlatformMonitor_ImGuiPlatformMonitor"][1]["signature"] = "()" defs["ImGuiPlatformMonitor_ImGuiPlatformMonitor"][1]["stname"] = "ImGuiPlatformMonitor" @@ -5870,7 +5996,7 @@ defs["ImGuiPopupData_ImGuiPopupData"][1]["cimguiname"] = "ImGuiPopupData_ImGuiPo defs["ImGuiPopupData_ImGuiPopupData"][1]["constructor"] = true defs["ImGuiPopupData_ImGuiPopupData"][1]["defaults"] = {} defs["ImGuiPopupData_ImGuiPopupData"][1]["funcname"] = "ImGuiPopupData" -defs["ImGuiPopupData_ImGuiPopupData"][1]["location"] = "imgui_internal:1074" +defs["ImGuiPopupData_ImGuiPopupData"][1]["location"] = "imgui_internal:1075" defs["ImGuiPopupData_ImGuiPopupData"][1]["ov_cimguiname"] = "ImGuiPopupData_ImGuiPopupData" defs["ImGuiPopupData_ImGuiPopupData"][1]["signature"] = "()" defs["ImGuiPopupData_ImGuiPopupData"][1]["stname"] = "ImGuiPopupData" @@ -5904,7 +6030,7 @@ defs["ImGuiPtrOrIndex_ImGuiPtrOrIndex"][1]["cimguiname"] = "ImGuiPtrOrIndex_ImGu defs["ImGuiPtrOrIndex_ImGuiPtrOrIndex"][1]["constructor"] = true defs["ImGuiPtrOrIndex_ImGuiPtrOrIndex"][1]["defaults"] = {} defs["ImGuiPtrOrIndex_ImGuiPtrOrIndex"][1]["funcname"] = "ImGuiPtrOrIndex" -defs["ImGuiPtrOrIndex_ImGuiPtrOrIndex"][1]["location"] = "imgui_internal:1170" +defs["ImGuiPtrOrIndex_ImGuiPtrOrIndex"][1]["location"] = "imgui_internal:1190" defs["ImGuiPtrOrIndex_ImGuiPtrOrIndex"][1]["ov_cimguiname"] = "ImGuiPtrOrIndex_ImGuiPtrOrIndexPtr" defs["ImGuiPtrOrIndex_ImGuiPtrOrIndex"][1]["signature"] = "(void*)" defs["ImGuiPtrOrIndex_ImGuiPtrOrIndex"][1]["stname"] = "ImGuiPtrOrIndex" @@ -5920,7 +6046,7 @@ defs["ImGuiPtrOrIndex_ImGuiPtrOrIndex"][2]["cimguiname"] = "ImGuiPtrOrIndex_ImGu defs["ImGuiPtrOrIndex_ImGuiPtrOrIndex"][2]["constructor"] = true defs["ImGuiPtrOrIndex_ImGuiPtrOrIndex"][2]["defaults"] = {} defs["ImGuiPtrOrIndex_ImGuiPtrOrIndex"][2]["funcname"] = "ImGuiPtrOrIndex" -defs["ImGuiPtrOrIndex_ImGuiPtrOrIndex"][2]["location"] = "imgui_internal:1171" +defs["ImGuiPtrOrIndex_ImGuiPtrOrIndex"][2]["location"] = "imgui_internal:1191" defs["ImGuiPtrOrIndex_ImGuiPtrOrIndex"][2]["ov_cimguiname"] = "ImGuiPtrOrIndex_ImGuiPtrOrIndexInt" defs["ImGuiPtrOrIndex_ImGuiPtrOrIndex"][2]["signature"] = "(int)" defs["ImGuiPtrOrIndex_ImGuiPtrOrIndex"][2]["stname"] = "ImGuiPtrOrIndex" @@ -5952,7 +6078,7 @@ defs["ImGuiSettingsHandler_ImGuiSettingsHandler"][1]["cimguiname"] = "ImGuiSetti defs["ImGuiSettingsHandler_ImGuiSettingsHandler"][1]["constructor"] = true defs["ImGuiSettingsHandler_ImGuiSettingsHandler"][1]["defaults"] = {} defs["ImGuiSettingsHandler_ImGuiSettingsHandler"][1]["funcname"] = "ImGuiSettingsHandler" -defs["ImGuiSettingsHandler_ImGuiSettingsHandler"][1]["location"] = "imgui_internal:1512" +defs["ImGuiSettingsHandler_ImGuiSettingsHandler"][1]["location"] = "imgui_internal:1594" defs["ImGuiSettingsHandler_ImGuiSettingsHandler"][1]["ov_cimguiname"] = "ImGuiSettingsHandler_ImGuiSettingsHandler" defs["ImGuiSettingsHandler_ImGuiSettingsHandler"][1]["signature"] = "()" defs["ImGuiSettingsHandler_ImGuiSettingsHandler"][1]["stname"] = "ImGuiSettingsHandler" @@ -5973,6 +6099,37 @@ defs["ImGuiSettingsHandler_destroy"][1]["ret"] = "void" defs["ImGuiSettingsHandler_destroy"][1]["signature"] = "(ImGuiSettingsHandler*)" defs["ImGuiSettingsHandler_destroy"][1]["stname"] = "ImGuiSettingsHandler" defs["ImGuiSettingsHandler_destroy"]["(ImGuiSettingsHandler*)"] = defs["ImGuiSettingsHandler_destroy"][1] +defs["ImGuiStackLevelInfo_ImGuiStackLevelInfo"] = {} +defs["ImGuiStackLevelInfo_ImGuiStackLevelInfo"][1] = {} +defs["ImGuiStackLevelInfo_ImGuiStackLevelInfo"][1]["args"] = "()" +defs["ImGuiStackLevelInfo_ImGuiStackLevelInfo"][1]["argsT"] = {} +defs["ImGuiStackLevelInfo_ImGuiStackLevelInfo"][1]["argsoriginal"] = "()" +defs["ImGuiStackLevelInfo_ImGuiStackLevelInfo"][1]["call_args"] = "()" +defs["ImGuiStackLevelInfo_ImGuiStackLevelInfo"][1]["cimguiname"] = "ImGuiStackLevelInfo_ImGuiStackLevelInfo" +defs["ImGuiStackLevelInfo_ImGuiStackLevelInfo"][1]["constructor"] = true +defs["ImGuiStackLevelInfo_ImGuiStackLevelInfo"][1]["defaults"] = {} +defs["ImGuiStackLevelInfo_ImGuiStackLevelInfo"][1]["funcname"] = "ImGuiStackLevelInfo" +defs["ImGuiStackLevelInfo_ImGuiStackLevelInfo"][1]["location"] = "imgui_internal:1634" +defs["ImGuiStackLevelInfo_ImGuiStackLevelInfo"][1]["ov_cimguiname"] = "ImGuiStackLevelInfo_ImGuiStackLevelInfo" +defs["ImGuiStackLevelInfo_ImGuiStackLevelInfo"][1]["signature"] = "()" +defs["ImGuiStackLevelInfo_ImGuiStackLevelInfo"][1]["stname"] = "ImGuiStackLevelInfo" +defs["ImGuiStackLevelInfo_ImGuiStackLevelInfo"]["()"] = defs["ImGuiStackLevelInfo_ImGuiStackLevelInfo"][1] +defs["ImGuiStackLevelInfo_destroy"] = {} +defs["ImGuiStackLevelInfo_destroy"][1] = {} +defs["ImGuiStackLevelInfo_destroy"][1]["args"] = "(ImGuiStackLevelInfo* self)" +defs["ImGuiStackLevelInfo_destroy"][1]["argsT"] = {} +defs["ImGuiStackLevelInfo_destroy"][1]["argsT"][1] = {} +defs["ImGuiStackLevelInfo_destroy"][1]["argsT"][1]["name"] = "self" +defs["ImGuiStackLevelInfo_destroy"][1]["argsT"][1]["type"] = "ImGuiStackLevelInfo*" +defs["ImGuiStackLevelInfo_destroy"][1]["call_args"] = "(self)" +defs["ImGuiStackLevelInfo_destroy"][1]["cimguiname"] = "ImGuiStackLevelInfo_destroy" +defs["ImGuiStackLevelInfo_destroy"][1]["defaults"] = {} +defs["ImGuiStackLevelInfo_destroy"][1]["destructor"] = true +defs["ImGuiStackLevelInfo_destroy"][1]["ov_cimguiname"] = "ImGuiStackLevelInfo_destroy" +defs["ImGuiStackLevelInfo_destroy"][1]["ret"] = "void" +defs["ImGuiStackLevelInfo_destroy"][1]["signature"] = "(ImGuiStackLevelInfo*)" +defs["ImGuiStackLevelInfo_destroy"][1]["stname"] = "ImGuiStackLevelInfo" +defs["ImGuiStackLevelInfo_destroy"]["(ImGuiStackLevelInfo*)"] = defs["ImGuiStackLevelInfo_destroy"][1] defs["ImGuiStackSizes_CompareWithCurrentState"] = {} defs["ImGuiStackSizes_CompareWithCurrentState"][1] = {} defs["ImGuiStackSizes_CompareWithCurrentState"][1]["args"] = "(ImGuiStackSizes* self)" @@ -5985,7 +6142,7 @@ defs["ImGuiStackSizes_CompareWithCurrentState"][1]["call_args"] = "()" defs["ImGuiStackSizes_CompareWithCurrentState"][1]["cimguiname"] = "ImGuiStackSizes_CompareWithCurrentState" defs["ImGuiStackSizes_CompareWithCurrentState"][1]["defaults"] = {} defs["ImGuiStackSizes_CompareWithCurrentState"][1]["funcname"] = "CompareWithCurrentState" -defs["ImGuiStackSizes_CompareWithCurrentState"][1]["location"] = "imgui_internal:1555" +defs["ImGuiStackSizes_CompareWithCurrentState"][1]["location"] = "imgui_internal:1168" defs["ImGuiStackSizes_CompareWithCurrentState"][1]["ov_cimguiname"] = "ImGuiStackSizes_CompareWithCurrentState" defs["ImGuiStackSizes_CompareWithCurrentState"][1]["ret"] = "void" defs["ImGuiStackSizes_CompareWithCurrentState"][1]["signature"] = "()" @@ -6001,7 +6158,7 @@ defs["ImGuiStackSizes_ImGuiStackSizes"][1]["cimguiname"] = "ImGuiStackSizes_ImGu defs["ImGuiStackSizes_ImGuiStackSizes"][1]["constructor"] = true defs["ImGuiStackSizes_ImGuiStackSizes"][1]["defaults"] = {} defs["ImGuiStackSizes_ImGuiStackSizes"][1]["funcname"] = "ImGuiStackSizes" -defs["ImGuiStackSizes_ImGuiStackSizes"][1]["location"] = "imgui_internal:1553" +defs["ImGuiStackSizes_ImGuiStackSizes"][1]["location"] = "imgui_internal:1166" defs["ImGuiStackSizes_ImGuiStackSizes"][1]["ov_cimguiname"] = "ImGuiStackSizes_ImGuiStackSizes" defs["ImGuiStackSizes_ImGuiStackSizes"][1]["signature"] = "()" defs["ImGuiStackSizes_ImGuiStackSizes"][1]["stname"] = "ImGuiStackSizes" @@ -6018,7 +6175,7 @@ defs["ImGuiStackSizes_SetToCurrentState"][1]["call_args"] = "()" defs["ImGuiStackSizes_SetToCurrentState"][1]["cimguiname"] = "ImGuiStackSizes_SetToCurrentState" defs["ImGuiStackSizes_SetToCurrentState"][1]["defaults"] = {} defs["ImGuiStackSizes_SetToCurrentState"][1]["funcname"] = "SetToCurrentState" -defs["ImGuiStackSizes_SetToCurrentState"][1]["location"] = "imgui_internal:1554" +defs["ImGuiStackSizes_SetToCurrentState"][1]["location"] = "imgui_internal:1167" defs["ImGuiStackSizes_SetToCurrentState"][1]["ov_cimguiname"] = "ImGuiStackSizes_SetToCurrentState" defs["ImGuiStackSizes_SetToCurrentState"][1]["ret"] = "void" defs["ImGuiStackSizes_SetToCurrentState"][1]["signature"] = "()" @@ -6040,6 +6197,37 @@ defs["ImGuiStackSizes_destroy"][1]["ret"] = "void" defs["ImGuiStackSizes_destroy"][1]["signature"] = "(ImGuiStackSizes*)" defs["ImGuiStackSizes_destroy"][1]["stname"] = "ImGuiStackSizes" defs["ImGuiStackSizes_destroy"]["(ImGuiStackSizes*)"] = defs["ImGuiStackSizes_destroy"][1] +defs["ImGuiStackTool_ImGuiStackTool"] = {} +defs["ImGuiStackTool_ImGuiStackTool"][1] = {} +defs["ImGuiStackTool_ImGuiStackTool"][1]["args"] = "()" +defs["ImGuiStackTool_ImGuiStackTool"][1]["argsT"] = {} +defs["ImGuiStackTool_ImGuiStackTool"][1]["argsoriginal"] = "()" +defs["ImGuiStackTool_ImGuiStackTool"][1]["call_args"] = "()" +defs["ImGuiStackTool_ImGuiStackTool"][1]["cimguiname"] = "ImGuiStackTool_ImGuiStackTool" +defs["ImGuiStackTool_ImGuiStackTool"][1]["constructor"] = true +defs["ImGuiStackTool_ImGuiStackTool"][1]["defaults"] = {} +defs["ImGuiStackTool_ImGuiStackTool"][1]["funcname"] = "ImGuiStackTool" +defs["ImGuiStackTool_ImGuiStackTool"][1]["location"] = "imgui_internal:1645" +defs["ImGuiStackTool_ImGuiStackTool"][1]["ov_cimguiname"] = "ImGuiStackTool_ImGuiStackTool" +defs["ImGuiStackTool_ImGuiStackTool"][1]["signature"] = "()" +defs["ImGuiStackTool_ImGuiStackTool"][1]["stname"] = "ImGuiStackTool" +defs["ImGuiStackTool_ImGuiStackTool"]["()"] = defs["ImGuiStackTool_ImGuiStackTool"][1] +defs["ImGuiStackTool_destroy"] = {} +defs["ImGuiStackTool_destroy"][1] = {} +defs["ImGuiStackTool_destroy"][1]["args"] = "(ImGuiStackTool* self)" +defs["ImGuiStackTool_destroy"][1]["argsT"] = {} +defs["ImGuiStackTool_destroy"][1]["argsT"][1] = {} +defs["ImGuiStackTool_destroy"][1]["argsT"][1]["name"] = "self" +defs["ImGuiStackTool_destroy"][1]["argsT"][1]["type"] = "ImGuiStackTool*" +defs["ImGuiStackTool_destroy"][1]["call_args"] = "(self)" +defs["ImGuiStackTool_destroy"][1]["cimguiname"] = "ImGuiStackTool_destroy" +defs["ImGuiStackTool_destroy"][1]["defaults"] = {} +defs["ImGuiStackTool_destroy"][1]["destructor"] = true +defs["ImGuiStackTool_destroy"][1]["ov_cimguiname"] = "ImGuiStackTool_destroy" +defs["ImGuiStackTool_destroy"][1]["ret"] = "void" +defs["ImGuiStackTool_destroy"][1]["signature"] = "(ImGuiStackTool*)" +defs["ImGuiStackTool_destroy"][1]["stname"] = "ImGuiStackTool" +defs["ImGuiStackTool_destroy"]["(ImGuiStackTool*)"] = defs["ImGuiStackTool_destroy"][1] defs["ImGuiStoragePair_ImGuiStoragePair"] = {} defs["ImGuiStoragePair_ImGuiStoragePair"][1] = {} defs["ImGuiStoragePair_ImGuiStoragePair"][1]["args"] = "(ImGuiID _key,int _val_i)" @@ -6056,7 +6244,7 @@ defs["ImGuiStoragePair_ImGuiStoragePair"][1]["cimguiname"] = "ImGuiStoragePair_I defs["ImGuiStoragePair_ImGuiStoragePair"][1]["constructor"] = true defs["ImGuiStoragePair_ImGuiStoragePair"][1]["defaults"] = {} defs["ImGuiStoragePair_ImGuiStoragePair"][1]["funcname"] = "ImGuiStoragePair" -defs["ImGuiStoragePair_ImGuiStoragePair"][1]["location"] = "imgui:2235" +defs["ImGuiStoragePair_ImGuiStoragePair"][1]["location"] = "imgui:2243" defs["ImGuiStoragePair_ImGuiStoragePair"][1]["ov_cimguiname"] = "ImGuiStoragePair_ImGuiStoragePairInt" defs["ImGuiStoragePair_ImGuiStoragePair"][1]["signature"] = "(ImGuiID,int)" defs["ImGuiStoragePair_ImGuiStoragePair"][1]["stname"] = "ImGuiStoragePair" @@ -6075,7 +6263,7 @@ defs["ImGuiStoragePair_ImGuiStoragePair"][2]["cimguiname"] = "ImGuiStoragePair_I defs["ImGuiStoragePair_ImGuiStoragePair"][2]["constructor"] = true defs["ImGuiStoragePair_ImGuiStoragePair"][2]["defaults"] = {} defs["ImGuiStoragePair_ImGuiStoragePair"][2]["funcname"] = "ImGuiStoragePair" -defs["ImGuiStoragePair_ImGuiStoragePair"][2]["location"] = "imgui:2236" +defs["ImGuiStoragePair_ImGuiStoragePair"][2]["location"] = "imgui:2244" defs["ImGuiStoragePair_ImGuiStoragePair"][2]["ov_cimguiname"] = "ImGuiStoragePair_ImGuiStoragePairFloat" defs["ImGuiStoragePair_ImGuiStoragePair"][2]["signature"] = "(ImGuiID,float)" defs["ImGuiStoragePair_ImGuiStoragePair"][2]["stname"] = "ImGuiStoragePair" @@ -6094,7 +6282,7 @@ defs["ImGuiStoragePair_ImGuiStoragePair"][3]["cimguiname"] = "ImGuiStoragePair_I defs["ImGuiStoragePair_ImGuiStoragePair"][3]["constructor"] = true defs["ImGuiStoragePair_ImGuiStoragePair"][3]["defaults"] = {} defs["ImGuiStoragePair_ImGuiStoragePair"][3]["funcname"] = "ImGuiStoragePair" -defs["ImGuiStoragePair_ImGuiStoragePair"][3]["location"] = "imgui:2237" +defs["ImGuiStoragePair_ImGuiStoragePair"][3]["location"] = "imgui:2245" defs["ImGuiStoragePair_ImGuiStoragePair"][3]["ov_cimguiname"] = "ImGuiStoragePair_ImGuiStoragePairPtr" defs["ImGuiStoragePair_ImGuiStoragePair"][3]["signature"] = "(ImGuiID,void*)" defs["ImGuiStoragePair_ImGuiStoragePair"][3]["stname"] = "ImGuiStoragePair" @@ -6129,7 +6317,7 @@ defs["ImGuiStorage_BuildSortByKey"][1]["call_args"] = "()" defs["ImGuiStorage_BuildSortByKey"][1]["cimguiname"] = "ImGuiStorage_BuildSortByKey" defs["ImGuiStorage_BuildSortByKey"][1]["defaults"] = {} defs["ImGuiStorage_BuildSortByKey"][1]["funcname"] = "BuildSortByKey" -defs["ImGuiStorage_BuildSortByKey"][1]["location"] = "imgui:2268" +defs["ImGuiStorage_BuildSortByKey"][1]["location"] = "imgui:2276" defs["ImGuiStorage_BuildSortByKey"][1]["ov_cimguiname"] = "ImGuiStorage_BuildSortByKey" defs["ImGuiStorage_BuildSortByKey"][1]["ret"] = "void" defs["ImGuiStorage_BuildSortByKey"][1]["signature"] = "()" @@ -6147,7 +6335,7 @@ defs["ImGuiStorage_Clear"][1]["call_args"] = "()" defs["ImGuiStorage_Clear"][1]["cimguiname"] = "ImGuiStorage_Clear" defs["ImGuiStorage_Clear"][1]["defaults"] = {} defs["ImGuiStorage_Clear"][1]["funcname"] = "Clear" -defs["ImGuiStorage_Clear"][1]["location"] = "imgui:2245" +defs["ImGuiStorage_Clear"][1]["location"] = "imgui:2253" defs["ImGuiStorage_Clear"][1]["ov_cimguiname"] = "ImGuiStorage_Clear" defs["ImGuiStorage_Clear"][1]["ret"] = "void" defs["ImGuiStorage_Clear"][1]["signature"] = "()" @@ -6172,7 +6360,7 @@ defs["ImGuiStorage_GetBool"][1]["cimguiname"] = "ImGuiStorage_GetBool" defs["ImGuiStorage_GetBool"][1]["defaults"] = {} defs["ImGuiStorage_GetBool"][1]["defaults"]["default_val"] = "false" defs["ImGuiStorage_GetBool"][1]["funcname"] = "GetBool" -defs["ImGuiStorage_GetBool"][1]["location"] = "imgui:2248" +defs["ImGuiStorage_GetBool"][1]["location"] = "imgui:2256" defs["ImGuiStorage_GetBool"][1]["ov_cimguiname"] = "ImGuiStorage_GetBool" defs["ImGuiStorage_GetBool"][1]["ret"] = "bool" defs["ImGuiStorage_GetBool"][1]["signature"] = "(ImGuiID,bool)const" @@ -6197,7 +6385,7 @@ defs["ImGuiStorage_GetBoolRef"][1]["cimguiname"] = "ImGuiStorage_GetBoolRef" defs["ImGuiStorage_GetBoolRef"][1]["defaults"] = {} defs["ImGuiStorage_GetBoolRef"][1]["defaults"]["default_val"] = "false" defs["ImGuiStorage_GetBoolRef"][1]["funcname"] = "GetBoolRef" -defs["ImGuiStorage_GetBoolRef"][1]["location"] = "imgui:2260" +defs["ImGuiStorage_GetBoolRef"][1]["location"] = "imgui:2268" defs["ImGuiStorage_GetBoolRef"][1]["ov_cimguiname"] = "ImGuiStorage_GetBoolRef" defs["ImGuiStorage_GetBoolRef"][1]["ret"] = "bool*" defs["ImGuiStorage_GetBoolRef"][1]["signature"] = "(ImGuiID,bool)" @@ -6222,7 +6410,7 @@ defs["ImGuiStorage_GetFloat"][1]["cimguiname"] = "ImGuiStorage_GetFloat" defs["ImGuiStorage_GetFloat"][1]["defaults"] = {} defs["ImGuiStorage_GetFloat"][1]["defaults"]["default_val"] = "0.0f" defs["ImGuiStorage_GetFloat"][1]["funcname"] = "GetFloat" -defs["ImGuiStorage_GetFloat"][1]["location"] = "imgui:2250" +defs["ImGuiStorage_GetFloat"][1]["location"] = "imgui:2258" defs["ImGuiStorage_GetFloat"][1]["ov_cimguiname"] = "ImGuiStorage_GetFloat" defs["ImGuiStorage_GetFloat"][1]["ret"] = "float" defs["ImGuiStorage_GetFloat"][1]["signature"] = "(ImGuiID,float)const" @@ -6247,7 +6435,7 @@ defs["ImGuiStorage_GetFloatRef"][1]["cimguiname"] = "ImGuiStorage_GetFloatRef" defs["ImGuiStorage_GetFloatRef"][1]["defaults"] = {} defs["ImGuiStorage_GetFloatRef"][1]["defaults"]["default_val"] = "0.0f" defs["ImGuiStorage_GetFloatRef"][1]["funcname"] = "GetFloatRef" -defs["ImGuiStorage_GetFloatRef"][1]["location"] = "imgui:2261" +defs["ImGuiStorage_GetFloatRef"][1]["location"] = "imgui:2269" defs["ImGuiStorage_GetFloatRef"][1]["ov_cimguiname"] = "ImGuiStorage_GetFloatRef" defs["ImGuiStorage_GetFloatRef"][1]["ret"] = "float*" defs["ImGuiStorage_GetFloatRef"][1]["signature"] = "(ImGuiID,float)" @@ -6272,7 +6460,7 @@ defs["ImGuiStorage_GetInt"][1]["cimguiname"] = "ImGuiStorage_GetInt" defs["ImGuiStorage_GetInt"][1]["defaults"] = {} defs["ImGuiStorage_GetInt"][1]["defaults"]["default_val"] = "0" defs["ImGuiStorage_GetInt"][1]["funcname"] = "GetInt" -defs["ImGuiStorage_GetInt"][1]["location"] = "imgui:2246" +defs["ImGuiStorage_GetInt"][1]["location"] = "imgui:2254" defs["ImGuiStorage_GetInt"][1]["ov_cimguiname"] = "ImGuiStorage_GetInt" defs["ImGuiStorage_GetInt"][1]["ret"] = "int" defs["ImGuiStorage_GetInt"][1]["signature"] = "(ImGuiID,int)const" @@ -6297,7 +6485,7 @@ defs["ImGuiStorage_GetIntRef"][1]["cimguiname"] = "ImGuiStorage_GetIntRef" defs["ImGuiStorage_GetIntRef"][1]["defaults"] = {} defs["ImGuiStorage_GetIntRef"][1]["defaults"]["default_val"] = "0" defs["ImGuiStorage_GetIntRef"][1]["funcname"] = "GetIntRef" -defs["ImGuiStorage_GetIntRef"][1]["location"] = "imgui:2259" +defs["ImGuiStorage_GetIntRef"][1]["location"] = "imgui:2267" defs["ImGuiStorage_GetIntRef"][1]["ov_cimguiname"] = "ImGuiStorage_GetIntRef" defs["ImGuiStorage_GetIntRef"][1]["ret"] = "int*" defs["ImGuiStorage_GetIntRef"][1]["signature"] = "(ImGuiID,int)" @@ -6318,7 +6506,7 @@ defs["ImGuiStorage_GetVoidPtr"][1]["call_args"] = "(key)" defs["ImGuiStorage_GetVoidPtr"][1]["cimguiname"] = "ImGuiStorage_GetVoidPtr" defs["ImGuiStorage_GetVoidPtr"][1]["defaults"] = {} defs["ImGuiStorage_GetVoidPtr"][1]["funcname"] = "GetVoidPtr" -defs["ImGuiStorage_GetVoidPtr"][1]["location"] = "imgui:2252" +defs["ImGuiStorage_GetVoidPtr"][1]["location"] = "imgui:2260" defs["ImGuiStorage_GetVoidPtr"][1]["ov_cimguiname"] = "ImGuiStorage_GetVoidPtr" defs["ImGuiStorage_GetVoidPtr"][1]["ret"] = "void*" defs["ImGuiStorage_GetVoidPtr"][1]["signature"] = "(ImGuiID)const" @@ -6343,7 +6531,7 @@ defs["ImGuiStorage_GetVoidPtrRef"][1]["cimguiname"] = "ImGuiStorage_GetVoidPtrRe defs["ImGuiStorage_GetVoidPtrRef"][1]["defaults"] = {} defs["ImGuiStorage_GetVoidPtrRef"][1]["defaults"]["default_val"] = "NULL" defs["ImGuiStorage_GetVoidPtrRef"][1]["funcname"] = "GetVoidPtrRef" -defs["ImGuiStorage_GetVoidPtrRef"][1]["location"] = "imgui:2262" +defs["ImGuiStorage_GetVoidPtrRef"][1]["location"] = "imgui:2270" defs["ImGuiStorage_GetVoidPtrRef"][1]["ov_cimguiname"] = "ImGuiStorage_GetVoidPtrRef" defs["ImGuiStorage_GetVoidPtrRef"][1]["ret"] = "void**" defs["ImGuiStorage_GetVoidPtrRef"][1]["signature"] = "(ImGuiID,void*)" @@ -6364,7 +6552,7 @@ defs["ImGuiStorage_SetAllInt"][1]["call_args"] = "(val)" defs["ImGuiStorage_SetAllInt"][1]["cimguiname"] = "ImGuiStorage_SetAllInt" defs["ImGuiStorage_SetAllInt"][1]["defaults"] = {} defs["ImGuiStorage_SetAllInt"][1]["funcname"] = "SetAllInt" -defs["ImGuiStorage_SetAllInt"][1]["location"] = "imgui:2265" +defs["ImGuiStorage_SetAllInt"][1]["location"] = "imgui:2273" defs["ImGuiStorage_SetAllInt"][1]["ov_cimguiname"] = "ImGuiStorage_SetAllInt" defs["ImGuiStorage_SetAllInt"][1]["ret"] = "void" defs["ImGuiStorage_SetAllInt"][1]["signature"] = "(int)" @@ -6388,7 +6576,7 @@ defs["ImGuiStorage_SetBool"][1]["call_args"] = "(key,val)" defs["ImGuiStorage_SetBool"][1]["cimguiname"] = "ImGuiStorage_SetBool" defs["ImGuiStorage_SetBool"][1]["defaults"] = {} defs["ImGuiStorage_SetBool"][1]["funcname"] = "SetBool" -defs["ImGuiStorage_SetBool"][1]["location"] = "imgui:2249" +defs["ImGuiStorage_SetBool"][1]["location"] = "imgui:2257" defs["ImGuiStorage_SetBool"][1]["ov_cimguiname"] = "ImGuiStorage_SetBool" defs["ImGuiStorage_SetBool"][1]["ret"] = "void" defs["ImGuiStorage_SetBool"][1]["signature"] = "(ImGuiID,bool)" @@ -6412,7 +6600,7 @@ defs["ImGuiStorage_SetFloat"][1]["call_args"] = "(key,val)" defs["ImGuiStorage_SetFloat"][1]["cimguiname"] = "ImGuiStorage_SetFloat" defs["ImGuiStorage_SetFloat"][1]["defaults"] = {} defs["ImGuiStorage_SetFloat"][1]["funcname"] = "SetFloat" -defs["ImGuiStorage_SetFloat"][1]["location"] = "imgui:2251" +defs["ImGuiStorage_SetFloat"][1]["location"] = "imgui:2259" defs["ImGuiStorage_SetFloat"][1]["ov_cimguiname"] = "ImGuiStorage_SetFloat" defs["ImGuiStorage_SetFloat"][1]["ret"] = "void" defs["ImGuiStorage_SetFloat"][1]["signature"] = "(ImGuiID,float)" @@ -6436,7 +6624,7 @@ defs["ImGuiStorage_SetInt"][1]["call_args"] = "(key,val)" defs["ImGuiStorage_SetInt"][1]["cimguiname"] = "ImGuiStorage_SetInt" defs["ImGuiStorage_SetInt"][1]["defaults"] = {} defs["ImGuiStorage_SetInt"][1]["funcname"] = "SetInt" -defs["ImGuiStorage_SetInt"][1]["location"] = "imgui:2247" +defs["ImGuiStorage_SetInt"][1]["location"] = "imgui:2255" defs["ImGuiStorage_SetInt"][1]["ov_cimguiname"] = "ImGuiStorage_SetInt" defs["ImGuiStorage_SetInt"][1]["ret"] = "void" defs["ImGuiStorage_SetInt"][1]["signature"] = "(ImGuiID,int)" @@ -6460,7 +6648,7 @@ defs["ImGuiStorage_SetVoidPtr"][1]["call_args"] = "(key,val)" defs["ImGuiStorage_SetVoidPtr"][1]["cimguiname"] = "ImGuiStorage_SetVoidPtr" defs["ImGuiStorage_SetVoidPtr"][1]["defaults"] = {} defs["ImGuiStorage_SetVoidPtr"][1]["funcname"] = "SetVoidPtr" -defs["ImGuiStorage_SetVoidPtr"][1]["location"] = "imgui:2253" +defs["ImGuiStorage_SetVoidPtr"][1]["location"] = "imgui:2261" defs["ImGuiStorage_SetVoidPtr"][1]["ov_cimguiname"] = "ImGuiStorage_SetVoidPtr" defs["ImGuiStorage_SetVoidPtr"][1]["ret"] = "void" defs["ImGuiStorage_SetVoidPtr"][1]["signature"] = "(ImGuiID,void*)" @@ -6482,7 +6670,7 @@ defs["ImGuiStyleMod_ImGuiStyleMod"][1]["cimguiname"] = "ImGuiStyleMod_ImGuiStyle defs["ImGuiStyleMod_ImGuiStyleMod"][1]["constructor"] = true defs["ImGuiStyleMod_ImGuiStyleMod"][1]["defaults"] = {} defs["ImGuiStyleMod_ImGuiStyleMod"][1]["funcname"] = "ImGuiStyleMod" -defs["ImGuiStyleMod_ImGuiStyleMod"][1]["location"] = "imgui_internal:972" +defs["ImGuiStyleMod_ImGuiStyleMod"][1]["location"] = "imgui_internal:975" defs["ImGuiStyleMod_ImGuiStyleMod"][1]["ov_cimguiname"] = "ImGuiStyleMod_ImGuiStyleModInt" defs["ImGuiStyleMod_ImGuiStyleMod"][1]["signature"] = "(ImGuiStyleVar,int)" defs["ImGuiStyleMod_ImGuiStyleMod"][1]["stname"] = "ImGuiStyleMod" @@ -6501,7 +6689,7 @@ defs["ImGuiStyleMod_ImGuiStyleMod"][2]["cimguiname"] = "ImGuiStyleMod_ImGuiStyle defs["ImGuiStyleMod_ImGuiStyleMod"][2]["constructor"] = true defs["ImGuiStyleMod_ImGuiStyleMod"][2]["defaults"] = {} defs["ImGuiStyleMod_ImGuiStyleMod"][2]["funcname"] = "ImGuiStyleMod" -defs["ImGuiStyleMod_ImGuiStyleMod"][2]["location"] = "imgui_internal:973" +defs["ImGuiStyleMod_ImGuiStyleMod"][2]["location"] = "imgui_internal:976" defs["ImGuiStyleMod_ImGuiStyleMod"][2]["ov_cimguiname"] = "ImGuiStyleMod_ImGuiStyleModFloat" defs["ImGuiStyleMod_ImGuiStyleMod"][2]["signature"] = "(ImGuiStyleVar,float)" defs["ImGuiStyleMod_ImGuiStyleMod"][2]["stname"] = "ImGuiStyleMod" @@ -6520,7 +6708,7 @@ defs["ImGuiStyleMod_ImGuiStyleMod"][3]["cimguiname"] = "ImGuiStyleMod_ImGuiStyle defs["ImGuiStyleMod_ImGuiStyleMod"][3]["constructor"] = true defs["ImGuiStyleMod_ImGuiStyleMod"][3]["defaults"] = {} defs["ImGuiStyleMod_ImGuiStyleMod"][3]["funcname"] = "ImGuiStyleMod" -defs["ImGuiStyleMod_ImGuiStyleMod"][3]["location"] = "imgui_internal:974" +defs["ImGuiStyleMod_ImGuiStyleMod"][3]["location"] = "imgui_internal:977" defs["ImGuiStyleMod_ImGuiStyleMod"][3]["ov_cimguiname"] = "ImGuiStyleMod_ImGuiStyleModVec2" defs["ImGuiStyleMod_ImGuiStyleMod"][3]["signature"] = "(ImGuiStyleVar,ImVec2)" defs["ImGuiStyleMod_ImGuiStyleMod"][3]["stname"] = "ImGuiStyleMod" @@ -6553,7 +6741,7 @@ defs["ImGuiStyle_ImGuiStyle"][1]["cimguiname"] = "ImGuiStyle_ImGuiStyle" defs["ImGuiStyle_ImGuiStyle"][1]["constructor"] = true defs["ImGuiStyle_ImGuiStyle"][1]["defaults"] = {} defs["ImGuiStyle_ImGuiStyle"][1]["funcname"] = "ImGuiStyle" -defs["ImGuiStyle_ImGuiStyle"][1]["location"] = "imgui:1880" +defs["ImGuiStyle_ImGuiStyle"][1]["location"] = "imgui:1886" defs["ImGuiStyle_ImGuiStyle"][1]["ov_cimguiname"] = "ImGuiStyle_ImGuiStyle" defs["ImGuiStyle_ImGuiStyle"][1]["signature"] = "()" defs["ImGuiStyle_ImGuiStyle"][1]["stname"] = "ImGuiStyle" @@ -6573,7 +6761,7 @@ defs["ImGuiStyle_ScaleAllSizes"][1]["call_args"] = "(scale_factor)" defs["ImGuiStyle_ScaleAllSizes"][1]["cimguiname"] = "ImGuiStyle_ScaleAllSizes" defs["ImGuiStyle_ScaleAllSizes"][1]["defaults"] = {} defs["ImGuiStyle_ScaleAllSizes"][1]["funcname"] = "ScaleAllSizes" -defs["ImGuiStyle_ScaleAllSizes"][1]["location"] = "imgui:1881" +defs["ImGuiStyle_ScaleAllSizes"][1]["location"] = "imgui:1887" defs["ImGuiStyle_ScaleAllSizes"][1]["ov_cimguiname"] = "ImGuiStyle_ScaleAllSizes" defs["ImGuiStyle_ScaleAllSizes"][1]["ret"] = "void" defs["ImGuiStyle_ScaleAllSizes"][1]["signature"] = "(float)" @@ -6610,7 +6798,7 @@ defs["ImGuiTabBar_GetTabName"][1]["call_args"] = "(tab)" defs["ImGuiTabBar_GetTabName"][1]["cimguiname"] = "ImGuiTabBar_GetTabName" defs["ImGuiTabBar_GetTabName"][1]["defaults"] = {} defs["ImGuiTabBar_GetTabName"][1]["funcname"] = "GetTabName" -defs["ImGuiTabBar_GetTabName"][1]["location"] = "imgui_internal:2271" +defs["ImGuiTabBar_GetTabName"][1]["location"] = "imgui_internal:2370" defs["ImGuiTabBar_GetTabName"][1]["ov_cimguiname"] = "ImGuiTabBar_GetTabName" defs["ImGuiTabBar_GetTabName"][1]["ret"] = "const char*" defs["ImGuiTabBar_GetTabName"][1]["signature"] = "(const ImGuiTabItem*)const" @@ -6631,7 +6819,7 @@ defs["ImGuiTabBar_GetTabOrder"][1]["call_args"] = "(tab)" defs["ImGuiTabBar_GetTabOrder"][1]["cimguiname"] = "ImGuiTabBar_GetTabOrder" defs["ImGuiTabBar_GetTabOrder"][1]["defaults"] = {} defs["ImGuiTabBar_GetTabOrder"][1]["funcname"] = "GetTabOrder" -defs["ImGuiTabBar_GetTabOrder"][1]["location"] = "imgui_internal:2270" +defs["ImGuiTabBar_GetTabOrder"][1]["location"] = "imgui_internal:2369" defs["ImGuiTabBar_GetTabOrder"][1]["ov_cimguiname"] = "ImGuiTabBar_GetTabOrder" defs["ImGuiTabBar_GetTabOrder"][1]["ret"] = "int" defs["ImGuiTabBar_GetTabOrder"][1]["signature"] = "(const ImGuiTabItem*)const" @@ -6647,7 +6835,7 @@ defs["ImGuiTabBar_ImGuiTabBar"][1]["cimguiname"] = "ImGuiTabBar_ImGuiTabBar" defs["ImGuiTabBar_ImGuiTabBar"][1]["constructor"] = true defs["ImGuiTabBar_ImGuiTabBar"][1]["defaults"] = {} defs["ImGuiTabBar_ImGuiTabBar"][1]["funcname"] = "ImGuiTabBar" -defs["ImGuiTabBar_ImGuiTabBar"][1]["location"] = "imgui_internal:2269" +defs["ImGuiTabBar_ImGuiTabBar"][1]["location"] = "imgui_internal:2368" defs["ImGuiTabBar_ImGuiTabBar"][1]["ov_cimguiname"] = "ImGuiTabBar_ImGuiTabBar" defs["ImGuiTabBar_ImGuiTabBar"][1]["signature"] = "()" defs["ImGuiTabBar_ImGuiTabBar"][1]["stname"] = "ImGuiTabBar" @@ -6678,7 +6866,7 @@ defs["ImGuiTabItem_ImGuiTabItem"][1]["cimguiname"] = "ImGuiTabItem_ImGuiTabItem" defs["ImGuiTabItem_ImGuiTabItem"][1]["constructor"] = true defs["ImGuiTabItem_ImGuiTabItem"][1]["defaults"] = {} defs["ImGuiTabItem_ImGuiTabItem"][1]["funcname"] = "ImGuiTabItem" -defs["ImGuiTabItem_ImGuiTabItem"][1]["location"] = "imgui_internal:2231" +defs["ImGuiTabItem_ImGuiTabItem"][1]["location"] = "imgui_internal:2330" defs["ImGuiTabItem_ImGuiTabItem"][1]["ov_cimguiname"] = "ImGuiTabItem_ImGuiTabItem" defs["ImGuiTabItem_ImGuiTabItem"][1]["signature"] = "()" defs["ImGuiTabItem_ImGuiTabItem"][1]["stname"] = "ImGuiTabItem" @@ -6709,7 +6897,7 @@ defs["ImGuiTableColumnSettings_ImGuiTableColumnSettings"][1]["cimguiname"] = "Im defs["ImGuiTableColumnSettings_ImGuiTableColumnSettings"][1]["constructor"] = true defs["ImGuiTableColumnSettings_ImGuiTableColumnSettings"][1]["defaults"] = {} defs["ImGuiTableColumnSettings_ImGuiTableColumnSettings"][1]["funcname"] = "ImGuiTableColumnSettings" -defs["ImGuiTableColumnSettings_ImGuiTableColumnSettings"][1]["location"] = "imgui_internal:2507" +defs["ImGuiTableColumnSettings_ImGuiTableColumnSettings"][1]["location"] = "imgui_internal:2606" defs["ImGuiTableColumnSettings_ImGuiTableColumnSettings"][1]["ov_cimguiname"] = "ImGuiTableColumnSettings_ImGuiTableColumnSettings" defs["ImGuiTableColumnSettings_ImGuiTableColumnSettings"][1]["signature"] = "()" defs["ImGuiTableColumnSettings_ImGuiTableColumnSettings"][1]["stname"] = "ImGuiTableColumnSettings" @@ -6740,7 +6928,7 @@ defs["ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs"][1]["cimguiname"] = " defs["ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs"][1]["constructor"] = true defs["ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs"][1]["defaults"] = {} defs["ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs"][1]["funcname"] = "ImGuiTableColumnSortSpecs" -defs["ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs"][1]["location"] = "imgui:2136" +defs["ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs"][1]["location"] = "imgui:2144" defs["ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs"][1]["ov_cimguiname"] = "ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs" defs["ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs"][1]["signature"] = "()" defs["ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs"][1]["stname"] = "ImGuiTableColumnSortSpecs" @@ -6771,7 +6959,7 @@ defs["ImGuiTableColumn_ImGuiTableColumn"][1]["cimguiname"] = "ImGuiTableColumn_I defs["ImGuiTableColumn_ImGuiTableColumn"][1]["constructor"] = true defs["ImGuiTableColumn_ImGuiTableColumn"][1]["defaults"] = {} defs["ImGuiTableColumn_ImGuiTableColumn"][1]["funcname"] = "ImGuiTableColumn" -defs["ImGuiTableColumn_ImGuiTableColumn"][1]["location"] = "imgui_internal:2340" +defs["ImGuiTableColumn_ImGuiTableColumn"][1]["location"] = "imgui_internal:2439" defs["ImGuiTableColumn_ImGuiTableColumn"][1]["ov_cimguiname"] = "ImGuiTableColumn_ImGuiTableColumn" defs["ImGuiTableColumn_ImGuiTableColumn"][1]["signature"] = "()" defs["ImGuiTableColumn_ImGuiTableColumn"][1]["stname"] = "ImGuiTableColumn" @@ -6804,7 +6992,7 @@ defs["ImGuiTableSettings_GetColumnSettings"][1]["call_args"] = "()" defs["ImGuiTableSettings_GetColumnSettings"][1]["cimguiname"] = "ImGuiTableSettings_GetColumnSettings" defs["ImGuiTableSettings_GetColumnSettings"][1]["defaults"] = {} defs["ImGuiTableSettings_GetColumnSettings"][1]["funcname"] = "GetColumnSettings" -defs["ImGuiTableSettings_GetColumnSettings"][1]["location"] = "imgui_internal:2530" +defs["ImGuiTableSettings_GetColumnSettings"][1]["location"] = "imgui_internal:2629" defs["ImGuiTableSettings_GetColumnSettings"][1]["ov_cimguiname"] = "ImGuiTableSettings_GetColumnSettings" defs["ImGuiTableSettings_GetColumnSettings"][1]["ret"] = "ImGuiTableColumnSettings*" defs["ImGuiTableSettings_GetColumnSettings"][1]["signature"] = "()" @@ -6820,7 +7008,7 @@ defs["ImGuiTableSettings_ImGuiTableSettings"][1]["cimguiname"] = "ImGuiTableSett defs["ImGuiTableSettings_ImGuiTableSettings"][1]["constructor"] = true defs["ImGuiTableSettings_ImGuiTableSettings"][1]["defaults"] = {} defs["ImGuiTableSettings_ImGuiTableSettings"][1]["funcname"] = "ImGuiTableSettings" -defs["ImGuiTableSettings_ImGuiTableSettings"][1]["location"] = "imgui_internal:2529" +defs["ImGuiTableSettings_ImGuiTableSettings"][1]["location"] = "imgui_internal:2628" defs["ImGuiTableSettings_ImGuiTableSettings"][1]["ov_cimguiname"] = "ImGuiTableSettings_ImGuiTableSettings" defs["ImGuiTableSettings_ImGuiTableSettings"][1]["signature"] = "()" defs["ImGuiTableSettings_ImGuiTableSettings"][1]["stname"] = "ImGuiTableSettings" @@ -6851,7 +7039,7 @@ defs["ImGuiTableSortSpecs_ImGuiTableSortSpecs"][1]["cimguiname"] = "ImGuiTableSo defs["ImGuiTableSortSpecs_ImGuiTableSortSpecs"][1]["constructor"] = true defs["ImGuiTableSortSpecs_ImGuiTableSortSpecs"][1]["defaults"] = {} defs["ImGuiTableSortSpecs_ImGuiTableSortSpecs"][1]["funcname"] = "ImGuiTableSortSpecs" -defs["ImGuiTableSortSpecs_ImGuiTableSortSpecs"][1]["location"] = "imgui:2149" +defs["ImGuiTableSortSpecs_ImGuiTableSortSpecs"][1]["location"] = "imgui:2157" defs["ImGuiTableSortSpecs_ImGuiTableSortSpecs"][1]["ov_cimguiname"] = "ImGuiTableSortSpecs_ImGuiTableSortSpecs" defs["ImGuiTableSortSpecs_ImGuiTableSortSpecs"][1]["signature"] = "()" defs["ImGuiTableSortSpecs_ImGuiTableSortSpecs"][1]["stname"] = "ImGuiTableSortSpecs" @@ -6882,7 +7070,7 @@ defs["ImGuiTableTempData_ImGuiTableTempData"][1]["cimguiname"] = "ImGuiTableTemp defs["ImGuiTableTempData_ImGuiTableTempData"][1]["constructor"] = true defs["ImGuiTableTempData_ImGuiTableTempData"][1]["defaults"] = {} defs["ImGuiTableTempData_ImGuiTableTempData"][1]["funcname"] = "ImGuiTableTempData" -defs["ImGuiTableTempData_ImGuiTableTempData"][1]["location"] = "imgui_internal:2492" +defs["ImGuiTableTempData_ImGuiTableTempData"][1]["location"] = "imgui_internal:2591" defs["ImGuiTableTempData_ImGuiTableTempData"][1]["ov_cimguiname"] = "ImGuiTableTempData_ImGuiTableTempData" defs["ImGuiTableTempData_ImGuiTableTempData"][1]["signature"] = "()" defs["ImGuiTableTempData_ImGuiTableTempData"][1]["stname"] = "ImGuiTableTempData" @@ -6913,7 +7101,7 @@ defs["ImGuiTable_ImGuiTable"][1]["cimguiname"] = "ImGuiTable_ImGuiTable" defs["ImGuiTable_ImGuiTable"][1]["constructor"] = true defs["ImGuiTable_ImGuiTable"][1]["defaults"] = {} defs["ImGuiTable_ImGuiTable"][1]["funcname"] = "ImGuiTable" -defs["ImGuiTable_ImGuiTable"][1]["location"] = "imgui_internal:2468" +defs["ImGuiTable_ImGuiTable"][1]["location"] = "imgui_internal:2567" defs["ImGuiTable_ImGuiTable"][1]["ov_cimguiname"] = "ImGuiTable_ImGuiTable" defs["ImGuiTable_ImGuiTable"][1]["signature"] = "()" defs["ImGuiTable_ImGuiTable"][1]["stname"] = "ImGuiTable" @@ -6929,7 +7117,7 @@ defs["ImGuiTable_destroy"][1]["call_args"] = "(self)" defs["ImGuiTable_destroy"][1]["cimguiname"] = "ImGuiTable_destroy" defs["ImGuiTable_destroy"][1]["defaults"] = {} defs["ImGuiTable_destroy"][1]["destructor"] = true -defs["ImGuiTable_destroy"][1]["location"] = "imgui_internal:2469" +defs["ImGuiTable_destroy"][1]["location"] = "imgui_internal:2568" defs["ImGuiTable_destroy"][1]["ov_cimguiname"] = "ImGuiTable_destroy" defs["ImGuiTable_destroy"][1]["realdestructor"] = true defs["ImGuiTable_destroy"][1]["ret"] = "void" @@ -6946,7 +7134,7 @@ defs["ImGuiTextBuffer_ImGuiTextBuffer"][1]["cimguiname"] = "ImGuiTextBuffer_ImGu defs["ImGuiTextBuffer_ImGuiTextBuffer"][1]["constructor"] = true defs["ImGuiTextBuffer_ImGuiTextBuffer"][1]["defaults"] = {} defs["ImGuiTextBuffer_ImGuiTextBuffer"][1]["funcname"] = "ImGuiTextBuffer" -defs["ImGuiTextBuffer_ImGuiTextBuffer"][1]["location"] = "imgui:2206" +defs["ImGuiTextBuffer_ImGuiTextBuffer"][1]["location"] = "imgui:2214" defs["ImGuiTextBuffer_ImGuiTextBuffer"][1]["ov_cimguiname"] = "ImGuiTextBuffer_ImGuiTextBuffer" defs["ImGuiTextBuffer_ImGuiTextBuffer"][1]["signature"] = "()" defs["ImGuiTextBuffer_ImGuiTextBuffer"][1]["stname"] = "ImGuiTextBuffer" @@ -6970,7 +7158,7 @@ defs["ImGuiTextBuffer_append"][1]["cimguiname"] = "ImGuiTextBuffer_append" defs["ImGuiTextBuffer_append"][1]["defaults"] = {} defs["ImGuiTextBuffer_append"][1]["defaults"]["str_end"] = "NULL" defs["ImGuiTextBuffer_append"][1]["funcname"] = "append" -defs["ImGuiTextBuffer_append"][1]["location"] = "imgui:2215" +defs["ImGuiTextBuffer_append"][1]["location"] = "imgui:2223" defs["ImGuiTextBuffer_append"][1]["ov_cimguiname"] = "ImGuiTextBuffer_append" defs["ImGuiTextBuffer_append"][1]["ret"] = "void" defs["ImGuiTextBuffer_append"][1]["signature"] = "(const char*,const char*)" @@ -6995,7 +7183,7 @@ defs["ImGuiTextBuffer_appendf"][1]["cimguiname"] = "ImGuiTextBuffer_appendf" defs["ImGuiTextBuffer_appendf"][1]["defaults"] = {} defs["ImGuiTextBuffer_appendf"][1]["funcname"] = "appendf" defs["ImGuiTextBuffer_appendf"][1]["isvararg"] = "...)" -defs["ImGuiTextBuffer_appendf"][1]["location"] = "imgui:2216" +defs["ImGuiTextBuffer_appendf"][1]["location"] = "imgui:2224" defs["ImGuiTextBuffer_appendf"][1]["manual"] = true defs["ImGuiTextBuffer_appendf"][1]["ov_cimguiname"] = "ImGuiTextBuffer_appendf" defs["ImGuiTextBuffer_appendf"][1]["ret"] = "void" @@ -7020,7 +7208,7 @@ defs["ImGuiTextBuffer_appendfv"][1]["call_args"] = "(fmt,args)" defs["ImGuiTextBuffer_appendfv"][1]["cimguiname"] = "ImGuiTextBuffer_appendfv" defs["ImGuiTextBuffer_appendfv"][1]["defaults"] = {} defs["ImGuiTextBuffer_appendfv"][1]["funcname"] = "appendfv" -defs["ImGuiTextBuffer_appendfv"][1]["location"] = "imgui:2217" +defs["ImGuiTextBuffer_appendfv"][1]["location"] = "imgui:2225" defs["ImGuiTextBuffer_appendfv"][1]["ov_cimguiname"] = "ImGuiTextBuffer_appendfv" defs["ImGuiTextBuffer_appendfv"][1]["ret"] = "void" defs["ImGuiTextBuffer_appendfv"][1]["signature"] = "(const char*,va_list)" @@ -7038,7 +7226,7 @@ defs["ImGuiTextBuffer_begin"][1]["call_args"] = "()" defs["ImGuiTextBuffer_begin"][1]["cimguiname"] = "ImGuiTextBuffer_begin" defs["ImGuiTextBuffer_begin"][1]["defaults"] = {} defs["ImGuiTextBuffer_begin"][1]["funcname"] = "begin" -defs["ImGuiTextBuffer_begin"][1]["location"] = "imgui:2208" +defs["ImGuiTextBuffer_begin"][1]["location"] = "imgui:2216" defs["ImGuiTextBuffer_begin"][1]["ov_cimguiname"] = "ImGuiTextBuffer_begin" defs["ImGuiTextBuffer_begin"][1]["ret"] = "const char*" defs["ImGuiTextBuffer_begin"][1]["signature"] = "()const" @@ -7056,7 +7244,7 @@ defs["ImGuiTextBuffer_c_str"][1]["call_args"] = "()" defs["ImGuiTextBuffer_c_str"][1]["cimguiname"] = "ImGuiTextBuffer_c_str" defs["ImGuiTextBuffer_c_str"][1]["defaults"] = {} defs["ImGuiTextBuffer_c_str"][1]["funcname"] = "c_str" -defs["ImGuiTextBuffer_c_str"][1]["location"] = "imgui:2214" +defs["ImGuiTextBuffer_c_str"][1]["location"] = "imgui:2222" defs["ImGuiTextBuffer_c_str"][1]["ov_cimguiname"] = "ImGuiTextBuffer_c_str" defs["ImGuiTextBuffer_c_str"][1]["ret"] = "const char*" defs["ImGuiTextBuffer_c_str"][1]["signature"] = "()const" @@ -7074,7 +7262,7 @@ defs["ImGuiTextBuffer_clear"][1]["call_args"] = "()" defs["ImGuiTextBuffer_clear"][1]["cimguiname"] = "ImGuiTextBuffer_clear" defs["ImGuiTextBuffer_clear"][1]["defaults"] = {} defs["ImGuiTextBuffer_clear"][1]["funcname"] = "clear" -defs["ImGuiTextBuffer_clear"][1]["location"] = "imgui:2212" +defs["ImGuiTextBuffer_clear"][1]["location"] = "imgui:2220" defs["ImGuiTextBuffer_clear"][1]["ov_cimguiname"] = "ImGuiTextBuffer_clear" defs["ImGuiTextBuffer_clear"][1]["ret"] = "void" defs["ImGuiTextBuffer_clear"][1]["signature"] = "()" @@ -7108,7 +7296,7 @@ defs["ImGuiTextBuffer_empty"][1]["call_args"] = "()" defs["ImGuiTextBuffer_empty"][1]["cimguiname"] = "ImGuiTextBuffer_empty" defs["ImGuiTextBuffer_empty"][1]["defaults"] = {} defs["ImGuiTextBuffer_empty"][1]["funcname"] = "empty" -defs["ImGuiTextBuffer_empty"][1]["location"] = "imgui:2211" +defs["ImGuiTextBuffer_empty"][1]["location"] = "imgui:2219" defs["ImGuiTextBuffer_empty"][1]["ov_cimguiname"] = "ImGuiTextBuffer_empty" defs["ImGuiTextBuffer_empty"][1]["ret"] = "bool" defs["ImGuiTextBuffer_empty"][1]["signature"] = "()const" @@ -7126,7 +7314,7 @@ defs["ImGuiTextBuffer_end"][1]["call_args"] = "()" defs["ImGuiTextBuffer_end"][1]["cimguiname"] = "ImGuiTextBuffer_end" defs["ImGuiTextBuffer_end"][1]["defaults"] = {} defs["ImGuiTextBuffer_end"][1]["funcname"] = "end" -defs["ImGuiTextBuffer_end"][1]["location"] = "imgui:2209" +defs["ImGuiTextBuffer_end"][1]["location"] = "imgui:2217" defs["ImGuiTextBuffer_end"][1]["ov_cimguiname"] = "ImGuiTextBuffer_end" defs["ImGuiTextBuffer_end"][1]["ret"] = "const char*" defs["ImGuiTextBuffer_end"][1]["signature"] = "()const" @@ -7147,7 +7335,7 @@ defs["ImGuiTextBuffer_reserve"][1]["call_args"] = "(capacity)" defs["ImGuiTextBuffer_reserve"][1]["cimguiname"] = "ImGuiTextBuffer_reserve" defs["ImGuiTextBuffer_reserve"][1]["defaults"] = {} defs["ImGuiTextBuffer_reserve"][1]["funcname"] = "reserve" -defs["ImGuiTextBuffer_reserve"][1]["location"] = "imgui:2213" +defs["ImGuiTextBuffer_reserve"][1]["location"] = "imgui:2221" defs["ImGuiTextBuffer_reserve"][1]["ov_cimguiname"] = "ImGuiTextBuffer_reserve" defs["ImGuiTextBuffer_reserve"][1]["ret"] = "void" defs["ImGuiTextBuffer_reserve"][1]["signature"] = "(int)" @@ -7165,7 +7353,7 @@ defs["ImGuiTextBuffer_size"][1]["call_args"] = "()" defs["ImGuiTextBuffer_size"][1]["cimguiname"] = "ImGuiTextBuffer_size" defs["ImGuiTextBuffer_size"][1]["defaults"] = {} defs["ImGuiTextBuffer_size"][1]["funcname"] = "size" -defs["ImGuiTextBuffer_size"][1]["location"] = "imgui:2210" +defs["ImGuiTextBuffer_size"][1]["location"] = "imgui:2218" defs["ImGuiTextBuffer_size"][1]["ov_cimguiname"] = "ImGuiTextBuffer_size" defs["ImGuiTextBuffer_size"][1]["ret"] = "int" defs["ImGuiTextBuffer_size"][1]["signature"] = "()const" @@ -7183,7 +7371,7 @@ defs["ImGuiTextFilter_Build"][1]["call_args"] = "()" defs["ImGuiTextFilter_Build"][1]["cimguiname"] = "ImGuiTextFilter_Build" defs["ImGuiTextFilter_Build"][1]["defaults"] = {} defs["ImGuiTextFilter_Build"][1]["funcname"] = "Build" -defs["ImGuiTextFilter_Build"][1]["location"] = "imgui:2179" +defs["ImGuiTextFilter_Build"][1]["location"] = "imgui:2187" defs["ImGuiTextFilter_Build"][1]["ov_cimguiname"] = "ImGuiTextFilter_Build" defs["ImGuiTextFilter_Build"][1]["ret"] = "void" defs["ImGuiTextFilter_Build"][1]["signature"] = "()" @@ -7201,7 +7389,7 @@ defs["ImGuiTextFilter_Clear"][1]["call_args"] = "()" defs["ImGuiTextFilter_Clear"][1]["cimguiname"] = "ImGuiTextFilter_Clear" defs["ImGuiTextFilter_Clear"][1]["defaults"] = {} defs["ImGuiTextFilter_Clear"][1]["funcname"] = "Clear" -defs["ImGuiTextFilter_Clear"][1]["location"] = "imgui:2180" +defs["ImGuiTextFilter_Clear"][1]["location"] = "imgui:2188" defs["ImGuiTextFilter_Clear"][1]["ov_cimguiname"] = "ImGuiTextFilter_Clear" defs["ImGuiTextFilter_Clear"][1]["ret"] = "void" defs["ImGuiTextFilter_Clear"][1]["signature"] = "()" @@ -7227,7 +7415,7 @@ defs["ImGuiTextFilter_Draw"][1]["defaults"] = {} defs["ImGuiTextFilter_Draw"][1]["defaults"]["label"] = "\"Filter(inc,-exc)\"" defs["ImGuiTextFilter_Draw"][1]["defaults"]["width"] = "0.0f" defs["ImGuiTextFilter_Draw"][1]["funcname"] = "Draw" -defs["ImGuiTextFilter_Draw"][1]["location"] = "imgui:2177" +defs["ImGuiTextFilter_Draw"][1]["location"] = "imgui:2185" defs["ImGuiTextFilter_Draw"][1]["ov_cimguiname"] = "ImGuiTextFilter_Draw" defs["ImGuiTextFilter_Draw"][1]["ret"] = "bool" defs["ImGuiTextFilter_Draw"][1]["signature"] = "(const char*,float)" @@ -7247,7 +7435,7 @@ defs["ImGuiTextFilter_ImGuiTextFilter"][1]["constructor"] = true defs["ImGuiTextFilter_ImGuiTextFilter"][1]["defaults"] = {} defs["ImGuiTextFilter_ImGuiTextFilter"][1]["defaults"]["default_filter"] = "\"\"" defs["ImGuiTextFilter_ImGuiTextFilter"][1]["funcname"] = "ImGuiTextFilter" -defs["ImGuiTextFilter_ImGuiTextFilter"][1]["location"] = "imgui:2176" +defs["ImGuiTextFilter_ImGuiTextFilter"][1]["location"] = "imgui:2184" defs["ImGuiTextFilter_ImGuiTextFilter"][1]["ov_cimguiname"] = "ImGuiTextFilter_ImGuiTextFilter" defs["ImGuiTextFilter_ImGuiTextFilter"][1]["signature"] = "(const char*)" defs["ImGuiTextFilter_ImGuiTextFilter"][1]["stname"] = "ImGuiTextFilter" @@ -7264,7 +7452,7 @@ defs["ImGuiTextFilter_IsActive"][1]["call_args"] = "()" defs["ImGuiTextFilter_IsActive"][1]["cimguiname"] = "ImGuiTextFilter_IsActive" defs["ImGuiTextFilter_IsActive"][1]["defaults"] = {} defs["ImGuiTextFilter_IsActive"][1]["funcname"] = "IsActive" -defs["ImGuiTextFilter_IsActive"][1]["location"] = "imgui:2181" +defs["ImGuiTextFilter_IsActive"][1]["location"] = "imgui:2189" defs["ImGuiTextFilter_IsActive"][1]["ov_cimguiname"] = "ImGuiTextFilter_IsActive" defs["ImGuiTextFilter_IsActive"][1]["ret"] = "bool" defs["ImGuiTextFilter_IsActive"][1]["signature"] = "()const" @@ -7289,7 +7477,7 @@ defs["ImGuiTextFilter_PassFilter"][1]["cimguiname"] = "ImGuiTextFilter_PassFilte defs["ImGuiTextFilter_PassFilter"][1]["defaults"] = {} defs["ImGuiTextFilter_PassFilter"][1]["defaults"]["text_end"] = "NULL" defs["ImGuiTextFilter_PassFilter"][1]["funcname"] = "PassFilter" -defs["ImGuiTextFilter_PassFilter"][1]["location"] = "imgui:2178" +defs["ImGuiTextFilter_PassFilter"][1]["location"] = "imgui:2186" defs["ImGuiTextFilter_PassFilter"][1]["ov_cimguiname"] = "ImGuiTextFilter_PassFilter" defs["ImGuiTextFilter_PassFilter"][1]["ret"] = "bool" defs["ImGuiTextFilter_PassFilter"][1]["signature"] = "(const char*,const char*)const" @@ -7321,7 +7509,7 @@ defs["ImGuiTextRange_ImGuiTextRange"][1]["cimguiname"] = "ImGuiTextRange_ImGuiTe defs["ImGuiTextRange_ImGuiTextRange"][1]["constructor"] = true defs["ImGuiTextRange_ImGuiTextRange"][1]["defaults"] = {} defs["ImGuiTextRange_ImGuiTextRange"][1]["funcname"] = "ImGuiTextRange" -defs["ImGuiTextRange_ImGuiTextRange"][1]["location"] = "imgui:2189" +defs["ImGuiTextRange_ImGuiTextRange"][1]["location"] = "imgui:2197" defs["ImGuiTextRange_ImGuiTextRange"][1]["ov_cimguiname"] = "ImGuiTextRange_ImGuiTextRangeNil" defs["ImGuiTextRange_ImGuiTextRange"][1]["signature"] = "()" defs["ImGuiTextRange_ImGuiTextRange"][1]["stname"] = "ImGuiTextRange" @@ -7340,7 +7528,7 @@ defs["ImGuiTextRange_ImGuiTextRange"][2]["cimguiname"] = "ImGuiTextRange_ImGuiTe defs["ImGuiTextRange_ImGuiTextRange"][2]["constructor"] = true defs["ImGuiTextRange_ImGuiTextRange"][2]["defaults"] = {} defs["ImGuiTextRange_ImGuiTextRange"][2]["funcname"] = "ImGuiTextRange" -defs["ImGuiTextRange_ImGuiTextRange"][2]["location"] = "imgui:2190" +defs["ImGuiTextRange_ImGuiTextRange"][2]["location"] = "imgui:2198" defs["ImGuiTextRange_ImGuiTextRange"][2]["ov_cimguiname"] = "ImGuiTextRange_ImGuiTextRangeStr" defs["ImGuiTextRange_ImGuiTextRange"][2]["signature"] = "(const char*,const char*)" defs["ImGuiTextRange_ImGuiTextRange"][2]["stname"] = "ImGuiTextRange" @@ -7374,7 +7562,7 @@ defs["ImGuiTextRange_empty"][1]["call_args"] = "()" defs["ImGuiTextRange_empty"][1]["cimguiname"] = "ImGuiTextRange_empty" defs["ImGuiTextRange_empty"][1]["defaults"] = {} defs["ImGuiTextRange_empty"][1]["funcname"] = "empty" -defs["ImGuiTextRange_empty"][1]["location"] = "imgui:2191" +defs["ImGuiTextRange_empty"][1]["location"] = "imgui:2199" defs["ImGuiTextRange_empty"][1]["ov_cimguiname"] = "ImGuiTextRange_empty" defs["ImGuiTextRange_empty"][1]["ret"] = "bool" defs["ImGuiTextRange_empty"][1]["signature"] = "()const" @@ -7398,7 +7586,7 @@ defs["ImGuiTextRange_split"][1]["call_args"] = "(separator,out)" defs["ImGuiTextRange_split"][1]["cimguiname"] = "ImGuiTextRange_split" defs["ImGuiTextRange_split"][1]["defaults"] = {} defs["ImGuiTextRange_split"][1]["funcname"] = "split" -defs["ImGuiTextRange_split"][1]["location"] = "imgui:2192" +defs["ImGuiTextRange_split"][1]["location"] = "imgui:2200" defs["ImGuiTextRange_split"][1]["ov_cimguiname"] = "ImGuiTextRange_split" defs["ImGuiTextRange_split"][1]["ret"] = "void" defs["ImGuiTextRange_split"][1]["signature"] = "(char,ImVector_ImGuiTextRange*)const" @@ -7422,7 +7610,7 @@ defs["ImGuiViewportP_CalcWorkRectPos"][1]["call_args"] = "(off_min)" defs["ImGuiViewportP_CalcWorkRectPos"][1]["cimguiname"] = "ImGuiViewportP_CalcWorkRectPos" defs["ImGuiViewportP_CalcWorkRectPos"][1]["defaults"] = {} defs["ImGuiViewportP_CalcWorkRectPos"][1]["funcname"] = "CalcWorkRectPos" -defs["ImGuiViewportP_CalcWorkRectPos"][1]["location"] = "imgui_internal:1466" +defs["ImGuiViewportP_CalcWorkRectPos"][1]["location"] = "imgui_internal:1548" defs["ImGuiViewportP_CalcWorkRectPos"][1]["nonUDT"] = 1 defs["ImGuiViewportP_CalcWorkRectPos"][1]["ov_cimguiname"] = "ImGuiViewportP_CalcWorkRectPos" defs["ImGuiViewportP_CalcWorkRectPos"][1]["ret"] = "void" @@ -7450,7 +7638,7 @@ defs["ImGuiViewportP_CalcWorkRectSize"][1]["call_args"] = "(off_min,off_max)" defs["ImGuiViewportP_CalcWorkRectSize"][1]["cimguiname"] = "ImGuiViewportP_CalcWorkRectSize" defs["ImGuiViewportP_CalcWorkRectSize"][1]["defaults"] = {} defs["ImGuiViewportP_CalcWorkRectSize"][1]["funcname"] = "CalcWorkRectSize" -defs["ImGuiViewportP_CalcWorkRectSize"][1]["location"] = "imgui_internal:1467" +defs["ImGuiViewportP_CalcWorkRectSize"][1]["location"] = "imgui_internal:1549" defs["ImGuiViewportP_CalcWorkRectSize"][1]["nonUDT"] = 1 defs["ImGuiViewportP_CalcWorkRectSize"][1]["ov_cimguiname"] = "ImGuiViewportP_CalcWorkRectSize" defs["ImGuiViewportP_CalcWorkRectSize"][1]["ret"] = "void" @@ -7469,7 +7657,7 @@ defs["ImGuiViewportP_ClearRequestFlags"][1]["call_args"] = "()" defs["ImGuiViewportP_ClearRequestFlags"][1]["cimguiname"] = "ImGuiViewportP_ClearRequestFlags" defs["ImGuiViewportP_ClearRequestFlags"][1]["defaults"] = {} defs["ImGuiViewportP_ClearRequestFlags"][1]["funcname"] = "ClearRequestFlags" -defs["ImGuiViewportP_ClearRequestFlags"][1]["location"] = "imgui_internal:1463" +defs["ImGuiViewportP_ClearRequestFlags"][1]["location"] = "imgui_internal:1545" defs["ImGuiViewportP_ClearRequestFlags"][1]["ov_cimguiname"] = "ImGuiViewportP_ClearRequestFlags" defs["ImGuiViewportP_ClearRequestFlags"][1]["ret"] = "void" defs["ImGuiViewportP_ClearRequestFlags"][1]["signature"] = "()" @@ -7490,7 +7678,7 @@ defs["ImGuiViewportP_GetBuildWorkRect"][1]["call_args"] = "()" defs["ImGuiViewportP_GetBuildWorkRect"][1]["cimguiname"] = "ImGuiViewportP_GetBuildWorkRect" defs["ImGuiViewportP_GetBuildWorkRect"][1]["defaults"] = {} defs["ImGuiViewportP_GetBuildWorkRect"][1]["funcname"] = "GetBuildWorkRect" -defs["ImGuiViewportP_GetBuildWorkRect"][1]["location"] = "imgui_internal:1473" +defs["ImGuiViewportP_GetBuildWorkRect"][1]["location"] = "imgui_internal:1555" defs["ImGuiViewportP_GetBuildWorkRect"][1]["nonUDT"] = 1 defs["ImGuiViewportP_GetBuildWorkRect"][1]["ov_cimguiname"] = "ImGuiViewportP_GetBuildWorkRect" defs["ImGuiViewportP_GetBuildWorkRect"][1]["ret"] = "void" @@ -7512,7 +7700,7 @@ defs["ImGuiViewportP_GetMainRect"][1]["call_args"] = "()" defs["ImGuiViewportP_GetMainRect"][1]["cimguiname"] = "ImGuiViewportP_GetMainRect" defs["ImGuiViewportP_GetMainRect"][1]["defaults"] = {} defs["ImGuiViewportP_GetMainRect"][1]["funcname"] = "GetMainRect" -defs["ImGuiViewportP_GetMainRect"][1]["location"] = "imgui_internal:1471" +defs["ImGuiViewportP_GetMainRect"][1]["location"] = "imgui_internal:1553" defs["ImGuiViewportP_GetMainRect"][1]["nonUDT"] = 1 defs["ImGuiViewportP_GetMainRect"][1]["ov_cimguiname"] = "ImGuiViewportP_GetMainRect" defs["ImGuiViewportP_GetMainRect"][1]["ret"] = "void" @@ -7534,7 +7722,7 @@ defs["ImGuiViewportP_GetWorkRect"][1]["call_args"] = "()" defs["ImGuiViewportP_GetWorkRect"][1]["cimguiname"] = "ImGuiViewportP_GetWorkRect" defs["ImGuiViewportP_GetWorkRect"][1]["defaults"] = {} defs["ImGuiViewportP_GetWorkRect"][1]["funcname"] = "GetWorkRect" -defs["ImGuiViewportP_GetWorkRect"][1]["location"] = "imgui_internal:1472" +defs["ImGuiViewportP_GetWorkRect"][1]["location"] = "imgui_internal:1554" defs["ImGuiViewportP_GetWorkRect"][1]["nonUDT"] = 1 defs["ImGuiViewportP_GetWorkRect"][1]["ov_cimguiname"] = "ImGuiViewportP_GetWorkRect" defs["ImGuiViewportP_GetWorkRect"][1]["ret"] = "void" @@ -7551,7 +7739,7 @@ defs["ImGuiViewportP_ImGuiViewportP"][1]["cimguiname"] = "ImGuiViewportP_ImGuiVi defs["ImGuiViewportP_ImGuiViewportP"][1]["constructor"] = true defs["ImGuiViewportP_ImGuiViewportP"][1]["defaults"] = {} defs["ImGuiViewportP_ImGuiViewportP"][1]["funcname"] = "ImGuiViewportP" -defs["ImGuiViewportP_ImGuiViewportP"][1]["location"] = "imgui_internal:1461" +defs["ImGuiViewportP_ImGuiViewportP"][1]["location"] = "imgui_internal:1543" defs["ImGuiViewportP_ImGuiViewportP"][1]["ov_cimguiname"] = "ImGuiViewportP_ImGuiViewportP" defs["ImGuiViewportP_ImGuiViewportP"][1]["signature"] = "()" defs["ImGuiViewportP_ImGuiViewportP"][1]["stname"] = "ImGuiViewportP" @@ -7568,7 +7756,7 @@ defs["ImGuiViewportP_UpdateWorkRect"][1]["call_args"] = "()" defs["ImGuiViewportP_UpdateWorkRect"][1]["cimguiname"] = "ImGuiViewportP_UpdateWorkRect" defs["ImGuiViewportP_UpdateWorkRect"][1]["defaults"] = {} defs["ImGuiViewportP_UpdateWorkRect"][1]["funcname"] = "UpdateWorkRect" -defs["ImGuiViewportP_UpdateWorkRect"][1]["location"] = "imgui_internal:1468" +defs["ImGuiViewportP_UpdateWorkRect"][1]["location"] = "imgui_internal:1550" defs["ImGuiViewportP_UpdateWorkRect"][1]["ov_cimguiname"] = "ImGuiViewportP_UpdateWorkRect" defs["ImGuiViewportP_UpdateWorkRect"][1]["ret"] = "void" defs["ImGuiViewportP_UpdateWorkRect"][1]["signature"] = "()" @@ -7585,7 +7773,7 @@ defs["ImGuiViewportP_destroy"][1]["call_args"] = "(self)" defs["ImGuiViewportP_destroy"][1]["cimguiname"] = "ImGuiViewportP_destroy" defs["ImGuiViewportP_destroy"][1]["defaults"] = {} defs["ImGuiViewportP_destroy"][1]["destructor"] = true -defs["ImGuiViewportP_destroy"][1]["location"] = "imgui_internal:1462" +defs["ImGuiViewportP_destroy"][1]["location"] = "imgui_internal:1544" defs["ImGuiViewportP_destroy"][1]["ov_cimguiname"] = "ImGuiViewportP_destroy" defs["ImGuiViewportP_destroy"][1]["realdestructor"] = true defs["ImGuiViewportP_destroy"][1]["ret"] = "void" @@ -7607,7 +7795,7 @@ defs["ImGuiViewport_GetCenter"][1]["call_args"] = "()" defs["ImGuiViewport_GetCenter"][1]["cimguiname"] = "ImGuiViewport_GetCenter" defs["ImGuiViewport_GetCenter"][1]["defaults"] = {} defs["ImGuiViewport_GetCenter"][1]["funcname"] = "GetCenter" -defs["ImGuiViewport_GetCenter"][1]["location"] = "imgui:2945" +defs["ImGuiViewport_GetCenter"][1]["location"] = "imgui:2955" defs["ImGuiViewport_GetCenter"][1]["nonUDT"] = 1 defs["ImGuiViewport_GetCenter"][1]["ov_cimguiname"] = "ImGuiViewport_GetCenter" defs["ImGuiViewport_GetCenter"][1]["ret"] = "void" @@ -7629,7 +7817,7 @@ defs["ImGuiViewport_GetWorkCenter"][1]["call_args"] = "()" defs["ImGuiViewport_GetWorkCenter"][1]["cimguiname"] = "ImGuiViewport_GetWorkCenter" defs["ImGuiViewport_GetWorkCenter"][1]["defaults"] = {} defs["ImGuiViewport_GetWorkCenter"][1]["funcname"] = "GetWorkCenter" -defs["ImGuiViewport_GetWorkCenter"][1]["location"] = "imgui:2946" +defs["ImGuiViewport_GetWorkCenter"][1]["location"] = "imgui:2956" defs["ImGuiViewport_GetWorkCenter"][1]["nonUDT"] = 1 defs["ImGuiViewport_GetWorkCenter"][1]["ov_cimguiname"] = "ImGuiViewport_GetWorkCenter" defs["ImGuiViewport_GetWorkCenter"][1]["ret"] = "void" @@ -7646,7 +7834,7 @@ defs["ImGuiViewport_ImGuiViewport"][1]["cimguiname"] = "ImGuiViewport_ImGuiViewp defs["ImGuiViewport_ImGuiViewport"][1]["constructor"] = true defs["ImGuiViewport_ImGuiViewport"][1]["defaults"] = {} defs["ImGuiViewport_ImGuiViewport"][1]["funcname"] = "ImGuiViewport" -defs["ImGuiViewport_ImGuiViewport"][1]["location"] = "imgui:2941" +defs["ImGuiViewport_ImGuiViewport"][1]["location"] = "imgui:2951" defs["ImGuiViewport_ImGuiViewport"][1]["ov_cimguiname"] = "ImGuiViewport_ImGuiViewport" defs["ImGuiViewport_ImGuiViewport"][1]["signature"] = "()" defs["ImGuiViewport_ImGuiViewport"][1]["stname"] = "ImGuiViewport" @@ -7662,7 +7850,7 @@ defs["ImGuiViewport_destroy"][1]["call_args"] = "(self)" defs["ImGuiViewport_destroy"][1]["cimguiname"] = "ImGuiViewport_destroy" defs["ImGuiViewport_destroy"][1]["defaults"] = {} defs["ImGuiViewport_destroy"][1]["destructor"] = true -defs["ImGuiViewport_destroy"][1]["location"] = "imgui:2942" +defs["ImGuiViewport_destroy"][1]["location"] = "imgui:2952" defs["ImGuiViewport_destroy"][1]["ov_cimguiname"] = "ImGuiViewport_destroy" defs["ImGuiViewport_destroy"][1]["realdestructor"] = true defs["ImGuiViewport_destroy"][1]["ret"] = "void" @@ -7679,7 +7867,7 @@ defs["ImGuiWindowClass_ImGuiWindowClass"][1]["cimguiname"] = "ImGuiWindowClass_I defs["ImGuiWindowClass_ImGuiWindowClass"][1]["constructor"] = true defs["ImGuiWindowClass_ImGuiWindowClass"][1]["defaults"] = {} defs["ImGuiWindowClass_ImGuiWindowClass"][1]["funcname"] = "ImGuiWindowClass" -defs["ImGuiWindowClass_ImGuiWindowClass"][1]["location"] = "imgui:2103" +defs["ImGuiWindowClass_ImGuiWindowClass"][1]["location"] = "imgui:2111" defs["ImGuiWindowClass_ImGuiWindowClass"][1]["ov_cimguiname"] = "ImGuiWindowClass_ImGuiWindowClass" defs["ImGuiWindowClass_ImGuiWindowClass"][1]["signature"] = "()" defs["ImGuiWindowClass_ImGuiWindowClass"][1]["stname"] = "ImGuiWindowClass" @@ -7712,7 +7900,7 @@ defs["ImGuiWindowSettings_GetName"][1]["call_args"] = "()" defs["ImGuiWindowSettings_GetName"][1]["cimguiname"] = "ImGuiWindowSettings_GetName" defs["ImGuiWindowSettings_GetName"][1]["defaults"] = {} defs["ImGuiWindowSettings_GetName"][1]["funcname"] = "GetName" -defs["ImGuiWindowSettings_GetName"][1]["location"] = "imgui_internal:1497" +defs["ImGuiWindowSettings_GetName"][1]["location"] = "imgui_internal:1579" defs["ImGuiWindowSettings_GetName"][1]["ov_cimguiname"] = "ImGuiWindowSettings_GetName" defs["ImGuiWindowSettings_GetName"][1]["ret"] = "char*" defs["ImGuiWindowSettings_GetName"][1]["signature"] = "()" @@ -7728,7 +7916,7 @@ defs["ImGuiWindowSettings_ImGuiWindowSettings"][1]["cimguiname"] = "ImGuiWindowS defs["ImGuiWindowSettings_ImGuiWindowSettings"][1]["constructor"] = true defs["ImGuiWindowSettings_ImGuiWindowSettings"][1]["defaults"] = {} defs["ImGuiWindowSettings_ImGuiWindowSettings"][1]["funcname"] = "ImGuiWindowSettings" -defs["ImGuiWindowSettings_ImGuiWindowSettings"][1]["location"] = "imgui_internal:1496" +defs["ImGuiWindowSettings_ImGuiWindowSettings"][1]["location"] = "imgui_internal:1578" defs["ImGuiWindowSettings_ImGuiWindowSettings"][1]["ov_cimguiname"] = "ImGuiWindowSettings_ImGuiWindowSettings" defs["ImGuiWindowSettings_ImGuiWindowSettings"][1]["signature"] = "()" defs["ImGuiWindowSettings_ImGuiWindowSettings"][1]["stname"] = "ImGuiWindowSettings" @@ -7761,7 +7949,7 @@ defs["ImGuiWindow_CalcFontSize"][1]["call_args"] = "()" defs["ImGuiWindow_CalcFontSize"][1]["cimguiname"] = "ImGuiWindow_CalcFontSize" defs["ImGuiWindow_CalcFontSize"][1]["defaults"] = {} defs["ImGuiWindow_CalcFontSize"][1]["funcname"] = "CalcFontSize" -defs["ImGuiWindow_CalcFontSize"][1]["location"] = "imgui_internal:2186" +defs["ImGuiWindow_CalcFontSize"][1]["location"] = "imgui_internal:2285" defs["ImGuiWindow_CalcFontSize"][1]["ov_cimguiname"] = "ImGuiWindow_CalcFontSize" defs["ImGuiWindow_CalcFontSize"][1]["ret"] = "float" defs["ImGuiWindow_CalcFontSize"][1]["signature"] = "()const" @@ -7786,7 +7974,7 @@ defs["ImGuiWindow_GetID"][1]["cimguiname"] = "ImGuiWindow_GetID" defs["ImGuiWindow_GetID"][1]["defaults"] = {} defs["ImGuiWindow_GetID"][1]["defaults"]["str_end"] = "NULL" defs["ImGuiWindow_GetID"][1]["funcname"] = "GetID" -defs["ImGuiWindow_GetID"][1]["location"] = "imgui_internal:2176" +defs["ImGuiWindow_GetID"][1]["location"] = "imgui_internal:2275" defs["ImGuiWindow_GetID"][1]["ov_cimguiname"] = "ImGuiWindow_GetIDStr" defs["ImGuiWindow_GetID"][1]["ret"] = "ImGuiID" defs["ImGuiWindow_GetID"][1]["signature"] = "(const char*,const char*)" @@ -7805,7 +7993,7 @@ defs["ImGuiWindow_GetID"][2]["call_args"] = "(ptr)" defs["ImGuiWindow_GetID"][2]["cimguiname"] = "ImGuiWindow_GetID" defs["ImGuiWindow_GetID"][2]["defaults"] = {} defs["ImGuiWindow_GetID"][2]["funcname"] = "GetID" -defs["ImGuiWindow_GetID"][2]["location"] = "imgui_internal:2177" +defs["ImGuiWindow_GetID"][2]["location"] = "imgui_internal:2276" defs["ImGuiWindow_GetID"][2]["ov_cimguiname"] = "ImGuiWindow_GetIDPtr" defs["ImGuiWindow_GetID"][2]["ret"] = "ImGuiID" defs["ImGuiWindow_GetID"][2]["signature"] = "(const void*)" @@ -7824,7 +8012,7 @@ defs["ImGuiWindow_GetID"][3]["call_args"] = "(n)" defs["ImGuiWindow_GetID"][3]["cimguiname"] = "ImGuiWindow_GetID" defs["ImGuiWindow_GetID"][3]["defaults"] = {} defs["ImGuiWindow_GetID"][3]["funcname"] = "GetID" -defs["ImGuiWindow_GetID"][3]["location"] = "imgui_internal:2178" +defs["ImGuiWindow_GetID"][3]["location"] = "imgui_internal:2277" defs["ImGuiWindow_GetID"][3]["ov_cimguiname"] = "ImGuiWindow_GetIDInt" defs["ImGuiWindow_GetID"][3]["ret"] = "ImGuiID" defs["ImGuiWindow_GetID"][3]["signature"] = "(int)" @@ -7847,7 +8035,7 @@ defs["ImGuiWindow_GetIDFromRectangle"][1]["call_args"] = "(r_abs)" defs["ImGuiWindow_GetIDFromRectangle"][1]["cimguiname"] = "ImGuiWindow_GetIDFromRectangle" defs["ImGuiWindow_GetIDFromRectangle"][1]["defaults"] = {} defs["ImGuiWindow_GetIDFromRectangle"][1]["funcname"] = "GetIDFromRectangle" -defs["ImGuiWindow_GetIDFromRectangle"][1]["location"] = "imgui_internal:2182" +defs["ImGuiWindow_GetIDFromRectangle"][1]["location"] = "imgui_internal:2281" defs["ImGuiWindow_GetIDFromRectangle"][1]["ov_cimguiname"] = "ImGuiWindow_GetIDFromRectangle" defs["ImGuiWindow_GetIDFromRectangle"][1]["ret"] = "ImGuiID" defs["ImGuiWindow_GetIDFromRectangle"][1]["signature"] = "(const ImRect)" @@ -7872,7 +8060,7 @@ defs["ImGuiWindow_GetIDNoKeepAlive"][1]["cimguiname"] = "ImGuiWindow_GetIDNoKeep defs["ImGuiWindow_GetIDNoKeepAlive"][1]["defaults"] = {} defs["ImGuiWindow_GetIDNoKeepAlive"][1]["defaults"]["str_end"] = "NULL" defs["ImGuiWindow_GetIDNoKeepAlive"][1]["funcname"] = "GetIDNoKeepAlive" -defs["ImGuiWindow_GetIDNoKeepAlive"][1]["location"] = "imgui_internal:2179" +defs["ImGuiWindow_GetIDNoKeepAlive"][1]["location"] = "imgui_internal:2278" defs["ImGuiWindow_GetIDNoKeepAlive"][1]["ov_cimguiname"] = "ImGuiWindow_GetIDNoKeepAliveStr" defs["ImGuiWindow_GetIDNoKeepAlive"][1]["ret"] = "ImGuiID" defs["ImGuiWindow_GetIDNoKeepAlive"][1]["signature"] = "(const char*,const char*)" @@ -7891,7 +8079,7 @@ defs["ImGuiWindow_GetIDNoKeepAlive"][2]["call_args"] = "(ptr)" defs["ImGuiWindow_GetIDNoKeepAlive"][2]["cimguiname"] = "ImGuiWindow_GetIDNoKeepAlive" defs["ImGuiWindow_GetIDNoKeepAlive"][2]["defaults"] = {} defs["ImGuiWindow_GetIDNoKeepAlive"][2]["funcname"] = "GetIDNoKeepAlive" -defs["ImGuiWindow_GetIDNoKeepAlive"][2]["location"] = "imgui_internal:2180" +defs["ImGuiWindow_GetIDNoKeepAlive"][2]["location"] = "imgui_internal:2279" defs["ImGuiWindow_GetIDNoKeepAlive"][2]["ov_cimguiname"] = "ImGuiWindow_GetIDNoKeepAlivePtr" defs["ImGuiWindow_GetIDNoKeepAlive"][2]["ret"] = "ImGuiID" defs["ImGuiWindow_GetIDNoKeepAlive"][2]["signature"] = "(const void*)" @@ -7910,7 +8098,7 @@ defs["ImGuiWindow_GetIDNoKeepAlive"][3]["call_args"] = "(n)" defs["ImGuiWindow_GetIDNoKeepAlive"][3]["cimguiname"] = "ImGuiWindow_GetIDNoKeepAlive" defs["ImGuiWindow_GetIDNoKeepAlive"][3]["defaults"] = {} defs["ImGuiWindow_GetIDNoKeepAlive"][3]["funcname"] = "GetIDNoKeepAlive" -defs["ImGuiWindow_GetIDNoKeepAlive"][3]["location"] = "imgui_internal:2181" +defs["ImGuiWindow_GetIDNoKeepAlive"][3]["location"] = "imgui_internal:2280" defs["ImGuiWindow_GetIDNoKeepAlive"][3]["ov_cimguiname"] = "ImGuiWindow_GetIDNoKeepAliveInt" defs["ImGuiWindow_GetIDNoKeepAlive"][3]["ret"] = "ImGuiID" defs["ImGuiWindow_GetIDNoKeepAlive"][3]["signature"] = "(int)" @@ -7934,7 +8122,7 @@ defs["ImGuiWindow_ImGuiWindow"][1]["cimguiname"] = "ImGuiWindow_ImGuiWindow" defs["ImGuiWindow_ImGuiWindow"][1]["constructor"] = true defs["ImGuiWindow_ImGuiWindow"][1]["defaults"] = {} defs["ImGuiWindow_ImGuiWindow"][1]["funcname"] = "ImGuiWindow" -defs["ImGuiWindow_ImGuiWindow"][1]["location"] = "imgui_internal:2172" +defs["ImGuiWindow_ImGuiWindow"][1]["location"] = "imgui_internal:2271" defs["ImGuiWindow_ImGuiWindow"][1]["ov_cimguiname"] = "ImGuiWindow_ImGuiWindow" defs["ImGuiWindow_ImGuiWindow"][1]["signature"] = "(ImGuiContext*,const char*)" defs["ImGuiWindow_ImGuiWindow"][1]["stname"] = "ImGuiWindow" @@ -7951,7 +8139,7 @@ defs["ImGuiWindow_MenuBarHeight"][1]["call_args"] = "()" defs["ImGuiWindow_MenuBarHeight"][1]["cimguiname"] = "ImGuiWindow_MenuBarHeight" defs["ImGuiWindow_MenuBarHeight"][1]["defaults"] = {} defs["ImGuiWindow_MenuBarHeight"][1]["funcname"] = "MenuBarHeight" -defs["ImGuiWindow_MenuBarHeight"][1]["location"] = "imgui_internal:2189" +defs["ImGuiWindow_MenuBarHeight"][1]["location"] = "imgui_internal:2288" defs["ImGuiWindow_MenuBarHeight"][1]["ov_cimguiname"] = "ImGuiWindow_MenuBarHeight" defs["ImGuiWindow_MenuBarHeight"][1]["ret"] = "float" defs["ImGuiWindow_MenuBarHeight"][1]["signature"] = "()const" @@ -7972,7 +8160,7 @@ defs["ImGuiWindow_MenuBarRect"][1]["call_args"] = "()" defs["ImGuiWindow_MenuBarRect"][1]["cimguiname"] = "ImGuiWindow_MenuBarRect" defs["ImGuiWindow_MenuBarRect"][1]["defaults"] = {} defs["ImGuiWindow_MenuBarRect"][1]["funcname"] = "MenuBarRect" -defs["ImGuiWindow_MenuBarRect"][1]["location"] = "imgui_internal:2190" +defs["ImGuiWindow_MenuBarRect"][1]["location"] = "imgui_internal:2289" defs["ImGuiWindow_MenuBarRect"][1]["nonUDT"] = 1 defs["ImGuiWindow_MenuBarRect"][1]["ov_cimguiname"] = "ImGuiWindow_MenuBarRect" defs["ImGuiWindow_MenuBarRect"][1]["ret"] = "void" @@ -7994,7 +8182,7 @@ defs["ImGuiWindow_Rect"][1]["call_args"] = "()" defs["ImGuiWindow_Rect"][1]["cimguiname"] = "ImGuiWindow_Rect" defs["ImGuiWindow_Rect"][1]["defaults"] = {} defs["ImGuiWindow_Rect"][1]["funcname"] = "Rect" -defs["ImGuiWindow_Rect"][1]["location"] = "imgui_internal:2185" +defs["ImGuiWindow_Rect"][1]["location"] = "imgui_internal:2284" defs["ImGuiWindow_Rect"][1]["nonUDT"] = 1 defs["ImGuiWindow_Rect"][1]["ov_cimguiname"] = "ImGuiWindow_Rect" defs["ImGuiWindow_Rect"][1]["ret"] = "void" @@ -8013,7 +8201,7 @@ defs["ImGuiWindow_TitleBarHeight"][1]["call_args"] = "()" defs["ImGuiWindow_TitleBarHeight"][1]["cimguiname"] = "ImGuiWindow_TitleBarHeight" defs["ImGuiWindow_TitleBarHeight"][1]["defaults"] = {} defs["ImGuiWindow_TitleBarHeight"][1]["funcname"] = "TitleBarHeight" -defs["ImGuiWindow_TitleBarHeight"][1]["location"] = "imgui_internal:2187" +defs["ImGuiWindow_TitleBarHeight"][1]["location"] = "imgui_internal:2286" defs["ImGuiWindow_TitleBarHeight"][1]["ov_cimguiname"] = "ImGuiWindow_TitleBarHeight" defs["ImGuiWindow_TitleBarHeight"][1]["ret"] = "float" defs["ImGuiWindow_TitleBarHeight"][1]["signature"] = "()const" @@ -8034,7 +8222,7 @@ defs["ImGuiWindow_TitleBarRect"][1]["call_args"] = "()" defs["ImGuiWindow_TitleBarRect"][1]["cimguiname"] = "ImGuiWindow_TitleBarRect" defs["ImGuiWindow_TitleBarRect"][1]["defaults"] = {} defs["ImGuiWindow_TitleBarRect"][1]["funcname"] = "TitleBarRect" -defs["ImGuiWindow_TitleBarRect"][1]["location"] = "imgui_internal:2188" +defs["ImGuiWindow_TitleBarRect"][1]["location"] = "imgui_internal:2287" defs["ImGuiWindow_TitleBarRect"][1]["nonUDT"] = 1 defs["ImGuiWindow_TitleBarRect"][1]["ov_cimguiname"] = "ImGuiWindow_TitleBarRect" defs["ImGuiWindow_TitleBarRect"][1]["ret"] = "void" @@ -8052,7 +8240,7 @@ defs["ImGuiWindow_destroy"][1]["call_args"] = "(self)" defs["ImGuiWindow_destroy"][1]["cimguiname"] = "ImGuiWindow_destroy" defs["ImGuiWindow_destroy"][1]["defaults"] = {} defs["ImGuiWindow_destroy"][1]["destructor"] = true -defs["ImGuiWindow_destroy"][1]["location"] = "imgui_internal:2174" +defs["ImGuiWindow_destroy"][1]["location"] = "imgui_internal:2273" defs["ImGuiWindow_destroy"][1]["ov_cimguiname"] = "ImGuiWindow_destroy" defs["ImGuiWindow_destroy"][1]["realdestructor"] = true defs["ImGuiWindow_destroy"][1]["ret"] = "void" @@ -8071,7 +8259,7 @@ defs["ImPool_Add"][1]["call_args"] = "()" defs["ImPool_Add"][1]["cimguiname"] = "ImPool_Add" defs["ImPool_Add"][1]["defaults"] = {} defs["ImPool_Add"][1]["funcname"] = "Add" -defs["ImPool_Add"][1]["location"] = "imgui_internal:639" +defs["ImPool_Add"][1]["location"] = "imgui_internal:651" defs["ImPool_Add"][1]["ov_cimguiname"] = "ImPool_Add" defs["ImPool_Add"][1]["ret"] = "T*" defs["ImPool_Add"][1]["signature"] = "()" @@ -8090,7 +8278,7 @@ defs["ImPool_Clear"][1]["call_args"] = "()" defs["ImPool_Clear"][1]["cimguiname"] = "ImPool_Clear" defs["ImPool_Clear"][1]["defaults"] = {} defs["ImPool_Clear"][1]["funcname"] = "Clear" -defs["ImPool_Clear"][1]["location"] = "imgui_internal:638" +defs["ImPool_Clear"][1]["location"] = "imgui_internal:650" defs["ImPool_Clear"][1]["ov_cimguiname"] = "ImPool_Clear" defs["ImPool_Clear"][1]["ret"] = "void" defs["ImPool_Clear"][1]["signature"] = "()" @@ -8112,7 +8300,7 @@ defs["ImPool_Contains"][1]["call_args"] = "(p)" defs["ImPool_Contains"][1]["cimguiname"] = "ImPool_Contains" defs["ImPool_Contains"][1]["defaults"] = {} defs["ImPool_Contains"][1]["funcname"] = "Contains" -defs["ImPool_Contains"][1]["location"] = "imgui_internal:637" +defs["ImPool_Contains"][1]["location"] = "imgui_internal:649" defs["ImPool_Contains"][1]["ov_cimguiname"] = "ImPool_Contains" defs["ImPool_Contains"][1]["ret"] = "bool" defs["ImPool_Contains"][1]["signature"] = "(const T*)const" @@ -8131,7 +8319,7 @@ defs["ImPool_GetAliveCount"][1]["call_args"] = "()" defs["ImPool_GetAliveCount"][1]["cimguiname"] = "ImPool_GetAliveCount" defs["ImPool_GetAliveCount"][1]["defaults"] = {} defs["ImPool_GetAliveCount"][1]["funcname"] = "GetAliveCount" -defs["ImPool_GetAliveCount"][1]["location"] = "imgui_internal:646" +defs["ImPool_GetAliveCount"][1]["location"] = "imgui_internal:658" defs["ImPool_GetAliveCount"][1]["ov_cimguiname"] = "ImPool_GetAliveCount" defs["ImPool_GetAliveCount"][1]["ret"] = "int" defs["ImPool_GetAliveCount"][1]["signature"] = "()const" @@ -8150,7 +8338,7 @@ defs["ImPool_GetBufSize"][1]["call_args"] = "()" defs["ImPool_GetBufSize"][1]["cimguiname"] = "ImPool_GetBufSize" defs["ImPool_GetBufSize"][1]["defaults"] = {} defs["ImPool_GetBufSize"][1]["funcname"] = "GetBufSize" -defs["ImPool_GetBufSize"][1]["location"] = "imgui_internal:647" +defs["ImPool_GetBufSize"][1]["location"] = "imgui_internal:659" defs["ImPool_GetBufSize"][1]["ov_cimguiname"] = "ImPool_GetBufSize" defs["ImPool_GetBufSize"][1]["ret"] = "int" defs["ImPool_GetBufSize"][1]["signature"] = "()const" @@ -8172,7 +8360,7 @@ defs["ImPool_GetByIndex"][1]["call_args"] = "(n)" defs["ImPool_GetByIndex"][1]["cimguiname"] = "ImPool_GetByIndex" defs["ImPool_GetByIndex"][1]["defaults"] = {} defs["ImPool_GetByIndex"][1]["funcname"] = "GetByIndex" -defs["ImPool_GetByIndex"][1]["location"] = "imgui_internal:634" +defs["ImPool_GetByIndex"][1]["location"] = "imgui_internal:646" defs["ImPool_GetByIndex"][1]["ov_cimguiname"] = "ImPool_GetByIndex" defs["ImPool_GetByIndex"][1]["ret"] = "T*" defs["ImPool_GetByIndex"][1]["signature"] = "(ImPoolIdx)" @@ -8194,7 +8382,7 @@ defs["ImPool_GetByKey"][1]["call_args"] = "(key)" defs["ImPool_GetByKey"][1]["cimguiname"] = "ImPool_GetByKey" defs["ImPool_GetByKey"][1]["defaults"] = {} defs["ImPool_GetByKey"][1]["funcname"] = "GetByKey" -defs["ImPool_GetByKey"][1]["location"] = "imgui_internal:633" +defs["ImPool_GetByKey"][1]["location"] = "imgui_internal:645" defs["ImPool_GetByKey"][1]["ov_cimguiname"] = "ImPool_GetByKey" defs["ImPool_GetByKey"][1]["ret"] = "T*" defs["ImPool_GetByKey"][1]["signature"] = "(ImGuiID)" @@ -8216,7 +8404,7 @@ defs["ImPool_GetIndex"][1]["call_args"] = "(p)" defs["ImPool_GetIndex"][1]["cimguiname"] = "ImPool_GetIndex" defs["ImPool_GetIndex"][1]["defaults"] = {} defs["ImPool_GetIndex"][1]["funcname"] = "GetIndex" -defs["ImPool_GetIndex"][1]["location"] = "imgui_internal:635" +defs["ImPool_GetIndex"][1]["location"] = "imgui_internal:647" defs["ImPool_GetIndex"][1]["ov_cimguiname"] = "ImPool_GetIndex" defs["ImPool_GetIndex"][1]["ret"] = "ImPoolIdx" defs["ImPool_GetIndex"][1]["signature"] = "(const T*)const" @@ -8235,7 +8423,7 @@ defs["ImPool_GetMapSize"][1]["call_args"] = "()" defs["ImPool_GetMapSize"][1]["cimguiname"] = "ImPool_GetMapSize" defs["ImPool_GetMapSize"][1]["defaults"] = {} defs["ImPool_GetMapSize"][1]["funcname"] = "GetMapSize" -defs["ImPool_GetMapSize"][1]["location"] = "imgui_internal:648" +defs["ImPool_GetMapSize"][1]["location"] = "imgui_internal:660" defs["ImPool_GetMapSize"][1]["ov_cimguiname"] = "ImPool_GetMapSize" defs["ImPool_GetMapSize"][1]["ret"] = "int" defs["ImPool_GetMapSize"][1]["signature"] = "()const" @@ -8257,7 +8445,7 @@ defs["ImPool_GetOrAddByKey"][1]["call_args"] = "(key)" defs["ImPool_GetOrAddByKey"][1]["cimguiname"] = "ImPool_GetOrAddByKey" defs["ImPool_GetOrAddByKey"][1]["defaults"] = {} defs["ImPool_GetOrAddByKey"][1]["funcname"] = "GetOrAddByKey" -defs["ImPool_GetOrAddByKey"][1]["location"] = "imgui_internal:636" +defs["ImPool_GetOrAddByKey"][1]["location"] = "imgui_internal:648" defs["ImPool_GetOrAddByKey"][1]["ov_cimguiname"] = "ImPool_GetOrAddByKey" defs["ImPool_GetOrAddByKey"][1]["ret"] = "T*" defs["ImPool_GetOrAddByKey"][1]["signature"] = "(ImGuiID)" @@ -8274,7 +8462,7 @@ defs["ImPool_ImPool"][1]["cimguiname"] = "ImPool_ImPool" defs["ImPool_ImPool"][1]["constructor"] = true defs["ImPool_ImPool"][1]["defaults"] = {} defs["ImPool_ImPool"][1]["funcname"] = "ImPool" -defs["ImPool_ImPool"][1]["location"] = "imgui_internal:631" +defs["ImPool_ImPool"][1]["location"] = "imgui_internal:643" defs["ImPool_ImPool"][1]["ov_cimguiname"] = "ImPool_ImPool" defs["ImPool_ImPool"][1]["signature"] = "()" defs["ImPool_ImPool"][1]["stname"] = "ImPool" @@ -8298,7 +8486,7 @@ defs["ImPool_Remove"][1]["call_args"] = "(key,p)" defs["ImPool_Remove"][1]["cimguiname"] = "ImPool_Remove" defs["ImPool_Remove"][1]["defaults"] = {} defs["ImPool_Remove"][1]["funcname"] = "Remove" -defs["ImPool_Remove"][1]["location"] = "imgui_internal:640" +defs["ImPool_Remove"][1]["location"] = "imgui_internal:652" defs["ImPool_Remove"][1]["ov_cimguiname"] = "ImPool_RemoveTPtr" defs["ImPool_Remove"][1]["ret"] = "void" defs["ImPool_Remove"][1]["signature"] = "(ImGuiID,const T*)" @@ -8321,7 +8509,7 @@ defs["ImPool_Remove"][2]["call_args"] = "(key,idx)" defs["ImPool_Remove"][2]["cimguiname"] = "ImPool_Remove" defs["ImPool_Remove"][2]["defaults"] = {} defs["ImPool_Remove"][2]["funcname"] = "Remove" -defs["ImPool_Remove"][2]["location"] = "imgui_internal:641" +defs["ImPool_Remove"][2]["location"] = "imgui_internal:653" defs["ImPool_Remove"][2]["ov_cimguiname"] = "ImPool_RemovePoolIdx" defs["ImPool_Remove"][2]["ret"] = "void" defs["ImPool_Remove"][2]["signature"] = "(ImGuiID,ImPoolIdx)" @@ -8344,7 +8532,7 @@ defs["ImPool_Reserve"][1]["call_args"] = "(capacity)" defs["ImPool_Reserve"][1]["cimguiname"] = "ImPool_Reserve" defs["ImPool_Reserve"][1]["defaults"] = {} defs["ImPool_Reserve"][1]["funcname"] = "Reserve" -defs["ImPool_Reserve"][1]["location"] = "imgui_internal:642" +defs["ImPool_Reserve"][1]["location"] = "imgui_internal:654" defs["ImPool_Reserve"][1]["ov_cimguiname"] = "ImPool_Reserve" defs["ImPool_Reserve"][1]["ret"] = "void" defs["ImPool_Reserve"][1]["signature"] = "(int)" @@ -8366,7 +8554,7 @@ defs["ImPool_TryGetMapData"][1]["call_args"] = "(n)" defs["ImPool_TryGetMapData"][1]["cimguiname"] = "ImPool_TryGetMapData" defs["ImPool_TryGetMapData"][1]["defaults"] = {} defs["ImPool_TryGetMapData"][1]["funcname"] = "TryGetMapData" -defs["ImPool_TryGetMapData"][1]["location"] = "imgui_internal:649" +defs["ImPool_TryGetMapData"][1]["location"] = "imgui_internal:661" defs["ImPool_TryGetMapData"][1]["ov_cimguiname"] = "ImPool_TryGetMapData" defs["ImPool_TryGetMapData"][1]["ret"] = "T*" defs["ImPool_TryGetMapData"][1]["signature"] = "(ImPoolIdx)" @@ -8384,7 +8572,7 @@ defs["ImPool_destroy"][1]["call_args"] = "(self)" defs["ImPool_destroy"][1]["cimguiname"] = "ImPool_destroy" defs["ImPool_destroy"][1]["defaults"] = {} defs["ImPool_destroy"][1]["destructor"] = true -defs["ImPool_destroy"][1]["location"] = "imgui_internal:632" +defs["ImPool_destroy"][1]["location"] = "imgui_internal:644" defs["ImPool_destroy"][1]["ov_cimguiname"] = "ImPool_destroy" defs["ImPool_destroy"][1]["realdestructor"] = true defs["ImPool_destroy"][1]["ret"] = "void" @@ -8407,7 +8595,7 @@ defs["ImRect_Add"][1]["call_args"] = "(p)" defs["ImRect_Add"][1]["cimguiname"] = "ImRect_Add" defs["ImRect_Add"][1]["defaults"] = {} defs["ImRect_Add"][1]["funcname"] = "Add" -defs["ImRect_Add"][1]["location"] = "imgui_internal:509" +defs["ImRect_Add"][1]["location"] = "imgui_internal:521" defs["ImRect_Add"][1]["ov_cimguiname"] = "ImRect_AddVec2" defs["ImRect_Add"][1]["ret"] = "void" defs["ImRect_Add"][1]["signature"] = "(const ImVec2)" @@ -8426,7 +8614,7 @@ defs["ImRect_Add"][2]["call_args"] = "(r)" defs["ImRect_Add"][2]["cimguiname"] = "ImRect_Add" defs["ImRect_Add"][2]["defaults"] = {} defs["ImRect_Add"][2]["funcname"] = "Add" -defs["ImRect_Add"][2]["location"] = "imgui_internal:510" +defs["ImRect_Add"][2]["location"] = "imgui_internal:522" defs["ImRect_Add"][2]["ov_cimguiname"] = "ImRect_AddRect" defs["ImRect_Add"][2]["ret"] = "void" defs["ImRect_Add"][2]["signature"] = "(const ImRect)" @@ -8448,7 +8636,7 @@ defs["ImRect_ClipWith"][1]["call_args"] = "(r)" defs["ImRect_ClipWith"][1]["cimguiname"] = "ImRect_ClipWith" defs["ImRect_ClipWith"][1]["defaults"] = {} defs["ImRect_ClipWith"][1]["funcname"] = "ClipWith" -defs["ImRect_ClipWith"][1]["location"] = "imgui_internal:516" +defs["ImRect_ClipWith"][1]["location"] = "imgui_internal:528" defs["ImRect_ClipWith"][1]["ov_cimguiname"] = "ImRect_ClipWith" defs["ImRect_ClipWith"][1]["ret"] = "void" defs["ImRect_ClipWith"][1]["signature"] = "(const ImRect)" @@ -8469,7 +8657,7 @@ defs["ImRect_ClipWithFull"][1]["call_args"] = "(r)" defs["ImRect_ClipWithFull"][1]["cimguiname"] = "ImRect_ClipWithFull" defs["ImRect_ClipWithFull"][1]["defaults"] = {} defs["ImRect_ClipWithFull"][1]["funcname"] = "ClipWithFull" -defs["ImRect_ClipWithFull"][1]["location"] = "imgui_internal:517" +defs["ImRect_ClipWithFull"][1]["location"] = "imgui_internal:529" defs["ImRect_ClipWithFull"][1]["ov_cimguiname"] = "ImRect_ClipWithFull" defs["ImRect_ClipWithFull"][1]["ret"] = "void" defs["ImRect_ClipWithFull"][1]["signature"] = "(const ImRect)" @@ -8490,7 +8678,7 @@ defs["ImRect_Contains"][1]["call_args"] = "(p)" defs["ImRect_Contains"][1]["cimguiname"] = "ImRect_Contains" defs["ImRect_Contains"][1]["defaults"] = {} defs["ImRect_Contains"][1]["funcname"] = "Contains" -defs["ImRect_Contains"][1]["location"] = "imgui_internal:506" +defs["ImRect_Contains"][1]["location"] = "imgui_internal:518" defs["ImRect_Contains"][1]["ov_cimguiname"] = "ImRect_ContainsVec2" defs["ImRect_Contains"][1]["ret"] = "bool" defs["ImRect_Contains"][1]["signature"] = "(const ImVec2)const" @@ -8509,7 +8697,7 @@ defs["ImRect_Contains"][2]["call_args"] = "(r)" defs["ImRect_Contains"][2]["cimguiname"] = "ImRect_Contains" defs["ImRect_Contains"][2]["defaults"] = {} defs["ImRect_Contains"][2]["funcname"] = "Contains" -defs["ImRect_Contains"][2]["location"] = "imgui_internal:507" +defs["ImRect_Contains"][2]["location"] = "imgui_internal:519" defs["ImRect_Contains"][2]["ov_cimguiname"] = "ImRect_ContainsRect" defs["ImRect_Contains"][2]["ret"] = "bool" defs["ImRect_Contains"][2]["signature"] = "(const ImRect)const" @@ -8531,7 +8719,7 @@ defs["ImRect_Expand"][1]["call_args"] = "(amount)" defs["ImRect_Expand"][1]["cimguiname"] = "ImRect_Expand" defs["ImRect_Expand"][1]["defaults"] = {} defs["ImRect_Expand"][1]["funcname"] = "Expand" -defs["ImRect_Expand"][1]["location"] = "imgui_internal:511" +defs["ImRect_Expand"][1]["location"] = "imgui_internal:523" defs["ImRect_Expand"][1]["ov_cimguiname"] = "ImRect_ExpandFloat" defs["ImRect_Expand"][1]["ret"] = "void" defs["ImRect_Expand"][1]["signature"] = "(const float)" @@ -8550,7 +8738,7 @@ defs["ImRect_Expand"][2]["call_args"] = "(amount)" defs["ImRect_Expand"][2]["cimguiname"] = "ImRect_Expand" defs["ImRect_Expand"][2]["defaults"] = {} defs["ImRect_Expand"][2]["funcname"] = "Expand" -defs["ImRect_Expand"][2]["location"] = "imgui_internal:512" +defs["ImRect_Expand"][2]["location"] = "imgui_internal:524" defs["ImRect_Expand"][2]["ov_cimguiname"] = "ImRect_ExpandVec2" defs["ImRect_Expand"][2]["ret"] = "void" defs["ImRect_Expand"][2]["signature"] = "(const ImVec2)" @@ -8569,7 +8757,7 @@ defs["ImRect_Floor"][1]["call_args"] = "()" defs["ImRect_Floor"][1]["cimguiname"] = "ImRect_Floor" defs["ImRect_Floor"][1]["defaults"] = {} defs["ImRect_Floor"][1]["funcname"] = "Floor" -defs["ImRect_Floor"][1]["location"] = "imgui_internal:518" +defs["ImRect_Floor"][1]["location"] = "imgui_internal:530" defs["ImRect_Floor"][1]["ov_cimguiname"] = "ImRect_Floor" defs["ImRect_Floor"][1]["ret"] = "void" defs["ImRect_Floor"][1]["signature"] = "()" @@ -8587,7 +8775,7 @@ defs["ImRect_GetArea"][1]["call_args"] = "()" defs["ImRect_GetArea"][1]["cimguiname"] = "ImRect_GetArea" defs["ImRect_GetArea"][1]["defaults"] = {} defs["ImRect_GetArea"][1]["funcname"] = "GetArea" -defs["ImRect_GetArea"][1]["location"] = "imgui_internal:501" +defs["ImRect_GetArea"][1]["location"] = "imgui_internal:513" defs["ImRect_GetArea"][1]["ov_cimguiname"] = "ImRect_GetArea" defs["ImRect_GetArea"][1]["ret"] = "float" defs["ImRect_GetArea"][1]["signature"] = "()const" @@ -8608,7 +8796,7 @@ defs["ImRect_GetBL"][1]["call_args"] = "()" defs["ImRect_GetBL"][1]["cimguiname"] = "ImRect_GetBL" defs["ImRect_GetBL"][1]["defaults"] = {} defs["ImRect_GetBL"][1]["funcname"] = "GetBL" -defs["ImRect_GetBL"][1]["location"] = "imgui_internal:504" +defs["ImRect_GetBL"][1]["location"] = "imgui_internal:516" defs["ImRect_GetBL"][1]["nonUDT"] = 1 defs["ImRect_GetBL"][1]["ov_cimguiname"] = "ImRect_GetBL" defs["ImRect_GetBL"][1]["ret"] = "void" @@ -8630,7 +8818,7 @@ defs["ImRect_GetBR"][1]["call_args"] = "()" defs["ImRect_GetBR"][1]["cimguiname"] = "ImRect_GetBR" defs["ImRect_GetBR"][1]["defaults"] = {} defs["ImRect_GetBR"][1]["funcname"] = "GetBR" -defs["ImRect_GetBR"][1]["location"] = "imgui_internal:505" +defs["ImRect_GetBR"][1]["location"] = "imgui_internal:517" defs["ImRect_GetBR"][1]["nonUDT"] = 1 defs["ImRect_GetBR"][1]["ov_cimguiname"] = "ImRect_GetBR" defs["ImRect_GetBR"][1]["ret"] = "void" @@ -8652,7 +8840,7 @@ defs["ImRect_GetCenter"][1]["call_args"] = "()" defs["ImRect_GetCenter"][1]["cimguiname"] = "ImRect_GetCenter" defs["ImRect_GetCenter"][1]["defaults"] = {} defs["ImRect_GetCenter"][1]["funcname"] = "GetCenter" -defs["ImRect_GetCenter"][1]["location"] = "imgui_internal:497" +defs["ImRect_GetCenter"][1]["location"] = "imgui_internal:509" defs["ImRect_GetCenter"][1]["nonUDT"] = 1 defs["ImRect_GetCenter"][1]["ov_cimguiname"] = "ImRect_GetCenter" defs["ImRect_GetCenter"][1]["ret"] = "void" @@ -8671,7 +8859,7 @@ defs["ImRect_GetHeight"][1]["call_args"] = "()" defs["ImRect_GetHeight"][1]["cimguiname"] = "ImRect_GetHeight" defs["ImRect_GetHeight"][1]["defaults"] = {} defs["ImRect_GetHeight"][1]["funcname"] = "GetHeight" -defs["ImRect_GetHeight"][1]["location"] = "imgui_internal:500" +defs["ImRect_GetHeight"][1]["location"] = "imgui_internal:512" defs["ImRect_GetHeight"][1]["ov_cimguiname"] = "ImRect_GetHeight" defs["ImRect_GetHeight"][1]["ret"] = "float" defs["ImRect_GetHeight"][1]["signature"] = "()const" @@ -8692,7 +8880,7 @@ defs["ImRect_GetSize"][1]["call_args"] = "()" defs["ImRect_GetSize"][1]["cimguiname"] = "ImRect_GetSize" defs["ImRect_GetSize"][1]["defaults"] = {} defs["ImRect_GetSize"][1]["funcname"] = "GetSize" -defs["ImRect_GetSize"][1]["location"] = "imgui_internal:498" +defs["ImRect_GetSize"][1]["location"] = "imgui_internal:510" defs["ImRect_GetSize"][1]["nonUDT"] = 1 defs["ImRect_GetSize"][1]["ov_cimguiname"] = "ImRect_GetSize" defs["ImRect_GetSize"][1]["ret"] = "void" @@ -8714,7 +8902,7 @@ defs["ImRect_GetTL"][1]["call_args"] = "()" defs["ImRect_GetTL"][1]["cimguiname"] = "ImRect_GetTL" defs["ImRect_GetTL"][1]["defaults"] = {} defs["ImRect_GetTL"][1]["funcname"] = "GetTL" -defs["ImRect_GetTL"][1]["location"] = "imgui_internal:502" +defs["ImRect_GetTL"][1]["location"] = "imgui_internal:514" defs["ImRect_GetTL"][1]["nonUDT"] = 1 defs["ImRect_GetTL"][1]["ov_cimguiname"] = "ImRect_GetTL" defs["ImRect_GetTL"][1]["ret"] = "void" @@ -8736,7 +8924,7 @@ defs["ImRect_GetTR"][1]["call_args"] = "()" defs["ImRect_GetTR"][1]["cimguiname"] = "ImRect_GetTR" defs["ImRect_GetTR"][1]["defaults"] = {} defs["ImRect_GetTR"][1]["funcname"] = "GetTR" -defs["ImRect_GetTR"][1]["location"] = "imgui_internal:503" +defs["ImRect_GetTR"][1]["location"] = "imgui_internal:515" defs["ImRect_GetTR"][1]["nonUDT"] = 1 defs["ImRect_GetTR"][1]["ov_cimguiname"] = "ImRect_GetTR" defs["ImRect_GetTR"][1]["ret"] = "void" @@ -8755,7 +8943,7 @@ defs["ImRect_GetWidth"][1]["call_args"] = "()" defs["ImRect_GetWidth"][1]["cimguiname"] = "ImRect_GetWidth" defs["ImRect_GetWidth"][1]["defaults"] = {} defs["ImRect_GetWidth"][1]["funcname"] = "GetWidth" -defs["ImRect_GetWidth"][1]["location"] = "imgui_internal:499" +defs["ImRect_GetWidth"][1]["location"] = "imgui_internal:511" defs["ImRect_GetWidth"][1]["ov_cimguiname"] = "ImRect_GetWidth" defs["ImRect_GetWidth"][1]["ret"] = "float" defs["ImRect_GetWidth"][1]["signature"] = "()const" @@ -8771,7 +8959,7 @@ defs["ImRect_ImRect"][1]["cimguiname"] = "ImRect_ImRect" defs["ImRect_ImRect"][1]["constructor"] = true defs["ImRect_ImRect"][1]["defaults"] = {} defs["ImRect_ImRect"][1]["funcname"] = "ImRect" -defs["ImRect_ImRect"][1]["location"] = "imgui_internal:492" +defs["ImRect_ImRect"][1]["location"] = "imgui_internal:504" defs["ImRect_ImRect"][1]["ov_cimguiname"] = "ImRect_ImRectNil" defs["ImRect_ImRect"][1]["signature"] = "()" defs["ImRect_ImRect"][1]["stname"] = "ImRect" @@ -8790,7 +8978,7 @@ defs["ImRect_ImRect"][2]["cimguiname"] = "ImRect_ImRect" defs["ImRect_ImRect"][2]["constructor"] = true defs["ImRect_ImRect"][2]["defaults"] = {} defs["ImRect_ImRect"][2]["funcname"] = "ImRect" -defs["ImRect_ImRect"][2]["location"] = "imgui_internal:493" +defs["ImRect_ImRect"][2]["location"] = "imgui_internal:505" defs["ImRect_ImRect"][2]["ov_cimguiname"] = "ImRect_ImRectVec2" defs["ImRect_ImRect"][2]["signature"] = "(const ImVec2,const ImVec2)" defs["ImRect_ImRect"][2]["stname"] = "ImRect" @@ -8806,7 +8994,7 @@ defs["ImRect_ImRect"][3]["cimguiname"] = "ImRect_ImRect" defs["ImRect_ImRect"][3]["constructor"] = true defs["ImRect_ImRect"][3]["defaults"] = {} defs["ImRect_ImRect"][3]["funcname"] = "ImRect" -defs["ImRect_ImRect"][3]["location"] = "imgui_internal:494" +defs["ImRect_ImRect"][3]["location"] = "imgui_internal:506" defs["ImRect_ImRect"][3]["ov_cimguiname"] = "ImRect_ImRectVec4" defs["ImRect_ImRect"][3]["signature"] = "(const ImVec4)" defs["ImRect_ImRect"][3]["stname"] = "ImRect" @@ -8831,7 +9019,7 @@ defs["ImRect_ImRect"][4]["cimguiname"] = "ImRect_ImRect" defs["ImRect_ImRect"][4]["constructor"] = true defs["ImRect_ImRect"][4]["defaults"] = {} defs["ImRect_ImRect"][4]["funcname"] = "ImRect" -defs["ImRect_ImRect"][4]["location"] = "imgui_internal:495" +defs["ImRect_ImRect"][4]["location"] = "imgui_internal:507" defs["ImRect_ImRect"][4]["ov_cimguiname"] = "ImRect_ImRectFloat" defs["ImRect_ImRect"][4]["signature"] = "(float,float,float,float)" defs["ImRect_ImRect"][4]["stname"] = "ImRect" @@ -8851,7 +9039,7 @@ defs["ImRect_IsInverted"][1]["call_args"] = "()" defs["ImRect_IsInverted"][1]["cimguiname"] = "ImRect_IsInverted" defs["ImRect_IsInverted"][1]["defaults"] = {} defs["ImRect_IsInverted"][1]["funcname"] = "IsInverted" -defs["ImRect_IsInverted"][1]["location"] = "imgui_internal:519" +defs["ImRect_IsInverted"][1]["location"] = "imgui_internal:531" defs["ImRect_IsInverted"][1]["ov_cimguiname"] = "ImRect_IsInverted" defs["ImRect_IsInverted"][1]["ret"] = "bool" defs["ImRect_IsInverted"][1]["signature"] = "()const" @@ -8872,7 +9060,7 @@ defs["ImRect_Overlaps"][1]["call_args"] = "(r)" defs["ImRect_Overlaps"][1]["cimguiname"] = "ImRect_Overlaps" defs["ImRect_Overlaps"][1]["defaults"] = {} defs["ImRect_Overlaps"][1]["funcname"] = "Overlaps" -defs["ImRect_Overlaps"][1]["location"] = "imgui_internal:508" +defs["ImRect_Overlaps"][1]["location"] = "imgui_internal:520" defs["ImRect_Overlaps"][1]["ov_cimguiname"] = "ImRect_Overlaps" defs["ImRect_Overlaps"][1]["ret"] = "bool" defs["ImRect_Overlaps"][1]["signature"] = "(const ImRect)const" @@ -8893,7 +9081,7 @@ defs["ImRect_ToVec4"][1]["call_args"] = "()" defs["ImRect_ToVec4"][1]["cimguiname"] = "ImRect_ToVec4" defs["ImRect_ToVec4"][1]["defaults"] = {} defs["ImRect_ToVec4"][1]["funcname"] = "ToVec4" -defs["ImRect_ToVec4"][1]["location"] = "imgui_internal:520" +defs["ImRect_ToVec4"][1]["location"] = "imgui_internal:532" defs["ImRect_ToVec4"][1]["nonUDT"] = 1 defs["ImRect_ToVec4"][1]["ov_cimguiname"] = "ImRect_ToVec4" defs["ImRect_ToVec4"][1]["ret"] = "void" @@ -8915,7 +9103,7 @@ defs["ImRect_Translate"][1]["call_args"] = "(d)" defs["ImRect_Translate"][1]["cimguiname"] = "ImRect_Translate" defs["ImRect_Translate"][1]["defaults"] = {} defs["ImRect_Translate"][1]["funcname"] = "Translate" -defs["ImRect_Translate"][1]["location"] = "imgui_internal:513" +defs["ImRect_Translate"][1]["location"] = "imgui_internal:525" defs["ImRect_Translate"][1]["ov_cimguiname"] = "ImRect_Translate" defs["ImRect_Translate"][1]["ret"] = "void" defs["ImRect_Translate"][1]["signature"] = "(const ImVec2)" @@ -8936,7 +9124,7 @@ defs["ImRect_TranslateX"][1]["call_args"] = "(dx)" defs["ImRect_TranslateX"][1]["cimguiname"] = "ImRect_TranslateX" defs["ImRect_TranslateX"][1]["defaults"] = {} defs["ImRect_TranslateX"][1]["funcname"] = "TranslateX" -defs["ImRect_TranslateX"][1]["location"] = "imgui_internal:514" +defs["ImRect_TranslateX"][1]["location"] = "imgui_internal:526" defs["ImRect_TranslateX"][1]["ov_cimguiname"] = "ImRect_TranslateX" defs["ImRect_TranslateX"][1]["ret"] = "void" defs["ImRect_TranslateX"][1]["signature"] = "(float)" @@ -8957,7 +9145,7 @@ defs["ImRect_TranslateY"][1]["call_args"] = "(dy)" defs["ImRect_TranslateY"][1]["cimguiname"] = "ImRect_TranslateY" defs["ImRect_TranslateY"][1]["defaults"] = {} defs["ImRect_TranslateY"][1]["funcname"] = "TranslateY" -defs["ImRect_TranslateY"][1]["location"] = "imgui_internal:515" +defs["ImRect_TranslateY"][1]["location"] = "imgui_internal:527" defs["ImRect_TranslateY"][1]["ov_cimguiname"] = "ImRect_TranslateY" defs["ImRect_TranslateY"][1]["ret"] = "void" defs["ImRect_TranslateY"][1]["signature"] = "(float)" @@ -8991,7 +9179,7 @@ defs["ImSpanAllocator_GetArenaSizeInBytes"][1]["call_args"] = "()" defs["ImSpanAllocator_GetArenaSizeInBytes"][1]["cimguiname"] = "ImSpanAllocator_GetArenaSizeInBytes" defs["ImSpanAllocator_GetArenaSizeInBytes"][1]["defaults"] = {} defs["ImSpanAllocator_GetArenaSizeInBytes"][1]["funcname"] = "GetArenaSizeInBytes" -defs["ImSpanAllocator_GetArenaSizeInBytes"][1]["location"] = "imgui_internal:611" +defs["ImSpanAllocator_GetArenaSizeInBytes"][1]["location"] = "imgui_internal:623" defs["ImSpanAllocator_GetArenaSizeInBytes"][1]["ov_cimguiname"] = "ImSpanAllocator_GetArenaSizeInBytes" defs["ImSpanAllocator_GetArenaSizeInBytes"][1]["ret"] = "int" defs["ImSpanAllocator_GetArenaSizeInBytes"][1]["signature"] = "()" @@ -9013,7 +9201,7 @@ defs["ImSpanAllocator_GetSpanPtrBegin"][1]["call_args"] = "(n)" defs["ImSpanAllocator_GetSpanPtrBegin"][1]["cimguiname"] = "ImSpanAllocator_GetSpanPtrBegin" defs["ImSpanAllocator_GetSpanPtrBegin"][1]["defaults"] = {} defs["ImSpanAllocator_GetSpanPtrBegin"][1]["funcname"] = "GetSpanPtrBegin" -defs["ImSpanAllocator_GetSpanPtrBegin"][1]["location"] = "imgui_internal:613" +defs["ImSpanAllocator_GetSpanPtrBegin"][1]["location"] = "imgui_internal:625" defs["ImSpanAllocator_GetSpanPtrBegin"][1]["ov_cimguiname"] = "ImSpanAllocator_GetSpanPtrBegin" defs["ImSpanAllocator_GetSpanPtrBegin"][1]["ret"] = "void*" defs["ImSpanAllocator_GetSpanPtrBegin"][1]["signature"] = "(int)" @@ -9035,7 +9223,7 @@ defs["ImSpanAllocator_GetSpanPtrEnd"][1]["call_args"] = "(n)" defs["ImSpanAllocator_GetSpanPtrEnd"][1]["cimguiname"] = "ImSpanAllocator_GetSpanPtrEnd" defs["ImSpanAllocator_GetSpanPtrEnd"][1]["defaults"] = {} defs["ImSpanAllocator_GetSpanPtrEnd"][1]["funcname"] = "GetSpanPtrEnd" -defs["ImSpanAllocator_GetSpanPtrEnd"][1]["location"] = "imgui_internal:614" +defs["ImSpanAllocator_GetSpanPtrEnd"][1]["location"] = "imgui_internal:626" defs["ImSpanAllocator_GetSpanPtrEnd"][1]["ov_cimguiname"] = "ImSpanAllocator_GetSpanPtrEnd" defs["ImSpanAllocator_GetSpanPtrEnd"][1]["ret"] = "void*" defs["ImSpanAllocator_GetSpanPtrEnd"][1]["signature"] = "(int)" @@ -9052,7 +9240,7 @@ defs["ImSpanAllocator_ImSpanAllocator"][1]["cimguiname"] = "ImSpanAllocator_ImSp defs["ImSpanAllocator_ImSpanAllocator"][1]["constructor"] = true defs["ImSpanAllocator_ImSpanAllocator"][1]["defaults"] = {} defs["ImSpanAllocator_ImSpanAllocator"][1]["funcname"] = "ImSpanAllocator" -defs["ImSpanAllocator_ImSpanAllocator"][1]["location"] = "imgui_internal:609" +defs["ImSpanAllocator_ImSpanAllocator"][1]["location"] = "imgui_internal:621" defs["ImSpanAllocator_ImSpanAllocator"][1]["ov_cimguiname"] = "ImSpanAllocator_ImSpanAllocator" defs["ImSpanAllocator_ImSpanAllocator"][1]["signature"] = "()" defs["ImSpanAllocator_ImSpanAllocator"][1]["stname"] = "ImSpanAllocator" @@ -9080,7 +9268,7 @@ defs["ImSpanAllocator_Reserve"][1]["cimguiname"] = "ImSpanAllocator_Reserve" defs["ImSpanAllocator_Reserve"][1]["defaults"] = {} defs["ImSpanAllocator_Reserve"][1]["defaults"]["a"] = "4" defs["ImSpanAllocator_Reserve"][1]["funcname"] = "Reserve" -defs["ImSpanAllocator_Reserve"][1]["location"] = "imgui_internal:610" +defs["ImSpanAllocator_Reserve"][1]["location"] = "imgui_internal:622" defs["ImSpanAllocator_Reserve"][1]["ov_cimguiname"] = "ImSpanAllocator_Reserve" defs["ImSpanAllocator_Reserve"][1]["ret"] = "void" defs["ImSpanAllocator_Reserve"][1]["signature"] = "(int,size_t,int)" @@ -9102,7 +9290,7 @@ defs["ImSpanAllocator_SetArenaBasePtr"][1]["call_args"] = "(base_ptr)" defs["ImSpanAllocator_SetArenaBasePtr"][1]["cimguiname"] = "ImSpanAllocator_SetArenaBasePtr" defs["ImSpanAllocator_SetArenaBasePtr"][1]["defaults"] = {} defs["ImSpanAllocator_SetArenaBasePtr"][1]["funcname"] = "SetArenaBasePtr" -defs["ImSpanAllocator_SetArenaBasePtr"][1]["location"] = "imgui_internal:612" +defs["ImSpanAllocator_SetArenaBasePtr"][1]["location"] = "imgui_internal:624" defs["ImSpanAllocator_SetArenaBasePtr"][1]["ov_cimguiname"] = "ImSpanAllocator_SetArenaBasePtr" defs["ImSpanAllocator_SetArenaBasePtr"][1]["ret"] = "void" defs["ImSpanAllocator_SetArenaBasePtr"][1]["signature"] = "(void*)" @@ -9136,7 +9324,7 @@ defs["ImSpan_ImSpan"][1]["cimguiname"] = "ImSpan_ImSpan" defs["ImSpan_ImSpan"][1]["constructor"] = true defs["ImSpan_ImSpan"][1]["defaults"] = {} defs["ImSpan_ImSpan"][1]["funcname"] = "ImSpan" -defs["ImSpan_ImSpan"][1]["location"] = "imgui_internal:577" +defs["ImSpan_ImSpan"][1]["location"] = "imgui_internal:589" defs["ImSpan_ImSpan"][1]["ov_cimguiname"] = "ImSpan_ImSpanNil" defs["ImSpan_ImSpan"][1]["signature"] = "()" defs["ImSpan_ImSpan"][1]["stname"] = "ImSpan" @@ -9156,7 +9344,7 @@ defs["ImSpan_ImSpan"][2]["cimguiname"] = "ImSpan_ImSpan" defs["ImSpan_ImSpan"][2]["constructor"] = true defs["ImSpan_ImSpan"][2]["defaults"] = {} defs["ImSpan_ImSpan"][2]["funcname"] = "ImSpan" -defs["ImSpan_ImSpan"][2]["location"] = "imgui_internal:578" +defs["ImSpan_ImSpan"][2]["location"] = "imgui_internal:590" defs["ImSpan_ImSpan"][2]["ov_cimguiname"] = "ImSpan_ImSpanTPtrInt" defs["ImSpan_ImSpan"][2]["signature"] = "(T*,int)" defs["ImSpan_ImSpan"][2]["stname"] = "ImSpan" @@ -9176,7 +9364,7 @@ defs["ImSpan_ImSpan"][3]["cimguiname"] = "ImSpan_ImSpan" defs["ImSpan_ImSpan"][3]["constructor"] = true defs["ImSpan_ImSpan"][3]["defaults"] = {} defs["ImSpan_ImSpan"][3]["funcname"] = "ImSpan" -defs["ImSpan_ImSpan"][3]["location"] = "imgui_internal:579" +defs["ImSpan_ImSpan"][3]["location"] = "imgui_internal:591" defs["ImSpan_ImSpan"][3]["ov_cimguiname"] = "ImSpan_ImSpanTPtrTPtr" defs["ImSpan_ImSpan"][3]["signature"] = "(T*,T*)" defs["ImSpan_ImSpan"][3]["stname"] = "ImSpan" @@ -9196,7 +9384,7 @@ defs["ImSpan_begin"][1]["call_args"] = "()" defs["ImSpan_begin"][1]["cimguiname"] = "ImSpan_begin" defs["ImSpan_begin"][1]["defaults"] = {} defs["ImSpan_begin"][1]["funcname"] = "begin" -defs["ImSpan_begin"][1]["location"] = "imgui_internal:588" +defs["ImSpan_begin"][1]["location"] = "imgui_internal:600" defs["ImSpan_begin"][1]["ov_cimguiname"] = "ImSpan_beginNil" defs["ImSpan_begin"][1]["ret"] = "T*" defs["ImSpan_begin"][1]["signature"] = "()" @@ -9213,7 +9401,7 @@ defs["ImSpan_begin"][2]["call_args"] = "()" defs["ImSpan_begin"][2]["cimguiname"] = "ImSpan_begin" defs["ImSpan_begin"][2]["defaults"] = {} defs["ImSpan_begin"][2]["funcname"] = "begin" -defs["ImSpan_begin"][2]["location"] = "imgui_internal:589" +defs["ImSpan_begin"][2]["location"] = "imgui_internal:601" defs["ImSpan_begin"][2]["ov_cimguiname"] = "ImSpan_begin_const" defs["ImSpan_begin"][2]["ret"] = "const T*" defs["ImSpan_begin"][2]["signature"] = "()const" @@ -9250,7 +9438,7 @@ defs["ImSpan_end"][1]["call_args"] = "()" defs["ImSpan_end"][1]["cimguiname"] = "ImSpan_end" defs["ImSpan_end"][1]["defaults"] = {} defs["ImSpan_end"][1]["funcname"] = "end" -defs["ImSpan_end"][1]["location"] = "imgui_internal:590" +defs["ImSpan_end"][1]["location"] = "imgui_internal:602" defs["ImSpan_end"][1]["ov_cimguiname"] = "ImSpan_endNil" defs["ImSpan_end"][1]["ret"] = "T*" defs["ImSpan_end"][1]["signature"] = "()" @@ -9267,7 +9455,7 @@ defs["ImSpan_end"][2]["call_args"] = "()" defs["ImSpan_end"][2]["cimguiname"] = "ImSpan_end" defs["ImSpan_end"][2]["defaults"] = {} defs["ImSpan_end"][2]["funcname"] = "end" -defs["ImSpan_end"][2]["location"] = "imgui_internal:591" +defs["ImSpan_end"][2]["location"] = "imgui_internal:603" defs["ImSpan_end"][2]["ov_cimguiname"] = "ImSpan_end_const" defs["ImSpan_end"][2]["ret"] = "const T*" defs["ImSpan_end"][2]["signature"] = "()const" @@ -9290,7 +9478,7 @@ defs["ImSpan_index_from_ptr"][1]["call_args"] = "(it)" defs["ImSpan_index_from_ptr"][1]["cimguiname"] = "ImSpan_index_from_ptr" defs["ImSpan_index_from_ptr"][1]["defaults"] = {} defs["ImSpan_index_from_ptr"][1]["funcname"] = "index_from_ptr" -defs["ImSpan_index_from_ptr"][1]["location"] = "imgui_internal:594" +defs["ImSpan_index_from_ptr"][1]["location"] = "imgui_internal:606" defs["ImSpan_index_from_ptr"][1]["ov_cimguiname"] = "ImSpan_index_from_ptr" defs["ImSpan_index_from_ptr"][1]["ret"] = "int" defs["ImSpan_index_from_ptr"][1]["signature"] = "(const T*)const" @@ -9315,7 +9503,7 @@ defs["ImSpan_set"][1]["call_args"] = "(data,size)" defs["ImSpan_set"][1]["cimguiname"] = "ImSpan_set" defs["ImSpan_set"][1]["defaults"] = {} defs["ImSpan_set"][1]["funcname"] = "set" -defs["ImSpan_set"][1]["location"] = "imgui_internal:581" +defs["ImSpan_set"][1]["location"] = "imgui_internal:593" defs["ImSpan_set"][1]["ov_cimguiname"] = "ImSpan_setInt" defs["ImSpan_set"][1]["ret"] = "void" defs["ImSpan_set"][1]["signature"] = "(T*,int)" @@ -9338,7 +9526,7 @@ defs["ImSpan_set"][2]["call_args"] = "(data,data_end)" defs["ImSpan_set"][2]["cimguiname"] = "ImSpan_set" defs["ImSpan_set"][2]["defaults"] = {} defs["ImSpan_set"][2]["funcname"] = "set" -defs["ImSpan_set"][2]["location"] = "imgui_internal:582" +defs["ImSpan_set"][2]["location"] = "imgui_internal:594" defs["ImSpan_set"][2]["ov_cimguiname"] = "ImSpan_setTPtr" defs["ImSpan_set"][2]["ret"] = "void" defs["ImSpan_set"][2]["signature"] = "(T*,T*)" @@ -9358,7 +9546,7 @@ defs["ImSpan_size"][1]["call_args"] = "()" defs["ImSpan_size"][1]["cimguiname"] = "ImSpan_size" defs["ImSpan_size"][1]["defaults"] = {} defs["ImSpan_size"][1]["funcname"] = "size" -defs["ImSpan_size"][1]["location"] = "imgui_internal:583" +defs["ImSpan_size"][1]["location"] = "imgui_internal:595" defs["ImSpan_size"][1]["ov_cimguiname"] = "ImSpan_size" defs["ImSpan_size"][1]["ret"] = "int" defs["ImSpan_size"][1]["signature"] = "()const" @@ -9377,7 +9565,7 @@ defs["ImSpan_size_in_bytes"][1]["call_args"] = "()" defs["ImSpan_size_in_bytes"][1]["cimguiname"] = "ImSpan_size_in_bytes" defs["ImSpan_size_in_bytes"][1]["defaults"] = {} defs["ImSpan_size_in_bytes"][1]["funcname"] = "size_in_bytes" -defs["ImSpan_size_in_bytes"][1]["location"] = "imgui_internal:584" +defs["ImSpan_size_in_bytes"][1]["location"] = "imgui_internal:596" defs["ImSpan_size_in_bytes"][1]["ov_cimguiname"] = "ImSpan_size_in_bytes" defs["ImSpan_size_in_bytes"][1]["ret"] = "int" defs["ImSpan_size_in_bytes"][1]["signature"] = "()const" @@ -9394,7 +9582,7 @@ defs["ImVec1_ImVec1"][1]["cimguiname"] = "ImVec1_ImVec1" defs["ImVec1_ImVec1"][1]["constructor"] = true defs["ImVec1_ImVec1"][1]["defaults"] = {} defs["ImVec1_ImVec1"][1]["funcname"] = "ImVec1" -defs["ImVec1_ImVec1"][1]["location"] = "imgui_internal:472" +defs["ImVec1_ImVec1"][1]["location"] = "imgui_internal:484" defs["ImVec1_ImVec1"][1]["ov_cimguiname"] = "ImVec1_ImVec1Nil" defs["ImVec1_ImVec1"][1]["signature"] = "()" defs["ImVec1_ImVec1"][1]["stname"] = "ImVec1" @@ -9410,7 +9598,7 @@ defs["ImVec1_ImVec1"][2]["cimguiname"] = "ImVec1_ImVec1" defs["ImVec1_ImVec1"][2]["constructor"] = true defs["ImVec1_ImVec1"][2]["defaults"] = {} defs["ImVec1_ImVec1"][2]["funcname"] = "ImVec1" -defs["ImVec1_ImVec1"][2]["location"] = "imgui_internal:473" +defs["ImVec1_ImVec1"][2]["location"] = "imgui_internal:485" defs["ImVec1_ImVec1"][2]["ov_cimguiname"] = "ImVec1_ImVec1Float" defs["ImVec1_ImVec1"][2]["signature"] = "(float)" defs["ImVec1_ImVec1"][2]["stname"] = "ImVec1" @@ -9493,7 +9681,7 @@ defs["ImVec2ih_ImVec2ih"][1]["cimguiname"] = "ImVec2ih_ImVec2ih" defs["ImVec2ih_ImVec2ih"][1]["constructor"] = true defs["ImVec2ih_ImVec2ih"][1]["defaults"] = {} defs["ImVec2ih_ImVec2ih"][1]["funcname"] = "ImVec2ih" -defs["ImVec2ih_ImVec2ih"][1]["location"] = "imgui_internal:480" +defs["ImVec2ih_ImVec2ih"][1]["location"] = "imgui_internal:492" defs["ImVec2ih_ImVec2ih"][1]["ov_cimguiname"] = "ImVec2ih_ImVec2ihNil" defs["ImVec2ih_ImVec2ih"][1]["signature"] = "()" defs["ImVec2ih_ImVec2ih"][1]["stname"] = "ImVec2ih" @@ -9512,7 +9700,7 @@ defs["ImVec2ih_ImVec2ih"][2]["cimguiname"] = "ImVec2ih_ImVec2ih" defs["ImVec2ih_ImVec2ih"][2]["constructor"] = true defs["ImVec2ih_ImVec2ih"][2]["defaults"] = {} defs["ImVec2ih_ImVec2ih"][2]["funcname"] = "ImVec2ih" -defs["ImVec2ih_ImVec2ih"][2]["location"] = "imgui_internal:481" +defs["ImVec2ih_ImVec2ih"][2]["location"] = "imgui_internal:493" defs["ImVec2ih_ImVec2ih"][2]["ov_cimguiname"] = "ImVec2ih_ImVec2ihshort" defs["ImVec2ih_ImVec2ih"][2]["signature"] = "(short,short)" defs["ImVec2ih_ImVec2ih"][2]["stname"] = "ImVec2ih" @@ -9528,7 +9716,7 @@ defs["ImVec2ih_ImVec2ih"][3]["cimguiname"] = "ImVec2ih_ImVec2ih" defs["ImVec2ih_ImVec2ih"][3]["constructor"] = true defs["ImVec2ih_ImVec2ih"][3]["defaults"] = {} defs["ImVec2ih_ImVec2ih"][3]["funcname"] = "ImVec2ih" -defs["ImVec2ih_ImVec2ih"][3]["location"] = "imgui_internal:482" +defs["ImVec2ih_ImVec2ih"][3]["location"] = "imgui_internal:494" defs["ImVec2ih_ImVec2ih"][3]["ov_cimguiname"] = "ImVec2ih_ImVec2ihVec2" defs["ImVec2ih_ImVec2ih"][3]["signature"] = "(const ImVec2)" defs["ImVec2ih_ImVec2ih"][3]["stname"] = "ImVec2ih" @@ -9618,7 +9806,7 @@ defs["ImVector_ImVector"][1]["cimguiname"] = "ImVector_ImVector" defs["ImVector_ImVector"][1]["constructor"] = true defs["ImVector_ImVector"][1]["defaults"] = {} defs["ImVector_ImVector"][1]["funcname"] = "ImVector" -defs["ImVector_ImVector"][1]["location"] = "imgui:1778" +defs["ImVector_ImVector"][1]["location"] = "imgui:1784" defs["ImVector_ImVector"][1]["ov_cimguiname"] = "ImVector_ImVectorNil" defs["ImVector_ImVector"][1]["signature"] = "()" defs["ImVector_ImVector"][1]["stname"] = "ImVector" @@ -9635,7 +9823,7 @@ defs["ImVector_ImVector"][2]["cimguiname"] = "ImVector_ImVector" defs["ImVector_ImVector"][2]["constructor"] = true defs["ImVector_ImVector"][2]["defaults"] = {} defs["ImVector_ImVector"][2]["funcname"] = "ImVector" -defs["ImVector_ImVector"][2]["location"] = "imgui:1779" +defs["ImVector_ImVector"][2]["location"] = "imgui:1785" defs["ImVector_ImVector"][2]["ov_cimguiname"] = "ImVector_ImVectorVector" defs["ImVector_ImVector"][2]["signature"] = "(const ImVector)" defs["ImVector_ImVector"][2]["stname"] = "ImVector" @@ -9657,7 +9845,7 @@ defs["ImVector__grow_capacity"][1]["call_args"] = "(sz)" defs["ImVector__grow_capacity"][1]["cimguiname"] = "ImVector__grow_capacity" defs["ImVector__grow_capacity"][1]["defaults"] = {} defs["ImVector__grow_capacity"][1]["funcname"] = "_grow_capacity" -defs["ImVector__grow_capacity"][1]["location"] = "imgui:1805" +defs["ImVector__grow_capacity"][1]["location"] = "imgui:1811" defs["ImVector__grow_capacity"][1]["ov_cimguiname"] = "ImVector__grow_capacity" defs["ImVector__grow_capacity"][1]["ret"] = "int" defs["ImVector__grow_capacity"][1]["signature"] = "(int)const" @@ -9676,7 +9864,7 @@ defs["ImVector_back"][1]["call_args"] = "()" defs["ImVector_back"][1]["cimguiname"] = "ImVector_back" defs["ImVector_back"][1]["defaults"] = {} defs["ImVector_back"][1]["funcname"] = "back" -defs["ImVector_back"][1]["location"] = "imgui:1801" +defs["ImVector_back"][1]["location"] = "imgui:1807" defs["ImVector_back"][1]["ov_cimguiname"] = "ImVector_backNil" defs["ImVector_back"][1]["ret"] = "T*" defs["ImVector_back"][1]["retref"] = "&" @@ -9694,7 +9882,7 @@ defs["ImVector_back"][2]["call_args"] = "()" defs["ImVector_back"][2]["cimguiname"] = "ImVector_back" defs["ImVector_back"][2]["defaults"] = {} defs["ImVector_back"][2]["funcname"] = "back" -defs["ImVector_back"][2]["location"] = "imgui:1802" +defs["ImVector_back"][2]["location"] = "imgui:1808" defs["ImVector_back"][2]["ov_cimguiname"] = "ImVector_back_const" defs["ImVector_back"][2]["ret"] = "const T*" defs["ImVector_back"][2]["retref"] = "&" @@ -9715,7 +9903,7 @@ defs["ImVector_begin"][1]["call_args"] = "()" defs["ImVector_begin"][1]["cimguiname"] = "ImVector_begin" defs["ImVector_begin"][1]["defaults"] = {} defs["ImVector_begin"][1]["funcname"] = "begin" -defs["ImVector_begin"][1]["location"] = "imgui:1795" +defs["ImVector_begin"][1]["location"] = "imgui:1801" defs["ImVector_begin"][1]["ov_cimguiname"] = "ImVector_beginNil" defs["ImVector_begin"][1]["ret"] = "T*" defs["ImVector_begin"][1]["signature"] = "()" @@ -9732,7 +9920,7 @@ defs["ImVector_begin"][2]["call_args"] = "()" defs["ImVector_begin"][2]["cimguiname"] = "ImVector_begin" defs["ImVector_begin"][2]["defaults"] = {} defs["ImVector_begin"][2]["funcname"] = "begin" -defs["ImVector_begin"][2]["location"] = "imgui:1796" +defs["ImVector_begin"][2]["location"] = "imgui:1802" defs["ImVector_begin"][2]["ov_cimguiname"] = "ImVector_begin_const" defs["ImVector_begin"][2]["ret"] = "const T*" defs["ImVector_begin"][2]["signature"] = "()const" @@ -9752,7 +9940,7 @@ defs["ImVector_capacity"][1]["call_args"] = "()" defs["ImVector_capacity"][1]["cimguiname"] = "ImVector_capacity" defs["ImVector_capacity"][1]["defaults"] = {} defs["ImVector_capacity"][1]["funcname"] = "capacity" -defs["ImVector_capacity"][1]["location"] = "imgui:1791" +defs["ImVector_capacity"][1]["location"] = "imgui:1797" defs["ImVector_capacity"][1]["ov_cimguiname"] = "ImVector_capacity" defs["ImVector_capacity"][1]["ret"] = "int" defs["ImVector_capacity"][1]["signature"] = "()const" @@ -9771,7 +9959,7 @@ defs["ImVector_clear"][1]["call_args"] = "()" defs["ImVector_clear"][1]["cimguiname"] = "ImVector_clear" defs["ImVector_clear"][1]["defaults"] = {} defs["ImVector_clear"][1]["funcname"] = "clear" -defs["ImVector_clear"][1]["location"] = "imgui:1783" +defs["ImVector_clear"][1]["location"] = "imgui:1789" defs["ImVector_clear"][1]["ov_cimguiname"] = "ImVector_clear" defs["ImVector_clear"][1]["ret"] = "void" defs["ImVector_clear"][1]["signature"] = "()" @@ -9790,7 +9978,7 @@ defs["ImVector_clear_delete"][1]["call_args"] = "()" defs["ImVector_clear_delete"][1]["cimguiname"] = "ImVector_clear_delete" defs["ImVector_clear_delete"][1]["defaults"] = {} defs["ImVector_clear_delete"][1]["funcname"] = "clear_delete" -defs["ImVector_clear_delete"][1]["location"] = "imgui:1784" +defs["ImVector_clear_delete"][1]["location"] = "imgui:1790" defs["ImVector_clear_delete"][1]["ov_cimguiname"] = "ImVector_clear_delete" defs["ImVector_clear_delete"][1]["ret"] = "void" defs["ImVector_clear_delete"][1]["signature"] = "()" @@ -9809,7 +9997,7 @@ defs["ImVector_clear_destruct"][1]["call_args"] = "()" defs["ImVector_clear_destruct"][1]["cimguiname"] = "ImVector_clear_destruct" defs["ImVector_clear_destruct"][1]["defaults"] = {} defs["ImVector_clear_destruct"][1]["funcname"] = "clear_destruct" -defs["ImVector_clear_destruct"][1]["location"] = "imgui:1785" +defs["ImVector_clear_destruct"][1]["location"] = "imgui:1791" defs["ImVector_clear_destruct"][1]["ov_cimguiname"] = "ImVector_clear_destruct" defs["ImVector_clear_destruct"][1]["ret"] = "void" defs["ImVector_clear_destruct"][1]["signature"] = "()" @@ -9831,7 +10019,7 @@ defs["ImVector_contains"][1]["call_args"] = "(v)" defs["ImVector_contains"][1]["cimguiname"] = "ImVector_contains" defs["ImVector_contains"][1]["defaults"] = {} defs["ImVector_contains"][1]["funcname"] = "contains" -defs["ImVector_contains"][1]["location"] = "imgui:1819" +defs["ImVector_contains"][1]["location"] = "imgui:1825" defs["ImVector_contains"][1]["ov_cimguiname"] = "ImVector_contains" defs["ImVector_contains"][1]["ret"] = "bool" defs["ImVector_contains"][1]["signature"] = "(const T)const" @@ -9849,7 +10037,7 @@ defs["ImVector_destroy"][1]["call_args"] = "(self)" defs["ImVector_destroy"][1]["cimguiname"] = "ImVector_destroy" defs["ImVector_destroy"][1]["defaults"] = {} defs["ImVector_destroy"][1]["destructor"] = true -defs["ImVector_destroy"][1]["location"] = "imgui:1781" +defs["ImVector_destroy"][1]["location"] = "imgui:1787" defs["ImVector_destroy"][1]["ov_cimguiname"] = "ImVector_destroy" defs["ImVector_destroy"][1]["realdestructor"] = true defs["ImVector_destroy"][1]["ret"] = "void" @@ -9869,7 +10057,7 @@ defs["ImVector_empty"][1]["call_args"] = "()" defs["ImVector_empty"][1]["cimguiname"] = "ImVector_empty" defs["ImVector_empty"][1]["defaults"] = {} defs["ImVector_empty"][1]["funcname"] = "empty" -defs["ImVector_empty"][1]["location"] = "imgui:1787" +defs["ImVector_empty"][1]["location"] = "imgui:1793" defs["ImVector_empty"][1]["ov_cimguiname"] = "ImVector_empty" defs["ImVector_empty"][1]["ret"] = "bool" defs["ImVector_empty"][1]["signature"] = "()const" @@ -9888,7 +10076,7 @@ defs["ImVector_end"][1]["call_args"] = "()" defs["ImVector_end"][1]["cimguiname"] = "ImVector_end" defs["ImVector_end"][1]["defaults"] = {} defs["ImVector_end"][1]["funcname"] = "end" -defs["ImVector_end"][1]["location"] = "imgui:1797" +defs["ImVector_end"][1]["location"] = "imgui:1803" defs["ImVector_end"][1]["ov_cimguiname"] = "ImVector_endNil" defs["ImVector_end"][1]["ret"] = "T*" defs["ImVector_end"][1]["signature"] = "()" @@ -9905,7 +10093,7 @@ defs["ImVector_end"][2]["call_args"] = "()" defs["ImVector_end"][2]["cimguiname"] = "ImVector_end" defs["ImVector_end"][2]["defaults"] = {} defs["ImVector_end"][2]["funcname"] = "end" -defs["ImVector_end"][2]["location"] = "imgui:1798" +defs["ImVector_end"][2]["location"] = "imgui:1804" defs["ImVector_end"][2]["ov_cimguiname"] = "ImVector_end_const" defs["ImVector_end"][2]["ret"] = "const T*" defs["ImVector_end"][2]["signature"] = "()const" @@ -9928,7 +10116,7 @@ defs["ImVector_erase"][1]["call_args"] = "(it)" defs["ImVector_erase"][1]["cimguiname"] = "ImVector_erase" defs["ImVector_erase"][1]["defaults"] = {} defs["ImVector_erase"][1]["funcname"] = "erase" -defs["ImVector_erase"][1]["location"] = "imgui:1815" +defs["ImVector_erase"][1]["location"] = "imgui:1821" defs["ImVector_erase"][1]["ov_cimguiname"] = "ImVector_eraseNil" defs["ImVector_erase"][1]["ret"] = "T*" defs["ImVector_erase"][1]["signature"] = "(const T*)" @@ -9951,7 +10139,7 @@ defs["ImVector_erase"][2]["call_args"] = "(it,it_last)" defs["ImVector_erase"][2]["cimguiname"] = "ImVector_erase" defs["ImVector_erase"][2]["defaults"] = {} defs["ImVector_erase"][2]["funcname"] = "erase" -defs["ImVector_erase"][2]["location"] = "imgui:1816" +defs["ImVector_erase"][2]["location"] = "imgui:1822" defs["ImVector_erase"][2]["ov_cimguiname"] = "ImVector_eraseTPtr" defs["ImVector_erase"][2]["ret"] = "T*" defs["ImVector_erase"][2]["signature"] = "(const T*,const T*)" @@ -9974,7 +10162,7 @@ defs["ImVector_erase_unsorted"][1]["call_args"] = "(it)" defs["ImVector_erase_unsorted"][1]["cimguiname"] = "ImVector_erase_unsorted" defs["ImVector_erase_unsorted"][1]["defaults"] = {} defs["ImVector_erase_unsorted"][1]["funcname"] = "erase_unsorted" -defs["ImVector_erase_unsorted"][1]["location"] = "imgui:1817" +defs["ImVector_erase_unsorted"][1]["location"] = "imgui:1823" defs["ImVector_erase_unsorted"][1]["ov_cimguiname"] = "ImVector_erase_unsorted" defs["ImVector_erase_unsorted"][1]["ret"] = "T*" defs["ImVector_erase_unsorted"][1]["signature"] = "(const T*)" @@ -9996,7 +10184,7 @@ defs["ImVector_find"][1]["call_args"] = "(v)" defs["ImVector_find"][1]["cimguiname"] = "ImVector_find" defs["ImVector_find"][1]["defaults"] = {} defs["ImVector_find"][1]["funcname"] = "find" -defs["ImVector_find"][1]["location"] = "imgui:1820" +defs["ImVector_find"][1]["location"] = "imgui:1826" defs["ImVector_find"][1]["ov_cimguiname"] = "ImVector_findNil" defs["ImVector_find"][1]["ret"] = "T*" defs["ImVector_find"][1]["signature"] = "(const T)" @@ -10016,7 +10204,7 @@ defs["ImVector_find"][2]["call_args"] = "(v)" defs["ImVector_find"][2]["cimguiname"] = "ImVector_find" defs["ImVector_find"][2]["defaults"] = {} defs["ImVector_find"][2]["funcname"] = "find" -defs["ImVector_find"][2]["location"] = "imgui:1821" +defs["ImVector_find"][2]["location"] = "imgui:1827" defs["ImVector_find"][2]["ov_cimguiname"] = "ImVector_find_const" defs["ImVector_find"][2]["ret"] = "const T*" defs["ImVector_find"][2]["signature"] = "(const T)const" @@ -10039,7 +10227,7 @@ defs["ImVector_find_erase"][1]["call_args"] = "(v)" defs["ImVector_find_erase"][1]["cimguiname"] = "ImVector_find_erase" defs["ImVector_find_erase"][1]["defaults"] = {} defs["ImVector_find_erase"][1]["funcname"] = "find_erase" -defs["ImVector_find_erase"][1]["location"] = "imgui:1822" +defs["ImVector_find_erase"][1]["location"] = "imgui:1828" defs["ImVector_find_erase"][1]["ov_cimguiname"] = "ImVector_find_erase" defs["ImVector_find_erase"][1]["ret"] = "bool" defs["ImVector_find_erase"][1]["signature"] = "(const T)" @@ -10061,7 +10249,7 @@ defs["ImVector_find_erase_unsorted"][1]["call_args"] = "(v)" defs["ImVector_find_erase_unsorted"][1]["cimguiname"] = "ImVector_find_erase_unsorted" defs["ImVector_find_erase_unsorted"][1]["defaults"] = {} defs["ImVector_find_erase_unsorted"][1]["funcname"] = "find_erase_unsorted" -defs["ImVector_find_erase_unsorted"][1]["location"] = "imgui:1823" +defs["ImVector_find_erase_unsorted"][1]["location"] = "imgui:1829" defs["ImVector_find_erase_unsorted"][1]["ov_cimguiname"] = "ImVector_find_erase_unsorted" defs["ImVector_find_erase_unsorted"][1]["ret"] = "bool" defs["ImVector_find_erase_unsorted"][1]["signature"] = "(const T)" @@ -10080,7 +10268,7 @@ defs["ImVector_front"][1]["call_args"] = "()" defs["ImVector_front"][1]["cimguiname"] = "ImVector_front" defs["ImVector_front"][1]["defaults"] = {} defs["ImVector_front"][1]["funcname"] = "front" -defs["ImVector_front"][1]["location"] = "imgui:1799" +defs["ImVector_front"][1]["location"] = "imgui:1805" defs["ImVector_front"][1]["ov_cimguiname"] = "ImVector_frontNil" defs["ImVector_front"][1]["ret"] = "T*" defs["ImVector_front"][1]["retref"] = "&" @@ -10098,7 +10286,7 @@ defs["ImVector_front"][2]["call_args"] = "()" defs["ImVector_front"][2]["cimguiname"] = "ImVector_front" defs["ImVector_front"][2]["defaults"] = {} defs["ImVector_front"][2]["funcname"] = "front" -defs["ImVector_front"][2]["location"] = "imgui:1800" +defs["ImVector_front"][2]["location"] = "imgui:1806" defs["ImVector_front"][2]["ov_cimguiname"] = "ImVector_front_const" defs["ImVector_front"][2]["ret"] = "const T*" defs["ImVector_front"][2]["retref"] = "&" @@ -10122,7 +10310,7 @@ defs["ImVector_index_from_ptr"][1]["call_args"] = "(it)" defs["ImVector_index_from_ptr"][1]["cimguiname"] = "ImVector_index_from_ptr" defs["ImVector_index_from_ptr"][1]["defaults"] = {} defs["ImVector_index_from_ptr"][1]["funcname"] = "index_from_ptr" -defs["ImVector_index_from_ptr"][1]["location"] = "imgui:1824" +defs["ImVector_index_from_ptr"][1]["location"] = "imgui:1830" defs["ImVector_index_from_ptr"][1]["ov_cimguiname"] = "ImVector_index_from_ptr" defs["ImVector_index_from_ptr"][1]["ret"] = "int" defs["ImVector_index_from_ptr"][1]["signature"] = "(const T*)const" @@ -10147,7 +10335,7 @@ defs["ImVector_insert"][1]["call_args"] = "(it,v)" defs["ImVector_insert"][1]["cimguiname"] = "ImVector_insert" defs["ImVector_insert"][1]["defaults"] = {} defs["ImVector_insert"][1]["funcname"] = "insert" -defs["ImVector_insert"][1]["location"] = "imgui:1818" +defs["ImVector_insert"][1]["location"] = "imgui:1824" defs["ImVector_insert"][1]["ov_cimguiname"] = "ImVector_insert" defs["ImVector_insert"][1]["ret"] = "T*" defs["ImVector_insert"][1]["signature"] = "(const T*,const T)" @@ -10166,7 +10354,7 @@ defs["ImVector_max_size"][1]["call_args"] = "()" defs["ImVector_max_size"][1]["cimguiname"] = "ImVector_max_size" defs["ImVector_max_size"][1]["defaults"] = {} defs["ImVector_max_size"][1]["funcname"] = "max_size" -defs["ImVector_max_size"][1]["location"] = "imgui:1790" +defs["ImVector_max_size"][1]["location"] = "imgui:1796" defs["ImVector_max_size"][1]["ov_cimguiname"] = "ImVector_max_size" defs["ImVector_max_size"][1]["ret"] = "int" defs["ImVector_max_size"][1]["signature"] = "()const" @@ -10185,7 +10373,7 @@ defs["ImVector_pop_back"][1]["call_args"] = "()" defs["ImVector_pop_back"][1]["cimguiname"] = "ImVector_pop_back" defs["ImVector_pop_back"][1]["defaults"] = {} defs["ImVector_pop_back"][1]["funcname"] = "pop_back" -defs["ImVector_pop_back"][1]["location"] = "imgui:1813" +defs["ImVector_pop_back"][1]["location"] = "imgui:1819" defs["ImVector_pop_back"][1]["ov_cimguiname"] = "ImVector_pop_back" defs["ImVector_pop_back"][1]["ret"] = "void" defs["ImVector_pop_back"][1]["signature"] = "()" @@ -10207,7 +10395,7 @@ defs["ImVector_push_back"][1]["call_args"] = "(v)" defs["ImVector_push_back"][1]["cimguiname"] = "ImVector_push_back" defs["ImVector_push_back"][1]["defaults"] = {} defs["ImVector_push_back"][1]["funcname"] = "push_back" -defs["ImVector_push_back"][1]["location"] = "imgui:1812" +defs["ImVector_push_back"][1]["location"] = "imgui:1818" defs["ImVector_push_back"][1]["ov_cimguiname"] = "ImVector_push_back" defs["ImVector_push_back"][1]["ret"] = "void" defs["ImVector_push_back"][1]["signature"] = "(const T)" @@ -10229,7 +10417,7 @@ defs["ImVector_push_front"][1]["call_args"] = "(v)" defs["ImVector_push_front"][1]["cimguiname"] = "ImVector_push_front" defs["ImVector_push_front"][1]["defaults"] = {} defs["ImVector_push_front"][1]["funcname"] = "push_front" -defs["ImVector_push_front"][1]["location"] = "imgui:1814" +defs["ImVector_push_front"][1]["location"] = "imgui:1820" defs["ImVector_push_front"][1]["ov_cimguiname"] = "ImVector_push_front" defs["ImVector_push_front"][1]["ret"] = "void" defs["ImVector_push_front"][1]["signature"] = "(const T)" @@ -10251,7 +10439,7 @@ defs["ImVector_reserve"][1]["call_args"] = "(new_capacity)" defs["ImVector_reserve"][1]["cimguiname"] = "ImVector_reserve" defs["ImVector_reserve"][1]["defaults"] = {} defs["ImVector_reserve"][1]["funcname"] = "reserve" -defs["ImVector_reserve"][1]["location"] = "imgui:1809" +defs["ImVector_reserve"][1]["location"] = "imgui:1815" defs["ImVector_reserve"][1]["ov_cimguiname"] = "ImVector_reserve" defs["ImVector_reserve"][1]["ret"] = "void" defs["ImVector_reserve"][1]["signature"] = "(int)" @@ -10273,7 +10461,7 @@ defs["ImVector_resize"][1]["call_args"] = "(new_size)" defs["ImVector_resize"][1]["cimguiname"] = "ImVector_resize" defs["ImVector_resize"][1]["defaults"] = {} defs["ImVector_resize"][1]["funcname"] = "resize" -defs["ImVector_resize"][1]["location"] = "imgui:1806" +defs["ImVector_resize"][1]["location"] = "imgui:1812" defs["ImVector_resize"][1]["ov_cimguiname"] = "ImVector_resizeNil" defs["ImVector_resize"][1]["ret"] = "void" defs["ImVector_resize"][1]["signature"] = "(int)" @@ -10296,7 +10484,7 @@ defs["ImVector_resize"][2]["call_args"] = "(new_size,v)" defs["ImVector_resize"][2]["cimguiname"] = "ImVector_resize" defs["ImVector_resize"][2]["defaults"] = {} defs["ImVector_resize"][2]["funcname"] = "resize" -defs["ImVector_resize"][2]["location"] = "imgui:1807" +defs["ImVector_resize"][2]["location"] = "imgui:1813" defs["ImVector_resize"][2]["ov_cimguiname"] = "ImVector_resizeT" defs["ImVector_resize"][2]["ret"] = "void" defs["ImVector_resize"][2]["signature"] = "(int,const T)" @@ -10319,7 +10507,7 @@ defs["ImVector_shrink"][1]["call_args"] = "(new_size)" defs["ImVector_shrink"][1]["cimguiname"] = "ImVector_shrink" defs["ImVector_shrink"][1]["defaults"] = {} defs["ImVector_shrink"][1]["funcname"] = "shrink" -defs["ImVector_shrink"][1]["location"] = "imgui:1808" +defs["ImVector_shrink"][1]["location"] = "imgui:1814" defs["ImVector_shrink"][1]["ov_cimguiname"] = "ImVector_shrink" defs["ImVector_shrink"][1]["ret"] = "void" defs["ImVector_shrink"][1]["signature"] = "(int)" @@ -10338,7 +10526,7 @@ defs["ImVector_size"][1]["call_args"] = "()" defs["ImVector_size"][1]["cimguiname"] = "ImVector_size" defs["ImVector_size"][1]["defaults"] = {} defs["ImVector_size"][1]["funcname"] = "size" -defs["ImVector_size"][1]["location"] = "imgui:1788" +defs["ImVector_size"][1]["location"] = "imgui:1794" defs["ImVector_size"][1]["ov_cimguiname"] = "ImVector_size" defs["ImVector_size"][1]["ret"] = "int" defs["ImVector_size"][1]["signature"] = "()const" @@ -10357,7 +10545,7 @@ defs["ImVector_size_in_bytes"][1]["call_args"] = "()" defs["ImVector_size_in_bytes"][1]["cimguiname"] = "ImVector_size_in_bytes" defs["ImVector_size_in_bytes"][1]["defaults"] = {} defs["ImVector_size_in_bytes"][1]["funcname"] = "size_in_bytes" -defs["ImVector_size_in_bytes"][1]["location"] = "imgui:1789" +defs["ImVector_size_in_bytes"][1]["location"] = "imgui:1795" defs["ImVector_size_in_bytes"][1]["ov_cimguiname"] = "ImVector_size_in_bytes" defs["ImVector_size_in_bytes"][1]["ret"] = "int" defs["ImVector_size_in_bytes"][1]["signature"] = "()const" @@ -10380,7 +10568,7 @@ defs["ImVector_swap"][1]["call_args"] = "(*rhs)" defs["ImVector_swap"][1]["cimguiname"] = "ImVector_swap" defs["ImVector_swap"][1]["defaults"] = {} defs["ImVector_swap"][1]["funcname"] = "swap" -defs["ImVector_swap"][1]["location"] = "imgui:1803" +defs["ImVector_swap"][1]["location"] = "imgui:1809" defs["ImVector_swap"][1]["ov_cimguiname"] = "ImVector_swap" defs["ImVector_swap"][1]["ret"] = "void" defs["ImVector_swap"][1]["signature"] = "(ImVector*)" @@ -10403,7 +10591,7 @@ defs["igAcceptDragDropPayload"][1]["cimguiname"] = "igAcceptDragDropPayload" defs["igAcceptDragDropPayload"][1]["defaults"] = {} defs["igAcceptDragDropPayload"][1]["defaults"]["flags"] = "0" defs["igAcceptDragDropPayload"][1]["funcname"] = "AcceptDragDropPayload" -defs["igAcceptDragDropPayload"][1]["location"] = "imgui:842" +defs["igAcceptDragDropPayload"][1]["location"] = "imgui:844" defs["igAcceptDragDropPayload"][1]["namespace"] = "ImGui" defs["igAcceptDragDropPayload"][1]["ov_cimguiname"] = "igAcceptDragDropPayload" defs["igAcceptDragDropPayload"][1]["ret"] = "const ImGuiPayload*" @@ -10422,7 +10610,7 @@ defs["igActivateItem"][1]["call_args"] = "(id)" defs["igActivateItem"][1]["cimguiname"] = "igActivateItem" defs["igActivateItem"][1]["defaults"] = {} defs["igActivateItem"][1]["funcname"] = "ActivateItem" -defs["igActivateItem"][1]["location"] = "imgui_internal:2694" +defs["igActivateItem"][1]["location"] = "imgui_internal:2812" defs["igActivateItem"][1]["namespace"] = "ImGui" defs["igActivateItem"][1]["ov_cimguiname"] = "igActivateItem" defs["igActivateItem"][1]["ret"] = "void" @@ -10444,7 +10632,7 @@ defs["igAddContextHook"][1]["call_args"] = "(context,hook)" defs["igAddContextHook"][1]["cimguiname"] = "igAddContextHook" defs["igAddContextHook"][1]["defaults"] = {} defs["igAddContextHook"][1]["funcname"] = "AddContextHook" -defs["igAddContextHook"][1]["location"] = "imgui_internal:2583" +defs["igAddContextHook"][1]["location"] = "imgui_internal:2688" defs["igAddContextHook"][1]["namespace"] = "ImGui" defs["igAddContextHook"][1]["ov_cimguiname"] = "igAddContextHook" defs["igAddContextHook"][1]["ret"] = "ImGuiID" @@ -10460,7 +10648,7 @@ defs["igAlignTextToFramePadding"][1]["call_args"] = "()" defs["igAlignTextToFramePadding"][1]["cimguiname"] = "igAlignTextToFramePadding" defs["igAlignTextToFramePadding"][1]["defaults"] = {} defs["igAlignTextToFramePadding"][1]["funcname"] = "AlignTextToFramePadding" -defs["igAlignTextToFramePadding"][1]["location"] = "imgui:467" +defs["igAlignTextToFramePadding"][1]["location"] = "imgui:468" defs["igAlignTextToFramePadding"][1]["namespace"] = "ImGui" defs["igAlignTextToFramePadding"][1]["ov_cimguiname"] = "igAlignTextToFramePadding" defs["igAlignTextToFramePadding"][1]["ret"] = "void" @@ -10482,7 +10670,7 @@ defs["igArrowButton"][1]["call_args"] = "(str_id,dir)" defs["igArrowButton"][1]["cimguiname"] = "igArrowButton" defs["igArrowButton"][1]["defaults"] = {} defs["igArrowButton"][1]["funcname"] = "ArrowButton" -defs["igArrowButton"][1]["location"] = "imgui:514" +defs["igArrowButton"][1]["location"] = "imgui:515" defs["igArrowButton"][1]["namespace"] = "ImGui" defs["igArrowButton"][1]["ov_cimguiname"] = "igArrowButton" defs["igArrowButton"][1]["ret"] = "bool" @@ -10511,7 +10699,7 @@ defs["igArrowButtonEx"][1]["cimguiname"] = "igArrowButtonEx" defs["igArrowButtonEx"][1]["defaults"] = {} defs["igArrowButtonEx"][1]["defaults"]["flags"] = "0" defs["igArrowButtonEx"][1]["funcname"] = "ArrowButtonEx" -defs["igArrowButtonEx"][1]["location"] = "imgui_internal:2885" +defs["igArrowButtonEx"][1]["location"] = "imgui_internal:3006" defs["igArrowButtonEx"][1]["namespace"] = "ImGui" defs["igArrowButtonEx"][1]["ov_cimguiname"] = "igArrowButtonEx" defs["igArrowButtonEx"][1]["ret"] = "bool" @@ -10538,7 +10726,7 @@ defs["igBegin"][1]["defaults"] = {} defs["igBegin"][1]["defaults"]["flags"] = "0" defs["igBegin"][1]["defaults"]["p_open"] = "NULL" defs["igBegin"][1]["funcname"] = "Begin" -defs["igBegin"][1]["location"] = "imgui:341" +defs["igBegin"][1]["location"] = "imgui:342" defs["igBegin"][1]["namespace"] = "ImGui" defs["igBegin"][1]["ov_cimguiname"] = "igBegin" defs["igBegin"][1]["ret"] = "bool" @@ -10569,7 +10757,7 @@ defs["igBeginChild"][1]["defaults"]["border"] = "false" defs["igBeginChild"][1]["defaults"]["flags"] = "0" defs["igBeginChild"][1]["defaults"]["size"] = "ImVec2(0,0)" defs["igBeginChild"][1]["funcname"] = "BeginChild" -defs["igBeginChild"][1]["location"] = "imgui:352" +defs["igBeginChild"][1]["location"] = "imgui:353" defs["igBeginChild"][1]["namespace"] = "ImGui" defs["igBeginChild"][1]["ov_cimguiname"] = "igBeginChildStr" defs["igBeginChild"][1]["ret"] = "bool" @@ -10598,7 +10786,7 @@ defs["igBeginChild"][2]["defaults"]["border"] = "false" defs["igBeginChild"][2]["defaults"]["flags"] = "0" defs["igBeginChild"][2]["defaults"]["size"] = "ImVec2(0,0)" defs["igBeginChild"][2]["funcname"] = "BeginChild" -defs["igBeginChild"][2]["location"] = "imgui:353" +defs["igBeginChild"][2]["location"] = "imgui:354" defs["igBeginChild"][2]["namespace"] = "ImGui" defs["igBeginChild"][2]["ov_cimguiname"] = "igBeginChildID" defs["igBeginChild"][2]["ret"] = "bool" @@ -10630,7 +10818,7 @@ defs["igBeginChildEx"][1]["call_args"] = "(name,id,size_arg,border,flags)" defs["igBeginChildEx"][1]["cimguiname"] = "igBeginChildEx" defs["igBeginChildEx"][1]["defaults"] = {} defs["igBeginChildEx"][1]["funcname"] = "BeginChildEx" -defs["igBeginChildEx"][1]["location"] = "imgui_internal:2662" +defs["igBeginChildEx"][1]["location"] = "imgui_internal:2775" defs["igBeginChildEx"][1]["namespace"] = "ImGui" defs["igBeginChildEx"][1]["ov_cimguiname"] = "igBeginChildEx" defs["igBeginChildEx"][1]["ret"] = "bool" @@ -10656,7 +10844,7 @@ defs["igBeginChildFrame"][1]["cimguiname"] = "igBeginChildFrame" defs["igBeginChildFrame"][1]["defaults"] = {} defs["igBeginChildFrame"][1]["defaults"]["flags"] = "0" defs["igBeginChildFrame"][1]["funcname"] = "BeginChildFrame" -defs["igBeginChildFrame"][1]["location"] = "imgui:904" +defs["igBeginChildFrame"][1]["location"] = "imgui:905" defs["igBeginChildFrame"][1]["namespace"] = "ImGui" defs["igBeginChildFrame"][1]["ov_cimguiname"] = "igBeginChildFrame" defs["igBeginChildFrame"][1]["ret"] = "bool" @@ -10682,7 +10870,7 @@ defs["igBeginColumns"][1]["cimguiname"] = "igBeginColumns" defs["igBeginColumns"][1]["defaults"] = {} defs["igBeginColumns"][1]["defaults"]["flags"] = "0" defs["igBeginColumns"][1]["funcname"] = "BeginColumns" -defs["igBeginColumns"][1]["location"] = "imgui_internal:2774" +defs["igBeginColumns"][1]["location"] = "imgui_internal:2894" defs["igBeginColumns"][1]["namespace"] = "ImGui" defs["igBeginColumns"][1]["ov_cimguiname"] = "igBeginColumns" defs["igBeginColumns"][1]["ret"] = "void" @@ -10708,7 +10896,7 @@ defs["igBeginCombo"][1]["cimguiname"] = "igBeginCombo" defs["igBeginCombo"][1]["defaults"] = {} defs["igBeginCombo"][1]["defaults"]["flags"] = "0" defs["igBeginCombo"][1]["funcname"] = "BeginCombo" -defs["igBeginCombo"][1]["location"] = "imgui:528" +defs["igBeginCombo"][1]["location"] = "imgui:529" defs["igBeginCombo"][1]["namespace"] = "ImGui" defs["igBeginCombo"][1]["ov_cimguiname"] = "igBeginCombo" defs["igBeginCombo"][1]["ret"] = "bool" @@ -10733,7 +10921,7 @@ defs["igBeginComboPopup"][1]["call_args"] = "(popup_id,bb,flags)" defs["igBeginComboPopup"][1]["cimguiname"] = "igBeginComboPopup" defs["igBeginComboPopup"][1]["defaults"] = {} defs["igBeginComboPopup"][1]["funcname"] = "BeginComboPopup" -defs["igBeginComboPopup"][1]["location"] = "imgui_internal:2680" +defs["igBeginComboPopup"][1]["location"] = "imgui_internal:2795" defs["igBeginComboPopup"][1]["namespace"] = "ImGui" defs["igBeginComboPopup"][1]["ov_cimguiname"] = "igBeginComboPopup" defs["igBeginComboPopup"][1]["ret"] = "bool" @@ -10749,7 +10937,7 @@ defs["igBeginComboPreview"][1]["call_args"] = "()" defs["igBeginComboPreview"][1]["cimguiname"] = "igBeginComboPreview" defs["igBeginComboPreview"][1]["defaults"] = {} defs["igBeginComboPreview"][1]["funcname"] = "BeginComboPreview" -defs["igBeginComboPreview"][1]["location"] = "imgui_internal:2681" +defs["igBeginComboPreview"][1]["location"] = "imgui_internal:2796" defs["igBeginComboPreview"][1]["namespace"] = "ImGui" defs["igBeginComboPreview"][1]["ov_cimguiname"] = "igBeginComboPreview" defs["igBeginComboPreview"][1]["ret"] = "bool" @@ -10769,7 +10957,7 @@ defs["igBeginDisabled"][1]["cimguiname"] = "igBeginDisabled" defs["igBeginDisabled"][1]["defaults"] = {} defs["igBeginDisabled"][1]["defaults"]["disabled"] = "true" defs["igBeginDisabled"][1]["funcname"] = "BeginDisabled" -defs["igBeginDisabled"][1]["location"] = "imgui:850" +defs["igBeginDisabled"][1]["location"] = "imgui:852" defs["igBeginDisabled"][1]["namespace"] = "ImGui" defs["igBeginDisabled"][1]["ov_cimguiname"] = "igBeginDisabled" defs["igBeginDisabled"][1]["ret"] = "void" @@ -10788,7 +10976,7 @@ defs["igBeginDockableDragDropSource"][1]["call_args"] = "(window)" defs["igBeginDockableDragDropSource"][1]["cimguiname"] = "igBeginDockableDragDropSource" defs["igBeginDockableDragDropSource"][1]["defaults"] = {} defs["igBeginDockableDragDropSource"][1]["funcname"] = "BeginDockableDragDropSource" -defs["igBeginDockableDragDropSource"][1]["location"] = "imgui_internal:2739" +defs["igBeginDockableDragDropSource"][1]["location"] = "imgui_internal:2859" defs["igBeginDockableDragDropSource"][1]["namespace"] = "ImGui" defs["igBeginDockableDragDropSource"][1]["ov_cimguiname"] = "igBeginDockableDragDropSource" defs["igBeginDockableDragDropSource"][1]["ret"] = "void" @@ -10807,7 +10995,7 @@ defs["igBeginDockableDragDropTarget"][1]["call_args"] = "(window)" defs["igBeginDockableDragDropTarget"][1]["cimguiname"] = "igBeginDockableDragDropTarget" defs["igBeginDockableDragDropTarget"][1]["defaults"] = {} defs["igBeginDockableDragDropTarget"][1]["funcname"] = "BeginDockableDragDropTarget" -defs["igBeginDockableDragDropTarget"][1]["location"] = "imgui_internal:2740" +defs["igBeginDockableDragDropTarget"][1]["location"] = "imgui_internal:2860" defs["igBeginDockableDragDropTarget"][1]["namespace"] = "ImGui" defs["igBeginDockableDragDropTarget"][1]["ov_cimguiname"] = "igBeginDockableDragDropTarget" defs["igBeginDockableDragDropTarget"][1]["ret"] = "void" @@ -10829,7 +11017,7 @@ defs["igBeginDocked"][1]["call_args"] = "(window,p_open)" defs["igBeginDocked"][1]["cimguiname"] = "igBeginDocked" defs["igBeginDocked"][1]["defaults"] = {} defs["igBeginDocked"][1]["funcname"] = "BeginDocked" -defs["igBeginDocked"][1]["location"] = "imgui_internal:2738" +defs["igBeginDocked"][1]["location"] = "imgui_internal:2858" defs["igBeginDocked"][1]["namespace"] = "ImGui" defs["igBeginDocked"][1]["ov_cimguiname"] = "igBeginDocked" defs["igBeginDocked"][1]["ret"] = "void" @@ -10849,7 +11037,7 @@ defs["igBeginDragDropSource"][1]["cimguiname"] = "igBeginDragDropSource" defs["igBeginDragDropSource"][1]["defaults"] = {} defs["igBeginDragDropSource"][1]["defaults"]["flags"] = "0" defs["igBeginDragDropSource"][1]["funcname"] = "BeginDragDropSource" -defs["igBeginDragDropSource"][1]["location"] = "imgui:838" +defs["igBeginDragDropSource"][1]["location"] = "imgui:840" defs["igBeginDragDropSource"][1]["namespace"] = "ImGui" defs["igBeginDragDropSource"][1]["ov_cimguiname"] = "igBeginDragDropSource" defs["igBeginDragDropSource"][1]["ret"] = "bool" @@ -10865,7 +11053,7 @@ defs["igBeginDragDropTarget"][1]["call_args"] = "()" defs["igBeginDragDropTarget"][1]["cimguiname"] = "igBeginDragDropTarget" defs["igBeginDragDropTarget"][1]["defaults"] = {} defs["igBeginDragDropTarget"][1]["funcname"] = "BeginDragDropTarget" -defs["igBeginDragDropTarget"][1]["location"] = "imgui:841" +defs["igBeginDragDropTarget"][1]["location"] = "imgui:843" defs["igBeginDragDropTarget"][1]["namespace"] = "ImGui" defs["igBeginDragDropTarget"][1]["ov_cimguiname"] = "igBeginDragDropTarget" defs["igBeginDragDropTarget"][1]["ret"] = "bool" @@ -10887,7 +11075,7 @@ defs["igBeginDragDropTargetCustom"][1]["call_args"] = "(bb,id)" defs["igBeginDragDropTargetCustom"][1]["cimguiname"] = "igBeginDragDropTargetCustom" defs["igBeginDragDropTargetCustom"][1]["defaults"] = {} defs["igBeginDragDropTargetCustom"][1]["funcname"] = "BeginDragDropTargetCustom" -defs["igBeginDragDropTargetCustom"][1]["location"] = "imgui_internal:2768" +defs["igBeginDragDropTargetCustom"][1]["location"] = "imgui_internal:2888" defs["igBeginDragDropTargetCustom"][1]["namespace"] = "ImGui" defs["igBeginDragDropTargetCustom"][1]["ov_cimguiname"] = "igBeginDragDropTargetCustom" defs["igBeginDragDropTargetCustom"][1]["ret"] = "bool" @@ -10903,7 +11091,7 @@ defs["igBeginGroup"][1]["call_args"] = "()" defs["igBeginGroup"][1]["cimguiname"] = "igBeginGroup" defs["igBeginGroup"][1]["defaults"] = {} defs["igBeginGroup"][1]["funcname"] = "BeginGroup" -defs["igBeginGroup"][1]["location"] = "imgui:456" +defs["igBeginGroup"][1]["location"] = "imgui:457" defs["igBeginGroup"][1]["namespace"] = "ImGui" defs["igBeginGroup"][1]["ov_cimguiname"] = "igBeginGroup" defs["igBeginGroup"][1]["ret"] = "void" @@ -10926,7 +11114,7 @@ defs["igBeginListBox"][1]["cimguiname"] = "igBeginListBox" defs["igBeginListBox"][1]["defaults"] = {} defs["igBeginListBox"][1]["defaults"]["size"] = "ImVec2(0,0)" defs["igBeginListBox"][1]["funcname"] = "BeginListBox" -defs["igBeginListBox"][1]["location"] = "imgui:639" +defs["igBeginListBox"][1]["location"] = "imgui:640" defs["igBeginListBox"][1]["namespace"] = "ImGui" defs["igBeginListBox"][1]["ov_cimguiname"] = "igBeginListBox" defs["igBeginListBox"][1]["ret"] = "bool" @@ -10942,7 +11130,7 @@ defs["igBeginMainMenuBar"][1]["call_args"] = "()" defs["igBeginMainMenuBar"][1]["cimguiname"] = "igBeginMainMenuBar" defs["igBeginMainMenuBar"][1]["defaults"] = {} defs["igBeginMainMenuBar"][1]["funcname"] = "BeginMainMenuBar" -defs["igBeginMainMenuBar"][1]["location"] = "imgui:665" +defs["igBeginMainMenuBar"][1]["location"] = "imgui:666" defs["igBeginMainMenuBar"][1]["namespace"] = "ImGui" defs["igBeginMainMenuBar"][1]["ov_cimguiname"] = "igBeginMainMenuBar" defs["igBeginMainMenuBar"][1]["ret"] = "bool" @@ -10965,7 +11153,7 @@ defs["igBeginMenu"][1]["cimguiname"] = "igBeginMenu" defs["igBeginMenu"][1]["defaults"] = {} defs["igBeginMenu"][1]["defaults"]["enabled"] = "true" defs["igBeginMenu"][1]["funcname"] = "BeginMenu" -defs["igBeginMenu"][1]["location"] = "imgui:667" +defs["igBeginMenu"][1]["location"] = "imgui:668" defs["igBeginMenu"][1]["namespace"] = "ImGui" defs["igBeginMenu"][1]["ov_cimguiname"] = "igBeginMenu" defs["igBeginMenu"][1]["ret"] = "bool" @@ -10981,7 +11169,7 @@ defs["igBeginMenuBar"][1]["call_args"] = "()" defs["igBeginMenuBar"][1]["cimguiname"] = "igBeginMenuBar" defs["igBeginMenuBar"][1]["defaults"] = {} defs["igBeginMenuBar"][1]["funcname"] = "BeginMenuBar" -defs["igBeginMenuBar"][1]["location"] = "imgui:663" +defs["igBeginMenuBar"][1]["location"] = "imgui:664" defs["igBeginMenuBar"][1]["namespace"] = "ImGui" defs["igBeginMenuBar"][1]["ov_cimguiname"] = "igBeginMenuBar" defs["igBeginMenuBar"][1]["ret"] = "bool" @@ -11007,7 +11195,7 @@ defs["igBeginMenuEx"][1]["cimguiname"] = "igBeginMenuEx" defs["igBeginMenuEx"][1]["defaults"] = {} defs["igBeginMenuEx"][1]["defaults"]["enabled"] = "true" defs["igBeginMenuEx"][1]["funcname"] = "BeginMenuEx" -defs["igBeginMenuEx"][1]["location"] = "imgui_internal:2676" +defs["igBeginMenuEx"][1]["location"] = "imgui_internal:2791" defs["igBeginMenuEx"][1]["namespace"] = "ImGui" defs["igBeginMenuEx"][1]["ov_cimguiname"] = "igBeginMenuEx" defs["igBeginMenuEx"][1]["ret"] = "bool" @@ -11030,7 +11218,7 @@ defs["igBeginPopup"][1]["cimguiname"] = "igBeginPopup" defs["igBeginPopup"][1]["defaults"] = {} defs["igBeginPopup"][1]["defaults"]["flags"] = "0" defs["igBeginPopup"][1]["funcname"] = "BeginPopup" -defs["igBeginPopup"][1]["location"] = "imgui:691" +defs["igBeginPopup"][1]["location"] = "imgui:692" defs["igBeginPopup"][1]["namespace"] = "ImGui" defs["igBeginPopup"][1]["ov_cimguiname"] = "igBeginPopup" defs["igBeginPopup"][1]["ret"] = "bool" @@ -11054,7 +11242,7 @@ defs["igBeginPopupContextItem"][1]["defaults"] = {} defs["igBeginPopupContextItem"][1]["defaults"]["popup_flags"] = "1" defs["igBeginPopupContextItem"][1]["defaults"]["str_id"] = "NULL" defs["igBeginPopupContextItem"][1]["funcname"] = "BeginPopupContextItem" -defs["igBeginPopupContextItem"][1]["location"] = "imgui:712" +defs["igBeginPopupContextItem"][1]["location"] = "imgui:713" defs["igBeginPopupContextItem"][1]["namespace"] = "ImGui" defs["igBeginPopupContextItem"][1]["ov_cimguiname"] = "igBeginPopupContextItem" defs["igBeginPopupContextItem"][1]["ret"] = "bool" @@ -11078,7 +11266,7 @@ defs["igBeginPopupContextVoid"][1]["defaults"] = {} defs["igBeginPopupContextVoid"][1]["defaults"]["popup_flags"] = "1" defs["igBeginPopupContextVoid"][1]["defaults"]["str_id"] = "NULL" defs["igBeginPopupContextVoid"][1]["funcname"] = "BeginPopupContextVoid" -defs["igBeginPopupContextVoid"][1]["location"] = "imgui:714" +defs["igBeginPopupContextVoid"][1]["location"] = "imgui:715" defs["igBeginPopupContextVoid"][1]["namespace"] = "ImGui" defs["igBeginPopupContextVoid"][1]["ov_cimguiname"] = "igBeginPopupContextVoid" defs["igBeginPopupContextVoid"][1]["ret"] = "bool" @@ -11102,7 +11290,7 @@ defs["igBeginPopupContextWindow"][1]["defaults"] = {} defs["igBeginPopupContextWindow"][1]["defaults"]["popup_flags"] = "1" defs["igBeginPopupContextWindow"][1]["defaults"]["str_id"] = "NULL" defs["igBeginPopupContextWindow"][1]["funcname"] = "BeginPopupContextWindow" -defs["igBeginPopupContextWindow"][1]["location"] = "imgui:713" +defs["igBeginPopupContextWindow"][1]["location"] = "imgui:714" defs["igBeginPopupContextWindow"][1]["namespace"] = "ImGui" defs["igBeginPopupContextWindow"][1]["ov_cimguiname"] = "igBeginPopupContextWindow" defs["igBeginPopupContextWindow"][1]["ret"] = "bool" @@ -11124,7 +11312,7 @@ defs["igBeginPopupEx"][1]["call_args"] = "(id,extra_flags)" defs["igBeginPopupEx"][1]["cimguiname"] = "igBeginPopupEx" defs["igBeginPopupEx"][1]["defaults"] = {} defs["igBeginPopupEx"][1]["funcname"] = "BeginPopupEx" -defs["igBeginPopupEx"][1]["location"] = "imgui_internal:2667" +defs["igBeginPopupEx"][1]["location"] = "imgui_internal:2781" defs["igBeginPopupEx"][1]["namespace"] = "ImGui" defs["igBeginPopupEx"][1]["ov_cimguiname"] = "igBeginPopupEx" defs["igBeginPopupEx"][1]["ret"] = "bool" @@ -11151,7 +11339,7 @@ defs["igBeginPopupModal"][1]["defaults"] = {} defs["igBeginPopupModal"][1]["defaults"]["flags"] = "0" defs["igBeginPopupModal"][1]["defaults"]["p_open"] = "NULL" defs["igBeginPopupModal"][1]["funcname"] = "BeginPopupModal" -defs["igBeginPopupModal"][1]["location"] = "imgui:692" +defs["igBeginPopupModal"][1]["location"] = "imgui:693" defs["igBeginPopupModal"][1]["namespace"] = "ImGui" defs["igBeginPopupModal"][1]["ov_cimguiname"] = "igBeginPopupModal" defs["igBeginPopupModal"][1]["ret"] = "bool" @@ -11174,7 +11362,7 @@ defs["igBeginTabBar"][1]["cimguiname"] = "igBeginTabBar" defs["igBeginTabBar"][1]["defaults"] = {} defs["igBeginTabBar"][1]["defaults"]["flags"] = "0" defs["igBeginTabBar"][1]["funcname"] = "BeginTabBar" -defs["igBeginTabBar"][1]["location"] = "imgui:797" +defs["igBeginTabBar"][1]["location"] = "imgui:798" defs["igBeginTabBar"][1]["namespace"] = "ImGui" defs["igBeginTabBar"][1]["ov_cimguiname"] = "igBeginTabBar" defs["igBeginTabBar"][1]["ret"] = "bool" @@ -11202,7 +11390,7 @@ defs["igBeginTabBarEx"][1]["call_args"] = "(tab_bar,bb,flags,dock_node)" defs["igBeginTabBarEx"][1]["cimguiname"] = "igBeginTabBarEx" defs["igBeginTabBarEx"][1]["defaults"] = {} defs["igBeginTabBarEx"][1]["funcname"] = "BeginTabBarEx" -defs["igBeginTabBarEx"][1]["location"] = "imgui_internal:2836" +defs["igBeginTabBarEx"][1]["location"] = "imgui_internal:2956" defs["igBeginTabBarEx"][1]["namespace"] = "ImGui" defs["igBeginTabBarEx"][1]["ov_cimguiname"] = "igBeginTabBarEx" defs["igBeginTabBarEx"][1]["ret"] = "bool" @@ -11229,7 +11417,7 @@ defs["igBeginTabItem"][1]["defaults"] = {} defs["igBeginTabItem"][1]["defaults"]["flags"] = "0" defs["igBeginTabItem"][1]["defaults"]["p_open"] = "NULL" defs["igBeginTabItem"][1]["funcname"] = "BeginTabItem" -defs["igBeginTabItem"][1]["location"] = "imgui:799" +defs["igBeginTabItem"][1]["location"] = "imgui:800" defs["igBeginTabItem"][1]["namespace"] = "ImGui" defs["igBeginTabItem"][1]["ov_cimguiname"] = "igBeginTabItem" defs["igBeginTabItem"][1]["ret"] = "bool" @@ -11263,7 +11451,7 @@ defs["igBeginTable"][1]["defaults"]["flags"] = "0" defs["igBeginTable"][1]["defaults"]["inner_width"] = "0.0f" defs["igBeginTable"][1]["defaults"]["outer_size"] = "ImVec2(0.0f,0.0f)" defs["igBeginTable"][1]["funcname"] = "BeginTable" -defs["igBeginTable"][1]["location"] = "imgui:747" +defs["igBeginTable"][1]["location"] = "imgui:748" defs["igBeginTable"][1]["namespace"] = "ImGui" defs["igBeginTable"][1]["ov_cimguiname"] = "igBeginTable" defs["igBeginTable"][1]["ret"] = "bool" @@ -11300,7 +11488,7 @@ defs["igBeginTableEx"][1]["defaults"]["flags"] = "0" defs["igBeginTableEx"][1]["defaults"]["inner_width"] = "0.0f" defs["igBeginTableEx"][1]["defaults"]["outer_size"] = "ImVec2(0,0)" defs["igBeginTableEx"][1]["funcname"] = "BeginTableEx" -defs["igBeginTableEx"][1]["location"] = "imgui_internal:2796" +defs["igBeginTableEx"][1]["location"] = "imgui_internal:2916" defs["igBeginTableEx"][1]["namespace"] = "ImGui" defs["igBeginTableEx"][1]["ov_cimguiname"] = "igBeginTableEx" defs["igBeginTableEx"][1]["ret"] = "bool" @@ -11316,7 +11504,7 @@ defs["igBeginTooltip"][1]["call_args"] = "()" defs["igBeginTooltip"][1]["cimguiname"] = "igBeginTooltip" defs["igBeginTooltip"][1]["defaults"] = {} defs["igBeginTooltip"][1]["funcname"] = "BeginTooltip" -defs["igBeginTooltip"][1]["location"] = "imgui:674" +defs["igBeginTooltip"][1]["location"] = "imgui:675" defs["igBeginTooltip"][1]["namespace"] = "ImGui" defs["igBeginTooltip"][1]["ov_cimguiname"] = "igBeginTooltip" defs["igBeginTooltip"][1]["ret"] = "void" @@ -11325,26 +11513,26 @@ defs["igBeginTooltip"][1]["stname"] = "" defs["igBeginTooltip"]["()"] = defs["igBeginTooltip"][1] defs["igBeginTooltipEx"] = {} defs["igBeginTooltipEx"][1] = {} -defs["igBeginTooltipEx"][1]["args"] = "(ImGuiWindowFlags extra_flags,ImGuiTooltipFlags tooltip_flags)" +defs["igBeginTooltipEx"][1]["args"] = "(ImGuiTooltipFlags tooltip_flags,ImGuiWindowFlags extra_window_flags)" defs["igBeginTooltipEx"][1]["argsT"] = {} defs["igBeginTooltipEx"][1]["argsT"][1] = {} -defs["igBeginTooltipEx"][1]["argsT"][1]["name"] = "extra_flags" -defs["igBeginTooltipEx"][1]["argsT"][1]["type"] = "ImGuiWindowFlags" +defs["igBeginTooltipEx"][1]["argsT"][1]["name"] = "tooltip_flags" +defs["igBeginTooltipEx"][1]["argsT"][1]["type"] = "ImGuiTooltipFlags" defs["igBeginTooltipEx"][1]["argsT"][2] = {} -defs["igBeginTooltipEx"][1]["argsT"][2]["name"] = "tooltip_flags" -defs["igBeginTooltipEx"][1]["argsT"][2]["type"] = "ImGuiTooltipFlags" -defs["igBeginTooltipEx"][1]["argsoriginal"] = "(ImGuiWindowFlags extra_flags,ImGuiTooltipFlags tooltip_flags)" -defs["igBeginTooltipEx"][1]["call_args"] = "(extra_flags,tooltip_flags)" +defs["igBeginTooltipEx"][1]["argsT"][2]["name"] = "extra_window_flags" +defs["igBeginTooltipEx"][1]["argsT"][2]["type"] = "ImGuiWindowFlags" +defs["igBeginTooltipEx"][1]["argsoriginal"] = "(ImGuiTooltipFlags tooltip_flags,ImGuiWindowFlags extra_window_flags)" +defs["igBeginTooltipEx"][1]["call_args"] = "(tooltip_flags,extra_window_flags)" defs["igBeginTooltipEx"][1]["cimguiname"] = "igBeginTooltipEx" defs["igBeginTooltipEx"][1]["defaults"] = {} defs["igBeginTooltipEx"][1]["funcname"] = "BeginTooltipEx" -defs["igBeginTooltipEx"][1]["location"] = "imgui_internal:2668" +defs["igBeginTooltipEx"][1]["location"] = "imgui_internal:2782" defs["igBeginTooltipEx"][1]["namespace"] = "ImGui" defs["igBeginTooltipEx"][1]["ov_cimguiname"] = "igBeginTooltipEx" defs["igBeginTooltipEx"][1]["ret"] = "void" -defs["igBeginTooltipEx"][1]["signature"] = "(ImGuiWindowFlags,ImGuiTooltipFlags)" +defs["igBeginTooltipEx"][1]["signature"] = "(ImGuiTooltipFlags,ImGuiWindowFlags)" defs["igBeginTooltipEx"][1]["stname"] = "" -defs["igBeginTooltipEx"]["(ImGuiWindowFlags,ImGuiTooltipFlags)"] = defs["igBeginTooltipEx"][1] +defs["igBeginTooltipEx"]["(ImGuiTooltipFlags,ImGuiWindowFlags)"] = defs["igBeginTooltipEx"][1] defs["igBeginViewportSideBar"] = {} defs["igBeginViewportSideBar"][1] = {} defs["igBeginViewportSideBar"][1]["args"] = "(const char* name,ImGuiViewport* viewport,ImGuiDir dir,float size,ImGuiWindowFlags window_flags)" @@ -11369,7 +11557,7 @@ defs["igBeginViewportSideBar"][1]["call_args"] = "(name,viewport,dir,size,window defs["igBeginViewportSideBar"][1]["cimguiname"] = "igBeginViewportSideBar" defs["igBeginViewportSideBar"][1]["defaults"] = {} defs["igBeginViewportSideBar"][1]["funcname"] = "BeginViewportSideBar" -defs["igBeginViewportSideBar"][1]["location"] = "imgui_internal:2673" +defs["igBeginViewportSideBar"][1]["location"] = "imgui_internal:2790" defs["igBeginViewportSideBar"][1]["namespace"] = "ImGui" defs["igBeginViewportSideBar"][1]["ov_cimguiname"] = "igBeginViewportSideBar" defs["igBeginViewportSideBar"][1]["ret"] = "bool" @@ -11388,13 +11576,35 @@ defs["igBringWindowToDisplayBack"][1]["call_args"] = "(window)" defs["igBringWindowToDisplayBack"][1]["cimguiname"] = "igBringWindowToDisplayBack" defs["igBringWindowToDisplayBack"][1]["defaults"] = {} defs["igBringWindowToDisplayBack"][1]["funcname"] = "BringWindowToDisplayBack" -defs["igBringWindowToDisplayBack"][1]["location"] = "imgui_internal:2564" +defs["igBringWindowToDisplayBack"][1]["location"] = "imgui_internal:2666" defs["igBringWindowToDisplayBack"][1]["namespace"] = "ImGui" defs["igBringWindowToDisplayBack"][1]["ov_cimguiname"] = "igBringWindowToDisplayBack" defs["igBringWindowToDisplayBack"][1]["ret"] = "void" defs["igBringWindowToDisplayBack"][1]["signature"] = "(ImGuiWindow*)" defs["igBringWindowToDisplayBack"][1]["stname"] = "" defs["igBringWindowToDisplayBack"]["(ImGuiWindow*)"] = defs["igBringWindowToDisplayBack"][1] +defs["igBringWindowToDisplayBehind"] = {} +defs["igBringWindowToDisplayBehind"][1] = {} +defs["igBringWindowToDisplayBehind"][1]["args"] = "(ImGuiWindow* window,ImGuiWindow* above_window)" +defs["igBringWindowToDisplayBehind"][1]["argsT"] = {} +defs["igBringWindowToDisplayBehind"][1]["argsT"][1] = {} +defs["igBringWindowToDisplayBehind"][1]["argsT"][1]["name"] = "window" +defs["igBringWindowToDisplayBehind"][1]["argsT"][1]["type"] = "ImGuiWindow*" +defs["igBringWindowToDisplayBehind"][1]["argsT"][2] = {} +defs["igBringWindowToDisplayBehind"][1]["argsT"][2]["name"] = "above_window" +defs["igBringWindowToDisplayBehind"][1]["argsT"][2]["type"] = "ImGuiWindow*" +defs["igBringWindowToDisplayBehind"][1]["argsoriginal"] = "(ImGuiWindow* window,ImGuiWindow* above_window)" +defs["igBringWindowToDisplayBehind"][1]["call_args"] = "(window,above_window)" +defs["igBringWindowToDisplayBehind"][1]["cimguiname"] = "igBringWindowToDisplayBehind" +defs["igBringWindowToDisplayBehind"][1]["defaults"] = {} +defs["igBringWindowToDisplayBehind"][1]["funcname"] = "BringWindowToDisplayBehind" +defs["igBringWindowToDisplayBehind"][1]["location"] = "imgui_internal:2667" +defs["igBringWindowToDisplayBehind"][1]["namespace"] = "ImGui" +defs["igBringWindowToDisplayBehind"][1]["ov_cimguiname"] = "igBringWindowToDisplayBehind" +defs["igBringWindowToDisplayBehind"][1]["ret"] = "void" +defs["igBringWindowToDisplayBehind"][1]["signature"] = "(ImGuiWindow*,ImGuiWindow*)" +defs["igBringWindowToDisplayBehind"][1]["stname"] = "" +defs["igBringWindowToDisplayBehind"]["(ImGuiWindow*,ImGuiWindow*)"] = defs["igBringWindowToDisplayBehind"][1] defs["igBringWindowToDisplayFront"] = {} defs["igBringWindowToDisplayFront"][1] = {} defs["igBringWindowToDisplayFront"][1]["args"] = "(ImGuiWindow* window)" @@ -11407,7 +11617,7 @@ defs["igBringWindowToDisplayFront"][1]["call_args"] = "(window)" defs["igBringWindowToDisplayFront"][1]["cimguiname"] = "igBringWindowToDisplayFront" defs["igBringWindowToDisplayFront"][1]["defaults"] = {} defs["igBringWindowToDisplayFront"][1]["funcname"] = "BringWindowToDisplayFront" -defs["igBringWindowToDisplayFront"][1]["location"] = "imgui_internal:2563" +defs["igBringWindowToDisplayFront"][1]["location"] = "imgui_internal:2665" defs["igBringWindowToDisplayFront"][1]["namespace"] = "ImGui" defs["igBringWindowToDisplayFront"][1]["ov_cimguiname"] = "igBringWindowToDisplayFront" defs["igBringWindowToDisplayFront"][1]["ret"] = "void" @@ -11426,7 +11636,7 @@ defs["igBringWindowToFocusFront"][1]["call_args"] = "(window)" defs["igBringWindowToFocusFront"][1]["cimguiname"] = "igBringWindowToFocusFront" defs["igBringWindowToFocusFront"][1]["defaults"] = {} defs["igBringWindowToFocusFront"][1]["funcname"] = "BringWindowToFocusFront" -defs["igBringWindowToFocusFront"][1]["location"] = "imgui_internal:2562" +defs["igBringWindowToFocusFront"][1]["location"] = "imgui_internal:2664" defs["igBringWindowToFocusFront"][1]["namespace"] = "ImGui" defs["igBringWindowToFocusFront"][1]["ov_cimguiname"] = "igBringWindowToFocusFront" defs["igBringWindowToFocusFront"][1]["ret"] = "void" @@ -11442,7 +11652,7 @@ defs["igBullet"][1]["call_args"] = "()" defs["igBullet"][1]["cimguiname"] = "igBullet" defs["igBullet"][1]["defaults"] = {} defs["igBullet"][1]["funcname"] = "Bullet" -defs["igBullet"][1]["location"] = "imgui:523" +defs["igBullet"][1]["location"] = "imgui:524" defs["igBullet"][1]["namespace"] = "ImGui" defs["igBullet"][1]["ov_cimguiname"] = "igBullet" defs["igBullet"][1]["ret"] = "void" @@ -11465,7 +11675,7 @@ defs["igBulletText"][1]["cimguiname"] = "igBulletText" defs["igBulletText"][1]["defaults"] = {} defs["igBulletText"][1]["funcname"] = "BulletText" defs["igBulletText"][1]["isvararg"] = "...)" -defs["igBulletText"][1]["location"] = "imgui:505" +defs["igBulletText"][1]["location"] = "imgui:506" defs["igBulletText"][1]["namespace"] = "ImGui" defs["igBulletText"][1]["ov_cimguiname"] = "igBulletText" defs["igBulletText"][1]["ret"] = "void" @@ -11487,7 +11697,7 @@ defs["igBulletTextV"][1]["call_args"] = "(fmt,args)" defs["igBulletTextV"][1]["cimguiname"] = "igBulletTextV" defs["igBulletTextV"][1]["defaults"] = {} defs["igBulletTextV"][1]["funcname"] = "BulletTextV" -defs["igBulletTextV"][1]["location"] = "imgui:506" +defs["igBulletTextV"][1]["location"] = "imgui:507" defs["igBulletTextV"][1]["namespace"] = "ImGui" defs["igBulletTextV"][1]["ov_cimguiname"] = "igBulletTextV" defs["igBulletTextV"][1]["ret"] = "void" @@ -11510,7 +11720,7 @@ defs["igButton"][1]["cimguiname"] = "igButton" defs["igButton"][1]["defaults"] = {} defs["igButton"][1]["defaults"]["size"] = "ImVec2(0,0)" defs["igButton"][1]["funcname"] = "Button" -defs["igButton"][1]["location"] = "imgui:511" +defs["igButton"][1]["location"] = "imgui:512" defs["igButton"][1]["namespace"] = "ImGui" defs["igButton"][1]["ov_cimguiname"] = "igButton" defs["igButton"][1]["ret"] = "bool" @@ -11542,7 +11752,7 @@ defs["igButtonBehavior"][1]["cimguiname"] = "igButtonBehavior" defs["igButtonBehavior"][1]["defaults"] = {} defs["igButtonBehavior"][1]["defaults"]["flags"] = "0" defs["igButtonBehavior"][1]["funcname"] = "ButtonBehavior" -defs["igButtonBehavior"][1]["location"] = "imgui_internal:2898" +defs["igButtonBehavior"][1]["location"] = "imgui_internal:3019" defs["igButtonBehavior"][1]["namespace"] = "ImGui" defs["igButtonBehavior"][1]["ov_cimguiname"] = "igButtonBehavior" defs["igButtonBehavior"][1]["ret"] = "bool" @@ -11569,7 +11779,7 @@ defs["igButtonEx"][1]["defaults"] = {} defs["igButtonEx"][1]["defaults"]["flags"] = "0" defs["igButtonEx"][1]["defaults"]["size_arg"] = "ImVec2(0,0)" defs["igButtonEx"][1]["funcname"] = "ButtonEx" -defs["igButtonEx"][1]["location"] = "imgui_internal:2882" +defs["igButtonEx"][1]["location"] = "imgui_internal:3003" defs["igButtonEx"][1]["namespace"] = "ImGui" defs["igButtonEx"][1]["ov_cimguiname"] = "igButtonEx" defs["igButtonEx"][1]["ret"] = "bool" @@ -11597,7 +11807,7 @@ defs["igCalcItemSize"][1]["call_args"] = "(size,default_w,default_h)" defs["igCalcItemSize"][1]["cimguiname"] = "igCalcItemSize" defs["igCalcItemSize"][1]["defaults"] = {} defs["igCalcItemSize"][1]["funcname"] = "CalcItemSize" -defs["igCalcItemSize"][1]["location"] = "imgui_internal:2635" +defs["igCalcItemSize"][1]["location"] = "imgui_internal:2746" defs["igCalcItemSize"][1]["namespace"] = "ImGui" defs["igCalcItemSize"][1]["nonUDT"] = 1 defs["igCalcItemSize"][1]["ov_cimguiname"] = "igCalcItemSize" @@ -11614,41 +11824,38 @@ defs["igCalcItemWidth"][1]["call_args"] = "()" defs["igCalcItemWidth"][1]["cimguiname"] = "igCalcItemWidth" defs["igCalcItemWidth"][1]["defaults"] = {} defs["igCalcItemWidth"][1]["funcname"] = "CalcItemWidth" -defs["igCalcItemWidth"][1]["location"] = "imgui:428" +defs["igCalcItemWidth"][1]["location"] = "imgui:429" defs["igCalcItemWidth"][1]["namespace"] = "ImGui" defs["igCalcItemWidth"][1]["ov_cimguiname"] = "igCalcItemWidth" defs["igCalcItemWidth"][1]["ret"] = "float" defs["igCalcItemWidth"][1]["signature"] = "()" defs["igCalcItemWidth"][1]["stname"] = "" defs["igCalcItemWidth"]["()"] = defs["igCalcItemWidth"][1] -defs["igCalcListClipping"] = {} -defs["igCalcListClipping"][1] = {} -defs["igCalcListClipping"][1]["args"] = "(int items_count,float items_height,int* out_items_display_start,int* out_items_display_end)" -defs["igCalcListClipping"][1]["argsT"] = {} -defs["igCalcListClipping"][1]["argsT"][1] = {} -defs["igCalcListClipping"][1]["argsT"][1]["name"] = "items_count" -defs["igCalcListClipping"][1]["argsT"][1]["type"] = "int" -defs["igCalcListClipping"][1]["argsT"][2] = {} -defs["igCalcListClipping"][1]["argsT"][2]["name"] = "items_height" -defs["igCalcListClipping"][1]["argsT"][2]["type"] = "float" -defs["igCalcListClipping"][1]["argsT"][3] = {} -defs["igCalcListClipping"][1]["argsT"][3]["name"] = "out_items_display_start" -defs["igCalcListClipping"][1]["argsT"][3]["type"] = "int*" -defs["igCalcListClipping"][1]["argsT"][4] = {} -defs["igCalcListClipping"][1]["argsT"][4]["name"] = "out_items_display_end" -defs["igCalcListClipping"][1]["argsT"][4]["type"] = "int*" -defs["igCalcListClipping"][1]["argsoriginal"] = "(int items_count,float items_height,int* out_items_display_start,int* out_items_display_end)" -defs["igCalcListClipping"][1]["call_args"] = "(items_count,items_height,out_items_display_start,out_items_display_end)" -defs["igCalcListClipping"][1]["cimguiname"] = "igCalcListClipping" -defs["igCalcListClipping"][1]["defaults"] = {} -defs["igCalcListClipping"][1]["funcname"] = "CalcListClipping" -defs["igCalcListClipping"][1]["location"] = "imgui:903" -defs["igCalcListClipping"][1]["namespace"] = "ImGui" -defs["igCalcListClipping"][1]["ov_cimguiname"] = "igCalcListClipping" -defs["igCalcListClipping"][1]["ret"] = "void" -defs["igCalcListClipping"][1]["signature"] = "(int,float,int*,int*)" -defs["igCalcListClipping"][1]["stname"] = "" -defs["igCalcListClipping"]["(int,float,int*,int*)"] = defs["igCalcListClipping"][1] +defs["igCalcRoundingFlagsForRectInRect"] = {} +defs["igCalcRoundingFlagsForRectInRect"][1] = {} +defs["igCalcRoundingFlagsForRectInRect"][1]["args"] = "(const ImRect r_in,const ImRect r_outer,float threshold)" +defs["igCalcRoundingFlagsForRectInRect"][1]["argsT"] = {} +defs["igCalcRoundingFlagsForRectInRect"][1]["argsT"][1] = {} +defs["igCalcRoundingFlagsForRectInRect"][1]["argsT"][1]["name"] = "r_in" +defs["igCalcRoundingFlagsForRectInRect"][1]["argsT"][1]["type"] = "const ImRect" +defs["igCalcRoundingFlagsForRectInRect"][1]["argsT"][2] = {} +defs["igCalcRoundingFlagsForRectInRect"][1]["argsT"][2]["name"] = "r_outer" +defs["igCalcRoundingFlagsForRectInRect"][1]["argsT"][2]["type"] = "const ImRect" +defs["igCalcRoundingFlagsForRectInRect"][1]["argsT"][3] = {} +defs["igCalcRoundingFlagsForRectInRect"][1]["argsT"][3]["name"] = "threshold" +defs["igCalcRoundingFlagsForRectInRect"][1]["argsT"][3]["type"] = "float" +defs["igCalcRoundingFlagsForRectInRect"][1]["argsoriginal"] = "(const ImRect& r_in,const ImRect& r_outer,float threshold)" +defs["igCalcRoundingFlagsForRectInRect"][1]["call_args"] = "(r_in,r_outer,threshold)" +defs["igCalcRoundingFlagsForRectInRect"][1]["cimguiname"] = "igCalcRoundingFlagsForRectInRect" +defs["igCalcRoundingFlagsForRectInRect"][1]["defaults"] = {} +defs["igCalcRoundingFlagsForRectInRect"][1]["funcname"] = "CalcRoundingFlagsForRectInRect" +defs["igCalcRoundingFlagsForRectInRect"][1]["location"] = "imgui_internal:2993" +defs["igCalcRoundingFlagsForRectInRect"][1]["namespace"] = "ImGui" +defs["igCalcRoundingFlagsForRectInRect"][1]["ov_cimguiname"] = "igCalcRoundingFlagsForRectInRect" +defs["igCalcRoundingFlagsForRectInRect"][1]["ret"] = "ImDrawFlags" +defs["igCalcRoundingFlagsForRectInRect"][1]["signature"] = "(const ImRect,const ImRect,float)" +defs["igCalcRoundingFlagsForRectInRect"][1]["stname"] = "" +defs["igCalcRoundingFlagsForRectInRect"]["(const ImRect,const ImRect,float)"] = defs["igCalcRoundingFlagsForRectInRect"][1] defs["igCalcTextSize"] = {} defs["igCalcTextSize"][1] = {} defs["igCalcTextSize"][1]["args"] = "(ImVec2 *pOut,const char* text,const char* text_end,bool hide_text_after_double_hash,float wrap_width)" @@ -11676,7 +11883,7 @@ defs["igCalcTextSize"][1]["defaults"]["hide_text_after_double_hash"] = "false" defs["igCalcTextSize"][1]["defaults"]["text_end"] = "NULL" defs["igCalcTextSize"][1]["defaults"]["wrap_width"] = "-1.0f" defs["igCalcTextSize"][1]["funcname"] = "CalcTextSize" -defs["igCalcTextSize"][1]["location"] = "imgui:908" +defs["igCalcTextSize"][1]["location"] = "imgui:909" defs["igCalcTextSize"][1]["namespace"] = "ImGui" defs["igCalcTextSize"][1]["nonUDT"] = 1 defs["igCalcTextSize"][1]["ov_cimguiname"] = "igCalcTextSize" @@ -11705,7 +11912,7 @@ defs["igCalcTypematicRepeatAmount"][1]["call_args"] = "(t0,t1,repeat_delay,repea defs["igCalcTypematicRepeatAmount"][1]["cimguiname"] = "igCalcTypematicRepeatAmount" defs["igCalcTypematicRepeatAmount"][1]["defaults"] = {} defs["igCalcTypematicRepeatAmount"][1]["funcname"] = "CalcTypematicRepeatAmount" -defs["igCalcTypematicRepeatAmount"][1]["location"] = "imgui_internal:2693" +defs["igCalcTypematicRepeatAmount"][1]["location"] = "imgui_internal:2811" defs["igCalcTypematicRepeatAmount"][1]["namespace"] = "ImGui" defs["igCalcTypematicRepeatAmount"][1]["ov_cimguiname"] = "igCalcTypematicRepeatAmount" defs["igCalcTypematicRepeatAmount"][1]["ret"] = "int" @@ -11727,7 +11934,7 @@ defs["igCalcWindowNextAutoFitSize"][1]["call_args"] = "(window)" defs["igCalcWindowNextAutoFitSize"][1]["cimguiname"] = "igCalcWindowNextAutoFitSize" defs["igCalcWindowNextAutoFitSize"][1]["defaults"] = {} defs["igCalcWindowNextAutoFitSize"][1]["funcname"] = "CalcWindowNextAutoFitSize" -defs["igCalcWindowNextAutoFitSize"][1]["location"] = "imgui_internal:2550" +defs["igCalcWindowNextAutoFitSize"][1]["location"] = "imgui_internal:2649" defs["igCalcWindowNextAutoFitSize"][1]["namespace"] = "ImGui" defs["igCalcWindowNextAutoFitSize"][1]["nonUDT"] = 1 defs["igCalcWindowNextAutoFitSize"][1]["ov_cimguiname"] = "igCalcWindowNextAutoFitSize" @@ -11750,7 +11957,7 @@ defs["igCalcWrapWidthForPos"][1]["call_args"] = "(pos,wrap_pos_x)" defs["igCalcWrapWidthForPos"][1]["cimguiname"] = "igCalcWrapWidthForPos" defs["igCalcWrapWidthForPos"][1]["defaults"] = {} defs["igCalcWrapWidthForPos"][1]["funcname"] = "CalcWrapWidthForPos" -defs["igCalcWrapWidthForPos"][1]["location"] = "imgui_internal:2636" +defs["igCalcWrapWidthForPos"][1]["location"] = "imgui_internal:2747" defs["igCalcWrapWidthForPos"][1]["namespace"] = "ImGui" defs["igCalcWrapWidthForPos"][1]["ov_cimguiname"] = "igCalcWrapWidthForPos" defs["igCalcWrapWidthForPos"][1]["ret"] = "float" @@ -11772,7 +11979,7 @@ defs["igCallContextHooks"][1]["call_args"] = "(context,type)" defs["igCallContextHooks"][1]["cimguiname"] = "igCallContextHooks" defs["igCallContextHooks"][1]["defaults"] = {} defs["igCallContextHooks"][1]["funcname"] = "CallContextHooks" -defs["igCallContextHooks"][1]["location"] = "imgui_internal:2585" +defs["igCallContextHooks"][1]["location"] = "imgui_internal:2690" defs["igCallContextHooks"][1]["namespace"] = "ImGui" defs["igCallContextHooks"][1]["ov_cimguiname"] = "igCallContextHooks" defs["igCallContextHooks"][1]["ret"] = "void" @@ -11792,7 +11999,7 @@ defs["igCaptureKeyboardFromApp"][1]["cimguiname"] = "igCaptureKeyboardFromApp" defs["igCaptureKeyboardFromApp"][1]["defaults"] = {} defs["igCaptureKeyboardFromApp"][1]["defaults"]["want_capture_keyboard_value"] = "true" defs["igCaptureKeyboardFromApp"][1]["funcname"] = "CaptureKeyboardFromApp" -defs["igCaptureKeyboardFromApp"][1]["location"] = "imgui:924" +defs["igCaptureKeyboardFromApp"][1]["location"] = "imgui:925" defs["igCaptureKeyboardFromApp"][1]["namespace"] = "ImGui" defs["igCaptureKeyboardFromApp"][1]["ov_cimguiname"] = "igCaptureKeyboardFromApp" defs["igCaptureKeyboardFromApp"][1]["ret"] = "void" @@ -11812,7 +12019,7 @@ defs["igCaptureMouseFromApp"][1]["cimguiname"] = "igCaptureMouseFromApp" defs["igCaptureMouseFromApp"][1]["defaults"] = {} defs["igCaptureMouseFromApp"][1]["defaults"]["want_capture_mouse_value"] = "true" defs["igCaptureMouseFromApp"][1]["funcname"] = "CaptureMouseFromApp" -defs["igCaptureMouseFromApp"][1]["location"] = "imgui:944" +defs["igCaptureMouseFromApp"][1]["location"] = "imgui:946" defs["igCaptureMouseFromApp"][1]["namespace"] = "ImGui" defs["igCaptureMouseFromApp"][1]["ov_cimguiname"] = "igCaptureMouseFromApp" defs["igCaptureMouseFromApp"][1]["ret"] = "void" @@ -11834,7 +12041,7 @@ defs["igCheckbox"][1]["call_args"] = "(label,v)" defs["igCheckbox"][1]["cimguiname"] = "igCheckbox" defs["igCheckbox"][1]["defaults"] = {} defs["igCheckbox"][1]["funcname"] = "Checkbox" -defs["igCheckbox"][1]["location"] = "imgui:517" +defs["igCheckbox"][1]["location"] = "imgui:518" defs["igCheckbox"][1]["namespace"] = "ImGui" defs["igCheckbox"][1]["ov_cimguiname"] = "igCheckbox" defs["igCheckbox"][1]["ret"] = "bool" @@ -11859,7 +12066,7 @@ defs["igCheckboxFlags"][1]["call_args"] = "(label,flags,flags_value)" defs["igCheckboxFlags"][1]["cimguiname"] = "igCheckboxFlags" defs["igCheckboxFlags"][1]["defaults"] = {} defs["igCheckboxFlags"][1]["funcname"] = "CheckboxFlags" -defs["igCheckboxFlags"][1]["location"] = "imgui:518" +defs["igCheckboxFlags"][1]["location"] = "imgui:519" defs["igCheckboxFlags"][1]["namespace"] = "ImGui" defs["igCheckboxFlags"][1]["ov_cimguiname"] = "igCheckboxFlagsIntPtr" defs["igCheckboxFlags"][1]["ret"] = "bool" @@ -11882,7 +12089,7 @@ defs["igCheckboxFlags"][2]["call_args"] = "(label,flags,flags_value)" defs["igCheckboxFlags"][2]["cimguiname"] = "igCheckboxFlags" defs["igCheckboxFlags"][2]["defaults"] = {} defs["igCheckboxFlags"][2]["funcname"] = "CheckboxFlags" -defs["igCheckboxFlags"][2]["location"] = "imgui:519" +defs["igCheckboxFlags"][2]["location"] = "imgui:520" defs["igCheckboxFlags"][2]["namespace"] = "ImGui" defs["igCheckboxFlags"][2]["ov_cimguiname"] = "igCheckboxFlagsUintPtr" defs["igCheckboxFlags"][2]["ret"] = "bool" @@ -11905,7 +12112,7 @@ defs["igCheckboxFlags"][3]["call_args"] = "(label,flags,flags_value)" defs["igCheckboxFlags"][3]["cimguiname"] = "igCheckboxFlags" defs["igCheckboxFlags"][3]["defaults"] = {} defs["igCheckboxFlags"][3]["funcname"] = "CheckboxFlags" -defs["igCheckboxFlags"][3]["location"] = "imgui_internal:2894" +defs["igCheckboxFlags"][3]["location"] = "imgui_internal:3015" defs["igCheckboxFlags"][3]["namespace"] = "ImGui" defs["igCheckboxFlags"][3]["ov_cimguiname"] = "igCheckboxFlagsS64Ptr" defs["igCheckboxFlags"][3]["ret"] = "bool" @@ -11928,7 +12135,7 @@ defs["igCheckboxFlags"][4]["call_args"] = "(label,flags,flags_value)" defs["igCheckboxFlags"][4]["cimguiname"] = "igCheckboxFlags" defs["igCheckboxFlags"][4]["defaults"] = {} defs["igCheckboxFlags"][4]["funcname"] = "CheckboxFlags" -defs["igCheckboxFlags"][4]["location"] = "imgui_internal:2895" +defs["igCheckboxFlags"][4]["location"] = "imgui_internal:3016" defs["igCheckboxFlags"][4]["namespace"] = "ImGui" defs["igCheckboxFlags"][4]["ov_cimguiname"] = "igCheckboxFlagsU64Ptr" defs["igCheckboxFlags"][4]["ret"] = "bool" @@ -11947,7 +12154,7 @@ defs["igClearActiveID"][1]["call_args"] = "()" defs["igClearActiveID"][1]["cimguiname"] = "igClearActiveID" defs["igClearActiveID"][1]["defaults"] = {} defs["igClearActiveID"][1]["funcname"] = "ClearActiveID" -defs["igClearActiveID"][1]["location"] = "imgui_internal:2619" +defs["igClearActiveID"][1]["location"] = "imgui_internal:2731" defs["igClearActiveID"][1]["namespace"] = "ImGui" defs["igClearActiveID"][1]["ov_cimguiname"] = "igClearActiveID" defs["igClearActiveID"][1]["ret"] = "void" @@ -11963,7 +12170,7 @@ defs["igClearDragDrop"][1]["call_args"] = "()" defs["igClearDragDrop"][1]["cimguiname"] = "igClearDragDrop" defs["igClearDragDrop"][1]["defaults"] = {} defs["igClearDragDrop"][1]["funcname"] = "ClearDragDrop" -defs["igClearDragDrop"][1]["location"] = "imgui_internal:2769" +defs["igClearDragDrop"][1]["location"] = "imgui_internal:2889" defs["igClearDragDrop"][1]["namespace"] = "ImGui" defs["igClearDragDrop"][1]["ov_cimguiname"] = "igClearDragDrop" defs["igClearDragDrop"][1]["ret"] = "void" @@ -11979,7 +12186,7 @@ defs["igClearIniSettings"][1]["call_args"] = "()" defs["igClearIniSettings"][1]["cimguiname"] = "igClearIniSettings" defs["igClearIniSettings"][1]["defaults"] = {} defs["igClearIniSettings"][1]["funcname"] = "ClearIniSettings" -defs["igClearIniSettings"][1]["location"] = "imgui_internal:2597" +defs["igClearIniSettings"][1]["location"] = "imgui_internal:2702" defs["igClearIniSettings"][1]["namespace"] = "ImGui" defs["igClearIniSettings"][1]["ov_cimguiname"] = "igClearIniSettings" defs["igClearIniSettings"][1]["ret"] = "void" @@ -12001,7 +12208,7 @@ defs["igCloseButton"][1]["call_args"] = "(id,pos)" defs["igCloseButton"][1]["cimguiname"] = "igCloseButton" defs["igCloseButton"][1]["defaults"] = {} defs["igCloseButton"][1]["funcname"] = "CloseButton" -defs["igCloseButton"][1]["location"] = "imgui_internal:2883" +defs["igCloseButton"][1]["location"] = "imgui_internal:3004" defs["igCloseButton"][1]["namespace"] = "ImGui" defs["igCloseButton"][1]["ov_cimguiname"] = "igCloseButton" defs["igCloseButton"][1]["ret"] = "bool" @@ -12017,7 +12224,7 @@ defs["igCloseCurrentPopup"][1]["call_args"] = "()" defs["igCloseCurrentPopup"][1]["cimguiname"] = "igCloseCurrentPopup" defs["igCloseCurrentPopup"][1]["defaults"] = {} defs["igCloseCurrentPopup"][1]["funcname"] = "CloseCurrentPopup" -defs["igCloseCurrentPopup"][1]["location"] = "imgui:705" +defs["igCloseCurrentPopup"][1]["location"] = "imgui:706" defs["igCloseCurrentPopup"][1]["namespace"] = "ImGui" defs["igCloseCurrentPopup"][1]["ov_cimguiname"] = "igCloseCurrentPopup" defs["igCloseCurrentPopup"][1]["ret"] = "void" @@ -12039,13 +12246,29 @@ defs["igClosePopupToLevel"][1]["call_args"] = "(remaining,restore_focus_to_windo defs["igClosePopupToLevel"][1]["cimguiname"] = "igClosePopupToLevel" defs["igClosePopupToLevel"][1]["defaults"] = {} defs["igClosePopupToLevel"][1]["funcname"] = "ClosePopupToLevel" -defs["igClosePopupToLevel"][1]["location"] = "imgui_internal:2664" +defs["igClosePopupToLevel"][1]["location"] = "imgui_internal:2777" defs["igClosePopupToLevel"][1]["namespace"] = "ImGui" defs["igClosePopupToLevel"][1]["ov_cimguiname"] = "igClosePopupToLevel" defs["igClosePopupToLevel"][1]["ret"] = "void" defs["igClosePopupToLevel"][1]["signature"] = "(int,bool)" defs["igClosePopupToLevel"][1]["stname"] = "" defs["igClosePopupToLevel"]["(int,bool)"] = defs["igClosePopupToLevel"][1] +defs["igClosePopupsExceptModals"] = {} +defs["igClosePopupsExceptModals"][1] = {} +defs["igClosePopupsExceptModals"][1]["args"] = "()" +defs["igClosePopupsExceptModals"][1]["argsT"] = {} +defs["igClosePopupsExceptModals"][1]["argsoriginal"] = "()" +defs["igClosePopupsExceptModals"][1]["call_args"] = "()" +defs["igClosePopupsExceptModals"][1]["cimguiname"] = "igClosePopupsExceptModals" +defs["igClosePopupsExceptModals"][1]["defaults"] = {} +defs["igClosePopupsExceptModals"][1]["funcname"] = "ClosePopupsExceptModals" +defs["igClosePopupsExceptModals"][1]["location"] = "imgui_internal:2779" +defs["igClosePopupsExceptModals"][1]["namespace"] = "ImGui" +defs["igClosePopupsExceptModals"][1]["ov_cimguiname"] = "igClosePopupsExceptModals" +defs["igClosePopupsExceptModals"][1]["ret"] = "void" +defs["igClosePopupsExceptModals"][1]["signature"] = "()" +defs["igClosePopupsExceptModals"][1]["stname"] = "" +defs["igClosePopupsExceptModals"]["()"] = defs["igClosePopupsExceptModals"][1] defs["igClosePopupsOverWindow"] = {} defs["igClosePopupsOverWindow"][1] = {} defs["igClosePopupsOverWindow"][1]["args"] = "(ImGuiWindow* ref_window,bool restore_focus_to_window_under_popup)" @@ -12061,7 +12284,7 @@ defs["igClosePopupsOverWindow"][1]["call_args"] = "(ref_window,restore_focus_to_ defs["igClosePopupsOverWindow"][1]["cimguiname"] = "igClosePopupsOverWindow" defs["igClosePopupsOverWindow"][1]["defaults"] = {} defs["igClosePopupsOverWindow"][1]["funcname"] = "ClosePopupsOverWindow" -defs["igClosePopupsOverWindow"][1]["location"] = "imgui_internal:2665" +defs["igClosePopupsOverWindow"][1]["location"] = "imgui_internal:2778" defs["igClosePopupsOverWindow"][1]["namespace"] = "ImGui" defs["igClosePopupsOverWindow"][1]["ov_cimguiname"] = "igClosePopupsOverWindow" defs["igClosePopupsOverWindow"][1]["ret"] = "void" @@ -12086,7 +12309,7 @@ defs["igCollapseButton"][1]["call_args"] = "(id,pos,dock_node)" defs["igCollapseButton"][1]["cimguiname"] = "igCollapseButton" defs["igCollapseButton"][1]["defaults"] = {} defs["igCollapseButton"][1]["funcname"] = "CollapseButton" -defs["igCollapseButton"][1]["location"] = "imgui_internal:2884" +defs["igCollapseButton"][1]["location"] = "imgui_internal:3005" defs["igCollapseButton"][1]["namespace"] = "ImGui" defs["igCollapseButton"][1]["ov_cimguiname"] = "igCollapseButton" defs["igCollapseButton"][1]["ret"] = "bool" @@ -12109,7 +12332,7 @@ defs["igCollapsingHeader"][1]["cimguiname"] = "igCollapsingHeader" defs["igCollapsingHeader"][1]["defaults"] = {} defs["igCollapsingHeader"][1]["defaults"]["flags"] = "0" defs["igCollapsingHeader"][1]["funcname"] = "CollapsingHeader" -defs["igCollapsingHeader"][1]["location"] = "imgui:623" +defs["igCollapsingHeader"][1]["location"] = "imgui:624" defs["igCollapsingHeader"][1]["namespace"] = "ImGui" defs["igCollapsingHeader"][1]["ov_cimguiname"] = "igCollapsingHeaderTreeNodeFlags" defs["igCollapsingHeader"][1]["ret"] = "bool" @@ -12133,7 +12356,7 @@ defs["igCollapsingHeader"][2]["cimguiname"] = "igCollapsingHeader" defs["igCollapsingHeader"][2]["defaults"] = {} defs["igCollapsingHeader"][2]["defaults"]["flags"] = "0" defs["igCollapsingHeader"][2]["funcname"] = "CollapsingHeader" -defs["igCollapsingHeader"][2]["location"] = "imgui:624" +defs["igCollapsingHeader"][2]["location"] = "imgui:625" defs["igCollapsingHeader"][2]["namespace"] = "ImGui" defs["igCollapsingHeader"][2]["ov_cimguiname"] = "igCollapsingHeaderBoolPtr" defs["igCollapsingHeader"][2]["ret"] = "bool" @@ -12164,7 +12387,7 @@ defs["igColorButton"][1]["defaults"] = {} defs["igColorButton"][1]["defaults"]["flags"] = "0" defs["igColorButton"][1]["defaults"]["size"] = "ImVec2(0,0)" defs["igColorButton"][1]["funcname"] = "ColorButton" -defs["igColorButton"][1]["location"] = "imgui:604" +defs["igColorButton"][1]["location"] = "imgui:605" defs["igColorButton"][1]["namespace"] = "ImGui" defs["igColorButton"][1]["ov_cimguiname"] = "igColorButton" defs["igColorButton"][1]["ret"] = "bool" @@ -12183,7 +12406,7 @@ defs["igColorConvertFloat4ToU32"][1]["call_args"] = "(in)" defs["igColorConvertFloat4ToU32"][1]["cimguiname"] = "igColorConvertFloat4ToU32" defs["igColorConvertFloat4ToU32"][1]["defaults"] = {} defs["igColorConvertFloat4ToU32"][1]["funcname"] = "ColorConvertFloat4ToU32" -defs["igColorConvertFloat4ToU32"][1]["location"] = "imgui:912" +defs["igColorConvertFloat4ToU32"][1]["location"] = "imgui:913" defs["igColorConvertFloat4ToU32"][1]["namespace"] = "ImGui" defs["igColorConvertFloat4ToU32"][1]["ov_cimguiname"] = "igColorConvertFloat4ToU32" defs["igColorConvertFloat4ToU32"][1]["ret"] = "ImU32" @@ -12220,7 +12443,7 @@ defs["igColorConvertHSVtoRGB"][1]["call_args"] = "(h,s,v,*out_r,*out_g,*out_b)" defs["igColorConvertHSVtoRGB"][1]["cimguiname"] = "igColorConvertHSVtoRGB" defs["igColorConvertHSVtoRGB"][1]["defaults"] = {} defs["igColorConvertHSVtoRGB"][1]["funcname"] = "ColorConvertHSVtoRGB" -defs["igColorConvertHSVtoRGB"][1]["location"] = "imgui:914" +defs["igColorConvertHSVtoRGB"][1]["location"] = "imgui:915" defs["igColorConvertHSVtoRGB"][1]["namespace"] = "ImGui" defs["igColorConvertHSVtoRGB"][1]["ov_cimguiname"] = "igColorConvertHSVtoRGB" defs["igColorConvertHSVtoRGB"][1]["ret"] = "void" @@ -12257,7 +12480,7 @@ defs["igColorConvertRGBtoHSV"][1]["call_args"] = "(r,g,b,*out_h,*out_s,*out_v)" defs["igColorConvertRGBtoHSV"][1]["cimguiname"] = "igColorConvertRGBtoHSV" defs["igColorConvertRGBtoHSV"][1]["defaults"] = {} defs["igColorConvertRGBtoHSV"][1]["funcname"] = "ColorConvertRGBtoHSV" -defs["igColorConvertRGBtoHSV"][1]["location"] = "imgui:913" +defs["igColorConvertRGBtoHSV"][1]["location"] = "imgui:914" defs["igColorConvertRGBtoHSV"][1]["namespace"] = "ImGui" defs["igColorConvertRGBtoHSV"][1]["ov_cimguiname"] = "igColorConvertRGBtoHSV" defs["igColorConvertRGBtoHSV"][1]["ret"] = "void" @@ -12279,7 +12502,7 @@ defs["igColorConvertU32ToFloat4"][1]["call_args"] = "(in)" defs["igColorConvertU32ToFloat4"][1]["cimguiname"] = "igColorConvertU32ToFloat4" defs["igColorConvertU32ToFloat4"][1]["defaults"] = {} defs["igColorConvertU32ToFloat4"][1]["funcname"] = "ColorConvertU32ToFloat4" -defs["igColorConvertU32ToFloat4"][1]["location"] = "imgui:911" +defs["igColorConvertU32ToFloat4"][1]["location"] = "imgui:912" defs["igColorConvertU32ToFloat4"][1]["namespace"] = "ImGui" defs["igColorConvertU32ToFloat4"][1]["nonUDT"] = 1 defs["igColorConvertU32ToFloat4"][1]["ov_cimguiname"] = "igColorConvertU32ToFloat4" @@ -12306,7 +12529,7 @@ defs["igColorEdit3"][1]["cimguiname"] = "igColorEdit3" defs["igColorEdit3"][1]["defaults"] = {} defs["igColorEdit3"][1]["defaults"]["flags"] = "0" defs["igColorEdit3"][1]["funcname"] = "ColorEdit3" -defs["igColorEdit3"][1]["location"] = "imgui:600" +defs["igColorEdit3"][1]["location"] = "imgui:601" defs["igColorEdit3"][1]["namespace"] = "ImGui" defs["igColorEdit3"][1]["ov_cimguiname"] = "igColorEdit3" defs["igColorEdit3"][1]["ret"] = "bool" @@ -12332,7 +12555,7 @@ defs["igColorEdit4"][1]["cimguiname"] = "igColorEdit4" defs["igColorEdit4"][1]["defaults"] = {} defs["igColorEdit4"][1]["defaults"]["flags"] = "0" defs["igColorEdit4"][1]["funcname"] = "ColorEdit4" -defs["igColorEdit4"][1]["location"] = "imgui:601" +defs["igColorEdit4"][1]["location"] = "imgui:602" defs["igColorEdit4"][1]["namespace"] = "ImGui" defs["igColorEdit4"][1]["ov_cimguiname"] = "igColorEdit4" defs["igColorEdit4"][1]["ret"] = "bool" @@ -12354,7 +12577,7 @@ defs["igColorEditOptionsPopup"][1]["call_args"] = "(col,flags)" defs["igColorEditOptionsPopup"][1]["cimguiname"] = "igColorEditOptionsPopup" defs["igColorEditOptionsPopup"][1]["defaults"] = {} defs["igColorEditOptionsPopup"][1]["funcname"] = "ColorEditOptionsPopup" -defs["igColorEditOptionsPopup"][1]["location"] = "imgui_internal:2933" +defs["igColorEditOptionsPopup"][1]["location"] = "imgui_internal:3054" defs["igColorEditOptionsPopup"][1]["namespace"] = "ImGui" defs["igColorEditOptionsPopup"][1]["ov_cimguiname"] = "igColorEditOptionsPopup" defs["igColorEditOptionsPopup"][1]["ret"] = "void" @@ -12380,7 +12603,7 @@ defs["igColorPicker3"][1]["cimguiname"] = "igColorPicker3" defs["igColorPicker3"][1]["defaults"] = {} defs["igColorPicker3"][1]["defaults"]["flags"] = "0" defs["igColorPicker3"][1]["funcname"] = "ColorPicker3" -defs["igColorPicker3"][1]["location"] = "imgui:602" +defs["igColorPicker3"][1]["location"] = "imgui:603" defs["igColorPicker3"][1]["namespace"] = "ImGui" defs["igColorPicker3"][1]["ov_cimguiname"] = "igColorPicker3" defs["igColorPicker3"][1]["ret"] = "bool" @@ -12410,7 +12633,7 @@ defs["igColorPicker4"][1]["defaults"] = {} defs["igColorPicker4"][1]["defaults"]["flags"] = "0" defs["igColorPicker4"][1]["defaults"]["ref_col"] = "NULL" defs["igColorPicker4"][1]["funcname"] = "ColorPicker4" -defs["igColorPicker4"][1]["location"] = "imgui:603" +defs["igColorPicker4"][1]["location"] = "imgui:604" defs["igColorPicker4"][1]["namespace"] = "ImGui" defs["igColorPicker4"][1]["ov_cimguiname"] = "igColorPicker4" defs["igColorPicker4"][1]["ret"] = "bool" @@ -12432,7 +12655,7 @@ defs["igColorPickerOptionsPopup"][1]["call_args"] = "(ref_col,flags)" defs["igColorPickerOptionsPopup"][1]["cimguiname"] = "igColorPickerOptionsPopup" defs["igColorPickerOptionsPopup"][1]["defaults"] = {} defs["igColorPickerOptionsPopup"][1]["funcname"] = "ColorPickerOptionsPopup" -defs["igColorPickerOptionsPopup"][1]["location"] = "imgui_internal:2934" +defs["igColorPickerOptionsPopup"][1]["location"] = "imgui_internal:3055" defs["igColorPickerOptionsPopup"][1]["namespace"] = "ImGui" defs["igColorPickerOptionsPopup"][1]["ov_cimguiname"] = "igColorPickerOptionsPopup" defs["igColorPickerOptionsPopup"][1]["ret"] = "void" @@ -12457,7 +12680,7 @@ defs["igColorTooltip"][1]["call_args"] = "(text,col,flags)" defs["igColorTooltip"][1]["cimguiname"] = "igColorTooltip" defs["igColorTooltip"][1]["defaults"] = {} defs["igColorTooltip"][1]["funcname"] = "ColorTooltip" -defs["igColorTooltip"][1]["location"] = "imgui_internal:2932" +defs["igColorTooltip"][1]["location"] = "imgui_internal:3053" defs["igColorTooltip"][1]["namespace"] = "ImGui" defs["igColorTooltip"][1]["ov_cimguiname"] = "igColorTooltip" defs["igColorTooltip"][1]["ret"] = "void" @@ -12485,7 +12708,7 @@ defs["igColumns"][1]["defaults"]["border"] = "true" defs["igColumns"][1]["defaults"]["count"] = "1" defs["igColumns"][1]["defaults"]["id"] = "NULL" defs["igColumns"][1]["funcname"] = "Columns" -defs["igColumns"][1]["location"] = "imgui:786" +defs["igColumns"][1]["location"] = "imgui:787" defs["igColumns"][1]["namespace"] = "ImGui" defs["igColumns"][1]["ov_cimguiname"] = "igColumns" defs["igColumns"][1]["ret"] = "void" @@ -12517,7 +12740,7 @@ defs["igCombo"][1]["cimguiname"] = "igCombo" defs["igCombo"][1]["defaults"] = {} defs["igCombo"][1]["defaults"]["popup_max_height_in_items"] = "-1" defs["igCombo"][1]["funcname"] = "Combo" -defs["igCombo"][1]["location"] = "imgui:530" +defs["igCombo"][1]["location"] = "imgui:531" defs["igCombo"][1]["namespace"] = "ImGui" defs["igCombo"][1]["ov_cimguiname"] = "igComboStr_arr" defs["igCombo"][1]["ret"] = "bool" @@ -12544,7 +12767,7 @@ defs["igCombo"][2]["cimguiname"] = "igCombo" defs["igCombo"][2]["defaults"] = {} defs["igCombo"][2]["defaults"]["popup_max_height_in_items"] = "-1" defs["igCombo"][2]["funcname"] = "Combo" -defs["igCombo"][2]["location"] = "imgui:531" +defs["igCombo"][2]["location"] = "imgui:532" defs["igCombo"][2]["namespace"] = "ImGui" defs["igCombo"][2]["ov_cimguiname"] = "igComboStr" defs["igCombo"][2]["ret"] = "bool" @@ -12579,7 +12802,7 @@ defs["igCombo"][3]["cimguiname"] = "igCombo" defs["igCombo"][3]["defaults"] = {} defs["igCombo"][3]["defaults"]["popup_max_height_in_items"] = "-1" defs["igCombo"][3]["funcname"] = "Combo" -defs["igCombo"][3]["location"] = "imgui:532" +defs["igCombo"][3]["location"] = "imgui:533" defs["igCombo"][3]["namespace"] = "ImGui" defs["igCombo"][3]["ov_cimguiname"] = "igComboFnBoolPtr" defs["igCombo"][3]["ret"] = "bool" @@ -12620,7 +12843,7 @@ defs["igCreateNewWindowSettings"][1]["call_args"] = "(name)" defs["igCreateNewWindowSettings"][1]["cimguiname"] = "igCreateNewWindowSettings" defs["igCreateNewWindowSettings"][1]["defaults"] = {} defs["igCreateNewWindowSettings"][1]["funcname"] = "CreateNewWindowSettings" -defs["igCreateNewWindowSettings"][1]["location"] = "imgui_internal:2598" +defs["igCreateNewWindowSettings"][1]["location"] = "imgui_internal:2703" defs["igCreateNewWindowSettings"][1]["namespace"] = "ImGui" defs["igCreateNewWindowSettings"][1]["ov_cimguiname"] = "igCreateNewWindowSettings" defs["igCreateNewWindowSettings"][1]["ret"] = "ImGuiWindowSettings*" @@ -12651,7 +12874,7 @@ defs["igDataTypeApplyOp"][1]["call_args"] = "(data_type,op,output,arg_1,arg_2)" defs["igDataTypeApplyOp"][1]["cimguiname"] = "igDataTypeApplyOp" defs["igDataTypeApplyOp"][1]["defaults"] = {} defs["igDataTypeApplyOp"][1]["funcname"] = "DataTypeApplyOp" -defs["igDataTypeApplyOp"][1]["location"] = "imgui_internal:2919" +defs["igDataTypeApplyOp"][1]["location"] = "imgui_internal:3040" defs["igDataTypeApplyOp"][1]["namespace"] = "ImGui" defs["igDataTypeApplyOp"][1]["ov_cimguiname"] = "igDataTypeApplyOp" defs["igDataTypeApplyOp"][1]["ret"] = "void" @@ -12682,7 +12905,7 @@ defs["igDataTypeApplyOpFromText"][1]["call_args"] = "(buf,initial_value_buf,data defs["igDataTypeApplyOpFromText"][1]["cimguiname"] = "igDataTypeApplyOpFromText" defs["igDataTypeApplyOpFromText"][1]["defaults"] = {} defs["igDataTypeApplyOpFromText"][1]["funcname"] = "DataTypeApplyOpFromText" -defs["igDataTypeApplyOpFromText"][1]["location"] = "imgui_internal:2920" +defs["igDataTypeApplyOpFromText"][1]["location"] = "imgui_internal:3041" defs["igDataTypeApplyOpFromText"][1]["namespace"] = "ImGui" defs["igDataTypeApplyOpFromText"][1]["ov_cimguiname"] = "igDataTypeApplyOpFromText" defs["igDataTypeApplyOpFromText"][1]["ret"] = "bool" @@ -12710,7 +12933,7 @@ defs["igDataTypeClamp"][1]["call_args"] = "(data_type,p_data,p_min,p_max)" defs["igDataTypeClamp"][1]["cimguiname"] = "igDataTypeClamp" defs["igDataTypeClamp"][1]["defaults"] = {} defs["igDataTypeClamp"][1]["funcname"] = "DataTypeClamp" -defs["igDataTypeClamp"][1]["location"] = "imgui_internal:2922" +defs["igDataTypeClamp"][1]["location"] = "imgui_internal:3043" defs["igDataTypeClamp"][1]["namespace"] = "ImGui" defs["igDataTypeClamp"][1]["ov_cimguiname"] = "igDataTypeClamp" defs["igDataTypeClamp"][1]["ret"] = "bool" @@ -12735,7 +12958,7 @@ defs["igDataTypeCompare"][1]["call_args"] = "(data_type,arg_1,arg_2)" defs["igDataTypeCompare"][1]["cimguiname"] = "igDataTypeCompare" defs["igDataTypeCompare"][1]["defaults"] = {} defs["igDataTypeCompare"][1]["funcname"] = "DataTypeCompare" -defs["igDataTypeCompare"][1]["location"] = "imgui_internal:2921" +defs["igDataTypeCompare"][1]["location"] = "imgui_internal:3042" defs["igDataTypeCompare"][1]["namespace"] = "ImGui" defs["igDataTypeCompare"][1]["ov_cimguiname"] = "igDataTypeCompare" defs["igDataTypeCompare"][1]["ret"] = "int" @@ -12766,7 +12989,7 @@ defs["igDataTypeFormatString"][1]["call_args"] = "(buf,buf_size,data_type,p_data defs["igDataTypeFormatString"][1]["cimguiname"] = "igDataTypeFormatString" defs["igDataTypeFormatString"][1]["defaults"] = {} defs["igDataTypeFormatString"][1]["funcname"] = "DataTypeFormatString" -defs["igDataTypeFormatString"][1]["location"] = "imgui_internal:2918" +defs["igDataTypeFormatString"][1]["location"] = "imgui_internal:3039" defs["igDataTypeFormatString"][1]["namespace"] = "ImGui" defs["igDataTypeFormatString"][1]["ov_cimguiname"] = "igDataTypeFormatString" defs["igDataTypeFormatString"][1]["ret"] = "int" @@ -12785,7 +13008,7 @@ defs["igDataTypeGetInfo"][1]["call_args"] = "(data_type)" defs["igDataTypeGetInfo"][1]["cimguiname"] = "igDataTypeGetInfo" defs["igDataTypeGetInfo"][1]["defaults"] = {} defs["igDataTypeGetInfo"][1]["funcname"] = "DataTypeGetInfo" -defs["igDataTypeGetInfo"][1]["location"] = "imgui_internal:2917" +defs["igDataTypeGetInfo"][1]["location"] = "imgui_internal:3038" defs["igDataTypeGetInfo"][1]["namespace"] = "ImGui" defs["igDataTypeGetInfo"][1]["ov_cimguiname"] = "igDataTypeGetInfo" defs["igDataTypeGetInfo"][1]["ret"] = "const ImGuiDataTypeInfo*" @@ -12822,7 +13045,7 @@ defs["igDebugCheckVersionAndDataLayout"][1]["call_args"] = "(version_str,sz_io,s defs["igDebugCheckVersionAndDataLayout"][1]["cimguiname"] = "igDebugCheckVersionAndDataLayout" defs["igDebugCheckVersionAndDataLayout"][1]["defaults"] = {} defs["igDebugCheckVersionAndDataLayout"][1]["funcname"] = "DebugCheckVersionAndDataLayout" -defs["igDebugCheckVersionAndDataLayout"][1]["location"] = "imgui:962" +defs["igDebugCheckVersionAndDataLayout"][1]["location"] = "imgui:964" defs["igDebugCheckVersionAndDataLayout"][1]["namespace"] = "ImGui" defs["igDebugCheckVersionAndDataLayout"][1]["ov_cimguiname"] = "igDebugCheckVersionAndDataLayout" defs["igDebugCheckVersionAndDataLayout"][1]["ret"] = "bool" @@ -12842,13 +13065,41 @@ defs["igDebugDrawItemRect"][1]["cimguiname"] = "igDebugDrawItemRect" defs["igDebugDrawItemRect"][1]["defaults"] = {} defs["igDebugDrawItemRect"][1]["defaults"]["col"] = "4278190335" defs["igDebugDrawItemRect"][1]["funcname"] = "DebugDrawItemRect" -defs["igDebugDrawItemRect"][1]["location"] = "imgui_internal:2950" +defs["igDebugDrawItemRect"][1]["location"] = "imgui_internal:3072" defs["igDebugDrawItemRect"][1]["namespace"] = "ImGui" defs["igDebugDrawItemRect"][1]["ov_cimguiname"] = "igDebugDrawItemRect" defs["igDebugDrawItemRect"][1]["ret"] = "void" defs["igDebugDrawItemRect"][1]["signature"] = "(ImU32)" defs["igDebugDrawItemRect"][1]["stname"] = "" defs["igDebugDrawItemRect"]["(ImU32)"] = defs["igDebugDrawItemRect"][1] +defs["igDebugHookIdInfo"] = {} +defs["igDebugHookIdInfo"][1] = {} +defs["igDebugHookIdInfo"][1]["args"] = "(ImGuiID id,ImGuiDataType data_type,const void* data_id,const void* data_id_end)" +defs["igDebugHookIdInfo"][1]["argsT"] = {} +defs["igDebugHookIdInfo"][1]["argsT"][1] = {} +defs["igDebugHookIdInfo"][1]["argsT"][1]["name"] = "id" +defs["igDebugHookIdInfo"][1]["argsT"][1]["type"] = "ImGuiID" +defs["igDebugHookIdInfo"][1]["argsT"][2] = {} +defs["igDebugHookIdInfo"][1]["argsT"][2]["name"] = "data_type" +defs["igDebugHookIdInfo"][1]["argsT"][2]["type"] = "ImGuiDataType" +defs["igDebugHookIdInfo"][1]["argsT"][3] = {} +defs["igDebugHookIdInfo"][1]["argsT"][3]["name"] = "data_id" +defs["igDebugHookIdInfo"][1]["argsT"][3]["type"] = "const void*" +defs["igDebugHookIdInfo"][1]["argsT"][4] = {} +defs["igDebugHookIdInfo"][1]["argsT"][4]["name"] = "data_id_end" +defs["igDebugHookIdInfo"][1]["argsT"][4]["type"] = "const void*" +defs["igDebugHookIdInfo"][1]["argsoriginal"] = "(ImGuiID id,ImGuiDataType data_type,const void* data_id,const void* data_id_end)" +defs["igDebugHookIdInfo"][1]["call_args"] = "(id,data_type,data_id,data_id_end)" +defs["igDebugHookIdInfo"][1]["cimguiname"] = "igDebugHookIdInfo" +defs["igDebugHookIdInfo"][1]["defaults"] = {} +defs["igDebugHookIdInfo"][1]["funcname"] = "DebugHookIdInfo" +defs["igDebugHookIdInfo"][1]["location"] = "imgui_internal:3076" +defs["igDebugHookIdInfo"][1]["namespace"] = "ImGui" +defs["igDebugHookIdInfo"][1]["ov_cimguiname"] = "igDebugHookIdInfo" +defs["igDebugHookIdInfo"][1]["ret"] = "void" +defs["igDebugHookIdInfo"][1]["signature"] = "(ImGuiID,ImGuiDataType,const void*,const void*)" +defs["igDebugHookIdInfo"][1]["stname"] = "" +defs["igDebugHookIdInfo"]["(ImGuiID,ImGuiDataType,const void*,const void*)"] = defs["igDebugHookIdInfo"][1] defs["igDebugNodeColumns"] = {} defs["igDebugNodeColumns"][1] = {} defs["igDebugNodeColumns"][1]["args"] = "(ImGuiOldColumns* columns)" @@ -12861,7 +13112,7 @@ defs["igDebugNodeColumns"][1]["call_args"] = "(columns)" defs["igDebugNodeColumns"][1]["cimguiname"] = "igDebugNodeColumns" defs["igDebugNodeColumns"][1]["defaults"] = {} defs["igDebugNodeColumns"][1]["funcname"] = "DebugNodeColumns" -defs["igDebugNodeColumns"][1]["location"] = "imgui_internal:2954" +defs["igDebugNodeColumns"][1]["location"] = "imgui_internal:3077" defs["igDebugNodeColumns"][1]["namespace"] = "ImGui" defs["igDebugNodeColumns"][1]["ov_cimguiname"] = "igDebugNodeColumns" defs["igDebugNodeColumns"][1]["ret"] = "void" @@ -12883,7 +13134,7 @@ defs["igDebugNodeDockNode"][1]["call_args"] = "(node,label)" defs["igDebugNodeDockNode"][1]["cimguiname"] = "igDebugNodeDockNode" defs["igDebugNodeDockNode"][1]["defaults"] = {} defs["igDebugNodeDockNode"][1]["funcname"] = "DebugNodeDockNode" -defs["igDebugNodeDockNode"][1]["location"] = "imgui_internal:2955" +defs["igDebugNodeDockNode"][1]["location"] = "imgui_internal:3078" defs["igDebugNodeDockNode"][1]["namespace"] = "ImGui" defs["igDebugNodeDockNode"][1]["ov_cimguiname"] = "igDebugNodeDockNode" defs["igDebugNodeDockNode"][1]["ret"] = "void" @@ -12914,7 +13165,7 @@ defs["igDebugNodeDrawCmdShowMeshAndBoundingBox"][1]["call_args"] = "(out_draw_li defs["igDebugNodeDrawCmdShowMeshAndBoundingBox"][1]["cimguiname"] = "igDebugNodeDrawCmdShowMeshAndBoundingBox" defs["igDebugNodeDrawCmdShowMeshAndBoundingBox"][1]["defaults"] = {} defs["igDebugNodeDrawCmdShowMeshAndBoundingBox"][1]["funcname"] = "DebugNodeDrawCmdShowMeshAndBoundingBox" -defs["igDebugNodeDrawCmdShowMeshAndBoundingBox"][1]["location"] = "imgui_internal:2957" +defs["igDebugNodeDrawCmdShowMeshAndBoundingBox"][1]["location"] = "imgui_internal:3080" defs["igDebugNodeDrawCmdShowMeshAndBoundingBox"][1]["namespace"] = "ImGui" defs["igDebugNodeDrawCmdShowMeshAndBoundingBox"][1]["ov_cimguiname"] = "igDebugNodeDrawCmdShowMeshAndBoundingBox" defs["igDebugNodeDrawCmdShowMeshAndBoundingBox"][1]["ret"] = "void" @@ -12942,7 +13193,7 @@ defs["igDebugNodeDrawList"][1]["call_args"] = "(window,viewport,draw_list,label) defs["igDebugNodeDrawList"][1]["cimguiname"] = "igDebugNodeDrawList" defs["igDebugNodeDrawList"][1]["defaults"] = {} defs["igDebugNodeDrawList"][1]["funcname"] = "DebugNodeDrawList" -defs["igDebugNodeDrawList"][1]["location"] = "imgui_internal:2956" +defs["igDebugNodeDrawList"][1]["location"] = "imgui_internal:3079" defs["igDebugNodeDrawList"][1]["namespace"] = "ImGui" defs["igDebugNodeDrawList"][1]["ov_cimguiname"] = "igDebugNodeDrawList" defs["igDebugNodeDrawList"][1]["ret"] = "void" @@ -12961,7 +13212,7 @@ defs["igDebugNodeFont"][1]["call_args"] = "(font)" defs["igDebugNodeFont"][1]["cimguiname"] = "igDebugNodeFont" defs["igDebugNodeFont"][1]["defaults"] = {} defs["igDebugNodeFont"][1]["funcname"] = "DebugNodeFont" -defs["igDebugNodeFont"][1]["location"] = "imgui_internal:2958" +defs["igDebugNodeFont"][1]["location"] = "imgui_internal:3081" defs["igDebugNodeFont"][1]["namespace"] = "ImGui" defs["igDebugNodeFont"][1]["ov_cimguiname"] = "igDebugNodeFont" defs["igDebugNodeFont"][1]["ret"] = "void" @@ -12983,7 +13234,7 @@ defs["igDebugNodeStorage"][1]["call_args"] = "(storage,label)" defs["igDebugNodeStorage"][1]["cimguiname"] = "igDebugNodeStorage" defs["igDebugNodeStorage"][1]["defaults"] = {} defs["igDebugNodeStorage"][1]["funcname"] = "DebugNodeStorage" -defs["igDebugNodeStorage"][1]["location"] = "imgui_internal:2959" +defs["igDebugNodeStorage"][1]["location"] = "imgui_internal:3082" defs["igDebugNodeStorage"][1]["namespace"] = "ImGui" defs["igDebugNodeStorage"][1]["ov_cimguiname"] = "igDebugNodeStorage" defs["igDebugNodeStorage"][1]["ret"] = "void" @@ -13005,7 +13256,7 @@ defs["igDebugNodeTabBar"][1]["call_args"] = "(tab_bar,label)" defs["igDebugNodeTabBar"][1]["cimguiname"] = "igDebugNodeTabBar" defs["igDebugNodeTabBar"][1]["defaults"] = {} defs["igDebugNodeTabBar"][1]["funcname"] = "DebugNodeTabBar" -defs["igDebugNodeTabBar"][1]["location"] = "imgui_internal:2960" +defs["igDebugNodeTabBar"][1]["location"] = "imgui_internal:3083" defs["igDebugNodeTabBar"][1]["namespace"] = "ImGui" defs["igDebugNodeTabBar"][1]["ov_cimguiname"] = "igDebugNodeTabBar" defs["igDebugNodeTabBar"][1]["ret"] = "void" @@ -13024,7 +13275,7 @@ defs["igDebugNodeTable"][1]["call_args"] = "(table)" defs["igDebugNodeTable"][1]["cimguiname"] = "igDebugNodeTable" defs["igDebugNodeTable"][1]["defaults"] = {} defs["igDebugNodeTable"][1]["funcname"] = "DebugNodeTable" -defs["igDebugNodeTable"][1]["location"] = "imgui_internal:2961" +defs["igDebugNodeTable"][1]["location"] = "imgui_internal:3084" defs["igDebugNodeTable"][1]["namespace"] = "ImGui" defs["igDebugNodeTable"][1]["ov_cimguiname"] = "igDebugNodeTable" defs["igDebugNodeTable"][1]["ret"] = "void" @@ -13043,7 +13294,7 @@ defs["igDebugNodeTableSettings"][1]["call_args"] = "(settings)" defs["igDebugNodeTableSettings"][1]["cimguiname"] = "igDebugNodeTableSettings" defs["igDebugNodeTableSettings"][1]["defaults"] = {} defs["igDebugNodeTableSettings"][1]["funcname"] = "DebugNodeTableSettings" -defs["igDebugNodeTableSettings"][1]["location"] = "imgui_internal:2962" +defs["igDebugNodeTableSettings"][1]["location"] = "imgui_internal:3085" defs["igDebugNodeTableSettings"][1]["namespace"] = "ImGui" defs["igDebugNodeTableSettings"][1]["ov_cimguiname"] = "igDebugNodeTableSettings" defs["igDebugNodeTableSettings"][1]["ret"] = "void" @@ -13062,7 +13313,7 @@ defs["igDebugNodeViewport"][1]["call_args"] = "(viewport)" defs["igDebugNodeViewport"][1]["cimguiname"] = "igDebugNodeViewport" defs["igDebugNodeViewport"][1]["defaults"] = {} defs["igDebugNodeViewport"][1]["funcname"] = "DebugNodeViewport" -defs["igDebugNodeViewport"][1]["location"] = "imgui_internal:2966" +defs["igDebugNodeViewport"][1]["location"] = "imgui_internal:3090" defs["igDebugNodeViewport"][1]["namespace"] = "ImGui" defs["igDebugNodeViewport"][1]["ov_cimguiname"] = "igDebugNodeViewport" defs["igDebugNodeViewport"][1]["ret"] = "void" @@ -13084,7 +13335,7 @@ defs["igDebugNodeWindow"][1]["call_args"] = "(window,label)" defs["igDebugNodeWindow"][1]["cimguiname"] = "igDebugNodeWindow" defs["igDebugNodeWindow"][1]["defaults"] = {} defs["igDebugNodeWindow"][1]["funcname"] = "DebugNodeWindow" -defs["igDebugNodeWindow"][1]["location"] = "imgui_internal:2963" +defs["igDebugNodeWindow"][1]["location"] = "imgui_internal:3086" defs["igDebugNodeWindow"][1]["namespace"] = "ImGui" defs["igDebugNodeWindow"][1]["ov_cimguiname"] = "igDebugNodeWindow" defs["igDebugNodeWindow"][1]["ret"] = "void" @@ -13103,7 +13354,7 @@ defs["igDebugNodeWindowSettings"][1]["call_args"] = "(settings)" defs["igDebugNodeWindowSettings"][1]["cimguiname"] = "igDebugNodeWindowSettings" defs["igDebugNodeWindowSettings"][1]["defaults"] = {} defs["igDebugNodeWindowSettings"][1]["funcname"] = "DebugNodeWindowSettings" -defs["igDebugNodeWindowSettings"][1]["location"] = "imgui_internal:2964" +defs["igDebugNodeWindowSettings"][1]["location"] = "imgui_internal:3087" defs["igDebugNodeWindowSettings"][1]["namespace"] = "ImGui" defs["igDebugNodeWindowSettings"][1]["ov_cimguiname"] = "igDebugNodeWindowSettings" defs["igDebugNodeWindowSettings"][1]["ret"] = "void" @@ -13125,13 +13376,38 @@ defs["igDebugNodeWindowsList"][1]["call_args"] = "(windows,label)" defs["igDebugNodeWindowsList"][1]["cimguiname"] = "igDebugNodeWindowsList" defs["igDebugNodeWindowsList"][1]["defaults"] = {} defs["igDebugNodeWindowsList"][1]["funcname"] = "DebugNodeWindowsList" -defs["igDebugNodeWindowsList"][1]["location"] = "imgui_internal:2965" +defs["igDebugNodeWindowsList"][1]["location"] = "imgui_internal:3088" defs["igDebugNodeWindowsList"][1]["namespace"] = "ImGui" defs["igDebugNodeWindowsList"][1]["ov_cimguiname"] = "igDebugNodeWindowsList" defs["igDebugNodeWindowsList"][1]["ret"] = "void" defs["igDebugNodeWindowsList"][1]["signature"] = "(ImVector_ImGuiWindowPtr*,const char*)" defs["igDebugNodeWindowsList"][1]["stname"] = "" defs["igDebugNodeWindowsList"]["(ImVector_ImGuiWindowPtr*,const char*)"] = defs["igDebugNodeWindowsList"][1] +defs["igDebugNodeWindowsListByBeginStackParent"] = {} +defs["igDebugNodeWindowsListByBeginStackParent"][1] = {} +defs["igDebugNodeWindowsListByBeginStackParent"][1]["args"] = "(ImGuiWindow** windows,int windows_size,ImGuiWindow* parent_in_begin_stack)" +defs["igDebugNodeWindowsListByBeginStackParent"][1]["argsT"] = {} +defs["igDebugNodeWindowsListByBeginStackParent"][1]["argsT"][1] = {} +defs["igDebugNodeWindowsListByBeginStackParent"][1]["argsT"][1]["name"] = "windows" +defs["igDebugNodeWindowsListByBeginStackParent"][1]["argsT"][1]["type"] = "ImGuiWindow**" +defs["igDebugNodeWindowsListByBeginStackParent"][1]["argsT"][2] = {} +defs["igDebugNodeWindowsListByBeginStackParent"][1]["argsT"][2]["name"] = "windows_size" +defs["igDebugNodeWindowsListByBeginStackParent"][1]["argsT"][2]["type"] = "int" +defs["igDebugNodeWindowsListByBeginStackParent"][1]["argsT"][3] = {} +defs["igDebugNodeWindowsListByBeginStackParent"][1]["argsT"][3]["name"] = "parent_in_begin_stack" +defs["igDebugNodeWindowsListByBeginStackParent"][1]["argsT"][3]["type"] = "ImGuiWindow*" +defs["igDebugNodeWindowsListByBeginStackParent"][1]["argsoriginal"] = "(ImGuiWindow** windows,int windows_size,ImGuiWindow* parent_in_begin_stack)" +defs["igDebugNodeWindowsListByBeginStackParent"][1]["call_args"] = "(windows,windows_size,parent_in_begin_stack)" +defs["igDebugNodeWindowsListByBeginStackParent"][1]["cimguiname"] = "igDebugNodeWindowsListByBeginStackParent" +defs["igDebugNodeWindowsListByBeginStackParent"][1]["defaults"] = {} +defs["igDebugNodeWindowsListByBeginStackParent"][1]["funcname"] = "DebugNodeWindowsListByBeginStackParent" +defs["igDebugNodeWindowsListByBeginStackParent"][1]["location"] = "imgui_internal:3089" +defs["igDebugNodeWindowsListByBeginStackParent"][1]["namespace"] = "ImGui" +defs["igDebugNodeWindowsListByBeginStackParent"][1]["ov_cimguiname"] = "igDebugNodeWindowsListByBeginStackParent" +defs["igDebugNodeWindowsListByBeginStackParent"][1]["ret"] = "void" +defs["igDebugNodeWindowsListByBeginStackParent"][1]["signature"] = "(ImGuiWindow**,int,ImGuiWindow*)" +defs["igDebugNodeWindowsListByBeginStackParent"][1]["stname"] = "" +defs["igDebugNodeWindowsListByBeginStackParent"]["(ImGuiWindow**,int,ImGuiWindow*)"] = defs["igDebugNodeWindowsListByBeginStackParent"][1] defs["igDebugRenderViewportThumbnail"] = {} defs["igDebugRenderViewportThumbnail"][1] = {} defs["igDebugRenderViewportThumbnail"][1]["args"] = "(ImDrawList* draw_list,ImGuiViewportP* viewport,const ImRect bb)" @@ -13150,7 +13426,7 @@ defs["igDebugRenderViewportThumbnail"][1]["call_args"] = "(draw_list,viewport,bb defs["igDebugRenderViewportThumbnail"][1]["cimguiname"] = "igDebugRenderViewportThumbnail" defs["igDebugRenderViewportThumbnail"][1]["defaults"] = {} defs["igDebugRenderViewportThumbnail"][1]["funcname"] = "DebugRenderViewportThumbnail" -defs["igDebugRenderViewportThumbnail"][1]["location"] = "imgui_internal:2967" +defs["igDebugRenderViewportThumbnail"][1]["location"] = "imgui_internal:3091" defs["igDebugRenderViewportThumbnail"][1]["namespace"] = "ImGui" defs["igDebugRenderViewportThumbnail"][1]["ov_cimguiname"] = "igDebugRenderViewportThumbnail" defs["igDebugRenderViewportThumbnail"][1]["ret"] = "void" @@ -13166,7 +13442,7 @@ defs["igDebugStartItemPicker"][1]["call_args"] = "()" defs["igDebugStartItemPicker"][1]["cimguiname"] = "igDebugStartItemPicker" defs["igDebugStartItemPicker"][1]["defaults"] = {} defs["igDebugStartItemPicker"][1]["funcname"] = "DebugStartItemPicker" -defs["igDebugStartItemPicker"][1]["location"] = "imgui_internal:2951" +defs["igDebugStartItemPicker"][1]["location"] = "imgui_internal:3073" defs["igDebugStartItemPicker"][1]["namespace"] = "ImGui" defs["igDebugStartItemPicker"][1]["ov_cimguiname"] = "igDebugStartItemPicker" defs["igDebugStartItemPicker"][1]["ret"] = "void" @@ -13205,7 +13481,7 @@ defs["igDestroyPlatformWindow"][1]["call_args"] = "(viewport)" defs["igDestroyPlatformWindow"][1]["cimguiname"] = "igDestroyPlatformWindow" defs["igDestroyPlatformWindow"][1]["defaults"] = {} defs["igDestroyPlatformWindow"][1]["funcname"] = "DestroyPlatformWindow" -defs["igDestroyPlatformWindow"][1]["location"] = "imgui_internal:2590" +defs["igDestroyPlatformWindow"][1]["location"] = "imgui_internal:2695" defs["igDestroyPlatformWindow"][1]["namespace"] = "ImGui" defs["igDestroyPlatformWindow"][1]["ov_cimguiname"] = "igDestroyPlatformWindow" defs["igDestroyPlatformWindow"][1]["ret"] = "void" @@ -13221,7 +13497,7 @@ defs["igDestroyPlatformWindows"][1]["call_args"] = "()" defs["igDestroyPlatformWindows"][1]["cimguiname"] = "igDestroyPlatformWindows" defs["igDestroyPlatformWindows"][1]["defaults"] = {} defs["igDestroyPlatformWindows"][1]["funcname"] = "DestroyPlatformWindows" -defs["igDestroyPlatformWindows"][1]["location"] = "imgui:979" +defs["igDestroyPlatformWindows"][1]["location"] = "imgui:981" defs["igDestroyPlatformWindows"][1]["namespace"] = "ImGui" defs["igDestroyPlatformWindows"][1]["ov_cimguiname"] = "igDestroyPlatformWindows" defs["igDestroyPlatformWindows"][1]["ret"] = "void" @@ -13245,7 +13521,7 @@ defs["igDockBuilderAddNode"][1]["defaults"] = {} defs["igDockBuilderAddNode"][1]["defaults"]["flags"] = "0" defs["igDockBuilderAddNode"][1]["defaults"]["node_id"] = "0" defs["igDockBuilderAddNode"][1]["funcname"] = "DockBuilderAddNode" -defs["igDockBuilderAddNode"][1]["location"] = "imgui_internal:2755" +defs["igDockBuilderAddNode"][1]["location"] = "imgui_internal:2875" defs["igDockBuilderAddNode"][1]["namespace"] = "ImGui" defs["igDockBuilderAddNode"][1]["ov_cimguiname"] = "igDockBuilderAddNode" defs["igDockBuilderAddNode"][1]["ret"] = "ImGuiID" @@ -13270,7 +13546,7 @@ defs["igDockBuilderCopyDockSpace"][1]["call_args"] = "(src_dockspace_id,dst_dock defs["igDockBuilderCopyDockSpace"][1]["cimguiname"] = "igDockBuilderCopyDockSpace" defs["igDockBuilderCopyDockSpace"][1]["defaults"] = {} defs["igDockBuilderCopyDockSpace"][1]["funcname"] = "DockBuilderCopyDockSpace" -defs["igDockBuilderCopyDockSpace"][1]["location"] = "imgui_internal:2762" +defs["igDockBuilderCopyDockSpace"][1]["location"] = "imgui_internal:2882" defs["igDockBuilderCopyDockSpace"][1]["namespace"] = "ImGui" defs["igDockBuilderCopyDockSpace"][1]["ov_cimguiname"] = "igDockBuilderCopyDockSpace" defs["igDockBuilderCopyDockSpace"][1]["ret"] = "void" @@ -13295,7 +13571,7 @@ defs["igDockBuilderCopyNode"][1]["call_args"] = "(src_node_id,dst_node_id,out_no defs["igDockBuilderCopyNode"][1]["cimguiname"] = "igDockBuilderCopyNode" defs["igDockBuilderCopyNode"][1]["defaults"] = {} defs["igDockBuilderCopyNode"][1]["funcname"] = "DockBuilderCopyNode" -defs["igDockBuilderCopyNode"][1]["location"] = "imgui_internal:2763" +defs["igDockBuilderCopyNode"][1]["location"] = "imgui_internal:2883" defs["igDockBuilderCopyNode"][1]["namespace"] = "ImGui" defs["igDockBuilderCopyNode"][1]["ov_cimguiname"] = "igDockBuilderCopyNode" defs["igDockBuilderCopyNode"][1]["ret"] = "void" @@ -13317,7 +13593,7 @@ defs["igDockBuilderCopyWindowSettings"][1]["call_args"] = "(src_name,dst_name)" defs["igDockBuilderCopyWindowSettings"][1]["cimguiname"] = "igDockBuilderCopyWindowSettings" defs["igDockBuilderCopyWindowSettings"][1]["defaults"] = {} defs["igDockBuilderCopyWindowSettings"][1]["funcname"] = "DockBuilderCopyWindowSettings" -defs["igDockBuilderCopyWindowSettings"][1]["location"] = "imgui_internal:2764" +defs["igDockBuilderCopyWindowSettings"][1]["location"] = "imgui_internal:2884" defs["igDockBuilderCopyWindowSettings"][1]["namespace"] = "ImGui" defs["igDockBuilderCopyWindowSettings"][1]["ov_cimguiname"] = "igDockBuilderCopyWindowSettings" defs["igDockBuilderCopyWindowSettings"][1]["ret"] = "void" @@ -13339,7 +13615,7 @@ defs["igDockBuilderDockWindow"][1]["call_args"] = "(window_name,node_id)" defs["igDockBuilderDockWindow"][1]["cimguiname"] = "igDockBuilderDockWindow" defs["igDockBuilderDockWindow"][1]["defaults"] = {} defs["igDockBuilderDockWindow"][1]["funcname"] = "DockBuilderDockWindow" -defs["igDockBuilderDockWindow"][1]["location"] = "imgui_internal:2752" +defs["igDockBuilderDockWindow"][1]["location"] = "imgui_internal:2872" defs["igDockBuilderDockWindow"][1]["namespace"] = "ImGui" defs["igDockBuilderDockWindow"][1]["ov_cimguiname"] = "igDockBuilderDockWindow" defs["igDockBuilderDockWindow"][1]["ret"] = "void" @@ -13358,7 +13634,7 @@ defs["igDockBuilderFinish"][1]["call_args"] = "(node_id)" defs["igDockBuilderFinish"][1]["cimguiname"] = "igDockBuilderFinish" defs["igDockBuilderFinish"][1]["defaults"] = {} defs["igDockBuilderFinish"][1]["funcname"] = "DockBuilderFinish" -defs["igDockBuilderFinish"][1]["location"] = "imgui_internal:2765" +defs["igDockBuilderFinish"][1]["location"] = "imgui_internal:2885" defs["igDockBuilderFinish"][1]["namespace"] = "ImGui" defs["igDockBuilderFinish"][1]["ov_cimguiname"] = "igDockBuilderFinish" defs["igDockBuilderFinish"][1]["ret"] = "void" @@ -13377,7 +13653,7 @@ defs["igDockBuilderGetCentralNode"][1]["call_args"] = "(node_id)" defs["igDockBuilderGetCentralNode"][1]["cimguiname"] = "igDockBuilderGetCentralNode" defs["igDockBuilderGetCentralNode"][1]["defaults"] = {} defs["igDockBuilderGetCentralNode"][1]["funcname"] = "DockBuilderGetCentralNode" -defs["igDockBuilderGetCentralNode"][1]["location"] = "imgui_internal:2754" +defs["igDockBuilderGetCentralNode"][1]["location"] = "imgui_internal:2874" defs["igDockBuilderGetCentralNode"][1]["namespace"] = "ImGui" defs["igDockBuilderGetCentralNode"][1]["ov_cimguiname"] = "igDockBuilderGetCentralNode" defs["igDockBuilderGetCentralNode"][1]["ret"] = "ImGuiDockNode*" @@ -13396,7 +13672,7 @@ defs["igDockBuilderGetNode"][1]["call_args"] = "(node_id)" defs["igDockBuilderGetNode"][1]["cimguiname"] = "igDockBuilderGetNode" defs["igDockBuilderGetNode"][1]["defaults"] = {} defs["igDockBuilderGetNode"][1]["funcname"] = "DockBuilderGetNode" -defs["igDockBuilderGetNode"][1]["location"] = "imgui_internal:2753" +defs["igDockBuilderGetNode"][1]["location"] = "imgui_internal:2873" defs["igDockBuilderGetNode"][1]["namespace"] = "ImGui" defs["igDockBuilderGetNode"][1]["ov_cimguiname"] = "igDockBuilderGetNode" defs["igDockBuilderGetNode"][1]["ret"] = "ImGuiDockNode*" @@ -13415,7 +13691,7 @@ defs["igDockBuilderRemoveNode"][1]["call_args"] = "(node_id)" defs["igDockBuilderRemoveNode"][1]["cimguiname"] = "igDockBuilderRemoveNode" defs["igDockBuilderRemoveNode"][1]["defaults"] = {} defs["igDockBuilderRemoveNode"][1]["funcname"] = "DockBuilderRemoveNode" -defs["igDockBuilderRemoveNode"][1]["location"] = "imgui_internal:2756" +defs["igDockBuilderRemoveNode"][1]["location"] = "imgui_internal:2876" defs["igDockBuilderRemoveNode"][1]["namespace"] = "ImGui" defs["igDockBuilderRemoveNode"][1]["ov_cimguiname"] = "igDockBuilderRemoveNode" defs["igDockBuilderRemoveNode"][1]["ret"] = "void" @@ -13434,7 +13710,7 @@ defs["igDockBuilderRemoveNodeChildNodes"][1]["call_args"] = "(node_id)" defs["igDockBuilderRemoveNodeChildNodes"][1]["cimguiname"] = "igDockBuilderRemoveNodeChildNodes" defs["igDockBuilderRemoveNodeChildNodes"][1]["defaults"] = {} defs["igDockBuilderRemoveNodeChildNodes"][1]["funcname"] = "DockBuilderRemoveNodeChildNodes" -defs["igDockBuilderRemoveNodeChildNodes"][1]["location"] = "imgui_internal:2758" +defs["igDockBuilderRemoveNodeChildNodes"][1]["location"] = "imgui_internal:2878" defs["igDockBuilderRemoveNodeChildNodes"][1]["namespace"] = "ImGui" defs["igDockBuilderRemoveNodeChildNodes"][1]["ov_cimguiname"] = "igDockBuilderRemoveNodeChildNodes" defs["igDockBuilderRemoveNodeChildNodes"][1]["ret"] = "void" @@ -13457,7 +13733,7 @@ defs["igDockBuilderRemoveNodeDockedWindows"][1]["cimguiname"] = "igDockBuilderRe defs["igDockBuilderRemoveNodeDockedWindows"][1]["defaults"] = {} defs["igDockBuilderRemoveNodeDockedWindows"][1]["defaults"]["clear_settings_refs"] = "true" defs["igDockBuilderRemoveNodeDockedWindows"][1]["funcname"] = "DockBuilderRemoveNodeDockedWindows" -defs["igDockBuilderRemoveNodeDockedWindows"][1]["location"] = "imgui_internal:2757" +defs["igDockBuilderRemoveNodeDockedWindows"][1]["location"] = "imgui_internal:2877" defs["igDockBuilderRemoveNodeDockedWindows"][1]["namespace"] = "ImGui" defs["igDockBuilderRemoveNodeDockedWindows"][1]["ov_cimguiname"] = "igDockBuilderRemoveNodeDockedWindows" defs["igDockBuilderRemoveNodeDockedWindows"][1]["ret"] = "void" @@ -13479,7 +13755,7 @@ defs["igDockBuilderSetNodePos"][1]["call_args"] = "(node_id,pos)" defs["igDockBuilderSetNodePos"][1]["cimguiname"] = "igDockBuilderSetNodePos" defs["igDockBuilderSetNodePos"][1]["defaults"] = {} defs["igDockBuilderSetNodePos"][1]["funcname"] = "DockBuilderSetNodePos" -defs["igDockBuilderSetNodePos"][1]["location"] = "imgui_internal:2759" +defs["igDockBuilderSetNodePos"][1]["location"] = "imgui_internal:2879" defs["igDockBuilderSetNodePos"][1]["namespace"] = "ImGui" defs["igDockBuilderSetNodePos"][1]["ov_cimguiname"] = "igDockBuilderSetNodePos" defs["igDockBuilderSetNodePos"][1]["ret"] = "void" @@ -13501,7 +13777,7 @@ defs["igDockBuilderSetNodeSize"][1]["call_args"] = "(node_id,size)" defs["igDockBuilderSetNodeSize"][1]["cimguiname"] = "igDockBuilderSetNodeSize" defs["igDockBuilderSetNodeSize"][1]["defaults"] = {} defs["igDockBuilderSetNodeSize"][1]["funcname"] = "DockBuilderSetNodeSize" -defs["igDockBuilderSetNodeSize"][1]["location"] = "imgui_internal:2760" +defs["igDockBuilderSetNodeSize"][1]["location"] = "imgui_internal:2880" defs["igDockBuilderSetNodeSize"][1]["namespace"] = "ImGui" defs["igDockBuilderSetNodeSize"][1]["ov_cimguiname"] = "igDockBuilderSetNodeSize" defs["igDockBuilderSetNodeSize"][1]["ret"] = "void" @@ -13532,7 +13808,7 @@ defs["igDockBuilderSplitNode"][1]["call_args"] = "(node_id,split_dir,size_ratio_ defs["igDockBuilderSplitNode"][1]["cimguiname"] = "igDockBuilderSplitNode" defs["igDockBuilderSplitNode"][1]["defaults"] = {} defs["igDockBuilderSplitNode"][1]["funcname"] = "DockBuilderSplitNode" -defs["igDockBuilderSplitNode"][1]["location"] = "imgui_internal:2761" +defs["igDockBuilderSplitNode"][1]["location"] = "imgui_internal:2881" defs["igDockBuilderSplitNode"][1]["namespace"] = "ImGui" defs["igDockBuilderSplitNode"][1]["ov_cimguiname"] = "igDockBuilderSplitNode" defs["igDockBuilderSplitNode"][1]["ret"] = "ImGuiID" @@ -13566,7 +13842,7 @@ defs["igDockContextCalcDropPosForDocking"][1]["call_args"] = "(target,target_nod defs["igDockContextCalcDropPosForDocking"][1]["cimguiname"] = "igDockContextCalcDropPosForDocking" defs["igDockContextCalcDropPosForDocking"][1]["defaults"] = {} defs["igDockContextCalcDropPosForDocking"][1]["funcname"] = "DockContextCalcDropPosForDocking" -defs["igDockContextCalcDropPosForDocking"][1]["location"] = "imgui_internal:2730" +defs["igDockContextCalcDropPosForDocking"][1]["location"] = "imgui_internal:2849" defs["igDockContextCalcDropPosForDocking"][1]["namespace"] = "ImGui" defs["igDockContextCalcDropPosForDocking"][1]["ov_cimguiname"] = "igDockContextCalcDropPosForDocking" defs["igDockContextCalcDropPosForDocking"][1]["ret"] = "bool" @@ -13591,13 +13867,32 @@ defs["igDockContextClearNodes"][1]["call_args"] = "(ctx,root_id,clear_settings_r defs["igDockContextClearNodes"][1]["cimguiname"] = "igDockContextClearNodes" defs["igDockContextClearNodes"][1]["defaults"] = {} defs["igDockContextClearNodes"][1]["funcname"] = "DockContextClearNodes" -defs["igDockContextClearNodes"][1]["location"] = "imgui_internal:2722" +defs["igDockContextClearNodes"][1]["location"] = "imgui_internal:2840" defs["igDockContextClearNodes"][1]["namespace"] = "ImGui" defs["igDockContextClearNodes"][1]["ov_cimguiname"] = "igDockContextClearNodes" defs["igDockContextClearNodes"][1]["ret"] = "void" defs["igDockContextClearNodes"][1]["signature"] = "(ImGuiContext*,ImGuiID,bool)" defs["igDockContextClearNodes"][1]["stname"] = "" defs["igDockContextClearNodes"]["(ImGuiContext*,ImGuiID,bool)"] = defs["igDockContextClearNodes"][1] +defs["igDockContextEndFrame"] = {} +defs["igDockContextEndFrame"][1] = {} +defs["igDockContextEndFrame"][1]["args"] = "(ImGuiContext* ctx)" +defs["igDockContextEndFrame"][1]["argsT"] = {} +defs["igDockContextEndFrame"][1]["argsT"][1] = {} +defs["igDockContextEndFrame"][1]["argsT"][1]["name"] = "ctx" +defs["igDockContextEndFrame"][1]["argsT"][1]["type"] = "ImGuiContext*" +defs["igDockContextEndFrame"][1]["argsoriginal"] = "(ImGuiContext* ctx)" +defs["igDockContextEndFrame"][1]["call_args"] = "(ctx)" +defs["igDockContextEndFrame"][1]["cimguiname"] = "igDockContextEndFrame" +defs["igDockContextEndFrame"][1]["defaults"] = {} +defs["igDockContextEndFrame"][1]["funcname"] = "DockContextEndFrame" +defs["igDockContextEndFrame"][1]["location"] = "imgui_internal:2844" +defs["igDockContextEndFrame"][1]["namespace"] = "ImGui" +defs["igDockContextEndFrame"][1]["ov_cimguiname"] = "igDockContextEndFrame" +defs["igDockContextEndFrame"][1]["ret"] = "void" +defs["igDockContextEndFrame"][1]["signature"] = "(ImGuiContext*)" +defs["igDockContextEndFrame"][1]["stname"] = "" +defs["igDockContextEndFrame"]["(ImGuiContext*)"] = defs["igDockContextEndFrame"][1] defs["igDockContextGenNodeID"] = {} defs["igDockContextGenNodeID"][1] = {} defs["igDockContextGenNodeID"][1]["args"] = "(ImGuiContext* ctx)" @@ -13610,7 +13905,7 @@ defs["igDockContextGenNodeID"][1]["call_args"] = "(ctx)" defs["igDockContextGenNodeID"][1]["cimguiname"] = "igDockContextGenNodeID" defs["igDockContextGenNodeID"][1]["defaults"] = {} defs["igDockContextGenNodeID"][1]["funcname"] = "DockContextGenNodeID" -defs["igDockContextGenNodeID"][1]["location"] = "imgui_internal:2726" +defs["igDockContextGenNodeID"][1]["location"] = "imgui_internal:2845" defs["igDockContextGenNodeID"][1]["namespace"] = "ImGui" defs["igDockContextGenNodeID"][1]["ov_cimguiname"] = "igDockContextGenNodeID" defs["igDockContextGenNodeID"][1]["ret"] = "ImGuiID" @@ -13629,7 +13924,7 @@ defs["igDockContextInitialize"][1]["call_args"] = "(ctx)" defs["igDockContextInitialize"][1]["cimguiname"] = "igDockContextInitialize" defs["igDockContextInitialize"][1]["defaults"] = {} defs["igDockContextInitialize"][1]["funcname"] = "DockContextInitialize" -defs["igDockContextInitialize"][1]["location"] = "imgui_internal:2720" +defs["igDockContextInitialize"][1]["location"] = "imgui_internal:2838" defs["igDockContextInitialize"][1]["namespace"] = "ImGui" defs["igDockContextInitialize"][1]["ov_cimguiname"] = "igDockContextInitialize" defs["igDockContextInitialize"][1]["ret"] = "void" @@ -13648,7 +13943,7 @@ defs["igDockContextNewFrameUpdateDocking"][1]["call_args"] = "(ctx)" defs["igDockContextNewFrameUpdateDocking"][1]["cimguiname"] = "igDockContextNewFrameUpdateDocking" defs["igDockContextNewFrameUpdateDocking"][1]["defaults"] = {} defs["igDockContextNewFrameUpdateDocking"][1]["funcname"] = "DockContextNewFrameUpdateDocking" -defs["igDockContextNewFrameUpdateDocking"][1]["location"] = "imgui_internal:2725" +defs["igDockContextNewFrameUpdateDocking"][1]["location"] = "imgui_internal:2843" defs["igDockContextNewFrameUpdateDocking"][1]["namespace"] = "ImGui" defs["igDockContextNewFrameUpdateDocking"][1]["ov_cimguiname"] = "igDockContextNewFrameUpdateDocking" defs["igDockContextNewFrameUpdateDocking"][1]["ret"] = "void" @@ -13667,7 +13962,7 @@ defs["igDockContextNewFrameUpdateUndocking"][1]["call_args"] = "(ctx)" defs["igDockContextNewFrameUpdateUndocking"][1]["cimguiname"] = "igDockContextNewFrameUpdateUndocking" defs["igDockContextNewFrameUpdateUndocking"][1]["defaults"] = {} defs["igDockContextNewFrameUpdateUndocking"][1]["funcname"] = "DockContextNewFrameUpdateUndocking" -defs["igDockContextNewFrameUpdateUndocking"][1]["location"] = "imgui_internal:2724" +defs["igDockContextNewFrameUpdateUndocking"][1]["location"] = "imgui_internal:2842" defs["igDockContextNewFrameUpdateUndocking"][1]["namespace"] = "ImGui" defs["igDockContextNewFrameUpdateUndocking"][1]["ov_cimguiname"] = "igDockContextNewFrameUpdateUndocking" defs["igDockContextNewFrameUpdateUndocking"][1]["ret"] = "void" @@ -13704,7 +13999,7 @@ defs["igDockContextQueueDock"][1]["call_args"] = "(ctx,target,target_node,payloa defs["igDockContextQueueDock"][1]["cimguiname"] = "igDockContextQueueDock" defs["igDockContextQueueDock"][1]["defaults"] = {} defs["igDockContextQueueDock"][1]["funcname"] = "DockContextQueueDock" -defs["igDockContextQueueDock"][1]["location"] = "imgui_internal:2727" +defs["igDockContextQueueDock"][1]["location"] = "imgui_internal:2846" defs["igDockContextQueueDock"][1]["namespace"] = "ImGui" defs["igDockContextQueueDock"][1]["ov_cimguiname"] = "igDockContextQueueDock" defs["igDockContextQueueDock"][1]["ret"] = "void" @@ -13726,7 +14021,7 @@ defs["igDockContextQueueUndockNode"][1]["call_args"] = "(ctx,node)" defs["igDockContextQueueUndockNode"][1]["cimguiname"] = "igDockContextQueueUndockNode" defs["igDockContextQueueUndockNode"][1]["defaults"] = {} defs["igDockContextQueueUndockNode"][1]["funcname"] = "DockContextQueueUndockNode" -defs["igDockContextQueueUndockNode"][1]["location"] = "imgui_internal:2729" +defs["igDockContextQueueUndockNode"][1]["location"] = "imgui_internal:2848" defs["igDockContextQueueUndockNode"][1]["namespace"] = "ImGui" defs["igDockContextQueueUndockNode"][1]["ov_cimguiname"] = "igDockContextQueueUndockNode" defs["igDockContextQueueUndockNode"][1]["ret"] = "void" @@ -13748,7 +14043,7 @@ defs["igDockContextQueueUndockWindow"][1]["call_args"] = "(ctx,window)" defs["igDockContextQueueUndockWindow"][1]["cimguiname"] = "igDockContextQueueUndockWindow" defs["igDockContextQueueUndockWindow"][1]["defaults"] = {} defs["igDockContextQueueUndockWindow"][1]["funcname"] = "DockContextQueueUndockWindow" -defs["igDockContextQueueUndockWindow"][1]["location"] = "imgui_internal:2728" +defs["igDockContextQueueUndockWindow"][1]["location"] = "imgui_internal:2847" defs["igDockContextQueueUndockWindow"][1]["namespace"] = "ImGui" defs["igDockContextQueueUndockWindow"][1]["ov_cimguiname"] = "igDockContextQueueUndockWindow" defs["igDockContextQueueUndockWindow"][1]["ret"] = "void" @@ -13767,7 +14062,7 @@ defs["igDockContextRebuildNodes"][1]["call_args"] = "(ctx)" defs["igDockContextRebuildNodes"][1]["cimguiname"] = "igDockContextRebuildNodes" defs["igDockContextRebuildNodes"][1]["defaults"] = {} defs["igDockContextRebuildNodes"][1]["funcname"] = "DockContextRebuildNodes" -defs["igDockContextRebuildNodes"][1]["location"] = "imgui_internal:2723" +defs["igDockContextRebuildNodes"][1]["location"] = "imgui_internal:2841" defs["igDockContextRebuildNodes"][1]["namespace"] = "ImGui" defs["igDockContextRebuildNodes"][1]["ov_cimguiname"] = "igDockContextRebuildNodes" defs["igDockContextRebuildNodes"][1]["ret"] = "void" @@ -13786,7 +14081,7 @@ defs["igDockContextShutdown"][1]["call_args"] = "(ctx)" defs["igDockContextShutdown"][1]["cimguiname"] = "igDockContextShutdown" defs["igDockContextShutdown"][1]["defaults"] = {} defs["igDockContextShutdown"][1]["funcname"] = "DockContextShutdown" -defs["igDockContextShutdown"][1]["location"] = "imgui_internal:2721" +defs["igDockContextShutdown"][1]["location"] = "imgui_internal:2839" defs["igDockContextShutdown"][1]["namespace"] = "ImGui" defs["igDockContextShutdown"][1]["ov_cimguiname"] = "igDockContextShutdown" defs["igDockContextShutdown"][1]["ret"] = "void" @@ -13805,7 +14100,7 @@ defs["igDockNodeBeginAmendTabBar"][1]["call_args"] = "(node)" defs["igDockNodeBeginAmendTabBar"][1]["cimguiname"] = "igDockNodeBeginAmendTabBar" defs["igDockNodeBeginAmendTabBar"][1]["defaults"] = {} defs["igDockNodeBeginAmendTabBar"][1]["funcname"] = "DockNodeBeginAmendTabBar" -defs["igDockNodeBeginAmendTabBar"][1]["location"] = "imgui_internal:2731" +defs["igDockNodeBeginAmendTabBar"][1]["location"] = "imgui_internal:2850" defs["igDockNodeBeginAmendTabBar"][1]["namespace"] = "ImGui" defs["igDockNodeBeginAmendTabBar"][1]["ov_cimguiname"] = "igDockNodeBeginAmendTabBar" defs["igDockNodeBeginAmendTabBar"][1]["ret"] = "bool" @@ -13821,7 +14116,7 @@ defs["igDockNodeEndAmendTabBar"][1]["call_args"] = "()" defs["igDockNodeEndAmendTabBar"][1]["cimguiname"] = "igDockNodeEndAmendTabBar" defs["igDockNodeEndAmendTabBar"][1]["defaults"] = {} defs["igDockNodeEndAmendTabBar"][1]["funcname"] = "DockNodeEndAmendTabBar" -defs["igDockNodeEndAmendTabBar"][1]["location"] = "imgui_internal:2732" +defs["igDockNodeEndAmendTabBar"][1]["location"] = "imgui_internal:2851" defs["igDockNodeEndAmendTabBar"][1]["namespace"] = "ImGui" defs["igDockNodeEndAmendTabBar"][1]["ov_cimguiname"] = "igDockNodeEndAmendTabBar" defs["igDockNodeEndAmendTabBar"][1]["ret"] = "void" @@ -13840,7 +14135,7 @@ defs["igDockNodeGetDepth"][1]["call_args"] = "(node)" defs["igDockNodeGetDepth"][1]["cimguiname"] = "igDockNodeGetDepth" defs["igDockNodeGetDepth"][1]["defaults"] = {} defs["igDockNodeGetDepth"][1]["funcname"] = "DockNodeGetDepth" -defs["igDockNodeGetDepth"][1]["location"] = "imgui_internal:2734" +defs["igDockNodeGetDepth"][1]["location"] = "imgui_internal:2854" defs["igDockNodeGetDepth"][1]["namespace"] = "ImGui" defs["igDockNodeGetDepth"][1]["ov_cimguiname"] = "igDockNodeGetDepth" defs["igDockNodeGetDepth"][1]["ret"] = "int" @@ -13859,7 +14154,7 @@ defs["igDockNodeGetRootNode"][1]["call_args"] = "(node)" defs["igDockNodeGetRootNode"][1]["cimguiname"] = "igDockNodeGetRootNode" defs["igDockNodeGetRootNode"][1]["defaults"] = {} defs["igDockNodeGetRootNode"][1]["funcname"] = "DockNodeGetRootNode" -defs["igDockNodeGetRootNode"][1]["location"] = "imgui_internal:2733" +defs["igDockNodeGetRootNode"][1]["location"] = "imgui_internal:2852" defs["igDockNodeGetRootNode"][1]["namespace"] = "ImGui" defs["igDockNodeGetRootNode"][1]["ov_cimguiname"] = "igDockNodeGetRootNode" defs["igDockNodeGetRootNode"][1]["ret"] = "ImGuiDockNode*" @@ -13878,13 +14173,35 @@ defs["igDockNodeGetWindowMenuButtonId"][1]["call_args"] = "(node)" defs["igDockNodeGetWindowMenuButtonId"][1]["cimguiname"] = "igDockNodeGetWindowMenuButtonId" defs["igDockNodeGetWindowMenuButtonId"][1]["defaults"] = {} defs["igDockNodeGetWindowMenuButtonId"][1]["funcname"] = "DockNodeGetWindowMenuButtonId" -defs["igDockNodeGetWindowMenuButtonId"][1]["location"] = "imgui_internal:2735" +defs["igDockNodeGetWindowMenuButtonId"][1]["location"] = "imgui_internal:2855" defs["igDockNodeGetWindowMenuButtonId"][1]["namespace"] = "ImGui" defs["igDockNodeGetWindowMenuButtonId"][1]["ov_cimguiname"] = "igDockNodeGetWindowMenuButtonId" defs["igDockNodeGetWindowMenuButtonId"][1]["ret"] = "ImGuiID" defs["igDockNodeGetWindowMenuButtonId"][1]["signature"] = "(const ImGuiDockNode*)" defs["igDockNodeGetWindowMenuButtonId"][1]["stname"] = "" defs["igDockNodeGetWindowMenuButtonId"]["(const ImGuiDockNode*)"] = defs["igDockNodeGetWindowMenuButtonId"][1] +defs["igDockNodeIsInHierarchyOf"] = {} +defs["igDockNodeIsInHierarchyOf"][1] = {} +defs["igDockNodeIsInHierarchyOf"][1]["args"] = "(ImGuiDockNode* node,ImGuiDockNode* parent)" +defs["igDockNodeIsInHierarchyOf"][1]["argsT"] = {} +defs["igDockNodeIsInHierarchyOf"][1]["argsT"][1] = {} +defs["igDockNodeIsInHierarchyOf"][1]["argsT"][1]["name"] = "node" +defs["igDockNodeIsInHierarchyOf"][1]["argsT"][1]["type"] = "ImGuiDockNode*" +defs["igDockNodeIsInHierarchyOf"][1]["argsT"][2] = {} +defs["igDockNodeIsInHierarchyOf"][1]["argsT"][2]["name"] = "parent" +defs["igDockNodeIsInHierarchyOf"][1]["argsT"][2]["type"] = "ImGuiDockNode*" +defs["igDockNodeIsInHierarchyOf"][1]["argsoriginal"] = "(ImGuiDockNode* node,ImGuiDockNode* parent)" +defs["igDockNodeIsInHierarchyOf"][1]["call_args"] = "(node,parent)" +defs["igDockNodeIsInHierarchyOf"][1]["cimguiname"] = "igDockNodeIsInHierarchyOf" +defs["igDockNodeIsInHierarchyOf"][1]["defaults"] = {} +defs["igDockNodeIsInHierarchyOf"][1]["funcname"] = "DockNodeIsInHierarchyOf" +defs["igDockNodeIsInHierarchyOf"][1]["location"] = "imgui_internal:2853" +defs["igDockNodeIsInHierarchyOf"][1]["namespace"] = "ImGui" +defs["igDockNodeIsInHierarchyOf"][1]["ov_cimguiname"] = "igDockNodeIsInHierarchyOf" +defs["igDockNodeIsInHierarchyOf"][1]["ret"] = "bool" +defs["igDockNodeIsInHierarchyOf"][1]["signature"] = "(ImGuiDockNode*,ImGuiDockNode*)" +defs["igDockNodeIsInHierarchyOf"][1]["stname"] = "" +defs["igDockNodeIsInHierarchyOf"]["(ImGuiDockNode*,ImGuiDockNode*)"] = defs["igDockNodeIsInHierarchyOf"][1] defs["igDockSpace"] = {} defs["igDockSpace"][1] = {} defs["igDockSpace"][1]["args"] = "(ImGuiID id,const ImVec2 size,ImGuiDockNodeFlags flags,const ImGuiWindowClass* window_class)" @@ -13909,7 +14226,7 @@ defs["igDockSpace"][1]["defaults"]["flags"] = "0" defs["igDockSpace"][1]["defaults"]["size"] = "ImVec2(0,0)" defs["igDockSpace"][1]["defaults"]["window_class"] = "NULL" defs["igDockSpace"][1]["funcname"] = "DockSpace" -defs["igDockSpace"][1]["location"] = "imgui:816" +defs["igDockSpace"][1]["location"] = "imgui:818" defs["igDockSpace"][1]["namespace"] = "ImGui" defs["igDockSpace"][1]["ov_cimguiname"] = "igDockSpace" defs["igDockSpace"][1]["ret"] = "ImGuiID" @@ -13937,7 +14254,7 @@ defs["igDockSpaceOverViewport"][1]["defaults"]["flags"] = "0" defs["igDockSpaceOverViewport"][1]["defaults"]["viewport"] = "NULL" defs["igDockSpaceOverViewport"][1]["defaults"]["window_class"] = "NULL" defs["igDockSpaceOverViewport"][1]["funcname"] = "DockSpaceOverViewport" -defs["igDockSpaceOverViewport"][1]["location"] = "imgui:817" +defs["igDockSpaceOverViewport"][1]["location"] = "imgui:819" defs["igDockSpaceOverViewport"][1]["namespace"] = "ImGui" defs["igDockSpaceOverViewport"][1]["ov_cimguiname"] = "igDockSpaceOverViewport" defs["igDockSpaceOverViewport"][1]["ret"] = "ImGuiID" @@ -13977,7 +14294,7 @@ defs["igDragBehavior"][1]["call_args"] = "(id,data_type,p_v,v_speed,p_min,p_max, defs["igDragBehavior"][1]["cimguiname"] = "igDragBehavior" defs["igDragBehavior"][1]["defaults"] = {} defs["igDragBehavior"][1]["funcname"] = "DragBehavior" -defs["igDragBehavior"][1]["location"] = "imgui_internal:2899" +defs["igDragBehavior"][1]["location"] = "imgui_internal:3020" defs["igDragBehavior"][1]["namespace"] = "ImGui" defs["igDragBehavior"][1]["ov_cimguiname"] = "igDragBehavior" defs["igDragBehavior"][1]["ret"] = "bool" @@ -14019,7 +14336,7 @@ defs["igDragFloat"][1]["defaults"]["v_max"] = "0.0f" defs["igDragFloat"][1]["defaults"]["v_min"] = "0.0f" defs["igDragFloat"][1]["defaults"]["v_speed"] = "1.0f" defs["igDragFloat"][1]["funcname"] = "DragFloat" -defs["igDragFloat"][1]["location"] = "imgui:545" +defs["igDragFloat"][1]["location"] = "imgui:546" defs["igDragFloat"][1]["namespace"] = "ImGui" defs["igDragFloat"][1]["ov_cimguiname"] = "igDragFloat" defs["igDragFloat"][1]["ret"] = "bool" @@ -14061,7 +14378,7 @@ defs["igDragFloat2"][1]["defaults"]["v_max"] = "0.0f" defs["igDragFloat2"][1]["defaults"]["v_min"] = "0.0f" defs["igDragFloat2"][1]["defaults"]["v_speed"] = "1.0f" defs["igDragFloat2"][1]["funcname"] = "DragFloat2" -defs["igDragFloat2"][1]["location"] = "imgui:546" +defs["igDragFloat2"][1]["location"] = "imgui:547" defs["igDragFloat2"][1]["namespace"] = "ImGui" defs["igDragFloat2"][1]["ov_cimguiname"] = "igDragFloat2" defs["igDragFloat2"][1]["ret"] = "bool" @@ -14103,7 +14420,7 @@ defs["igDragFloat3"][1]["defaults"]["v_max"] = "0.0f" defs["igDragFloat3"][1]["defaults"]["v_min"] = "0.0f" defs["igDragFloat3"][1]["defaults"]["v_speed"] = "1.0f" defs["igDragFloat3"][1]["funcname"] = "DragFloat3" -defs["igDragFloat3"][1]["location"] = "imgui:547" +defs["igDragFloat3"][1]["location"] = "imgui:548" defs["igDragFloat3"][1]["namespace"] = "ImGui" defs["igDragFloat3"][1]["ov_cimguiname"] = "igDragFloat3" defs["igDragFloat3"][1]["ret"] = "bool" @@ -14145,7 +14462,7 @@ defs["igDragFloat4"][1]["defaults"]["v_max"] = "0.0f" defs["igDragFloat4"][1]["defaults"]["v_min"] = "0.0f" defs["igDragFloat4"][1]["defaults"]["v_speed"] = "1.0f" defs["igDragFloat4"][1]["funcname"] = "DragFloat4" -defs["igDragFloat4"][1]["location"] = "imgui:548" +defs["igDragFloat4"][1]["location"] = "imgui:549" defs["igDragFloat4"][1]["namespace"] = "ImGui" defs["igDragFloat4"][1]["ov_cimguiname"] = "igDragFloat4" defs["igDragFloat4"][1]["ret"] = "bool" @@ -14194,7 +14511,7 @@ defs["igDragFloatRange2"][1]["defaults"]["v_max"] = "0.0f" defs["igDragFloatRange2"][1]["defaults"]["v_min"] = "0.0f" defs["igDragFloatRange2"][1]["defaults"]["v_speed"] = "1.0f" defs["igDragFloatRange2"][1]["funcname"] = "DragFloatRange2" -defs["igDragFloatRange2"][1]["location"] = "imgui:549" +defs["igDragFloatRange2"][1]["location"] = "imgui:550" defs["igDragFloatRange2"][1]["namespace"] = "ImGui" defs["igDragFloatRange2"][1]["ov_cimguiname"] = "igDragFloatRange2" defs["igDragFloatRange2"][1]["ret"] = "bool" @@ -14236,7 +14553,7 @@ defs["igDragInt"][1]["defaults"]["v_max"] = "0" defs["igDragInt"][1]["defaults"]["v_min"] = "0" defs["igDragInt"][1]["defaults"]["v_speed"] = "1.0f" defs["igDragInt"][1]["funcname"] = "DragInt" -defs["igDragInt"][1]["location"] = "imgui:550" +defs["igDragInt"][1]["location"] = "imgui:551" defs["igDragInt"][1]["namespace"] = "ImGui" defs["igDragInt"][1]["ov_cimguiname"] = "igDragInt" defs["igDragInt"][1]["ret"] = "bool" @@ -14278,7 +14595,7 @@ defs["igDragInt2"][1]["defaults"]["v_max"] = "0" defs["igDragInt2"][1]["defaults"]["v_min"] = "0" defs["igDragInt2"][1]["defaults"]["v_speed"] = "1.0f" defs["igDragInt2"][1]["funcname"] = "DragInt2" -defs["igDragInt2"][1]["location"] = "imgui:551" +defs["igDragInt2"][1]["location"] = "imgui:552" defs["igDragInt2"][1]["namespace"] = "ImGui" defs["igDragInt2"][1]["ov_cimguiname"] = "igDragInt2" defs["igDragInt2"][1]["ret"] = "bool" @@ -14320,7 +14637,7 @@ defs["igDragInt3"][1]["defaults"]["v_max"] = "0" defs["igDragInt3"][1]["defaults"]["v_min"] = "0" defs["igDragInt3"][1]["defaults"]["v_speed"] = "1.0f" defs["igDragInt3"][1]["funcname"] = "DragInt3" -defs["igDragInt3"][1]["location"] = "imgui:552" +defs["igDragInt3"][1]["location"] = "imgui:553" defs["igDragInt3"][1]["namespace"] = "ImGui" defs["igDragInt3"][1]["ov_cimguiname"] = "igDragInt3" defs["igDragInt3"][1]["ret"] = "bool" @@ -14362,7 +14679,7 @@ defs["igDragInt4"][1]["defaults"]["v_max"] = "0" defs["igDragInt4"][1]["defaults"]["v_min"] = "0" defs["igDragInt4"][1]["defaults"]["v_speed"] = "1.0f" defs["igDragInt4"][1]["funcname"] = "DragInt4" -defs["igDragInt4"][1]["location"] = "imgui:553" +defs["igDragInt4"][1]["location"] = "imgui:554" defs["igDragInt4"][1]["namespace"] = "ImGui" defs["igDragInt4"][1]["ov_cimguiname"] = "igDragInt4" defs["igDragInt4"][1]["ret"] = "bool" @@ -14411,7 +14728,7 @@ defs["igDragIntRange2"][1]["defaults"]["v_max"] = "0" defs["igDragIntRange2"][1]["defaults"]["v_min"] = "0" defs["igDragIntRange2"][1]["defaults"]["v_speed"] = "1.0f" defs["igDragIntRange2"][1]["funcname"] = "DragIntRange2" -defs["igDragIntRange2"][1]["location"] = "imgui:554" +defs["igDragIntRange2"][1]["location"] = "imgui:555" defs["igDragIntRange2"][1]["namespace"] = "ImGui" defs["igDragIntRange2"][1]["ov_cimguiname"] = "igDragIntRange2" defs["igDragIntRange2"][1]["ret"] = "bool" @@ -14456,7 +14773,7 @@ defs["igDragScalar"][1]["defaults"]["p_max"] = "NULL" defs["igDragScalar"][1]["defaults"]["p_min"] = "NULL" defs["igDragScalar"][1]["defaults"]["v_speed"] = "1.0f" defs["igDragScalar"][1]["funcname"] = "DragScalar" -defs["igDragScalar"][1]["location"] = "imgui:555" +defs["igDragScalar"][1]["location"] = "imgui:556" defs["igDragScalar"][1]["namespace"] = "ImGui" defs["igDragScalar"][1]["ov_cimguiname"] = "igDragScalar" defs["igDragScalar"][1]["ret"] = "bool" @@ -14504,7 +14821,7 @@ defs["igDragScalarN"][1]["defaults"]["p_max"] = "NULL" defs["igDragScalarN"][1]["defaults"]["p_min"] = "NULL" defs["igDragScalarN"][1]["defaults"]["v_speed"] = "1.0f" defs["igDragScalarN"][1]["funcname"] = "DragScalarN" -defs["igDragScalarN"][1]["location"] = "imgui:556" +defs["igDragScalarN"][1]["location"] = "imgui:557" defs["igDragScalarN"][1]["namespace"] = "ImGui" defs["igDragScalarN"][1]["ov_cimguiname"] = "igDragScalarN" defs["igDragScalarN"][1]["ret"] = "bool" @@ -14523,7 +14840,7 @@ defs["igDummy"][1]["call_args"] = "(size)" defs["igDummy"][1]["cimguiname"] = "igDummy" defs["igDummy"][1]["defaults"] = {} defs["igDummy"][1]["funcname"] = "Dummy" -defs["igDummy"][1]["location"] = "imgui:453" +defs["igDummy"][1]["location"] = "imgui:454" defs["igDummy"][1]["namespace"] = "ImGui" defs["igDummy"][1]["ov_cimguiname"] = "igDummy" defs["igDummy"][1]["ret"] = "void" @@ -14539,7 +14856,7 @@ defs["igEnd"][1]["call_args"] = "()" defs["igEnd"][1]["cimguiname"] = "igEnd" defs["igEnd"][1]["defaults"] = {} defs["igEnd"][1]["funcname"] = "End" -defs["igEnd"][1]["location"] = "imgui:342" +defs["igEnd"][1]["location"] = "imgui:343" defs["igEnd"][1]["namespace"] = "ImGui" defs["igEnd"][1]["ov_cimguiname"] = "igEnd" defs["igEnd"][1]["ret"] = "void" @@ -14555,7 +14872,7 @@ defs["igEndChild"][1]["call_args"] = "()" defs["igEndChild"][1]["cimguiname"] = "igEndChild" defs["igEndChild"][1]["defaults"] = {} defs["igEndChild"][1]["funcname"] = "EndChild" -defs["igEndChild"][1]["location"] = "imgui:354" +defs["igEndChild"][1]["location"] = "imgui:355" defs["igEndChild"][1]["namespace"] = "ImGui" defs["igEndChild"][1]["ov_cimguiname"] = "igEndChild" defs["igEndChild"][1]["ret"] = "void" @@ -14571,7 +14888,7 @@ defs["igEndChildFrame"][1]["call_args"] = "()" defs["igEndChildFrame"][1]["cimguiname"] = "igEndChildFrame" defs["igEndChildFrame"][1]["defaults"] = {} defs["igEndChildFrame"][1]["funcname"] = "EndChildFrame" -defs["igEndChildFrame"][1]["location"] = "imgui:905" +defs["igEndChildFrame"][1]["location"] = "imgui:906" defs["igEndChildFrame"][1]["namespace"] = "ImGui" defs["igEndChildFrame"][1]["ov_cimguiname"] = "igEndChildFrame" defs["igEndChildFrame"][1]["ret"] = "void" @@ -14587,7 +14904,7 @@ defs["igEndColumns"][1]["call_args"] = "()" defs["igEndColumns"][1]["cimguiname"] = "igEndColumns" defs["igEndColumns"][1]["defaults"] = {} defs["igEndColumns"][1]["funcname"] = "EndColumns" -defs["igEndColumns"][1]["location"] = "imgui_internal:2775" +defs["igEndColumns"][1]["location"] = "imgui_internal:2895" defs["igEndColumns"][1]["namespace"] = "ImGui" defs["igEndColumns"][1]["ov_cimguiname"] = "igEndColumns" defs["igEndColumns"][1]["ret"] = "void" @@ -14603,7 +14920,7 @@ defs["igEndCombo"][1]["call_args"] = "()" defs["igEndCombo"][1]["cimguiname"] = "igEndCombo" defs["igEndCombo"][1]["defaults"] = {} defs["igEndCombo"][1]["funcname"] = "EndCombo" -defs["igEndCombo"][1]["location"] = "imgui:529" +defs["igEndCombo"][1]["location"] = "imgui:530" defs["igEndCombo"][1]["namespace"] = "ImGui" defs["igEndCombo"][1]["ov_cimguiname"] = "igEndCombo" defs["igEndCombo"][1]["ret"] = "void" @@ -14619,7 +14936,7 @@ defs["igEndComboPreview"][1]["call_args"] = "()" defs["igEndComboPreview"][1]["cimguiname"] = "igEndComboPreview" defs["igEndComboPreview"][1]["defaults"] = {} defs["igEndComboPreview"][1]["funcname"] = "EndComboPreview" -defs["igEndComboPreview"][1]["location"] = "imgui_internal:2682" +defs["igEndComboPreview"][1]["location"] = "imgui_internal:2797" defs["igEndComboPreview"][1]["namespace"] = "ImGui" defs["igEndComboPreview"][1]["ov_cimguiname"] = "igEndComboPreview" defs["igEndComboPreview"][1]["ret"] = "void" @@ -14635,7 +14952,7 @@ defs["igEndDisabled"][1]["call_args"] = "()" defs["igEndDisabled"][1]["cimguiname"] = "igEndDisabled" defs["igEndDisabled"][1]["defaults"] = {} defs["igEndDisabled"][1]["funcname"] = "EndDisabled" -defs["igEndDisabled"][1]["location"] = "imgui:851" +defs["igEndDisabled"][1]["location"] = "imgui:853" defs["igEndDisabled"][1]["namespace"] = "ImGui" defs["igEndDisabled"][1]["ov_cimguiname"] = "igEndDisabled" defs["igEndDisabled"][1]["ret"] = "void" @@ -14651,7 +14968,7 @@ defs["igEndDragDropSource"][1]["call_args"] = "()" defs["igEndDragDropSource"][1]["cimguiname"] = "igEndDragDropSource" defs["igEndDragDropSource"][1]["defaults"] = {} defs["igEndDragDropSource"][1]["funcname"] = "EndDragDropSource" -defs["igEndDragDropSource"][1]["location"] = "imgui:840" +defs["igEndDragDropSource"][1]["location"] = "imgui:842" defs["igEndDragDropSource"][1]["namespace"] = "ImGui" defs["igEndDragDropSource"][1]["ov_cimguiname"] = "igEndDragDropSource" defs["igEndDragDropSource"][1]["ret"] = "void" @@ -14667,7 +14984,7 @@ defs["igEndDragDropTarget"][1]["call_args"] = "()" defs["igEndDragDropTarget"][1]["cimguiname"] = "igEndDragDropTarget" defs["igEndDragDropTarget"][1]["defaults"] = {} defs["igEndDragDropTarget"][1]["funcname"] = "EndDragDropTarget" -defs["igEndDragDropTarget"][1]["location"] = "imgui:843" +defs["igEndDragDropTarget"][1]["location"] = "imgui:845" defs["igEndDragDropTarget"][1]["namespace"] = "ImGui" defs["igEndDragDropTarget"][1]["ov_cimguiname"] = "igEndDragDropTarget" defs["igEndDragDropTarget"][1]["ret"] = "void" @@ -14699,7 +15016,7 @@ defs["igEndGroup"][1]["call_args"] = "()" defs["igEndGroup"][1]["cimguiname"] = "igEndGroup" defs["igEndGroup"][1]["defaults"] = {} defs["igEndGroup"][1]["funcname"] = "EndGroup" -defs["igEndGroup"][1]["location"] = "imgui:457" +defs["igEndGroup"][1]["location"] = "imgui:458" defs["igEndGroup"][1]["namespace"] = "ImGui" defs["igEndGroup"][1]["ov_cimguiname"] = "igEndGroup" defs["igEndGroup"][1]["ret"] = "void" @@ -14715,7 +15032,7 @@ defs["igEndListBox"][1]["call_args"] = "()" defs["igEndListBox"][1]["cimguiname"] = "igEndListBox" defs["igEndListBox"][1]["defaults"] = {} defs["igEndListBox"][1]["funcname"] = "EndListBox" -defs["igEndListBox"][1]["location"] = "imgui:640" +defs["igEndListBox"][1]["location"] = "imgui:641" defs["igEndListBox"][1]["namespace"] = "ImGui" defs["igEndListBox"][1]["ov_cimguiname"] = "igEndListBox" defs["igEndListBox"][1]["ret"] = "void" @@ -14731,7 +15048,7 @@ defs["igEndMainMenuBar"][1]["call_args"] = "()" defs["igEndMainMenuBar"][1]["cimguiname"] = "igEndMainMenuBar" defs["igEndMainMenuBar"][1]["defaults"] = {} defs["igEndMainMenuBar"][1]["funcname"] = "EndMainMenuBar" -defs["igEndMainMenuBar"][1]["location"] = "imgui:666" +defs["igEndMainMenuBar"][1]["location"] = "imgui:667" defs["igEndMainMenuBar"][1]["namespace"] = "ImGui" defs["igEndMainMenuBar"][1]["ov_cimguiname"] = "igEndMainMenuBar" defs["igEndMainMenuBar"][1]["ret"] = "void" @@ -14747,7 +15064,7 @@ defs["igEndMenu"][1]["call_args"] = "()" defs["igEndMenu"][1]["cimguiname"] = "igEndMenu" defs["igEndMenu"][1]["defaults"] = {} defs["igEndMenu"][1]["funcname"] = "EndMenu" -defs["igEndMenu"][1]["location"] = "imgui:668" +defs["igEndMenu"][1]["location"] = "imgui:669" defs["igEndMenu"][1]["namespace"] = "ImGui" defs["igEndMenu"][1]["ov_cimguiname"] = "igEndMenu" defs["igEndMenu"][1]["ret"] = "void" @@ -14763,7 +15080,7 @@ defs["igEndMenuBar"][1]["call_args"] = "()" defs["igEndMenuBar"][1]["cimguiname"] = "igEndMenuBar" defs["igEndMenuBar"][1]["defaults"] = {} defs["igEndMenuBar"][1]["funcname"] = "EndMenuBar" -defs["igEndMenuBar"][1]["location"] = "imgui:664" +defs["igEndMenuBar"][1]["location"] = "imgui:665" defs["igEndMenuBar"][1]["namespace"] = "ImGui" defs["igEndMenuBar"][1]["ov_cimguiname"] = "igEndMenuBar" defs["igEndMenuBar"][1]["ret"] = "void" @@ -14779,7 +15096,7 @@ defs["igEndPopup"][1]["call_args"] = "()" defs["igEndPopup"][1]["cimguiname"] = "igEndPopup" defs["igEndPopup"][1]["defaults"] = {} defs["igEndPopup"][1]["funcname"] = "EndPopup" -defs["igEndPopup"][1]["location"] = "imgui:693" +defs["igEndPopup"][1]["location"] = "imgui:694" defs["igEndPopup"][1]["namespace"] = "ImGui" defs["igEndPopup"][1]["ov_cimguiname"] = "igEndPopup" defs["igEndPopup"][1]["ret"] = "void" @@ -14795,7 +15112,7 @@ defs["igEndTabBar"][1]["call_args"] = "()" defs["igEndTabBar"][1]["cimguiname"] = "igEndTabBar" defs["igEndTabBar"][1]["defaults"] = {} defs["igEndTabBar"][1]["funcname"] = "EndTabBar" -defs["igEndTabBar"][1]["location"] = "imgui:798" +defs["igEndTabBar"][1]["location"] = "imgui:799" defs["igEndTabBar"][1]["namespace"] = "ImGui" defs["igEndTabBar"][1]["ov_cimguiname"] = "igEndTabBar" defs["igEndTabBar"][1]["ret"] = "void" @@ -14811,7 +15128,7 @@ defs["igEndTabItem"][1]["call_args"] = "()" defs["igEndTabItem"][1]["cimguiname"] = "igEndTabItem" defs["igEndTabItem"][1]["defaults"] = {} defs["igEndTabItem"][1]["funcname"] = "EndTabItem" -defs["igEndTabItem"][1]["location"] = "imgui:800" +defs["igEndTabItem"][1]["location"] = "imgui:801" defs["igEndTabItem"][1]["namespace"] = "ImGui" defs["igEndTabItem"][1]["ov_cimguiname"] = "igEndTabItem" defs["igEndTabItem"][1]["ret"] = "void" @@ -14827,7 +15144,7 @@ defs["igEndTable"][1]["call_args"] = "()" defs["igEndTable"][1]["cimguiname"] = "igEndTable" defs["igEndTable"][1]["defaults"] = {} defs["igEndTable"][1]["funcname"] = "EndTable" -defs["igEndTable"][1]["location"] = "imgui:748" +defs["igEndTable"][1]["location"] = "imgui:749" defs["igEndTable"][1]["namespace"] = "ImGui" defs["igEndTable"][1]["ov_cimguiname"] = "igEndTable" defs["igEndTable"][1]["ret"] = "void" @@ -14843,7 +15160,7 @@ defs["igEndTooltip"][1]["call_args"] = "()" defs["igEndTooltip"][1]["cimguiname"] = "igEndTooltip" defs["igEndTooltip"][1]["defaults"] = {} defs["igEndTooltip"][1]["funcname"] = "EndTooltip" -defs["igEndTooltip"][1]["location"] = "imgui:675" +defs["igEndTooltip"][1]["location"] = "imgui:676" defs["igEndTooltip"][1]["namespace"] = "ImGui" defs["igEndTooltip"][1]["ov_cimguiname"] = "igEndTooltip" defs["igEndTooltip"][1]["ret"] = "void" @@ -14866,13 +15183,36 @@ defs["igErrorCheckEndFrameRecover"][1]["cimguiname"] = "igErrorCheckEndFrameReco defs["igErrorCheckEndFrameRecover"][1]["defaults"] = {} defs["igErrorCheckEndFrameRecover"][1]["defaults"]["user_data"] = "NULL" defs["igErrorCheckEndFrameRecover"][1]["funcname"] = "ErrorCheckEndFrameRecover" -defs["igErrorCheckEndFrameRecover"][1]["location"] = "imgui_internal:2949" +defs["igErrorCheckEndFrameRecover"][1]["location"] = "imgui_internal:3070" defs["igErrorCheckEndFrameRecover"][1]["namespace"] = "ImGui" defs["igErrorCheckEndFrameRecover"][1]["ov_cimguiname"] = "igErrorCheckEndFrameRecover" defs["igErrorCheckEndFrameRecover"][1]["ret"] = "void" defs["igErrorCheckEndFrameRecover"][1]["signature"] = "(ImGuiErrorLogCallback,void*)" defs["igErrorCheckEndFrameRecover"][1]["stname"] = "" defs["igErrorCheckEndFrameRecover"]["(ImGuiErrorLogCallback,void*)"] = defs["igErrorCheckEndFrameRecover"][1] +defs["igErrorCheckEndWindowRecover"] = {} +defs["igErrorCheckEndWindowRecover"][1] = {} +defs["igErrorCheckEndWindowRecover"][1]["args"] = "(ImGuiErrorLogCallback log_callback,void* user_data)" +defs["igErrorCheckEndWindowRecover"][1]["argsT"] = {} +defs["igErrorCheckEndWindowRecover"][1]["argsT"][1] = {} +defs["igErrorCheckEndWindowRecover"][1]["argsT"][1]["name"] = "log_callback" +defs["igErrorCheckEndWindowRecover"][1]["argsT"][1]["type"] = "ImGuiErrorLogCallback" +defs["igErrorCheckEndWindowRecover"][1]["argsT"][2] = {} +defs["igErrorCheckEndWindowRecover"][1]["argsT"][2]["name"] = "user_data" +defs["igErrorCheckEndWindowRecover"][1]["argsT"][2]["type"] = "void*" +defs["igErrorCheckEndWindowRecover"][1]["argsoriginal"] = "(ImGuiErrorLogCallback log_callback,void* user_data=((void*)0))" +defs["igErrorCheckEndWindowRecover"][1]["call_args"] = "(log_callback,user_data)" +defs["igErrorCheckEndWindowRecover"][1]["cimguiname"] = "igErrorCheckEndWindowRecover" +defs["igErrorCheckEndWindowRecover"][1]["defaults"] = {} +defs["igErrorCheckEndWindowRecover"][1]["defaults"]["user_data"] = "NULL" +defs["igErrorCheckEndWindowRecover"][1]["funcname"] = "ErrorCheckEndWindowRecover" +defs["igErrorCheckEndWindowRecover"][1]["location"] = "imgui_internal:3071" +defs["igErrorCheckEndWindowRecover"][1]["namespace"] = "ImGui" +defs["igErrorCheckEndWindowRecover"][1]["ov_cimguiname"] = "igErrorCheckEndWindowRecover" +defs["igErrorCheckEndWindowRecover"][1]["ret"] = "void" +defs["igErrorCheckEndWindowRecover"][1]["signature"] = "(ImGuiErrorLogCallback,void*)" +defs["igErrorCheckEndWindowRecover"][1]["stname"] = "" +defs["igErrorCheckEndWindowRecover"]["(ImGuiErrorLogCallback,void*)"] = defs["igErrorCheckEndWindowRecover"][1] defs["igFindBestWindowPosForPopup"] = {} defs["igFindBestWindowPosForPopup"][1] = {} defs["igFindBestWindowPosForPopup"][1]["args"] = "(ImVec2 *pOut,ImGuiWindow* window)" @@ -14888,7 +15228,7 @@ defs["igFindBestWindowPosForPopup"][1]["call_args"] = "(window)" defs["igFindBestWindowPosForPopup"][1]["cimguiname"] = "igFindBestWindowPosForPopup" defs["igFindBestWindowPosForPopup"][1]["defaults"] = {} defs["igFindBestWindowPosForPopup"][1]["funcname"] = "FindBestWindowPosForPopup" -defs["igFindBestWindowPosForPopup"][1]["location"] = "imgui_internal:2671" +defs["igFindBestWindowPosForPopup"][1]["location"] = "imgui_internal:2786" defs["igFindBestWindowPosForPopup"][1]["namespace"] = "ImGui" defs["igFindBestWindowPosForPopup"][1]["nonUDT"] = 1 defs["igFindBestWindowPosForPopup"][1]["ov_cimguiname"] = "igFindBestWindowPosForPopup" @@ -14926,7 +15266,7 @@ defs["igFindBestWindowPosForPopupEx"][1]["call_args"] = "(ref_pos,size,last_dir, defs["igFindBestWindowPosForPopupEx"][1]["cimguiname"] = "igFindBestWindowPosForPopupEx" defs["igFindBestWindowPosForPopupEx"][1]["defaults"] = {} defs["igFindBestWindowPosForPopupEx"][1]["funcname"] = "FindBestWindowPosForPopupEx" -defs["igFindBestWindowPosForPopupEx"][1]["location"] = "imgui_internal:2672" +defs["igFindBestWindowPosForPopupEx"][1]["location"] = "imgui_internal:2787" defs["igFindBestWindowPosForPopupEx"][1]["namespace"] = "ImGui" defs["igFindBestWindowPosForPopupEx"][1]["nonUDT"] = 1 defs["igFindBestWindowPosForPopupEx"][1]["ov_cimguiname"] = "igFindBestWindowPosForPopupEx" @@ -14934,6 +15274,25 @@ defs["igFindBestWindowPosForPopupEx"][1]["ret"] = "void" defs["igFindBestWindowPosForPopupEx"][1]["signature"] = "(const ImVec2,const ImVec2,ImGuiDir*,const ImRect,const ImRect,ImGuiPopupPositionPolicy)" defs["igFindBestWindowPosForPopupEx"][1]["stname"] = "" defs["igFindBestWindowPosForPopupEx"]["(const ImVec2,const ImVec2,ImGuiDir*,const ImRect,const ImRect,ImGuiPopupPositionPolicy)"] = defs["igFindBestWindowPosForPopupEx"][1] +defs["igFindBottomMostVisibleWindowWithinBeginStack"] = {} +defs["igFindBottomMostVisibleWindowWithinBeginStack"][1] = {} +defs["igFindBottomMostVisibleWindowWithinBeginStack"][1]["args"] = "(ImGuiWindow* window)" +defs["igFindBottomMostVisibleWindowWithinBeginStack"][1]["argsT"] = {} +defs["igFindBottomMostVisibleWindowWithinBeginStack"][1]["argsT"][1] = {} +defs["igFindBottomMostVisibleWindowWithinBeginStack"][1]["argsT"][1]["name"] = "window" +defs["igFindBottomMostVisibleWindowWithinBeginStack"][1]["argsT"][1]["type"] = "ImGuiWindow*" +defs["igFindBottomMostVisibleWindowWithinBeginStack"][1]["argsoriginal"] = "(ImGuiWindow* window)" +defs["igFindBottomMostVisibleWindowWithinBeginStack"][1]["call_args"] = "(window)" +defs["igFindBottomMostVisibleWindowWithinBeginStack"][1]["cimguiname"] = "igFindBottomMostVisibleWindowWithinBeginStack" +defs["igFindBottomMostVisibleWindowWithinBeginStack"][1]["defaults"] = {} +defs["igFindBottomMostVisibleWindowWithinBeginStack"][1]["funcname"] = "FindBottomMostVisibleWindowWithinBeginStack" +defs["igFindBottomMostVisibleWindowWithinBeginStack"][1]["location"] = "imgui_internal:2669" +defs["igFindBottomMostVisibleWindowWithinBeginStack"][1]["namespace"] = "ImGui" +defs["igFindBottomMostVisibleWindowWithinBeginStack"][1]["ov_cimguiname"] = "igFindBottomMostVisibleWindowWithinBeginStack" +defs["igFindBottomMostVisibleWindowWithinBeginStack"][1]["ret"] = "ImGuiWindow*" +defs["igFindBottomMostVisibleWindowWithinBeginStack"][1]["signature"] = "(ImGuiWindow*)" +defs["igFindBottomMostVisibleWindowWithinBeginStack"][1]["stname"] = "" +defs["igFindBottomMostVisibleWindowWithinBeginStack"]["(ImGuiWindow*)"] = defs["igFindBottomMostVisibleWindowWithinBeginStack"][1] defs["igFindOrCreateColumns"] = {} defs["igFindOrCreateColumns"][1] = {} defs["igFindOrCreateColumns"][1]["args"] = "(ImGuiWindow* window,ImGuiID id)" @@ -14949,7 +15308,7 @@ defs["igFindOrCreateColumns"][1]["call_args"] = "(window,id)" defs["igFindOrCreateColumns"][1]["cimguiname"] = "igFindOrCreateColumns" defs["igFindOrCreateColumns"][1]["defaults"] = {} defs["igFindOrCreateColumns"][1]["funcname"] = "FindOrCreateColumns" -defs["igFindOrCreateColumns"][1]["location"] = "imgui_internal:2780" +defs["igFindOrCreateColumns"][1]["location"] = "imgui_internal:2900" defs["igFindOrCreateColumns"][1]["namespace"] = "ImGui" defs["igFindOrCreateColumns"][1]["ov_cimguiname"] = "igFindOrCreateColumns" defs["igFindOrCreateColumns"][1]["ret"] = "ImGuiOldColumns*" @@ -14968,7 +15327,7 @@ defs["igFindOrCreateWindowSettings"][1]["call_args"] = "(name)" defs["igFindOrCreateWindowSettings"][1]["cimguiname"] = "igFindOrCreateWindowSettings" defs["igFindOrCreateWindowSettings"][1]["defaults"] = {} defs["igFindOrCreateWindowSettings"][1]["funcname"] = "FindOrCreateWindowSettings" -defs["igFindOrCreateWindowSettings"][1]["location"] = "imgui_internal:2600" +defs["igFindOrCreateWindowSettings"][1]["location"] = "imgui_internal:2705" defs["igFindOrCreateWindowSettings"][1]["namespace"] = "ImGui" defs["igFindOrCreateWindowSettings"][1]["ov_cimguiname"] = "igFindOrCreateWindowSettings" defs["igFindOrCreateWindowSettings"][1]["ret"] = "ImGuiWindowSettings*" @@ -14991,7 +15350,7 @@ defs["igFindRenderedTextEnd"][1]["cimguiname"] = "igFindRenderedTextEnd" defs["igFindRenderedTextEnd"][1]["defaults"] = {} defs["igFindRenderedTextEnd"][1]["defaults"]["text_end"] = "NULL" defs["igFindRenderedTextEnd"][1]["funcname"] = "FindRenderedTextEnd" -defs["igFindRenderedTextEnd"][1]["location"] = "imgui_internal:2862" +defs["igFindRenderedTextEnd"][1]["location"] = "imgui_internal:2982" defs["igFindRenderedTextEnd"][1]["namespace"] = "ImGui" defs["igFindRenderedTextEnd"][1]["ov_cimguiname"] = "igFindRenderedTextEnd" defs["igFindRenderedTextEnd"][1]["ret"] = "const char*" @@ -15010,7 +15369,7 @@ defs["igFindSettingsHandler"][1]["call_args"] = "(type_name)" defs["igFindSettingsHandler"][1]["cimguiname"] = "igFindSettingsHandler" defs["igFindSettingsHandler"][1]["defaults"] = {} defs["igFindSettingsHandler"][1]["funcname"] = "FindSettingsHandler" -defs["igFindSettingsHandler"][1]["location"] = "imgui_internal:2601" +defs["igFindSettingsHandler"][1]["location"] = "imgui_internal:2706" defs["igFindSettingsHandler"][1]["namespace"] = "ImGui" defs["igFindSettingsHandler"][1]["ov_cimguiname"] = "igFindSettingsHandler" defs["igFindSettingsHandler"][1]["ret"] = "ImGuiSettingsHandler*" @@ -15029,7 +15388,7 @@ defs["igFindViewportByID"][1]["call_args"] = "(id)" defs["igFindViewportByID"][1]["cimguiname"] = "igFindViewportByID" defs["igFindViewportByID"][1]["defaults"] = {} defs["igFindViewportByID"][1]["funcname"] = "FindViewportByID" -defs["igFindViewportByID"][1]["location"] = "imgui:980" +defs["igFindViewportByID"][1]["location"] = "imgui:982" defs["igFindViewportByID"][1]["namespace"] = "ImGui" defs["igFindViewportByID"][1]["ov_cimguiname"] = "igFindViewportByID" defs["igFindViewportByID"][1]["ret"] = "ImGuiViewport*" @@ -15048,7 +15407,7 @@ defs["igFindViewportByPlatformHandle"][1]["call_args"] = "(platform_handle)" defs["igFindViewportByPlatformHandle"][1]["cimguiname"] = "igFindViewportByPlatformHandle" defs["igFindViewportByPlatformHandle"][1]["defaults"] = {} defs["igFindViewportByPlatformHandle"][1]["funcname"] = "FindViewportByPlatformHandle" -defs["igFindViewportByPlatformHandle"][1]["location"] = "imgui:981" +defs["igFindViewportByPlatformHandle"][1]["location"] = "imgui:983" defs["igFindViewportByPlatformHandle"][1]["namespace"] = "ImGui" defs["igFindViewportByPlatformHandle"][1]["ov_cimguiname"] = "igFindViewportByPlatformHandle" defs["igFindViewportByPlatformHandle"][1]["ret"] = "ImGuiViewport*" @@ -15067,7 +15426,7 @@ defs["igFindWindowByID"][1]["call_args"] = "(id)" defs["igFindWindowByID"][1]["cimguiname"] = "igFindWindowByID" defs["igFindWindowByID"][1]["defaults"] = {} defs["igFindWindowByID"][1]["funcname"] = "FindWindowByID" -defs["igFindWindowByID"][1]["location"] = "imgui_internal:2547" +defs["igFindWindowByID"][1]["location"] = "imgui_internal:2646" defs["igFindWindowByID"][1]["namespace"] = "ImGui" defs["igFindWindowByID"][1]["ov_cimguiname"] = "igFindWindowByID" defs["igFindWindowByID"][1]["ret"] = "ImGuiWindow*" @@ -15086,13 +15445,32 @@ defs["igFindWindowByName"][1]["call_args"] = "(name)" defs["igFindWindowByName"][1]["cimguiname"] = "igFindWindowByName" defs["igFindWindowByName"][1]["defaults"] = {} defs["igFindWindowByName"][1]["funcname"] = "FindWindowByName" -defs["igFindWindowByName"][1]["location"] = "imgui_internal:2548" +defs["igFindWindowByName"][1]["location"] = "imgui_internal:2647" defs["igFindWindowByName"][1]["namespace"] = "ImGui" defs["igFindWindowByName"][1]["ov_cimguiname"] = "igFindWindowByName" defs["igFindWindowByName"][1]["ret"] = "ImGuiWindow*" defs["igFindWindowByName"][1]["signature"] = "(const char*)" defs["igFindWindowByName"][1]["stname"] = "" defs["igFindWindowByName"]["(const char*)"] = defs["igFindWindowByName"][1] +defs["igFindWindowDisplayIndex"] = {} +defs["igFindWindowDisplayIndex"][1] = {} +defs["igFindWindowDisplayIndex"][1]["args"] = "(ImGuiWindow* window)" +defs["igFindWindowDisplayIndex"][1]["argsT"] = {} +defs["igFindWindowDisplayIndex"][1]["argsT"][1] = {} +defs["igFindWindowDisplayIndex"][1]["argsT"][1]["name"] = "window" +defs["igFindWindowDisplayIndex"][1]["argsT"][1]["type"] = "ImGuiWindow*" +defs["igFindWindowDisplayIndex"][1]["argsoriginal"] = "(ImGuiWindow* window)" +defs["igFindWindowDisplayIndex"][1]["call_args"] = "(window)" +defs["igFindWindowDisplayIndex"][1]["cimguiname"] = "igFindWindowDisplayIndex" +defs["igFindWindowDisplayIndex"][1]["defaults"] = {} +defs["igFindWindowDisplayIndex"][1]["funcname"] = "FindWindowDisplayIndex" +defs["igFindWindowDisplayIndex"][1]["location"] = "imgui_internal:2668" +defs["igFindWindowDisplayIndex"][1]["namespace"] = "ImGui" +defs["igFindWindowDisplayIndex"][1]["ov_cimguiname"] = "igFindWindowDisplayIndex" +defs["igFindWindowDisplayIndex"][1]["ret"] = "int" +defs["igFindWindowDisplayIndex"][1]["signature"] = "(ImGuiWindow*)" +defs["igFindWindowDisplayIndex"][1]["stname"] = "" +defs["igFindWindowDisplayIndex"]["(ImGuiWindow*)"] = defs["igFindWindowDisplayIndex"][1] defs["igFindWindowSettings"] = {} defs["igFindWindowSettings"][1] = {} defs["igFindWindowSettings"][1]["args"] = "(ImGuiID id)" @@ -15105,7 +15483,7 @@ defs["igFindWindowSettings"][1]["call_args"] = "(id)" defs["igFindWindowSettings"][1]["cimguiname"] = "igFindWindowSettings" defs["igFindWindowSettings"][1]["defaults"] = {} defs["igFindWindowSettings"][1]["funcname"] = "FindWindowSettings" -defs["igFindWindowSettings"][1]["location"] = "imgui_internal:2599" +defs["igFindWindowSettings"][1]["location"] = "imgui_internal:2704" defs["igFindWindowSettings"][1]["namespace"] = "ImGui" defs["igFindWindowSettings"][1]["ov_cimguiname"] = "igFindWindowSettings" defs["igFindWindowSettings"][1]["ret"] = "ImGuiWindowSettings*" @@ -15127,7 +15505,7 @@ defs["igFocusTopMostWindowUnderOne"][1]["call_args"] = "(under_this_window,ignor defs["igFocusTopMostWindowUnderOne"][1]["cimguiname"] = "igFocusTopMostWindowUnderOne" defs["igFocusTopMostWindowUnderOne"][1]["defaults"] = {} defs["igFocusTopMostWindowUnderOne"][1]["funcname"] = "FocusTopMostWindowUnderOne" -defs["igFocusTopMostWindowUnderOne"][1]["location"] = "imgui_internal:2561" +defs["igFocusTopMostWindowUnderOne"][1]["location"] = "imgui_internal:2663" defs["igFocusTopMostWindowUnderOne"][1]["namespace"] = "ImGui" defs["igFocusTopMostWindowUnderOne"][1]["ov_cimguiname"] = "igFocusTopMostWindowUnderOne" defs["igFocusTopMostWindowUnderOne"][1]["ret"] = "void" @@ -15146,7 +15524,7 @@ defs["igFocusWindow"][1]["call_args"] = "(window)" defs["igFocusWindow"][1]["cimguiname"] = "igFocusWindow" defs["igFocusWindow"][1]["defaults"] = {} defs["igFocusWindow"][1]["funcname"] = "FocusWindow" -defs["igFocusWindow"][1]["location"] = "imgui_internal:2560" +defs["igFocusWindow"][1]["location"] = "imgui_internal:2662" defs["igFocusWindow"][1]["namespace"] = "ImGui" defs["igFocusWindow"][1]["ov_cimguiname"] = "igFocusWindow" defs["igFocusWindow"][1]["ret"] = "void" @@ -15165,7 +15543,7 @@ defs["igGcAwakeTransientWindowBuffers"][1]["call_args"] = "(window)" defs["igGcAwakeTransientWindowBuffers"][1]["cimguiname"] = "igGcAwakeTransientWindowBuffers" defs["igGcAwakeTransientWindowBuffers"][1]["defaults"] = {} defs["igGcAwakeTransientWindowBuffers"][1]["funcname"] = "GcAwakeTransientWindowBuffers" -defs["igGcAwakeTransientWindowBuffers"][1]["location"] = "imgui_internal:2946" +defs["igGcAwakeTransientWindowBuffers"][1]["location"] = "imgui_internal:3067" defs["igGcAwakeTransientWindowBuffers"][1]["namespace"] = "ImGui" defs["igGcAwakeTransientWindowBuffers"][1]["ov_cimguiname"] = "igGcAwakeTransientWindowBuffers" defs["igGcAwakeTransientWindowBuffers"][1]["ret"] = "void" @@ -15181,7 +15559,7 @@ defs["igGcCompactTransientMiscBuffers"][1]["call_args"] = "()" defs["igGcCompactTransientMiscBuffers"][1]["cimguiname"] = "igGcCompactTransientMiscBuffers" defs["igGcCompactTransientMiscBuffers"][1]["defaults"] = {} defs["igGcCompactTransientMiscBuffers"][1]["funcname"] = "GcCompactTransientMiscBuffers" -defs["igGcCompactTransientMiscBuffers"][1]["location"] = "imgui_internal:2944" +defs["igGcCompactTransientMiscBuffers"][1]["location"] = "imgui_internal:3065" defs["igGcCompactTransientMiscBuffers"][1]["namespace"] = "ImGui" defs["igGcCompactTransientMiscBuffers"][1]["ov_cimguiname"] = "igGcCompactTransientMiscBuffers" defs["igGcCompactTransientMiscBuffers"][1]["ret"] = "void" @@ -15200,7 +15578,7 @@ defs["igGcCompactTransientWindowBuffers"][1]["call_args"] = "(window)" defs["igGcCompactTransientWindowBuffers"][1]["cimguiname"] = "igGcCompactTransientWindowBuffers" defs["igGcCompactTransientWindowBuffers"][1]["defaults"] = {} defs["igGcCompactTransientWindowBuffers"][1]["funcname"] = "GcCompactTransientWindowBuffers" -defs["igGcCompactTransientWindowBuffers"][1]["location"] = "imgui_internal:2945" +defs["igGcCompactTransientWindowBuffers"][1]["location"] = "imgui_internal:3066" defs["igGcCompactTransientWindowBuffers"][1]["namespace"] = "ImGui" defs["igGcCompactTransientWindowBuffers"][1]["ov_cimguiname"] = "igGcCompactTransientWindowBuffers" defs["igGcCompactTransientWindowBuffers"][1]["ret"] = "void" @@ -15216,7 +15594,7 @@ defs["igGetActiveID"][1]["call_args"] = "()" defs["igGetActiveID"][1]["cimguiname"] = "igGetActiveID" defs["igGetActiveID"][1]["defaults"] = {} defs["igGetActiveID"][1]["funcname"] = "GetActiveID" -defs["igGetActiveID"][1]["location"] = "imgui_internal:2615" +defs["igGetActiveID"][1]["location"] = "imgui_internal:2727" defs["igGetActiveID"][1]["namespace"] = "ImGui" defs["igGetActiveID"][1]["ov_cimguiname"] = "igGetActiveID" defs["igGetActiveID"][1]["ret"] = "ImGuiID" @@ -15241,7 +15619,7 @@ defs["igGetAllocatorFunctions"][1]["call_args"] = "(p_alloc_func,p_free_func,p_u defs["igGetAllocatorFunctions"][1]["cimguiname"] = "igGetAllocatorFunctions" defs["igGetAllocatorFunctions"][1]["defaults"] = {} defs["igGetAllocatorFunctions"][1]["funcname"] = "GetAllocatorFunctions" -defs["igGetAllocatorFunctions"][1]["location"] = "imgui:969" +defs["igGetAllocatorFunctions"][1]["location"] = "imgui:971" defs["igGetAllocatorFunctions"][1]["namespace"] = "ImGui" defs["igGetAllocatorFunctions"][1]["ov_cimguiname"] = "igGetAllocatorFunctions" defs["igGetAllocatorFunctions"][1]["ret"] = "void" @@ -15257,7 +15635,7 @@ defs["igGetBackgroundDrawList"][1]["call_args"] = "()" defs["igGetBackgroundDrawList"][1]["cimguiname"] = "igGetBackgroundDrawList" defs["igGetBackgroundDrawList"][1]["defaults"] = {} defs["igGetBackgroundDrawList"][1]["funcname"] = "GetBackgroundDrawList" -defs["igGetBackgroundDrawList"][1]["location"] = "imgui:895" +defs["igGetBackgroundDrawList"][1]["location"] = "imgui:897" defs["igGetBackgroundDrawList"][1]["namespace"] = "ImGui" defs["igGetBackgroundDrawList"][1]["ov_cimguiname"] = "igGetBackgroundDrawListNil" defs["igGetBackgroundDrawList"][1]["ret"] = "ImDrawList*" @@ -15274,7 +15652,7 @@ defs["igGetBackgroundDrawList"][2]["call_args"] = "(viewport)" defs["igGetBackgroundDrawList"][2]["cimguiname"] = "igGetBackgroundDrawList" defs["igGetBackgroundDrawList"][2]["defaults"] = {} defs["igGetBackgroundDrawList"][2]["funcname"] = "GetBackgroundDrawList" -defs["igGetBackgroundDrawList"][2]["location"] = "imgui:897" +defs["igGetBackgroundDrawList"][2]["location"] = "imgui:899" defs["igGetBackgroundDrawList"][2]["namespace"] = "ImGui" defs["igGetBackgroundDrawList"][2]["ov_cimguiname"] = "igGetBackgroundDrawListViewportPtr" defs["igGetBackgroundDrawList"][2]["ret"] = "ImDrawList*" @@ -15291,7 +15669,7 @@ defs["igGetClipboardText"][1]["call_args"] = "()" defs["igGetClipboardText"][1]["cimguiname"] = "igGetClipboardText" defs["igGetClipboardText"][1]["defaults"] = {} defs["igGetClipboardText"][1]["funcname"] = "GetClipboardText" -defs["igGetClipboardText"][1]["location"] = "imgui:948" +defs["igGetClipboardText"][1]["location"] = "imgui:950" defs["igGetClipboardText"][1]["namespace"] = "ImGui" defs["igGetClipboardText"][1]["ov_cimguiname"] = "igGetClipboardText" defs["igGetClipboardText"][1]["ret"] = "const char*" @@ -15314,7 +15692,7 @@ defs["igGetColorU32"][1]["cimguiname"] = "igGetColorU32" defs["igGetColorU32"][1]["defaults"] = {} defs["igGetColorU32"][1]["defaults"]["alpha_mul"] = "1.0f" defs["igGetColorU32"][1]["funcname"] = "GetColorU32" -defs["igGetColorU32"][1]["location"] = "imgui:437" +defs["igGetColorU32"][1]["location"] = "imgui:438" defs["igGetColorU32"][1]["namespace"] = "ImGui" defs["igGetColorU32"][1]["ov_cimguiname"] = "igGetColorU32Col" defs["igGetColorU32"][1]["ret"] = "ImU32" @@ -15331,7 +15709,7 @@ defs["igGetColorU32"][2]["call_args"] = "(col)" defs["igGetColorU32"][2]["cimguiname"] = "igGetColorU32" defs["igGetColorU32"][2]["defaults"] = {} defs["igGetColorU32"][2]["funcname"] = "GetColorU32" -defs["igGetColorU32"][2]["location"] = "imgui:438" +defs["igGetColorU32"][2]["location"] = "imgui:439" defs["igGetColorU32"][2]["namespace"] = "ImGui" defs["igGetColorU32"][2]["ov_cimguiname"] = "igGetColorU32Vec4" defs["igGetColorU32"][2]["ret"] = "ImU32" @@ -15348,7 +15726,7 @@ defs["igGetColorU32"][3]["call_args"] = "(col)" defs["igGetColorU32"][3]["cimguiname"] = "igGetColorU32" defs["igGetColorU32"][3]["defaults"] = {} defs["igGetColorU32"][3]["funcname"] = "GetColorU32" -defs["igGetColorU32"][3]["location"] = "imgui:439" +defs["igGetColorU32"][3]["location"] = "imgui:440" defs["igGetColorU32"][3]["namespace"] = "ImGui" defs["igGetColorU32"][3]["ov_cimguiname"] = "igGetColorU32U32" defs["igGetColorU32"][3]["ret"] = "ImU32" @@ -15366,7 +15744,7 @@ defs["igGetColumnIndex"][1]["call_args"] = "()" defs["igGetColumnIndex"][1]["cimguiname"] = "igGetColumnIndex" defs["igGetColumnIndex"][1]["defaults"] = {} defs["igGetColumnIndex"][1]["funcname"] = "GetColumnIndex" -defs["igGetColumnIndex"][1]["location"] = "imgui:788" +defs["igGetColumnIndex"][1]["location"] = "imgui:789" defs["igGetColumnIndex"][1]["namespace"] = "ImGui" defs["igGetColumnIndex"][1]["ov_cimguiname"] = "igGetColumnIndex" defs["igGetColumnIndex"][1]["ret"] = "int" @@ -15388,7 +15766,7 @@ defs["igGetColumnNormFromOffset"][1]["call_args"] = "(columns,offset)" defs["igGetColumnNormFromOffset"][1]["cimguiname"] = "igGetColumnNormFromOffset" defs["igGetColumnNormFromOffset"][1]["defaults"] = {} defs["igGetColumnNormFromOffset"][1]["funcname"] = "GetColumnNormFromOffset" -defs["igGetColumnNormFromOffset"][1]["location"] = "imgui_internal:2782" +defs["igGetColumnNormFromOffset"][1]["location"] = "imgui_internal:2902" defs["igGetColumnNormFromOffset"][1]["namespace"] = "ImGui" defs["igGetColumnNormFromOffset"][1]["ov_cimguiname"] = "igGetColumnNormFromOffset" defs["igGetColumnNormFromOffset"][1]["ret"] = "float" @@ -15408,7 +15786,7 @@ defs["igGetColumnOffset"][1]["cimguiname"] = "igGetColumnOffset" defs["igGetColumnOffset"][1]["defaults"] = {} defs["igGetColumnOffset"][1]["defaults"]["column_index"] = "-1" defs["igGetColumnOffset"][1]["funcname"] = "GetColumnOffset" -defs["igGetColumnOffset"][1]["location"] = "imgui:791" +defs["igGetColumnOffset"][1]["location"] = "imgui:792" defs["igGetColumnOffset"][1]["namespace"] = "ImGui" defs["igGetColumnOffset"][1]["ov_cimguiname"] = "igGetColumnOffset" defs["igGetColumnOffset"][1]["ret"] = "float" @@ -15430,7 +15808,7 @@ defs["igGetColumnOffsetFromNorm"][1]["call_args"] = "(columns,offset_norm)" defs["igGetColumnOffsetFromNorm"][1]["cimguiname"] = "igGetColumnOffsetFromNorm" defs["igGetColumnOffsetFromNorm"][1]["defaults"] = {} defs["igGetColumnOffsetFromNorm"][1]["funcname"] = "GetColumnOffsetFromNorm" -defs["igGetColumnOffsetFromNorm"][1]["location"] = "imgui_internal:2781" +defs["igGetColumnOffsetFromNorm"][1]["location"] = "imgui_internal:2901" defs["igGetColumnOffsetFromNorm"][1]["namespace"] = "ImGui" defs["igGetColumnOffsetFromNorm"][1]["ov_cimguiname"] = "igGetColumnOffsetFromNorm" defs["igGetColumnOffsetFromNorm"][1]["ret"] = "float" @@ -15450,7 +15828,7 @@ defs["igGetColumnWidth"][1]["cimguiname"] = "igGetColumnWidth" defs["igGetColumnWidth"][1]["defaults"] = {} defs["igGetColumnWidth"][1]["defaults"]["column_index"] = "-1" defs["igGetColumnWidth"][1]["funcname"] = "GetColumnWidth" -defs["igGetColumnWidth"][1]["location"] = "imgui:789" +defs["igGetColumnWidth"][1]["location"] = "imgui:790" defs["igGetColumnWidth"][1]["namespace"] = "ImGui" defs["igGetColumnWidth"][1]["ov_cimguiname"] = "igGetColumnWidth" defs["igGetColumnWidth"][1]["ret"] = "float" @@ -15466,7 +15844,7 @@ defs["igGetColumnsCount"][1]["call_args"] = "()" defs["igGetColumnsCount"][1]["cimguiname"] = "igGetColumnsCount" defs["igGetColumnsCount"][1]["defaults"] = {} defs["igGetColumnsCount"][1]["funcname"] = "GetColumnsCount" -defs["igGetColumnsCount"][1]["location"] = "imgui:793" +defs["igGetColumnsCount"][1]["location"] = "imgui:794" defs["igGetColumnsCount"][1]["namespace"] = "ImGui" defs["igGetColumnsCount"][1]["ov_cimguiname"] = "igGetColumnsCount" defs["igGetColumnsCount"][1]["ret"] = "int" @@ -15488,7 +15866,7 @@ defs["igGetColumnsID"][1]["call_args"] = "(str_id,count)" defs["igGetColumnsID"][1]["cimguiname"] = "igGetColumnsID" defs["igGetColumnsID"][1]["defaults"] = {} defs["igGetColumnsID"][1]["funcname"] = "GetColumnsID" -defs["igGetColumnsID"][1]["location"] = "imgui_internal:2779" +defs["igGetColumnsID"][1]["location"] = "imgui_internal:2899" defs["igGetColumnsID"][1]["namespace"] = "ImGui" defs["igGetColumnsID"][1]["ov_cimguiname"] = "igGetColumnsID" defs["igGetColumnsID"][1]["ret"] = "ImGuiID" @@ -15507,7 +15885,7 @@ defs["igGetContentRegionAvail"][1]["call_args"] = "()" defs["igGetContentRegionAvail"][1]["cimguiname"] = "igGetContentRegionAvail" defs["igGetContentRegionAvail"][1]["defaults"] = {} defs["igGetContentRegionAvail"][1]["funcname"] = "GetContentRegionAvail" -defs["igGetContentRegionAvail"][1]["location"] = "imgui:393" +defs["igGetContentRegionAvail"][1]["location"] = "imgui:394" defs["igGetContentRegionAvail"][1]["namespace"] = "ImGui" defs["igGetContentRegionAvail"][1]["nonUDT"] = 1 defs["igGetContentRegionAvail"][1]["ov_cimguiname"] = "igGetContentRegionAvail" @@ -15527,7 +15905,7 @@ defs["igGetContentRegionMax"][1]["call_args"] = "()" defs["igGetContentRegionMax"][1]["cimguiname"] = "igGetContentRegionMax" defs["igGetContentRegionMax"][1]["defaults"] = {} defs["igGetContentRegionMax"][1]["funcname"] = "GetContentRegionMax" -defs["igGetContentRegionMax"][1]["location"] = "imgui:394" +defs["igGetContentRegionMax"][1]["location"] = "imgui:395" defs["igGetContentRegionMax"][1]["namespace"] = "ImGui" defs["igGetContentRegionMax"][1]["nonUDT"] = 1 defs["igGetContentRegionMax"][1]["ov_cimguiname"] = "igGetContentRegionMax" @@ -15547,7 +15925,7 @@ defs["igGetContentRegionMaxAbs"][1]["call_args"] = "()" defs["igGetContentRegionMaxAbs"][1]["cimguiname"] = "igGetContentRegionMaxAbs" defs["igGetContentRegionMaxAbs"][1]["defaults"] = {} defs["igGetContentRegionMaxAbs"][1]["funcname"] = "GetContentRegionMaxAbs" -defs["igGetContentRegionMaxAbs"][1]["location"] = "imgui_internal:2639" +defs["igGetContentRegionMaxAbs"][1]["location"] = "imgui_internal:2750" defs["igGetContentRegionMaxAbs"][1]["namespace"] = "ImGui" defs["igGetContentRegionMaxAbs"][1]["nonUDT"] = 1 defs["igGetContentRegionMaxAbs"][1]["ov_cimguiname"] = "igGetContentRegionMaxAbs" @@ -15580,7 +15958,7 @@ defs["igGetCurrentTable"][1]["call_args"] = "()" defs["igGetCurrentTable"][1]["cimguiname"] = "igGetCurrentTable" defs["igGetCurrentTable"][1]["defaults"] = {} defs["igGetCurrentTable"][1]["funcname"] = "GetCurrentTable" -defs["igGetCurrentTable"][1]["location"] = "imgui_internal:2794" +defs["igGetCurrentTable"][1]["location"] = "imgui_internal:2914" defs["igGetCurrentTable"][1]["namespace"] = "ImGui" defs["igGetCurrentTable"][1]["ov_cimguiname"] = "igGetCurrentTable" defs["igGetCurrentTable"][1]["ret"] = "ImGuiTable*" @@ -15596,7 +15974,7 @@ defs["igGetCurrentWindow"][1]["call_args"] = "()" defs["igGetCurrentWindow"][1]["cimguiname"] = "igGetCurrentWindow" defs["igGetCurrentWindow"][1]["defaults"] = {} defs["igGetCurrentWindow"][1]["funcname"] = "GetCurrentWindow" -defs["igGetCurrentWindow"][1]["location"] = "imgui_internal:2546" +defs["igGetCurrentWindow"][1]["location"] = "imgui_internal:2645" defs["igGetCurrentWindow"][1]["namespace"] = "ImGui" defs["igGetCurrentWindow"][1]["ov_cimguiname"] = "igGetCurrentWindow" defs["igGetCurrentWindow"][1]["ret"] = "ImGuiWindow*" @@ -15612,7 +15990,7 @@ defs["igGetCurrentWindowRead"][1]["call_args"] = "()" defs["igGetCurrentWindowRead"][1]["cimguiname"] = "igGetCurrentWindowRead" defs["igGetCurrentWindowRead"][1]["defaults"] = {} defs["igGetCurrentWindowRead"][1]["funcname"] = "GetCurrentWindowRead" -defs["igGetCurrentWindowRead"][1]["location"] = "imgui_internal:2545" +defs["igGetCurrentWindowRead"][1]["location"] = "imgui_internal:2644" defs["igGetCurrentWindowRead"][1]["namespace"] = "ImGui" defs["igGetCurrentWindowRead"][1]["ov_cimguiname"] = "igGetCurrentWindowRead" defs["igGetCurrentWindowRead"][1]["ret"] = "ImGuiWindow*" @@ -15631,7 +16009,7 @@ defs["igGetCursorPos"][1]["call_args"] = "()" defs["igGetCursorPos"][1]["cimguiname"] = "igGetCursorPos" defs["igGetCursorPos"][1]["defaults"] = {} defs["igGetCursorPos"][1]["funcname"] = "GetCursorPos" -defs["igGetCursorPos"][1]["location"] = "imgui:458" +defs["igGetCursorPos"][1]["location"] = "imgui:459" defs["igGetCursorPos"][1]["namespace"] = "ImGui" defs["igGetCursorPos"][1]["nonUDT"] = 1 defs["igGetCursorPos"][1]["ov_cimguiname"] = "igGetCursorPos" @@ -15648,7 +16026,7 @@ defs["igGetCursorPosX"][1]["call_args"] = "()" defs["igGetCursorPosX"][1]["cimguiname"] = "igGetCursorPosX" defs["igGetCursorPosX"][1]["defaults"] = {} defs["igGetCursorPosX"][1]["funcname"] = "GetCursorPosX" -defs["igGetCursorPosX"][1]["location"] = "imgui:459" +defs["igGetCursorPosX"][1]["location"] = "imgui:460" defs["igGetCursorPosX"][1]["namespace"] = "ImGui" defs["igGetCursorPosX"][1]["ov_cimguiname"] = "igGetCursorPosX" defs["igGetCursorPosX"][1]["ret"] = "float" @@ -15664,7 +16042,7 @@ defs["igGetCursorPosY"][1]["call_args"] = "()" defs["igGetCursorPosY"][1]["cimguiname"] = "igGetCursorPosY" defs["igGetCursorPosY"][1]["defaults"] = {} defs["igGetCursorPosY"][1]["funcname"] = "GetCursorPosY" -defs["igGetCursorPosY"][1]["location"] = "imgui:460" +defs["igGetCursorPosY"][1]["location"] = "imgui:461" defs["igGetCursorPosY"][1]["namespace"] = "ImGui" defs["igGetCursorPosY"][1]["ov_cimguiname"] = "igGetCursorPosY" defs["igGetCursorPosY"][1]["ret"] = "float" @@ -15683,7 +16061,7 @@ defs["igGetCursorScreenPos"][1]["call_args"] = "()" defs["igGetCursorScreenPos"][1]["cimguiname"] = "igGetCursorScreenPos" defs["igGetCursorScreenPos"][1]["defaults"] = {} defs["igGetCursorScreenPos"][1]["funcname"] = "GetCursorScreenPos" -defs["igGetCursorScreenPos"][1]["location"] = "imgui:465" +defs["igGetCursorScreenPos"][1]["location"] = "imgui:466" defs["igGetCursorScreenPos"][1]["namespace"] = "ImGui" defs["igGetCursorScreenPos"][1]["nonUDT"] = 1 defs["igGetCursorScreenPos"][1]["ov_cimguiname"] = "igGetCursorScreenPos" @@ -15703,7 +16081,7 @@ defs["igGetCursorStartPos"][1]["call_args"] = "()" defs["igGetCursorStartPos"][1]["cimguiname"] = "igGetCursorStartPos" defs["igGetCursorStartPos"][1]["defaults"] = {} defs["igGetCursorStartPos"][1]["funcname"] = "GetCursorStartPos" -defs["igGetCursorStartPos"][1]["location"] = "imgui:464" +defs["igGetCursorStartPos"][1]["location"] = "imgui:465" defs["igGetCursorStartPos"][1]["namespace"] = "ImGui" defs["igGetCursorStartPos"][1]["nonUDT"] = 1 defs["igGetCursorStartPos"][1]["ov_cimguiname"] = "igGetCursorStartPos" @@ -15720,7 +16098,7 @@ defs["igGetDefaultFont"][1]["call_args"] = "()" defs["igGetDefaultFont"][1]["cimguiname"] = "igGetDefaultFont" defs["igGetDefaultFont"][1]["defaults"] = {} defs["igGetDefaultFont"][1]["funcname"] = "GetDefaultFont" -defs["igGetDefaultFont"][1]["location"] = "imgui_internal:2568" +defs["igGetDefaultFont"][1]["location"] = "imgui_internal:2673" defs["igGetDefaultFont"][1]["namespace"] = "ImGui" defs["igGetDefaultFont"][1]["ov_cimguiname"] = "igGetDefaultFont" defs["igGetDefaultFont"][1]["ret"] = "ImFont*" @@ -15736,7 +16114,7 @@ defs["igGetDragDropPayload"][1]["call_args"] = "()" defs["igGetDragDropPayload"][1]["cimguiname"] = "igGetDragDropPayload" defs["igGetDragDropPayload"][1]["defaults"] = {} defs["igGetDragDropPayload"][1]["funcname"] = "GetDragDropPayload" -defs["igGetDragDropPayload"][1]["location"] = "imgui:844" +defs["igGetDragDropPayload"][1]["location"] = "imgui:846" defs["igGetDragDropPayload"][1]["namespace"] = "ImGui" defs["igGetDragDropPayload"][1]["ov_cimguiname"] = "igGetDragDropPayload" defs["igGetDragDropPayload"][1]["ret"] = "const ImGuiPayload*" @@ -15768,7 +16146,7 @@ defs["igGetDrawListSharedData"][1]["call_args"] = "()" defs["igGetDrawListSharedData"][1]["cimguiname"] = "igGetDrawListSharedData" defs["igGetDrawListSharedData"][1]["defaults"] = {} defs["igGetDrawListSharedData"][1]["funcname"] = "GetDrawListSharedData" -defs["igGetDrawListSharedData"][1]["location"] = "imgui:899" +defs["igGetDrawListSharedData"][1]["location"] = "imgui:901" defs["igGetDrawListSharedData"][1]["namespace"] = "ImGui" defs["igGetDrawListSharedData"][1]["ov_cimguiname"] = "igGetDrawListSharedData" defs["igGetDrawListSharedData"][1]["ret"] = "ImDrawListSharedData*" @@ -15784,7 +16162,7 @@ defs["igGetFocusID"][1]["call_args"] = "()" defs["igGetFocusID"][1]["cimguiname"] = "igGetFocusID" defs["igGetFocusID"][1]["defaults"] = {} defs["igGetFocusID"][1]["funcname"] = "GetFocusID" -defs["igGetFocusID"][1]["location"] = "imgui_internal:2616" +defs["igGetFocusID"][1]["location"] = "imgui_internal:2728" defs["igGetFocusID"][1]["namespace"] = "ImGui" defs["igGetFocusID"][1]["ov_cimguiname"] = "igGetFocusID" defs["igGetFocusID"][1]["ret"] = "ImGuiID" @@ -15800,7 +16178,7 @@ defs["igGetFocusScope"][1]["call_args"] = "()" defs["igGetFocusScope"][1]["cimguiname"] = "igGetFocusScope" defs["igGetFocusScope"][1]["defaults"] = {} defs["igGetFocusScope"][1]["funcname"] = "GetFocusScope" -defs["igGetFocusScope"][1]["location"] = "imgui_internal:2703" +defs["igGetFocusScope"][1]["location"] = "imgui_internal:2821" defs["igGetFocusScope"][1]["namespace"] = "ImGui" defs["igGetFocusScope"][1]["ov_cimguiname"] = "igGetFocusScope" defs["igGetFocusScope"][1]["ret"] = "ImGuiID" @@ -15816,7 +16194,7 @@ defs["igGetFocusedFocusScope"][1]["call_args"] = "()" defs["igGetFocusedFocusScope"][1]["cimguiname"] = "igGetFocusedFocusScope" defs["igGetFocusedFocusScope"][1]["defaults"] = {} defs["igGetFocusedFocusScope"][1]["funcname"] = "GetFocusedFocusScope" -defs["igGetFocusedFocusScope"][1]["location"] = "imgui_internal:2702" +defs["igGetFocusedFocusScope"][1]["location"] = "imgui_internal:2820" defs["igGetFocusedFocusScope"][1]["namespace"] = "ImGui" defs["igGetFocusedFocusScope"][1]["ov_cimguiname"] = "igGetFocusedFocusScope" defs["igGetFocusedFocusScope"][1]["ret"] = "ImGuiID" @@ -15832,7 +16210,7 @@ defs["igGetFont"][1]["call_args"] = "()" defs["igGetFont"][1]["cimguiname"] = "igGetFont" defs["igGetFont"][1]["defaults"] = {} defs["igGetFont"][1]["funcname"] = "GetFont" -defs["igGetFont"][1]["location"] = "imgui:434" +defs["igGetFont"][1]["location"] = "imgui:435" defs["igGetFont"][1]["namespace"] = "ImGui" defs["igGetFont"][1]["ov_cimguiname"] = "igGetFont" defs["igGetFont"][1]["ret"] = "ImFont*" @@ -15848,7 +16226,7 @@ defs["igGetFontSize"][1]["call_args"] = "()" defs["igGetFontSize"][1]["cimguiname"] = "igGetFontSize" defs["igGetFontSize"][1]["defaults"] = {} defs["igGetFontSize"][1]["funcname"] = "GetFontSize" -defs["igGetFontSize"][1]["location"] = "imgui:435" +defs["igGetFontSize"][1]["location"] = "imgui:436" defs["igGetFontSize"][1]["namespace"] = "ImGui" defs["igGetFontSize"][1]["ov_cimguiname"] = "igGetFontSize" defs["igGetFontSize"][1]["ret"] = "float" @@ -15867,7 +16245,7 @@ defs["igGetFontTexUvWhitePixel"][1]["call_args"] = "()" defs["igGetFontTexUvWhitePixel"][1]["cimguiname"] = "igGetFontTexUvWhitePixel" defs["igGetFontTexUvWhitePixel"][1]["defaults"] = {} defs["igGetFontTexUvWhitePixel"][1]["funcname"] = "GetFontTexUvWhitePixel" -defs["igGetFontTexUvWhitePixel"][1]["location"] = "imgui:436" +defs["igGetFontTexUvWhitePixel"][1]["location"] = "imgui:437" defs["igGetFontTexUvWhitePixel"][1]["namespace"] = "ImGui" defs["igGetFontTexUvWhitePixel"][1]["nonUDT"] = 1 defs["igGetFontTexUvWhitePixel"][1]["ov_cimguiname"] = "igGetFontTexUvWhitePixel" @@ -15884,7 +16262,7 @@ defs["igGetForegroundDrawList"][1]["call_args"] = "()" defs["igGetForegroundDrawList"][1]["cimguiname"] = "igGetForegroundDrawList" defs["igGetForegroundDrawList"][1]["defaults"] = {} defs["igGetForegroundDrawList"][1]["funcname"] = "GetForegroundDrawList" -defs["igGetForegroundDrawList"][1]["location"] = "imgui:896" +defs["igGetForegroundDrawList"][1]["location"] = "imgui:898" defs["igGetForegroundDrawList"][1]["namespace"] = "ImGui" defs["igGetForegroundDrawList"][1]["ov_cimguiname"] = "igGetForegroundDrawListNil" defs["igGetForegroundDrawList"][1]["ret"] = "ImDrawList*" @@ -15901,7 +16279,7 @@ defs["igGetForegroundDrawList"][2]["call_args"] = "(viewport)" defs["igGetForegroundDrawList"][2]["cimguiname"] = "igGetForegroundDrawList" defs["igGetForegroundDrawList"][2]["defaults"] = {} defs["igGetForegroundDrawList"][2]["funcname"] = "GetForegroundDrawList" -defs["igGetForegroundDrawList"][2]["location"] = "imgui:898" +defs["igGetForegroundDrawList"][2]["location"] = "imgui:900" defs["igGetForegroundDrawList"][2]["namespace"] = "ImGui" defs["igGetForegroundDrawList"][2]["ov_cimguiname"] = "igGetForegroundDrawListViewportPtr" defs["igGetForegroundDrawList"][2]["ret"] = "ImDrawList*" @@ -15918,7 +16296,7 @@ defs["igGetForegroundDrawList"][3]["call_args"] = "(window)" defs["igGetForegroundDrawList"][3]["cimguiname"] = "igGetForegroundDrawList" defs["igGetForegroundDrawList"][3]["defaults"] = {} defs["igGetForegroundDrawList"][3]["funcname"] = "GetForegroundDrawList" -defs["igGetForegroundDrawList"][3]["location"] = "imgui_internal:2569" +defs["igGetForegroundDrawList"][3]["location"] = "imgui_internal:2674" defs["igGetForegroundDrawList"][3]["namespace"] = "ImGui" defs["igGetForegroundDrawList"][3]["ov_cimguiname"] = "igGetForegroundDrawListWindowPtr" defs["igGetForegroundDrawList"][3]["ret"] = "ImDrawList*" @@ -15936,7 +16314,7 @@ defs["igGetFrameCount"][1]["call_args"] = "()" defs["igGetFrameCount"][1]["cimguiname"] = "igGetFrameCount" defs["igGetFrameCount"][1]["defaults"] = {} defs["igGetFrameCount"][1]["funcname"] = "GetFrameCount" -defs["igGetFrameCount"][1]["location"] = "imgui:894" +defs["igGetFrameCount"][1]["location"] = "imgui:896" defs["igGetFrameCount"][1]["namespace"] = "ImGui" defs["igGetFrameCount"][1]["ov_cimguiname"] = "igGetFrameCount" defs["igGetFrameCount"][1]["ret"] = "int" @@ -15952,7 +16330,7 @@ defs["igGetFrameHeight"][1]["call_args"] = "()" defs["igGetFrameHeight"][1]["cimguiname"] = "igGetFrameHeight" defs["igGetFrameHeight"][1]["defaults"] = {} defs["igGetFrameHeight"][1]["funcname"] = "GetFrameHeight" -defs["igGetFrameHeight"][1]["location"] = "imgui:470" +defs["igGetFrameHeight"][1]["location"] = "imgui:471" defs["igGetFrameHeight"][1]["namespace"] = "ImGui" defs["igGetFrameHeight"][1]["ov_cimguiname"] = "igGetFrameHeight" defs["igGetFrameHeight"][1]["ret"] = "float" @@ -15968,7 +16346,7 @@ defs["igGetFrameHeightWithSpacing"][1]["call_args"] = "()" defs["igGetFrameHeightWithSpacing"][1]["cimguiname"] = "igGetFrameHeightWithSpacing" defs["igGetFrameHeightWithSpacing"][1]["defaults"] = {} defs["igGetFrameHeightWithSpacing"][1]["funcname"] = "GetFrameHeightWithSpacing" -defs["igGetFrameHeightWithSpacing"][1]["location"] = "imgui:471" +defs["igGetFrameHeightWithSpacing"][1]["location"] = "imgui:472" defs["igGetFrameHeightWithSpacing"][1]["namespace"] = "ImGui" defs["igGetFrameHeightWithSpacing"][1]["ov_cimguiname"] = "igGetFrameHeightWithSpacing" defs["igGetFrameHeightWithSpacing"][1]["ret"] = "float" @@ -15984,7 +16362,7 @@ defs["igGetHoveredID"][1]["call_args"] = "()" defs["igGetHoveredID"][1]["cimguiname"] = "igGetHoveredID" defs["igGetHoveredID"][1]["defaults"] = {} defs["igGetHoveredID"][1]["funcname"] = "GetHoveredID" -defs["igGetHoveredID"][1]["location"] = "imgui_internal:2620" +defs["igGetHoveredID"][1]["location"] = "imgui_internal:2732" defs["igGetHoveredID"][1]["namespace"] = "ImGui" defs["igGetHoveredID"][1]["ov_cimguiname"] = "igGetHoveredID" defs["igGetHoveredID"][1]["ret"] = "ImGuiID" @@ -16003,7 +16381,7 @@ defs["igGetID"][1]["call_args"] = "(str_id)" defs["igGetID"][1]["cimguiname"] = "igGetID" defs["igGetID"][1]["defaults"] = {} defs["igGetID"][1]["funcname"] = "GetID" -defs["igGetID"][1]["location"] = "imgui:489" +defs["igGetID"][1]["location"] = "imgui:490" defs["igGetID"][1]["namespace"] = "ImGui" defs["igGetID"][1]["ov_cimguiname"] = "igGetIDStr" defs["igGetID"][1]["ret"] = "ImGuiID" @@ -16023,7 +16401,7 @@ defs["igGetID"][2]["call_args"] = "(str_id_begin,str_id_end)" defs["igGetID"][2]["cimguiname"] = "igGetID" defs["igGetID"][2]["defaults"] = {} defs["igGetID"][2]["funcname"] = "GetID" -defs["igGetID"][2]["location"] = "imgui:490" +defs["igGetID"][2]["location"] = "imgui:491" defs["igGetID"][2]["namespace"] = "ImGui" defs["igGetID"][2]["ov_cimguiname"] = "igGetIDStrStr" defs["igGetID"][2]["ret"] = "ImGuiID" @@ -16040,7 +16418,7 @@ defs["igGetID"][3]["call_args"] = "(ptr_id)" defs["igGetID"][3]["cimguiname"] = "igGetID" defs["igGetID"][3]["defaults"] = {} defs["igGetID"][3]["funcname"] = "GetID" -defs["igGetID"][3]["location"] = "imgui:491" +defs["igGetID"][3]["location"] = "imgui:492" defs["igGetID"][3]["namespace"] = "ImGui" defs["igGetID"][3]["ov_cimguiname"] = "igGetIDPtr" defs["igGetID"][3]["ret"] = "ImGuiID" @@ -16067,7 +16445,7 @@ defs["igGetIDWithSeed"][1]["call_args"] = "(str_id_begin,str_id_end,seed)" defs["igGetIDWithSeed"][1]["cimguiname"] = "igGetIDWithSeed" defs["igGetIDWithSeed"][1]["defaults"] = {} defs["igGetIDWithSeed"][1]["funcname"] = "GetIDWithSeed" -defs["igGetIDWithSeed"][1]["location"] = "imgui_internal:2625" +defs["igGetIDWithSeed"][1]["location"] = "imgui_internal:2737" defs["igGetIDWithSeed"][1]["namespace"] = "ImGui" defs["igGetIDWithSeed"][1]["ov_cimguiname"] = "igGetIDWithSeed" defs["igGetIDWithSeed"][1]["ret"] = "ImGuiID" @@ -16103,7 +16481,7 @@ defs["igGetInputTextState"][1]["call_args"] = "(id)" defs["igGetInputTextState"][1]["cimguiname"] = "igGetInputTextState" defs["igGetInputTextState"][1]["defaults"] = {} defs["igGetInputTextState"][1]["funcname"] = "GetInputTextState" -defs["igGetInputTextState"][1]["location"] = "imgui_internal:2929" +defs["igGetInputTextState"][1]["location"] = "imgui_internal:3050" defs["igGetInputTextState"][1]["namespace"] = "ImGui" defs["igGetInputTextState"][1]["ov_cimguiname"] = "igGetInputTextState" defs["igGetInputTextState"][1]["ret"] = "ImGuiInputTextState*" @@ -16119,7 +16497,7 @@ defs["igGetItemFlags"][1]["call_args"] = "()" defs["igGetItemFlags"][1]["cimguiname"] = "igGetItemFlags" defs["igGetItemFlags"][1]["defaults"] = {} defs["igGetItemFlags"][1]["funcname"] = "GetItemFlags" -defs["igGetItemFlags"][1]["location"] = "imgui_internal:2614" +defs["igGetItemFlags"][1]["location"] = "imgui_internal:2726" defs["igGetItemFlags"][1]["namespace"] = "ImGui" defs["igGetItemFlags"][1]["ov_cimguiname"] = "igGetItemFlags" defs["igGetItemFlags"][1]["ret"] = "ImGuiItemFlags" @@ -16135,7 +16513,7 @@ defs["igGetItemID"][1]["call_args"] = "()" defs["igGetItemID"][1]["cimguiname"] = "igGetItemID" defs["igGetItemID"][1]["defaults"] = {} defs["igGetItemID"][1]["funcname"] = "GetItemID" -defs["igGetItemID"][1]["location"] = "imgui_internal:2612" +defs["igGetItemID"][1]["location"] = "imgui_internal:2724" defs["igGetItemID"][1]["namespace"] = "ImGui" defs["igGetItemID"][1]["ov_cimguiname"] = "igGetItemID" defs["igGetItemID"][1]["ret"] = "ImGuiID" @@ -16154,7 +16532,7 @@ defs["igGetItemRectMax"][1]["call_args"] = "()" defs["igGetItemRectMax"][1]["cimguiname"] = "igGetItemRectMax" defs["igGetItemRectMax"][1]["defaults"] = {} defs["igGetItemRectMax"][1]["funcname"] = "GetItemRectMax" -defs["igGetItemRectMax"][1]["location"] = "imgui:880" +defs["igGetItemRectMax"][1]["location"] = "imgui:882" defs["igGetItemRectMax"][1]["namespace"] = "ImGui" defs["igGetItemRectMax"][1]["nonUDT"] = 1 defs["igGetItemRectMax"][1]["ov_cimguiname"] = "igGetItemRectMax" @@ -16174,7 +16552,7 @@ defs["igGetItemRectMin"][1]["call_args"] = "()" defs["igGetItemRectMin"][1]["cimguiname"] = "igGetItemRectMin" defs["igGetItemRectMin"][1]["defaults"] = {} defs["igGetItemRectMin"][1]["funcname"] = "GetItemRectMin" -defs["igGetItemRectMin"][1]["location"] = "imgui:879" +defs["igGetItemRectMin"][1]["location"] = "imgui:881" defs["igGetItemRectMin"][1]["namespace"] = "ImGui" defs["igGetItemRectMin"][1]["nonUDT"] = 1 defs["igGetItemRectMin"][1]["ov_cimguiname"] = "igGetItemRectMin" @@ -16194,7 +16572,7 @@ defs["igGetItemRectSize"][1]["call_args"] = "()" defs["igGetItemRectSize"][1]["cimguiname"] = "igGetItemRectSize" defs["igGetItemRectSize"][1]["defaults"] = {} defs["igGetItemRectSize"][1]["funcname"] = "GetItemRectSize" -defs["igGetItemRectSize"][1]["location"] = "imgui:881" +defs["igGetItemRectSize"][1]["location"] = "imgui:883" defs["igGetItemRectSize"][1]["namespace"] = "ImGui" defs["igGetItemRectSize"][1]["nonUDT"] = 1 defs["igGetItemRectSize"][1]["ov_cimguiname"] = "igGetItemRectSize" @@ -16211,7 +16589,7 @@ defs["igGetItemStatusFlags"][1]["call_args"] = "()" defs["igGetItemStatusFlags"][1]["cimguiname"] = "igGetItemStatusFlags" defs["igGetItemStatusFlags"][1]["defaults"] = {} defs["igGetItemStatusFlags"][1]["funcname"] = "GetItemStatusFlags" -defs["igGetItemStatusFlags"][1]["location"] = "imgui_internal:2613" +defs["igGetItemStatusFlags"][1]["location"] = "imgui_internal:2725" defs["igGetItemStatusFlags"][1]["namespace"] = "ImGui" defs["igGetItemStatusFlags"][1]["ov_cimguiname"] = "igGetItemStatusFlags" defs["igGetItemStatusFlags"][1]["ret"] = "ImGuiItemStatusFlags" @@ -16230,7 +16608,7 @@ defs["igGetKeyIndex"][1]["call_args"] = "(imgui_key)" defs["igGetKeyIndex"][1]["cimguiname"] = "igGetKeyIndex" defs["igGetKeyIndex"][1]["defaults"] = {} defs["igGetKeyIndex"][1]["funcname"] = "GetKeyIndex" -defs["igGetKeyIndex"][1]["location"] = "imgui:919" +defs["igGetKeyIndex"][1]["location"] = "imgui:920" defs["igGetKeyIndex"][1]["namespace"] = "ImGui" defs["igGetKeyIndex"][1]["ov_cimguiname"] = "igGetKeyIndex" defs["igGetKeyIndex"][1]["ret"] = "int" @@ -16255,7 +16633,7 @@ defs["igGetKeyPressedAmount"][1]["call_args"] = "(key_index,repeat_delay,rate)" defs["igGetKeyPressedAmount"][1]["cimguiname"] = "igGetKeyPressedAmount" defs["igGetKeyPressedAmount"][1]["defaults"] = {} defs["igGetKeyPressedAmount"][1]["funcname"] = "GetKeyPressedAmount" -defs["igGetKeyPressedAmount"][1]["location"] = "imgui:923" +defs["igGetKeyPressedAmount"][1]["location"] = "imgui:924" defs["igGetKeyPressedAmount"][1]["namespace"] = "ImGui" defs["igGetKeyPressedAmount"][1]["ov_cimguiname"] = "igGetKeyPressedAmount" defs["igGetKeyPressedAmount"][1]["ret"] = "int" @@ -16271,7 +16649,7 @@ defs["igGetMainViewport"][1]["call_args"] = "()" defs["igGetMainViewport"][1]["cimguiname"] = "igGetMainViewport" defs["igGetMainViewport"][1]["defaults"] = {} defs["igGetMainViewport"][1]["funcname"] = "GetMainViewport" -defs["igGetMainViewport"][1]["location"] = "imgui:888" +defs["igGetMainViewport"][1]["location"] = "imgui:890" defs["igGetMainViewport"][1]["namespace"] = "ImGui" defs["igGetMainViewport"][1]["ov_cimguiname"] = "igGetMainViewport" defs["igGetMainViewport"][1]["ret"] = "ImGuiViewport*" @@ -16287,13 +16665,32 @@ defs["igGetMergedKeyModFlags"][1]["call_args"] = "()" defs["igGetMergedKeyModFlags"][1]["cimguiname"] = "igGetMergedKeyModFlags" defs["igGetMergedKeyModFlags"][1]["defaults"] = {} defs["igGetMergedKeyModFlags"][1]["funcname"] = "GetMergedKeyModFlags" -defs["igGetMergedKeyModFlags"][1]["location"] = "imgui_internal:2716" +defs["igGetMergedKeyModFlags"][1]["location"] = "imgui_internal:2834" defs["igGetMergedKeyModFlags"][1]["namespace"] = "ImGui" defs["igGetMergedKeyModFlags"][1]["ov_cimguiname"] = "igGetMergedKeyModFlags" defs["igGetMergedKeyModFlags"][1]["ret"] = "ImGuiKeyModFlags" defs["igGetMergedKeyModFlags"][1]["signature"] = "()" defs["igGetMergedKeyModFlags"][1]["stname"] = "" defs["igGetMergedKeyModFlags"]["()"] = defs["igGetMergedKeyModFlags"][1] +defs["igGetMouseClickedCount"] = {} +defs["igGetMouseClickedCount"][1] = {} +defs["igGetMouseClickedCount"][1]["args"] = "(ImGuiMouseButton button)" +defs["igGetMouseClickedCount"][1]["argsT"] = {} +defs["igGetMouseClickedCount"][1]["argsT"][1] = {} +defs["igGetMouseClickedCount"][1]["argsT"][1]["name"] = "button" +defs["igGetMouseClickedCount"][1]["argsT"][1]["type"] = "ImGuiMouseButton" +defs["igGetMouseClickedCount"][1]["argsoriginal"] = "(ImGuiMouseButton button)" +defs["igGetMouseClickedCount"][1]["call_args"] = "(button)" +defs["igGetMouseClickedCount"][1]["cimguiname"] = "igGetMouseClickedCount" +defs["igGetMouseClickedCount"][1]["defaults"] = {} +defs["igGetMouseClickedCount"][1]["funcname"] = "GetMouseClickedCount" +defs["igGetMouseClickedCount"][1]["location"] = "imgui:935" +defs["igGetMouseClickedCount"][1]["namespace"] = "ImGui" +defs["igGetMouseClickedCount"][1]["ov_cimguiname"] = "igGetMouseClickedCount" +defs["igGetMouseClickedCount"][1]["ret"] = "int" +defs["igGetMouseClickedCount"][1]["signature"] = "(ImGuiMouseButton)" +defs["igGetMouseClickedCount"][1]["stname"] = "" +defs["igGetMouseClickedCount"]["(ImGuiMouseButton)"] = defs["igGetMouseClickedCount"][1] defs["igGetMouseCursor"] = {} defs["igGetMouseCursor"][1] = {} defs["igGetMouseCursor"][1]["args"] = "()" @@ -16303,7 +16700,7 @@ defs["igGetMouseCursor"][1]["call_args"] = "()" defs["igGetMouseCursor"][1]["cimguiname"] = "igGetMouseCursor" defs["igGetMouseCursor"][1]["defaults"] = {} defs["igGetMouseCursor"][1]["funcname"] = "GetMouseCursor" -defs["igGetMouseCursor"][1]["location"] = "imgui:942" +defs["igGetMouseCursor"][1]["location"] = "imgui:944" defs["igGetMouseCursor"][1]["namespace"] = "ImGui" defs["igGetMouseCursor"][1]["ov_cimguiname"] = "igGetMouseCursor" defs["igGetMouseCursor"][1]["ret"] = "ImGuiMouseCursor" @@ -16330,7 +16727,7 @@ defs["igGetMouseDragDelta"][1]["defaults"] = {} defs["igGetMouseDragDelta"][1]["defaults"]["button"] = "0" defs["igGetMouseDragDelta"][1]["defaults"]["lock_threshold"] = "-1.0f" defs["igGetMouseDragDelta"][1]["funcname"] = "GetMouseDragDelta" -defs["igGetMouseDragDelta"][1]["location"] = "imgui:940" +defs["igGetMouseDragDelta"][1]["location"] = "imgui:942" defs["igGetMouseDragDelta"][1]["namespace"] = "ImGui" defs["igGetMouseDragDelta"][1]["nonUDT"] = 1 defs["igGetMouseDragDelta"][1]["ov_cimguiname"] = "igGetMouseDragDelta" @@ -16350,7 +16747,7 @@ defs["igGetMousePos"][1]["call_args"] = "()" defs["igGetMousePos"][1]["cimguiname"] = "igGetMousePos" defs["igGetMousePos"][1]["defaults"] = {} defs["igGetMousePos"][1]["funcname"] = "GetMousePos" -defs["igGetMousePos"][1]["location"] = "imgui:937" +defs["igGetMousePos"][1]["location"] = "imgui:939" defs["igGetMousePos"][1]["namespace"] = "ImGui" defs["igGetMousePos"][1]["nonUDT"] = 1 defs["igGetMousePos"][1]["ov_cimguiname"] = "igGetMousePos" @@ -16370,7 +16767,7 @@ defs["igGetMousePosOnOpeningCurrentPopup"][1]["call_args"] = "()" defs["igGetMousePosOnOpeningCurrentPopup"][1]["cimguiname"] = "igGetMousePosOnOpeningCurrentPopup" defs["igGetMousePosOnOpeningCurrentPopup"][1]["defaults"] = {} defs["igGetMousePosOnOpeningCurrentPopup"][1]["funcname"] = "GetMousePosOnOpeningCurrentPopup" -defs["igGetMousePosOnOpeningCurrentPopup"][1]["location"] = "imgui:938" +defs["igGetMousePosOnOpeningCurrentPopup"][1]["location"] = "imgui:940" defs["igGetMousePosOnOpeningCurrentPopup"][1]["namespace"] = "ImGui" defs["igGetMousePosOnOpeningCurrentPopup"][1]["nonUDT"] = 1 defs["igGetMousePosOnOpeningCurrentPopup"][1]["ov_cimguiname"] = "igGetMousePosOnOpeningCurrentPopup" @@ -16393,7 +16790,7 @@ defs["igGetNavInputAmount"][1]["call_args"] = "(n,mode)" defs["igGetNavInputAmount"][1]["cimguiname"] = "igGetNavInputAmount" defs["igGetNavInputAmount"][1]["defaults"] = {} defs["igGetNavInputAmount"][1]["funcname"] = "GetNavInputAmount" -defs["igGetNavInputAmount"][1]["location"] = "imgui_internal:2691" +defs["igGetNavInputAmount"][1]["location"] = "imgui_internal:2809" defs["igGetNavInputAmount"][1]["namespace"] = "ImGui" defs["igGetNavInputAmount"][1]["ov_cimguiname"] = "igGetNavInputAmount" defs["igGetNavInputAmount"][1]["ret"] = "float" @@ -16426,7 +16823,7 @@ defs["igGetNavInputAmount2d"][1]["defaults"] = {} defs["igGetNavInputAmount2d"][1]["defaults"]["fast_factor"] = "0.0f" defs["igGetNavInputAmount2d"][1]["defaults"]["slow_factor"] = "0.0f" defs["igGetNavInputAmount2d"][1]["funcname"] = "GetNavInputAmount2d" -defs["igGetNavInputAmount2d"][1]["location"] = "imgui_internal:2692" +defs["igGetNavInputAmount2d"][1]["location"] = "imgui_internal:2810" defs["igGetNavInputAmount2d"][1]["namespace"] = "ImGui" defs["igGetNavInputAmount2d"][1]["nonUDT"] = 1 defs["igGetNavInputAmount2d"][1]["ov_cimguiname"] = "igGetNavInputAmount2d" @@ -16443,7 +16840,7 @@ defs["igGetPlatformIO"][1]["call_args"] = "()" defs["igGetPlatformIO"][1]["cimguiname"] = "igGetPlatformIO" defs["igGetPlatformIO"][1]["defaults"] = {} defs["igGetPlatformIO"][1]["funcname"] = "GetPlatformIO" -defs["igGetPlatformIO"][1]["location"] = "imgui:976" +defs["igGetPlatformIO"][1]["location"] = "imgui:978" defs["igGetPlatformIO"][1]["namespace"] = "ImGui" defs["igGetPlatformIO"][1]["ov_cimguiname"] = "igGetPlatformIO" defs["igGetPlatformIO"][1]["ret"] = "ImGuiPlatformIO*" @@ -16466,7 +16863,7 @@ defs["igGetPopupAllowedExtentRect"][1]["call_args"] = "(window)" defs["igGetPopupAllowedExtentRect"][1]["cimguiname"] = "igGetPopupAllowedExtentRect" defs["igGetPopupAllowedExtentRect"][1]["defaults"] = {} defs["igGetPopupAllowedExtentRect"][1]["funcname"] = "GetPopupAllowedExtentRect" -defs["igGetPopupAllowedExtentRect"][1]["location"] = "imgui_internal:2669" +defs["igGetPopupAllowedExtentRect"][1]["location"] = "imgui_internal:2783" defs["igGetPopupAllowedExtentRect"][1]["namespace"] = "ImGui" defs["igGetPopupAllowedExtentRect"][1]["nonUDT"] = 1 defs["igGetPopupAllowedExtentRect"][1]["ov_cimguiname"] = "igGetPopupAllowedExtentRect" @@ -16483,7 +16880,7 @@ defs["igGetScrollMaxX"][1]["call_args"] = "()" defs["igGetScrollMaxX"][1]["cimguiname"] = "igGetScrollMaxX" defs["igGetScrollMaxX"][1]["defaults"] = {} defs["igGetScrollMaxX"][1]["funcname"] = "GetScrollMaxX" -defs["igGetScrollMaxX"][1]["location"] = "imgui:403" +defs["igGetScrollMaxX"][1]["location"] = "imgui:404" defs["igGetScrollMaxX"][1]["namespace"] = "ImGui" defs["igGetScrollMaxX"][1]["ov_cimguiname"] = "igGetScrollMaxX" defs["igGetScrollMaxX"][1]["ret"] = "float" @@ -16499,7 +16896,7 @@ defs["igGetScrollMaxY"][1]["call_args"] = "()" defs["igGetScrollMaxY"][1]["cimguiname"] = "igGetScrollMaxY" defs["igGetScrollMaxY"][1]["defaults"] = {} defs["igGetScrollMaxY"][1]["funcname"] = "GetScrollMaxY" -defs["igGetScrollMaxY"][1]["location"] = "imgui:404" +defs["igGetScrollMaxY"][1]["location"] = "imgui:405" defs["igGetScrollMaxY"][1]["namespace"] = "ImGui" defs["igGetScrollMaxY"][1]["ov_cimguiname"] = "igGetScrollMaxY" defs["igGetScrollMaxY"][1]["ret"] = "float" @@ -16515,7 +16912,7 @@ defs["igGetScrollX"][1]["call_args"] = "()" defs["igGetScrollX"][1]["cimguiname"] = "igGetScrollX" defs["igGetScrollX"][1]["defaults"] = {} defs["igGetScrollX"][1]["funcname"] = "GetScrollX" -defs["igGetScrollX"][1]["location"] = "imgui:399" +defs["igGetScrollX"][1]["location"] = "imgui:400" defs["igGetScrollX"][1]["namespace"] = "ImGui" defs["igGetScrollX"][1]["ov_cimguiname"] = "igGetScrollX" defs["igGetScrollX"][1]["ret"] = "float" @@ -16531,7 +16928,7 @@ defs["igGetScrollY"][1]["call_args"] = "()" defs["igGetScrollY"][1]["cimguiname"] = "igGetScrollY" defs["igGetScrollY"][1]["defaults"] = {} defs["igGetScrollY"][1]["funcname"] = "GetScrollY" -defs["igGetScrollY"][1]["location"] = "imgui:400" +defs["igGetScrollY"][1]["location"] = "imgui:401" defs["igGetScrollY"][1]["namespace"] = "ImGui" defs["igGetScrollY"][1]["ov_cimguiname"] = "igGetScrollY" defs["igGetScrollY"][1]["ret"] = "float" @@ -16547,7 +16944,7 @@ defs["igGetStateStorage"][1]["call_args"] = "()" defs["igGetStateStorage"][1]["cimguiname"] = "igGetStateStorage" defs["igGetStateStorage"][1]["defaults"] = {} defs["igGetStateStorage"][1]["funcname"] = "GetStateStorage" -defs["igGetStateStorage"][1]["location"] = "imgui:902" +defs["igGetStateStorage"][1]["location"] = "imgui:904" defs["igGetStateStorage"][1]["namespace"] = "ImGui" defs["igGetStateStorage"][1]["ov_cimguiname"] = "igGetStateStorage" defs["igGetStateStorage"][1]["ret"] = "ImGuiStorage*" @@ -16583,7 +16980,7 @@ defs["igGetStyleColorName"][1]["call_args"] = "(idx)" defs["igGetStyleColorName"][1]["cimguiname"] = "igGetStyleColorName" defs["igGetStyleColorName"][1]["defaults"] = {} defs["igGetStyleColorName"][1]["funcname"] = "GetStyleColorName" -defs["igGetStyleColorName"][1]["location"] = "imgui:900" +defs["igGetStyleColorName"][1]["location"] = "imgui:902" defs["igGetStyleColorName"][1]["namespace"] = "ImGui" defs["igGetStyleColorName"][1]["ov_cimguiname"] = "igGetStyleColorName" defs["igGetStyleColorName"][1]["ret"] = "const char*" @@ -16602,7 +16999,7 @@ defs["igGetStyleColorVec4"][1]["call_args"] = "(idx)" defs["igGetStyleColorVec4"][1]["cimguiname"] = "igGetStyleColorVec4" defs["igGetStyleColorVec4"][1]["defaults"] = {} defs["igGetStyleColorVec4"][1]["funcname"] = "GetStyleColorVec4" -defs["igGetStyleColorVec4"][1]["location"] = "imgui:440" +defs["igGetStyleColorVec4"][1]["location"] = "imgui:441" defs["igGetStyleColorVec4"][1]["namespace"] = "ImGui" defs["igGetStyleColorVec4"][1]["ov_cimguiname"] = "igGetStyleColorVec4" defs["igGetStyleColorVec4"][1]["ret"] = "const ImVec4*" @@ -16619,7 +17016,7 @@ defs["igGetTextLineHeight"][1]["call_args"] = "()" defs["igGetTextLineHeight"][1]["cimguiname"] = "igGetTextLineHeight" defs["igGetTextLineHeight"][1]["defaults"] = {} defs["igGetTextLineHeight"][1]["funcname"] = "GetTextLineHeight" -defs["igGetTextLineHeight"][1]["location"] = "imgui:468" +defs["igGetTextLineHeight"][1]["location"] = "imgui:469" defs["igGetTextLineHeight"][1]["namespace"] = "ImGui" defs["igGetTextLineHeight"][1]["ov_cimguiname"] = "igGetTextLineHeight" defs["igGetTextLineHeight"][1]["ret"] = "float" @@ -16635,7 +17032,7 @@ defs["igGetTextLineHeightWithSpacing"][1]["call_args"] = "()" defs["igGetTextLineHeightWithSpacing"][1]["cimguiname"] = "igGetTextLineHeightWithSpacing" defs["igGetTextLineHeightWithSpacing"][1]["defaults"] = {} defs["igGetTextLineHeightWithSpacing"][1]["funcname"] = "GetTextLineHeightWithSpacing" -defs["igGetTextLineHeightWithSpacing"][1]["location"] = "imgui:469" +defs["igGetTextLineHeightWithSpacing"][1]["location"] = "imgui:470" defs["igGetTextLineHeightWithSpacing"][1]["namespace"] = "ImGui" defs["igGetTextLineHeightWithSpacing"][1]["ov_cimguiname"] = "igGetTextLineHeightWithSpacing" defs["igGetTextLineHeightWithSpacing"][1]["ret"] = "float" @@ -16651,13 +17048,29 @@ defs["igGetTime"][1]["call_args"] = "()" defs["igGetTime"][1]["cimguiname"] = "igGetTime" defs["igGetTime"][1]["defaults"] = {} defs["igGetTime"][1]["funcname"] = "GetTime" -defs["igGetTime"][1]["location"] = "imgui:893" +defs["igGetTime"][1]["location"] = "imgui:895" defs["igGetTime"][1]["namespace"] = "ImGui" defs["igGetTime"][1]["ov_cimguiname"] = "igGetTime" defs["igGetTime"][1]["ret"] = "double" defs["igGetTime"][1]["signature"] = "()" defs["igGetTime"][1]["stname"] = "" defs["igGetTime"]["()"] = defs["igGetTime"][1] +defs["igGetTopMostAndVisiblePopupModal"] = {} +defs["igGetTopMostAndVisiblePopupModal"][1] = {} +defs["igGetTopMostAndVisiblePopupModal"][1]["args"] = "()" +defs["igGetTopMostAndVisiblePopupModal"][1]["argsT"] = {} +defs["igGetTopMostAndVisiblePopupModal"][1]["argsoriginal"] = "()" +defs["igGetTopMostAndVisiblePopupModal"][1]["call_args"] = "()" +defs["igGetTopMostAndVisiblePopupModal"][1]["cimguiname"] = "igGetTopMostAndVisiblePopupModal" +defs["igGetTopMostAndVisiblePopupModal"][1]["defaults"] = {} +defs["igGetTopMostAndVisiblePopupModal"][1]["funcname"] = "GetTopMostAndVisiblePopupModal" +defs["igGetTopMostAndVisiblePopupModal"][1]["location"] = "imgui_internal:2785" +defs["igGetTopMostAndVisiblePopupModal"][1]["namespace"] = "ImGui" +defs["igGetTopMostAndVisiblePopupModal"][1]["ov_cimguiname"] = "igGetTopMostAndVisiblePopupModal" +defs["igGetTopMostAndVisiblePopupModal"][1]["ret"] = "ImGuiWindow*" +defs["igGetTopMostAndVisiblePopupModal"][1]["signature"] = "()" +defs["igGetTopMostAndVisiblePopupModal"][1]["stname"] = "" +defs["igGetTopMostAndVisiblePopupModal"]["()"] = defs["igGetTopMostAndVisiblePopupModal"][1] defs["igGetTopMostPopupModal"] = {} defs["igGetTopMostPopupModal"][1] = {} defs["igGetTopMostPopupModal"][1]["args"] = "()" @@ -16667,7 +17080,7 @@ defs["igGetTopMostPopupModal"][1]["call_args"] = "()" defs["igGetTopMostPopupModal"][1]["cimguiname"] = "igGetTopMostPopupModal" defs["igGetTopMostPopupModal"][1]["defaults"] = {} defs["igGetTopMostPopupModal"][1]["funcname"] = "GetTopMostPopupModal" -defs["igGetTopMostPopupModal"][1]["location"] = "imgui_internal:2670" +defs["igGetTopMostPopupModal"][1]["location"] = "imgui_internal:2784" defs["igGetTopMostPopupModal"][1]["namespace"] = "ImGui" defs["igGetTopMostPopupModal"][1]["ov_cimguiname"] = "igGetTopMostPopupModal" defs["igGetTopMostPopupModal"][1]["ret"] = "ImGuiWindow*" @@ -16683,7 +17096,7 @@ defs["igGetTreeNodeToLabelSpacing"][1]["call_args"] = "()" defs["igGetTreeNodeToLabelSpacing"][1]["cimguiname"] = "igGetTreeNodeToLabelSpacing" defs["igGetTreeNodeToLabelSpacing"][1]["defaults"] = {} defs["igGetTreeNodeToLabelSpacing"][1]["funcname"] = "GetTreeNodeToLabelSpacing" -defs["igGetTreeNodeToLabelSpacing"][1]["location"] = "imgui:622" +defs["igGetTreeNodeToLabelSpacing"][1]["location"] = "imgui:623" defs["igGetTreeNodeToLabelSpacing"][1]["namespace"] = "ImGui" defs["igGetTreeNodeToLabelSpacing"][1]["ov_cimguiname"] = "igGetTreeNodeToLabelSpacing" defs["igGetTreeNodeToLabelSpacing"][1]["ret"] = "float" @@ -16699,7 +17112,7 @@ defs["igGetVersion"][1]["call_args"] = "()" defs["igGetVersion"][1]["cimguiname"] = "igGetVersion" defs["igGetVersion"][1]["defaults"] = {} defs["igGetVersion"][1]["funcname"] = "GetVersion" -defs["igGetVersion"][1]["location"] = "imgui:322" +defs["igGetVersion"][1]["location"] = "imgui:323" defs["igGetVersion"][1]["namespace"] = "ImGui" defs["igGetVersion"][1]["ov_cimguiname"] = "igGetVersion" defs["igGetVersion"][1]["ret"] = "const char*" @@ -16718,7 +17131,7 @@ defs["igGetViewportPlatformMonitor"][1]["call_args"] = "(viewport)" defs["igGetViewportPlatformMonitor"][1]["cimguiname"] = "igGetViewportPlatformMonitor" defs["igGetViewportPlatformMonitor"][1]["defaults"] = {} defs["igGetViewportPlatformMonitor"][1]["funcname"] = "GetViewportPlatformMonitor" -defs["igGetViewportPlatformMonitor"][1]["location"] = "imgui_internal:2592" +defs["igGetViewportPlatformMonitor"][1]["location"] = "imgui_internal:2697" defs["igGetViewportPlatformMonitor"][1]["namespace"] = "ImGui" defs["igGetViewportPlatformMonitor"][1]["ov_cimguiname"] = "igGetViewportPlatformMonitor" defs["igGetViewportPlatformMonitor"][1]["ret"] = "const ImGuiPlatformMonitor*" @@ -16737,7 +17150,7 @@ defs["igGetWindowAlwaysWantOwnTabBar"][1]["call_args"] = "(window)" defs["igGetWindowAlwaysWantOwnTabBar"][1]["cimguiname"] = "igGetWindowAlwaysWantOwnTabBar" defs["igGetWindowAlwaysWantOwnTabBar"][1]["defaults"] = {} defs["igGetWindowAlwaysWantOwnTabBar"][1]["funcname"] = "GetWindowAlwaysWantOwnTabBar" -defs["igGetWindowAlwaysWantOwnTabBar"][1]["location"] = "imgui_internal:2737" +defs["igGetWindowAlwaysWantOwnTabBar"][1]["location"] = "imgui_internal:2857" defs["igGetWindowAlwaysWantOwnTabBar"][1]["namespace"] = "ImGui" defs["igGetWindowAlwaysWantOwnTabBar"][1]["ov_cimguiname"] = "igGetWindowAlwaysWantOwnTabBar" defs["igGetWindowAlwaysWantOwnTabBar"][1]["ret"] = "bool" @@ -16756,7 +17169,7 @@ defs["igGetWindowContentRegionMax"][1]["call_args"] = "()" defs["igGetWindowContentRegionMax"][1]["cimguiname"] = "igGetWindowContentRegionMax" defs["igGetWindowContentRegionMax"][1]["defaults"] = {} defs["igGetWindowContentRegionMax"][1]["funcname"] = "GetWindowContentRegionMax" -defs["igGetWindowContentRegionMax"][1]["location"] = "imgui:396" +defs["igGetWindowContentRegionMax"][1]["location"] = "imgui:397" defs["igGetWindowContentRegionMax"][1]["namespace"] = "ImGui" defs["igGetWindowContentRegionMax"][1]["nonUDT"] = 1 defs["igGetWindowContentRegionMax"][1]["ov_cimguiname"] = "igGetWindowContentRegionMax" @@ -16776,7 +17189,7 @@ defs["igGetWindowContentRegionMin"][1]["call_args"] = "()" defs["igGetWindowContentRegionMin"][1]["cimguiname"] = "igGetWindowContentRegionMin" defs["igGetWindowContentRegionMin"][1]["defaults"] = {} defs["igGetWindowContentRegionMin"][1]["funcname"] = "GetWindowContentRegionMin" -defs["igGetWindowContentRegionMin"][1]["location"] = "imgui:395" +defs["igGetWindowContentRegionMin"][1]["location"] = "imgui:396" defs["igGetWindowContentRegionMin"][1]["namespace"] = "ImGui" defs["igGetWindowContentRegionMin"][1]["nonUDT"] = 1 defs["igGetWindowContentRegionMin"][1]["ov_cimguiname"] = "igGetWindowContentRegionMin" @@ -16793,7 +17206,7 @@ defs["igGetWindowDockID"][1]["call_args"] = "()" defs["igGetWindowDockID"][1]["cimguiname"] = "igGetWindowDockID" defs["igGetWindowDockID"][1]["defaults"] = {} defs["igGetWindowDockID"][1]["funcname"] = "GetWindowDockID" -defs["igGetWindowDockID"][1]["location"] = "imgui:820" +defs["igGetWindowDockID"][1]["location"] = "imgui:822" defs["igGetWindowDockID"][1]["namespace"] = "ImGui" defs["igGetWindowDockID"][1]["ov_cimguiname"] = "igGetWindowDockID" defs["igGetWindowDockID"][1]["ret"] = "ImGuiID" @@ -16809,7 +17222,7 @@ defs["igGetWindowDockNode"][1]["call_args"] = "()" defs["igGetWindowDockNode"][1]["cimguiname"] = "igGetWindowDockNode" defs["igGetWindowDockNode"][1]["defaults"] = {} defs["igGetWindowDockNode"][1]["funcname"] = "GetWindowDockNode" -defs["igGetWindowDockNode"][1]["location"] = "imgui_internal:2736" +defs["igGetWindowDockNode"][1]["location"] = "imgui_internal:2856" defs["igGetWindowDockNode"][1]["namespace"] = "ImGui" defs["igGetWindowDockNode"][1]["ov_cimguiname"] = "igGetWindowDockNode" defs["igGetWindowDockNode"][1]["ret"] = "ImGuiDockNode*" @@ -16825,7 +17238,7 @@ defs["igGetWindowDpiScale"][1]["call_args"] = "()" defs["igGetWindowDpiScale"][1]["cimguiname"] = "igGetWindowDpiScale" defs["igGetWindowDpiScale"][1]["defaults"] = {} defs["igGetWindowDpiScale"][1]["funcname"] = "GetWindowDpiScale" -defs["igGetWindowDpiScale"][1]["location"] = "imgui:363" +defs["igGetWindowDpiScale"][1]["location"] = "imgui:364" defs["igGetWindowDpiScale"][1]["namespace"] = "ImGui" defs["igGetWindowDpiScale"][1]["ov_cimguiname"] = "igGetWindowDpiScale" defs["igGetWindowDpiScale"][1]["ret"] = "float" @@ -16841,7 +17254,7 @@ defs["igGetWindowDrawList"][1]["call_args"] = "()" defs["igGetWindowDrawList"][1]["cimguiname"] = "igGetWindowDrawList" defs["igGetWindowDrawList"][1]["defaults"] = {} defs["igGetWindowDrawList"][1]["funcname"] = "GetWindowDrawList" -defs["igGetWindowDrawList"][1]["location"] = "imgui:362" +defs["igGetWindowDrawList"][1]["location"] = "imgui:363" defs["igGetWindowDrawList"][1]["namespace"] = "ImGui" defs["igGetWindowDrawList"][1]["ov_cimguiname"] = "igGetWindowDrawList" defs["igGetWindowDrawList"][1]["ret"] = "ImDrawList*" @@ -16857,7 +17270,7 @@ defs["igGetWindowHeight"][1]["call_args"] = "()" defs["igGetWindowHeight"][1]["cimguiname"] = "igGetWindowHeight" defs["igGetWindowHeight"][1]["defaults"] = {} defs["igGetWindowHeight"][1]["funcname"] = "GetWindowHeight" -defs["igGetWindowHeight"][1]["location"] = "imgui:367" +defs["igGetWindowHeight"][1]["location"] = "imgui:368" defs["igGetWindowHeight"][1]["namespace"] = "ImGui" defs["igGetWindowHeight"][1]["ov_cimguiname"] = "igGetWindowHeight" defs["igGetWindowHeight"][1]["ret"] = "float" @@ -16876,7 +17289,7 @@ defs["igGetWindowPos"][1]["call_args"] = "()" defs["igGetWindowPos"][1]["cimguiname"] = "igGetWindowPos" defs["igGetWindowPos"][1]["defaults"] = {} defs["igGetWindowPos"][1]["funcname"] = "GetWindowPos" -defs["igGetWindowPos"][1]["location"] = "imgui:364" +defs["igGetWindowPos"][1]["location"] = "imgui:365" defs["igGetWindowPos"][1]["namespace"] = "ImGui" defs["igGetWindowPos"][1]["nonUDT"] = 1 defs["igGetWindowPos"][1]["ov_cimguiname"] = "igGetWindowPos" @@ -16899,7 +17312,7 @@ defs["igGetWindowResizeBorderID"][1]["call_args"] = "(window,dir)" defs["igGetWindowResizeBorderID"][1]["cimguiname"] = "igGetWindowResizeBorderID" defs["igGetWindowResizeBorderID"][1]["defaults"] = {} defs["igGetWindowResizeBorderID"][1]["funcname"] = "GetWindowResizeBorderID" -defs["igGetWindowResizeBorderID"][1]["location"] = "imgui_internal:2892" +defs["igGetWindowResizeBorderID"][1]["location"] = "imgui_internal:3013" defs["igGetWindowResizeBorderID"][1]["namespace"] = "ImGui" defs["igGetWindowResizeBorderID"][1]["ov_cimguiname"] = "igGetWindowResizeBorderID" defs["igGetWindowResizeBorderID"][1]["ret"] = "ImGuiID" @@ -16921,7 +17334,7 @@ defs["igGetWindowResizeCornerID"][1]["call_args"] = "(window,n)" defs["igGetWindowResizeCornerID"][1]["cimguiname"] = "igGetWindowResizeCornerID" defs["igGetWindowResizeCornerID"][1]["defaults"] = {} defs["igGetWindowResizeCornerID"][1]["funcname"] = "GetWindowResizeCornerID" -defs["igGetWindowResizeCornerID"][1]["location"] = "imgui_internal:2891" +defs["igGetWindowResizeCornerID"][1]["location"] = "imgui_internal:3012" defs["igGetWindowResizeCornerID"][1]["namespace"] = "ImGui" defs["igGetWindowResizeCornerID"][1]["ov_cimguiname"] = "igGetWindowResizeCornerID" defs["igGetWindowResizeCornerID"][1]["ret"] = "ImGuiID" @@ -16943,7 +17356,7 @@ defs["igGetWindowScrollbarID"][1]["call_args"] = "(window,axis)" defs["igGetWindowScrollbarID"][1]["cimguiname"] = "igGetWindowScrollbarID" defs["igGetWindowScrollbarID"][1]["defaults"] = {} defs["igGetWindowScrollbarID"][1]["funcname"] = "GetWindowScrollbarID" -defs["igGetWindowScrollbarID"][1]["location"] = "imgui_internal:2890" +defs["igGetWindowScrollbarID"][1]["location"] = "imgui_internal:3011" defs["igGetWindowScrollbarID"][1]["namespace"] = "ImGui" defs["igGetWindowScrollbarID"][1]["ov_cimguiname"] = "igGetWindowScrollbarID" defs["igGetWindowScrollbarID"][1]["ret"] = "ImGuiID" @@ -16968,7 +17381,7 @@ defs["igGetWindowScrollbarRect"][1]["call_args"] = "(window,axis)" defs["igGetWindowScrollbarRect"][1]["cimguiname"] = "igGetWindowScrollbarRect" defs["igGetWindowScrollbarRect"][1]["defaults"] = {} defs["igGetWindowScrollbarRect"][1]["funcname"] = "GetWindowScrollbarRect" -defs["igGetWindowScrollbarRect"][1]["location"] = "imgui_internal:2889" +defs["igGetWindowScrollbarRect"][1]["location"] = "imgui_internal:3010" defs["igGetWindowScrollbarRect"][1]["namespace"] = "ImGui" defs["igGetWindowScrollbarRect"][1]["nonUDT"] = 1 defs["igGetWindowScrollbarRect"][1]["ov_cimguiname"] = "igGetWindowScrollbarRect" @@ -16988,7 +17401,7 @@ defs["igGetWindowSize"][1]["call_args"] = "()" defs["igGetWindowSize"][1]["cimguiname"] = "igGetWindowSize" defs["igGetWindowSize"][1]["defaults"] = {} defs["igGetWindowSize"][1]["funcname"] = "GetWindowSize" -defs["igGetWindowSize"][1]["location"] = "imgui:365" +defs["igGetWindowSize"][1]["location"] = "imgui:366" defs["igGetWindowSize"][1]["namespace"] = "ImGui" defs["igGetWindowSize"][1]["nonUDT"] = 1 defs["igGetWindowSize"][1]["ov_cimguiname"] = "igGetWindowSize" @@ -17005,7 +17418,7 @@ defs["igGetWindowViewport"][1]["call_args"] = "()" defs["igGetWindowViewport"][1]["cimguiname"] = "igGetWindowViewport" defs["igGetWindowViewport"][1]["defaults"] = {} defs["igGetWindowViewport"][1]["funcname"] = "GetWindowViewport" -defs["igGetWindowViewport"][1]["location"] = "imgui:368" +defs["igGetWindowViewport"][1]["location"] = "imgui:369" defs["igGetWindowViewport"][1]["namespace"] = "ImGui" defs["igGetWindowViewport"][1]["ov_cimguiname"] = "igGetWindowViewport" defs["igGetWindowViewport"][1]["ret"] = "ImGuiViewport*" @@ -17021,7 +17434,7 @@ defs["igGetWindowWidth"][1]["call_args"] = "()" defs["igGetWindowWidth"][1]["cimguiname"] = "igGetWindowWidth" defs["igGetWindowWidth"][1]["defaults"] = {} defs["igGetWindowWidth"][1]["funcname"] = "GetWindowWidth" -defs["igGetWindowWidth"][1]["location"] = "imgui:366" +defs["igGetWindowWidth"][1]["location"] = "imgui:367" defs["igGetWindowWidth"][1]["namespace"] = "ImGui" defs["igGetWindowWidth"][1]["ov_cimguiname"] = "igGetWindowWidth" defs["igGetWindowWidth"][1]["ret"] = "float" @@ -17040,7 +17453,7 @@ defs["igImAbs"][1]["call_args"] = "(x)" defs["igImAbs"][1]["cimguiname"] = "igImAbs" defs["igImAbs"][1]["defaults"] = {} defs["igImAbs"][1]["funcname"] = "ImAbs" -defs["igImAbs"][1]["location"] = "imgui_internal:412" +defs["igImAbs"][1]["location"] = "imgui_internal:423" defs["igImAbs"][1]["ov_cimguiname"] = "igImAbsInt" defs["igImAbs"][1]["ret"] = "int" defs["igImAbs"][1]["signature"] = "(int)" @@ -17056,7 +17469,7 @@ defs["igImAbs"][2]["call_args"] = "(x)" defs["igImAbs"][2]["cimguiname"] = "igImAbs" defs["igImAbs"][2]["defaults"] = {} defs["igImAbs"][2]["funcname"] = "ImAbs" -defs["igImAbs"][2]["location"] = "imgui_internal:413" +defs["igImAbs"][2]["location"] = "imgui_internal:424" defs["igImAbs"][2]["ov_cimguiname"] = "igImAbsFloat" defs["igImAbs"][2]["ret"] = "float" defs["igImAbs"][2]["signature"] = "(float)" @@ -17072,7 +17485,7 @@ defs["igImAbs"][3]["call_args"] = "(x)" defs["igImAbs"][3]["cimguiname"] = "igImAbs" defs["igImAbs"][3]["defaults"] = {} defs["igImAbs"][3]["funcname"] = "ImAbs" -defs["igImAbs"][3]["location"] = "imgui_internal:414" +defs["igImAbs"][3]["location"] = "imgui_internal:425" defs["igImAbs"][3]["ov_cimguiname"] = "igImAbsdouble" defs["igImAbs"][3]["ret"] = "double" defs["igImAbs"][3]["signature"] = "(double)" @@ -17095,7 +17508,7 @@ defs["igImAlphaBlendColors"][1]["call_args"] = "(col_a,col_b)" defs["igImAlphaBlendColors"][1]["cimguiname"] = "igImAlphaBlendColors" defs["igImAlphaBlendColors"][1]["defaults"] = {} defs["igImAlphaBlendColors"][1]["funcname"] = "ImAlphaBlendColors" -defs["igImAlphaBlendColors"][1]["location"] = "imgui_internal:311" +defs["igImAlphaBlendColors"][1]["location"] = "imgui_internal:322" defs["igImAlphaBlendColors"][1]["ov_cimguiname"] = "igImAlphaBlendColors" defs["igImAlphaBlendColors"][1]["ret"] = "ImU32" defs["igImAlphaBlendColors"][1]["signature"] = "(ImU32,ImU32)" @@ -17128,7 +17541,7 @@ defs["igImBezierCubicCalc"][1]["call_args"] = "(p1,p2,p3,p4,t)" defs["igImBezierCubicCalc"][1]["cimguiname"] = "igImBezierCubicCalc" defs["igImBezierCubicCalc"][1]["defaults"] = {} defs["igImBezierCubicCalc"][1]["funcname"] = "ImBezierCubicCalc" -defs["igImBezierCubicCalc"][1]["location"] = "imgui_internal:455" +defs["igImBezierCubicCalc"][1]["location"] = "imgui_internal:467" defs["igImBezierCubicCalc"][1]["nonUDT"] = 1 defs["igImBezierCubicCalc"][1]["ov_cimguiname"] = "igImBezierCubicCalc" defs["igImBezierCubicCalc"][1]["ret"] = "void" @@ -17165,7 +17578,7 @@ defs["igImBezierCubicClosestPoint"][1]["call_args"] = "(p1,p2,p3,p4,p,num_segmen defs["igImBezierCubicClosestPoint"][1]["cimguiname"] = "igImBezierCubicClosestPoint" defs["igImBezierCubicClosestPoint"][1]["defaults"] = {} defs["igImBezierCubicClosestPoint"][1]["funcname"] = "ImBezierCubicClosestPoint" -defs["igImBezierCubicClosestPoint"][1]["location"] = "imgui_internal:456" +defs["igImBezierCubicClosestPoint"][1]["location"] = "imgui_internal:468" defs["igImBezierCubicClosestPoint"][1]["nonUDT"] = 1 defs["igImBezierCubicClosestPoint"][1]["ov_cimguiname"] = "igImBezierCubicClosestPoint" defs["igImBezierCubicClosestPoint"][1]["ret"] = "void" @@ -17202,7 +17615,7 @@ defs["igImBezierCubicClosestPointCasteljau"][1]["call_args"] = "(p1,p2,p3,p4,p,t defs["igImBezierCubicClosestPointCasteljau"][1]["cimguiname"] = "igImBezierCubicClosestPointCasteljau" defs["igImBezierCubicClosestPointCasteljau"][1]["defaults"] = {} defs["igImBezierCubicClosestPointCasteljau"][1]["funcname"] = "ImBezierCubicClosestPointCasteljau" -defs["igImBezierCubicClosestPointCasteljau"][1]["location"] = "imgui_internal:457" +defs["igImBezierCubicClosestPointCasteljau"][1]["location"] = "imgui_internal:469" defs["igImBezierCubicClosestPointCasteljau"][1]["nonUDT"] = 1 defs["igImBezierCubicClosestPointCasteljau"][1]["ov_cimguiname"] = "igImBezierCubicClosestPointCasteljau" defs["igImBezierCubicClosestPointCasteljau"][1]["ret"] = "void" @@ -17233,7 +17646,7 @@ defs["igImBezierQuadraticCalc"][1]["call_args"] = "(p1,p2,p3,t)" defs["igImBezierQuadraticCalc"][1]["cimguiname"] = "igImBezierQuadraticCalc" defs["igImBezierQuadraticCalc"][1]["defaults"] = {} defs["igImBezierQuadraticCalc"][1]["funcname"] = "ImBezierQuadraticCalc" -defs["igImBezierQuadraticCalc"][1]["location"] = "imgui_internal:458" +defs["igImBezierQuadraticCalc"][1]["location"] = "imgui_internal:470" defs["igImBezierQuadraticCalc"][1]["nonUDT"] = 1 defs["igImBezierQuadraticCalc"][1]["ov_cimguiname"] = "igImBezierQuadraticCalc" defs["igImBezierQuadraticCalc"][1]["ret"] = "void" @@ -17255,7 +17668,7 @@ defs["igImBitArrayClearBit"][1]["call_args"] = "(arr,n)" defs["igImBitArrayClearBit"][1]["cimguiname"] = "igImBitArrayClearBit" defs["igImBitArrayClearBit"][1]["defaults"] = {} defs["igImBitArrayClearBit"][1]["funcname"] = "ImBitArrayClearBit" -defs["igImBitArrayClearBit"][1]["location"] = "imgui_internal:526" +defs["igImBitArrayClearBit"][1]["location"] = "imgui_internal:538" defs["igImBitArrayClearBit"][1]["ov_cimguiname"] = "igImBitArrayClearBit" defs["igImBitArrayClearBit"][1]["ret"] = "void" defs["igImBitArrayClearBit"][1]["signature"] = "(ImU32*,int)" @@ -17276,7 +17689,7 @@ defs["igImBitArraySetBit"][1]["call_args"] = "(arr,n)" defs["igImBitArraySetBit"][1]["cimguiname"] = "igImBitArraySetBit" defs["igImBitArraySetBit"][1]["defaults"] = {} defs["igImBitArraySetBit"][1]["funcname"] = "ImBitArraySetBit" -defs["igImBitArraySetBit"][1]["location"] = "imgui_internal:527" +defs["igImBitArraySetBit"][1]["location"] = "imgui_internal:539" defs["igImBitArraySetBit"][1]["ov_cimguiname"] = "igImBitArraySetBit" defs["igImBitArraySetBit"][1]["ret"] = "void" defs["igImBitArraySetBit"][1]["signature"] = "(ImU32*,int)" @@ -17300,7 +17713,7 @@ defs["igImBitArraySetBitRange"][1]["call_args"] = "(arr,n,n2)" defs["igImBitArraySetBitRange"][1]["cimguiname"] = "igImBitArraySetBitRange" defs["igImBitArraySetBitRange"][1]["defaults"] = {} defs["igImBitArraySetBitRange"][1]["funcname"] = "ImBitArraySetBitRange" -defs["igImBitArraySetBitRange"][1]["location"] = "imgui_internal:528" +defs["igImBitArraySetBitRange"][1]["location"] = "imgui_internal:540" defs["igImBitArraySetBitRange"][1]["ov_cimguiname"] = "igImBitArraySetBitRange" defs["igImBitArraySetBitRange"][1]["ret"] = "void" defs["igImBitArraySetBitRange"][1]["signature"] = "(ImU32*,int,int)" @@ -17321,7 +17734,7 @@ defs["igImBitArrayTestBit"][1]["call_args"] = "(arr,n)" defs["igImBitArrayTestBit"][1]["cimguiname"] = "igImBitArrayTestBit" defs["igImBitArrayTestBit"][1]["defaults"] = {} defs["igImBitArrayTestBit"][1]["funcname"] = "ImBitArrayTestBit" -defs["igImBitArrayTestBit"][1]["location"] = "imgui_internal:525" +defs["igImBitArrayTestBit"][1]["location"] = "imgui_internal:537" defs["igImBitArrayTestBit"][1]["ov_cimguiname"] = "igImBitArrayTestBit" defs["igImBitArrayTestBit"][1]["ret"] = "bool" defs["igImBitArrayTestBit"][1]["signature"] = "(const ImU32*,int)" @@ -17339,7 +17752,7 @@ defs["igImCharIsBlankA"][1]["call_args"] = "(c)" defs["igImCharIsBlankA"][1]["cimguiname"] = "igImCharIsBlankA" defs["igImCharIsBlankA"][1]["defaults"] = {} defs["igImCharIsBlankA"][1]["funcname"] = "ImCharIsBlankA" -defs["igImCharIsBlankA"][1]["location"] = "imgui_internal:337" +defs["igImCharIsBlankA"][1]["location"] = "imgui_internal:348" defs["igImCharIsBlankA"][1]["ov_cimguiname"] = "igImCharIsBlankA" defs["igImCharIsBlankA"][1]["ret"] = "bool" defs["igImCharIsBlankA"][1]["signature"] = "(char)" @@ -17357,7 +17770,7 @@ defs["igImCharIsBlankW"][1]["call_args"] = "(c)" defs["igImCharIsBlankW"][1]["cimguiname"] = "igImCharIsBlankW" defs["igImCharIsBlankW"][1]["defaults"] = {} defs["igImCharIsBlankW"][1]["funcname"] = "ImCharIsBlankW" -defs["igImCharIsBlankW"][1]["location"] = "imgui_internal:338" +defs["igImCharIsBlankW"][1]["location"] = "imgui_internal:349" defs["igImCharIsBlankW"][1]["ov_cimguiname"] = "igImCharIsBlankW" defs["igImCharIsBlankW"][1]["ret"] = "bool" defs["igImCharIsBlankW"][1]["signature"] = "(unsigned int)" @@ -17384,7 +17797,7 @@ defs["igImClamp"][1]["call_args"] = "(v,mn,mx)" defs["igImClamp"][1]["cimguiname"] = "igImClamp" defs["igImClamp"][1]["defaults"] = {} defs["igImClamp"][1]["funcname"] = "ImClamp" -defs["igImClamp"][1]["location"] = "imgui_internal:436" +defs["igImClamp"][1]["location"] = "imgui_internal:447" defs["igImClamp"][1]["nonUDT"] = 1 defs["igImClamp"][1]["ov_cimguiname"] = "igImClamp" defs["igImClamp"][1]["ret"] = "void" @@ -17406,7 +17819,7 @@ defs["igImDot"][1]["call_args"] = "(a,b)" defs["igImDot"][1]["cimguiname"] = "igImDot" defs["igImDot"][1]["defaults"] = {} defs["igImDot"][1]["funcname"] = "ImDot" -defs["igImDot"][1]["location"] = "imgui_internal:448" +defs["igImDot"][1]["location"] = "imgui_internal:459" defs["igImDot"][1]["ov_cimguiname"] = "igImDot" defs["igImDot"][1]["ret"] = "float" defs["igImDot"][1]["signature"] = "(const ImVec2,const ImVec2)" @@ -17424,7 +17837,7 @@ defs["igImFileClose"][1]["call_args"] = "(file)" defs["igImFileClose"][1]["cimguiname"] = "igImFileClose" defs["igImFileClose"][1]["defaults"] = {} defs["igImFileClose"][1]["funcname"] = "ImFileClose" -defs["igImFileClose"][1]["location"] = "imgui_internal:385" +defs["igImFileClose"][1]["location"] = "imgui_internal:396" defs["igImFileClose"][1]["ov_cimguiname"] = "igImFileClose" defs["igImFileClose"][1]["ret"] = "bool" defs["igImFileClose"][1]["signature"] = "(ImFileHandle)" @@ -17442,7 +17855,7 @@ defs["igImFileGetSize"][1]["call_args"] = "(file)" defs["igImFileGetSize"][1]["cimguiname"] = "igImFileGetSize" defs["igImFileGetSize"][1]["defaults"] = {} defs["igImFileGetSize"][1]["funcname"] = "ImFileGetSize" -defs["igImFileGetSize"][1]["location"] = "imgui_internal:386" +defs["igImFileGetSize"][1]["location"] = "imgui_internal:397" defs["igImFileGetSize"][1]["ov_cimguiname"] = "igImFileGetSize" defs["igImFileGetSize"][1]["ret"] = "ImU64" defs["igImFileGetSize"][1]["signature"] = "(ImFileHandle)" @@ -17471,7 +17884,7 @@ defs["igImFileLoadToMemory"][1]["defaults"] = {} defs["igImFileLoadToMemory"][1]["defaults"]["out_file_size"] = "NULL" defs["igImFileLoadToMemory"][1]["defaults"]["padding_bytes"] = "0" defs["igImFileLoadToMemory"][1]["funcname"] = "ImFileLoadToMemory" -defs["igImFileLoadToMemory"][1]["location"] = "imgui_internal:392" +defs["igImFileLoadToMemory"][1]["location"] = "imgui_internal:403" defs["igImFileLoadToMemory"][1]["ov_cimguiname"] = "igImFileLoadToMemory" defs["igImFileLoadToMemory"][1]["ret"] = "void*" defs["igImFileLoadToMemory"][1]["signature"] = "(const char*,const char*,size_t*,int)" @@ -17492,7 +17905,7 @@ defs["igImFileOpen"][1]["call_args"] = "(filename,mode)" defs["igImFileOpen"][1]["cimguiname"] = "igImFileOpen" defs["igImFileOpen"][1]["defaults"] = {} defs["igImFileOpen"][1]["funcname"] = "ImFileOpen" -defs["igImFileOpen"][1]["location"] = "imgui_internal:384" +defs["igImFileOpen"][1]["location"] = "imgui_internal:395" defs["igImFileOpen"][1]["ov_cimguiname"] = "igImFileOpen" defs["igImFileOpen"][1]["ret"] = "ImFileHandle" defs["igImFileOpen"][1]["signature"] = "(const char*,const char*)" @@ -17519,7 +17932,7 @@ defs["igImFileRead"][1]["call_args"] = "(data,size,count,file)" defs["igImFileRead"][1]["cimguiname"] = "igImFileRead" defs["igImFileRead"][1]["defaults"] = {} defs["igImFileRead"][1]["funcname"] = "ImFileRead" -defs["igImFileRead"][1]["location"] = "imgui_internal:387" +defs["igImFileRead"][1]["location"] = "imgui_internal:398" defs["igImFileRead"][1]["ov_cimguiname"] = "igImFileRead" defs["igImFileRead"][1]["ret"] = "ImU64" defs["igImFileRead"][1]["signature"] = "(void*,ImU64,ImU64,ImFileHandle)" @@ -17546,7 +17959,7 @@ defs["igImFileWrite"][1]["call_args"] = "(data,size,count,file)" defs["igImFileWrite"][1]["cimguiname"] = "igImFileWrite" defs["igImFileWrite"][1]["defaults"] = {} defs["igImFileWrite"][1]["funcname"] = "ImFileWrite" -defs["igImFileWrite"][1]["location"] = "imgui_internal:388" +defs["igImFileWrite"][1]["location"] = "imgui_internal:399" defs["igImFileWrite"][1]["ov_cimguiname"] = "igImFileWrite" defs["igImFileWrite"][1]["ret"] = "ImU64" defs["igImFileWrite"][1]["signature"] = "(const void*,ImU64,ImU64,ImFileHandle)" @@ -17564,7 +17977,7 @@ defs["igImFloor"][1]["call_args"] = "(f)" defs["igImFloor"][1]["cimguiname"] = "igImFloor" defs["igImFloor"][1]["defaults"] = {} defs["igImFloor"][1]["funcname"] = "ImFloor" -defs["igImFloor"][1]["location"] = "imgui_internal:444" +defs["igImFloor"][1]["location"] = "imgui_internal:455" defs["igImFloor"][1]["ov_cimguiname"] = "igImFloorFloat" defs["igImFloor"][1]["ret"] = "float" defs["igImFloor"][1]["signature"] = "(float)" @@ -17583,7 +17996,7 @@ defs["igImFloor"][2]["call_args"] = "(v)" defs["igImFloor"][2]["cimguiname"] = "igImFloor" defs["igImFloor"][2]["defaults"] = {} defs["igImFloor"][2]["funcname"] = "ImFloor" -defs["igImFloor"][2]["location"] = "imgui_internal:446" +defs["igImFloor"][2]["location"] = "imgui_internal:457" defs["igImFloor"][2]["nonUDT"] = 1 defs["igImFloor"][2]["ov_cimguiname"] = "igImFloorVec2" defs["igImFloor"][2]["ret"] = "void" @@ -17603,7 +18016,7 @@ defs["igImFloorSigned"][1]["call_args"] = "(f)" defs["igImFloorSigned"][1]["cimguiname"] = "igImFloorSigned" defs["igImFloorSigned"][1]["defaults"] = {} defs["igImFloorSigned"][1]["funcname"] = "ImFloorSigned" -defs["igImFloorSigned"][1]["location"] = "imgui_internal:445" +defs["igImFloorSigned"][1]["location"] = "imgui_internal:456" defs["igImFloorSigned"][1]["ov_cimguiname"] = "igImFloorSigned" defs["igImFloorSigned"][1]["ret"] = "float" defs["igImFloorSigned"][1]["signature"] = "(float)" @@ -17621,7 +18034,7 @@ defs["igImFontAtlasBuildFinish"][1]["call_args"] = "(atlas)" defs["igImFontAtlasBuildFinish"][1]["cimguiname"] = "igImFontAtlasBuildFinish" defs["igImFontAtlasBuildFinish"][1]["defaults"] = {} defs["igImFontAtlasBuildFinish"][1]["funcname"] = "ImFontAtlasBuildFinish" -defs["igImFontAtlasBuildFinish"][1]["location"] = "imgui_internal:2987" +defs["igImFontAtlasBuildFinish"][1]["location"] = "imgui_internal:3111" defs["igImFontAtlasBuildFinish"][1]["ov_cimguiname"] = "igImFontAtlasBuildFinish" defs["igImFontAtlasBuildFinish"][1]["ret"] = "void" defs["igImFontAtlasBuildFinish"][1]["signature"] = "(ImFontAtlas*)" @@ -17639,7 +18052,7 @@ defs["igImFontAtlasBuildInit"][1]["call_args"] = "(atlas)" defs["igImFontAtlasBuildInit"][1]["cimguiname"] = "igImFontAtlasBuildInit" defs["igImFontAtlasBuildInit"][1]["defaults"] = {} defs["igImFontAtlasBuildInit"][1]["funcname"] = "ImFontAtlasBuildInit" -defs["igImFontAtlasBuildInit"][1]["location"] = "imgui_internal:2984" +defs["igImFontAtlasBuildInit"][1]["location"] = "imgui_internal:3108" defs["igImFontAtlasBuildInit"][1]["ov_cimguiname"] = "igImFontAtlasBuildInit" defs["igImFontAtlasBuildInit"][1]["ret"] = "void" defs["igImFontAtlasBuildInit"][1]["signature"] = "(ImFontAtlas*)" @@ -17660,7 +18073,7 @@ defs["igImFontAtlasBuildMultiplyCalcLookupTable"][1]["call_args"] = "(out_table, defs["igImFontAtlasBuildMultiplyCalcLookupTable"][1]["cimguiname"] = "igImFontAtlasBuildMultiplyCalcLookupTable" defs["igImFontAtlasBuildMultiplyCalcLookupTable"][1]["defaults"] = {} defs["igImFontAtlasBuildMultiplyCalcLookupTable"][1]["funcname"] = "ImFontAtlasBuildMultiplyCalcLookupTable" -defs["igImFontAtlasBuildMultiplyCalcLookupTable"][1]["location"] = "imgui_internal:2990" +defs["igImFontAtlasBuildMultiplyCalcLookupTable"][1]["location"] = "imgui_internal:3114" defs["igImFontAtlasBuildMultiplyCalcLookupTable"][1]["ov_cimguiname"] = "igImFontAtlasBuildMultiplyCalcLookupTable" defs["igImFontAtlasBuildMultiplyCalcLookupTable"][1]["ret"] = "void" defs["igImFontAtlasBuildMultiplyCalcLookupTable"][1]["signature"] = "(unsigned char[256],float)" @@ -17696,7 +18109,7 @@ defs["igImFontAtlasBuildMultiplyRectAlpha8"][1]["call_args"] = "(table,pixels,x, defs["igImFontAtlasBuildMultiplyRectAlpha8"][1]["cimguiname"] = "igImFontAtlasBuildMultiplyRectAlpha8" defs["igImFontAtlasBuildMultiplyRectAlpha8"][1]["defaults"] = {} defs["igImFontAtlasBuildMultiplyRectAlpha8"][1]["funcname"] = "ImFontAtlasBuildMultiplyRectAlpha8" -defs["igImFontAtlasBuildMultiplyRectAlpha8"][1]["location"] = "imgui_internal:2991" +defs["igImFontAtlasBuildMultiplyRectAlpha8"][1]["location"] = "imgui_internal:3115" defs["igImFontAtlasBuildMultiplyRectAlpha8"][1]["ov_cimguiname"] = "igImFontAtlasBuildMultiplyRectAlpha8" defs["igImFontAtlasBuildMultiplyRectAlpha8"][1]["ret"] = "void" defs["igImFontAtlasBuildMultiplyRectAlpha8"][1]["signature"] = "(const unsigned char[256],unsigned char*,int,int,int,int,int)" @@ -17717,7 +18130,7 @@ defs["igImFontAtlasBuildPackCustomRects"][1]["call_args"] = "(atlas,stbrp_contex defs["igImFontAtlasBuildPackCustomRects"][1]["cimguiname"] = "igImFontAtlasBuildPackCustomRects" defs["igImFontAtlasBuildPackCustomRects"][1]["defaults"] = {} defs["igImFontAtlasBuildPackCustomRects"][1]["funcname"] = "ImFontAtlasBuildPackCustomRects" -defs["igImFontAtlasBuildPackCustomRects"][1]["location"] = "imgui_internal:2986" +defs["igImFontAtlasBuildPackCustomRects"][1]["location"] = "imgui_internal:3110" defs["igImFontAtlasBuildPackCustomRects"][1]["ov_cimguiname"] = "igImFontAtlasBuildPackCustomRects" defs["igImFontAtlasBuildPackCustomRects"][1]["ret"] = "void" defs["igImFontAtlasBuildPackCustomRects"][1]["signature"] = "(ImFontAtlas*,void*)" @@ -17756,7 +18169,7 @@ defs["igImFontAtlasBuildRender32bppRectFromString"][1]["call_args"] = "(atlas,x, defs["igImFontAtlasBuildRender32bppRectFromString"][1]["cimguiname"] = "igImFontAtlasBuildRender32bppRectFromString" defs["igImFontAtlasBuildRender32bppRectFromString"][1]["defaults"] = {} defs["igImFontAtlasBuildRender32bppRectFromString"][1]["funcname"] = "ImFontAtlasBuildRender32bppRectFromString" -defs["igImFontAtlasBuildRender32bppRectFromString"][1]["location"] = "imgui_internal:2989" +defs["igImFontAtlasBuildRender32bppRectFromString"][1]["location"] = "imgui_internal:3113" defs["igImFontAtlasBuildRender32bppRectFromString"][1]["ov_cimguiname"] = "igImFontAtlasBuildRender32bppRectFromString" defs["igImFontAtlasBuildRender32bppRectFromString"][1]["ret"] = "void" defs["igImFontAtlasBuildRender32bppRectFromString"][1]["signature"] = "(ImFontAtlas*,int,int,int,int,const char*,char,unsigned int)" @@ -17795,7 +18208,7 @@ defs["igImFontAtlasBuildRender8bppRectFromString"][1]["call_args"] = "(atlas,x,y defs["igImFontAtlasBuildRender8bppRectFromString"][1]["cimguiname"] = "igImFontAtlasBuildRender8bppRectFromString" defs["igImFontAtlasBuildRender8bppRectFromString"][1]["defaults"] = {} defs["igImFontAtlasBuildRender8bppRectFromString"][1]["funcname"] = "ImFontAtlasBuildRender8bppRectFromString" -defs["igImFontAtlasBuildRender8bppRectFromString"][1]["location"] = "imgui_internal:2988" +defs["igImFontAtlasBuildRender8bppRectFromString"][1]["location"] = "imgui_internal:3112" defs["igImFontAtlasBuildRender8bppRectFromString"][1]["ov_cimguiname"] = "igImFontAtlasBuildRender8bppRectFromString" defs["igImFontAtlasBuildRender8bppRectFromString"][1]["ret"] = "void" defs["igImFontAtlasBuildRender8bppRectFromString"][1]["signature"] = "(ImFontAtlas*,int,int,int,int,const char*,char,unsigned char)" @@ -17825,7 +18238,7 @@ defs["igImFontAtlasBuildSetupFont"][1]["call_args"] = "(atlas,font,font_config,a defs["igImFontAtlasBuildSetupFont"][1]["cimguiname"] = "igImFontAtlasBuildSetupFont" defs["igImFontAtlasBuildSetupFont"][1]["defaults"] = {} defs["igImFontAtlasBuildSetupFont"][1]["funcname"] = "ImFontAtlasBuildSetupFont" -defs["igImFontAtlasBuildSetupFont"][1]["location"] = "imgui_internal:2985" +defs["igImFontAtlasBuildSetupFont"][1]["location"] = "imgui_internal:3109" defs["igImFontAtlasBuildSetupFont"][1]["ov_cimguiname"] = "igImFontAtlasBuildSetupFont" defs["igImFontAtlasBuildSetupFont"][1]["ret"] = "void" defs["igImFontAtlasBuildSetupFont"][1]["signature"] = "(ImFontAtlas*,ImFont*,ImFontConfig*,float,float)" @@ -17840,7 +18253,7 @@ defs["igImFontAtlasGetBuilderForStbTruetype"][1]["call_args"] = "()" defs["igImFontAtlasGetBuilderForStbTruetype"][1]["cimguiname"] = "igImFontAtlasGetBuilderForStbTruetype" defs["igImFontAtlasGetBuilderForStbTruetype"][1]["defaults"] = {} defs["igImFontAtlasGetBuilderForStbTruetype"][1]["funcname"] = "ImFontAtlasGetBuilderForStbTruetype" -defs["igImFontAtlasGetBuilderForStbTruetype"][1]["location"] = "imgui_internal:2983" +defs["igImFontAtlasGetBuilderForStbTruetype"][1]["location"] = "imgui_internal:3107" defs["igImFontAtlasGetBuilderForStbTruetype"][1]["ov_cimguiname"] = "igImFontAtlasGetBuilderForStbTruetype" defs["igImFontAtlasGetBuilderForStbTruetype"][1]["ret"] = "const ImFontBuilderIO*" defs["igImFontAtlasGetBuilderForStbTruetype"][1]["signature"] = "()" @@ -17868,7 +18281,7 @@ defs["igImFormatString"][1]["cimguiname"] = "igImFormatString" defs["igImFormatString"][1]["defaults"] = {} defs["igImFormatString"][1]["funcname"] = "ImFormatString" defs["igImFormatString"][1]["isvararg"] = "...)" -defs["igImFormatString"][1]["location"] = "imgui_internal:331" +defs["igImFormatString"][1]["location"] = "imgui_internal:342" defs["igImFormatString"][1]["ov_cimguiname"] = "igImFormatString" defs["igImFormatString"][1]["ret"] = "int" defs["igImFormatString"][1]["signature"] = "(char*,size_t,const char*,...)" @@ -17895,7 +18308,7 @@ defs["igImFormatStringV"][1]["call_args"] = "(buf,buf_size,fmt,args)" defs["igImFormatStringV"][1]["cimguiname"] = "igImFormatStringV" defs["igImFormatStringV"][1]["defaults"] = {} defs["igImFormatStringV"][1]["funcname"] = "ImFormatStringV" -defs["igImFormatStringV"][1]["location"] = "imgui_internal:332" +defs["igImFormatStringV"][1]["location"] = "imgui_internal:343" defs["igImFormatStringV"][1]["ov_cimguiname"] = "igImFormatStringV" defs["igImFormatStringV"][1]["ret"] = "int" defs["igImFormatStringV"][1]["signature"] = "(char*,size_t,const char*,va_list)" @@ -17916,7 +18329,7 @@ defs["igImGetDirQuadrantFromDelta"][1]["call_args"] = "(dx,dy)" defs["igImGetDirQuadrantFromDelta"][1]["cimguiname"] = "igImGetDirQuadrantFromDelta" defs["igImGetDirQuadrantFromDelta"][1]["defaults"] = {} defs["igImGetDirQuadrantFromDelta"][1]["funcname"] = "ImGetDirQuadrantFromDelta" -defs["igImGetDirQuadrantFromDelta"][1]["location"] = "imgui_internal:464" +defs["igImGetDirQuadrantFromDelta"][1]["location"] = "imgui_internal:476" defs["igImGetDirQuadrantFromDelta"][1]["ov_cimguiname"] = "igImGetDirQuadrantFromDelta" defs["igImGetDirQuadrantFromDelta"][1]["ret"] = "ImGuiDir" defs["igImGetDirQuadrantFromDelta"][1]["signature"] = "(float,float)" @@ -17941,7 +18354,7 @@ defs["igImHashData"][1]["cimguiname"] = "igImHashData" defs["igImHashData"][1]["defaults"] = {} defs["igImHashData"][1]["defaults"]["seed"] = "0" defs["igImHashData"][1]["funcname"] = "ImHashData" -defs["igImHashData"][1]["location"] = "imgui_internal:301" +defs["igImHashData"][1]["location"] = "imgui_internal:310" defs["igImHashData"][1]["ov_cimguiname"] = "igImHashData" defs["igImHashData"][1]["ret"] = "ImGuiID" defs["igImHashData"][1]["signature"] = "(const void*,size_t,ImU32)" @@ -17967,7 +18380,7 @@ defs["igImHashStr"][1]["defaults"] = {} defs["igImHashStr"][1]["defaults"]["data_size"] = "0" defs["igImHashStr"][1]["defaults"]["seed"] = "0" defs["igImHashStr"][1]["funcname"] = "ImHashStr" -defs["igImHashStr"][1]["location"] = "imgui_internal:302" +defs["igImHashStr"][1]["location"] = "imgui_internal:311" defs["igImHashStr"][1]["ov_cimguiname"] = "igImHashStr" defs["igImHashStr"][1]["ret"] = "ImGuiID" defs["igImHashStr"][1]["signature"] = "(const char*,size_t,ImU32)" @@ -17988,12 +18401,30 @@ defs["igImInvLength"][1]["call_args"] = "(lhs,fail_value)" defs["igImInvLength"][1]["cimguiname"] = "igImInvLength" defs["igImInvLength"][1]["defaults"] = {} defs["igImInvLength"][1]["funcname"] = "ImInvLength" -defs["igImInvLength"][1]["location"] = "imgui_internal:443" +defs["igImInvLength"][1]["location"] = "imgui_internal:454" defs["igImInvLength"][1]["ov_cimguiname"] = "igImInvLength" defs["igImInvLength"][1]["ret"] = "float" defs["igImInvLength"][1]["signature"] = "(const ImVec2,float)" defs["igImInvLength"][1]["stname"] = "" defs["igImInvLength"]["(const ImVec2,float)"] = defs["igImInvLength"][1] +defs["igImIsFloatAboveGuaranteedIntegerPrecision"] = {} +defs["igImIsFloatAboveGuaranteedIntegerPrecision"][1] = {} +defs["igImIsFloatAboveGuaranteedIntegerPrecision"][1]["args"] = "(float f)" +defs["igImIsFloatAboveGuaranteedIntegerPrecision"][1]["argsT"] = {} +defs["igImIsFloatAboveGuaranteedIntegerPrecision"][1]["argsT"][1] = {} +defs["igImIsFloatAboveGuaranteedIntegerPrecision"][1]["argsT"][1]["name"] = "f" +defs["igImIsFloatAboveGuaranteedIntegerPrecision"][1]["argsT"][1]["type"] = "float" +defs["igImIsFloatAboveGuaranteedIntegerPrecision"][1]["argsoriginal"] = "(float f)" +defs["igImIsFloatAboveGuaranteedIntegerPrecision"][1]["call_args"] = "(f)" +defs["igImIsFloatAboveGuaranteedIntegerPrecision"][1]["cimguiname"] = "igImIsFloatAboveGuaranteedIntegerPrecision" +defs["igImIsFloatAboveGuaranteedIntegerPrecision"][1]["defaults"] = {} +defs["igImIsFloatAboveGuaranteedIntegerPrecision"][1]["funcname"] = "ImIsFloatAboveGuaranteedIntegerPrecision" +defs["igImIsFloatAboveGuaranteedIntegerPrecision"][1]["location"] = "imgui_internal:463" +defs["igImIsFloatAboveGuaranteedIntegerPrecision"][1]["ov_cimguiname"] = "igImIsFloatAboveGuaranteedIntegerPrecision" +defs["igImIsFloatAboveGuaranteedIntegerPrecision"][1]["ret"] = "bool" +defs["igImIsFloatAboveGuaranteedIntegerPrecision"][1]["signature"] = "(float)" +defs["igImIsFloatAboveGuaranteedIntegerPrecision"][1]["stname"] = "" +defs["igImIsFloatAboveGuaranteedIntegerPrecision"]["(float)"] = defs["igImIsFloatAboveGuaranteedIntegerPrecision"][1] defs["igImIsPowerOfTwo"] = {} defs["igImIsPowerOfTwo"][1] = {} defs["igImIsPowerOfTwo"][1]["args"] = "(int v)" @@ -18006,7 +18437,7 @@ defs["igImIsPowerOfTwo"][1]["call_args"] = "(v)" defs["igImIsPowerOfTwo"][1]["cimguiname"] = "igImIsPowerOfTwo" defs["igImIsPowerOfTwo"][1]["defaults"] = {} defs["igImIsPowerOfTwo"][1]["funcname"] = "ImIsPowerOfTwo" -defs["igImIsPowerOfTwo"][1]["location"] = "imgui_internal:314" +defs["igImIsPowerOfTwo"][1]["location"] = "imgui_internal:325" defs["igImIsPowerOfTwo"][1]["ov_cimguiname"] = "igImIsPowerOfTwoInt" defs["igImIsPowerOfTwo"][1]["ret"] = "bool" defs["igImIsPowerOfTwo"][1]["signature"] = "(int)" @@ -18022,7 +18453,7 @@ defs["igImIsPowerOfTwo"][2]["call_args"] = "(v)" defs["igImIsPowerOfTwo"][2]["cimguiname"] = "igImIsPowerOfTwo" defs["igImIsPowerOfTwo"][2]["defaults"] = {} defs["igImIsPowerOfTwo"][2]["funcname"] = "ImIsPowerOfTwo" -defs["igImIsPowerOfTwo"][2]["location"] = "imgui_internal:315" +defs["igImIsPowerOfTwo"][2]["location"] = "imgui_internal:326" defs["igImIsPowerOfTwo"][2]["ov_cimguiname"] = "igImIsPowerOfTwoU64" defs["igImIsPowerOfTwo"][2]["ret"] = "bool" defs["igImIsPowerOfTwo"][2]["signature"] = "(ImU64)" @@ -18041,7 +18472,7 @@ defs["igImLengthSqr"][1]["call_args"] = "(lhs)" defs["igImLengthSqr"][1]["cimguiname"] = "igImLengthSqr" defs["igImLengthSqr"][1]["defaults"] = {} defs["igImLengthSqr"][1]["funcname"] = "ImLengthSqr" -defs["igImLengthSqr"][1]["location"] = "imgui_internal:441" +defs["igImLengthSqr"][1]["location"] = "imgui_internal:452" defs["igImLengthSqr"][1]["ov_cimguiname"] = "igImLengthSqrVec2" defs["igImLengthSqr"][1]["ret"] = "float" defs["igImLengthSqr"][1]["signature"] = "(const ImVec2)" @@ -18057,7 +18488,7 @@ defs["igImLengthSqr"][2]["call_args"] = "(lhs)" defs["igImLengthSqr"][2]["cimguiname"] = "igImLengthSqr" defs["igImLengthSqr"][2]["defaults"] = {} defs["igImLengthSqr"][2]["funcname"] = "ImLengthSqr" -defs["igImLengthSqr"][2]["location"] = "imgui_internal:442" +defs["igImLengthSqr"][2]["location"] = "imgui_internal:453" defs["igImLengthSqr"][2]["ov_cimguiname"] = "igImLengthSqrVec4" defs["igImLengthSqr"][2]["ret"] = "float" defs["igImLengthSqr"][2]["signature"] = "(const ImVec4)" @@ -18085,7 +18516,7 @@ defs["igImLerp"][1]["call_args"] = "(a,b,t)" defs["igImLerp"][1]["cimguiname"] = "igImLerp" defs["igImLerp"][1]["defaults"] = {} defs["igImLerp"][1]["funcname"] = "ImLerp" -defs["igImLerp"][1]["location"] = "imgui_internal:437" +defs["igImLerp"][1]["location"] = "imgui_internal:448" defs["igImLerp"][1]["nonUDT"] = 1 defs["igImLerp"][1]["ov_cimguiname"] = "igImLerpVec2Float" defs["igImLerp"][1]["ret"] = "void" @@ -18111,7 +18542,7 @@ defs["igImLerp"][2]["call_args"] = "(a,b,t)" defs["igImLerp"][2]["cimguiname"] = "igImLerp" defs["igImLerp"][2]["defaults"] = {} defs["igImLerp"][2]["funcname"] = "ImLerp" -defs["igImLerp"][2]["location"] = "imgui_internal:438" +defs["igImLerp"][2]["location"] = "imgui_internal:449" defs["igImLerp"][2]["nonUDT"] = 1 defs["igImLerp"][2]["ov_cimguiname"] = "igImLerpVec2Vec2" defs["igImLerp"][2]["ret"] = "void" @@ -18137,7 +18568,7 @@ defs["igImLerp"][3]["call_args"] = "(a,b,t)" defs["igImLerp"][3]["cimguiname"] = "igImLerp" defs["igImLerp"][3]["defaults"] = {} defs["igImLerp"][3]["funcname"] = "ImLerp" -defs["igImLerp"][3]["location"] = "imgui_internal:439" +defs["igImLerp"][3]["location"] = "imgui_internal:450" defs["igImLerp"][3]["nonUDT"] = 1 defs["igImLerp"][3]["ov_cimguiname"] = "igImLerpVec4" defs["igImLerp"][3]["ret"] = "void" @@ -18167,7 +18598,7 @@ defs["igImLineClosestPoint"][1]["call_args"] = "(a,b,p)" defs["igImLineClosestPoint"][1]["cimguiname"] = "igImLineClosestPoint" defs["igImLineClosestPoint"][1]["defaults"] = {} defs["igImLineClosestPoint"][1]["funcname"] = "ImLineClosestPoint" -defs["igImLineClosestPoint"][1]["location"] = "imgui_internal:459" +defs["igImLineClosestPoint"][1]["location"] = "imgui_internal:471" defs["igImLineClosestPoint"][1]["nonUDT"] = 1 defs["igImLineClosestPoint"][1]["ov_cimguiname"] = "igImLineClosestPoint" defs["igImLineClosestPoint"][1]["ret"] = "void" @@ -18192,7 +18623,7 @@ defs["igImLinearSweep"][1]["call_args"] = "(current,target,speed)" defs["igImLinearSweep"][1]["cimguiname"] = "igImLinearSweep" defs["igImLinearSweep"][1]["defaults"] = {} defs["igImLinearSweep"][1]["funcname"] = "ImLinearSweep" -defs["igImLinearSweep"][1]["location"] = "imgui_internal:450" +defs["igImLinearSweep"][1]["location"] = "imgui_internal:461" defs["igImLinearSweep"][1]["ov_cimguiname"] = "igImLinearSweep" defs["igImLinearSweep"][1]["ret"] = "float" defs["igImLinearSweep"][1]["signature"] = "(float,float,float)" @@ -18210,7 +18641,7 @@ defs["igImLog"][1]["call_args"] = "(x)" defs["igImLog"][1]["cimguiname"] = "igImLog" defs["igImLog"][1]["defaults"] = {} defs["igImLog"][1]["funcname"] = "ImLog" -defs["igImLog"][1]["location"] = "imgui_internal:410" +defs["igImLog"][1]["location"] = "imgui_internal:421" defs["igImLog"][1]["ov_cimguiname"] = "igImLogFloat" defs["igImLog"][1]["ret"] = "float" defs["igImLog"][1]["signature"] = "(float)" @@ -18226,7 +18657,7 @@ defs["igImLog"][2]["call_args"] = "(x)" defs["igImLog"][2]["cimguiname"] = "igImLog" defs["igImLog"][2]["defaults"] = {} defs["igImLog"][2]["funcname"] = "ImLog" -defs["igImLog"][2]["location"] = "imgui_internal:411" +defs["igImLog"][2]["location"] = "imgui_internal:422" defs["igImLog"][2]["ov_cimguiname"] = "igImLogdouble" defs["igImLog"][2]["ret"] = "double" defs["igImLog"][2]["signature"] = "(double)" @@ -18251,7 +18682,7 @@ defs["igImMax"][1]["call_args"] = "(lhs,rhs)" defs["igImMax"][1]["cimguiname"] = "igImMax" defs["igImMax"][1]["defaults"] = {} defs["igImMax"][1]["funcname"] = "ImMax" -defs["igImMax"][1]["location"] = "imgui_internal:435" +defs["igImMax"][1]["location"] = "imgui_internal:446" defs["igImMax"][1]["nonUDT"] = 1 defs["igImMax"][1]["ov_cimguiname"] = "igImMax" defs["igImMax"][1]["ret"] = "void" @@ -18276,7 +18707,7 @@ defs["igImMin"][1]["call_args"] = "(lhs,rhs)" defs["igImMin"][1]["cimguiname"] = "igImMin" defs["igImMin"][1]["defaults"] = {} defs["igImMin"][1]["funcname"] = "ImMin" -defs["igImMin"][1]["location"] = "imgui_internal:434" +defs["igImMin"][1]["location"] = "imgui_internal:445" defs["igImMin"][1]["nonUDT"] = 1 defs["igImMin"][1]["ov_cimguiname"] = "igImMin" defs["igImMin"][1]["ret"] = "void" @@ -18298,7 +18729,7 @@ defs["igImModPositive"][1]["call_args"] = "(a,b)" defs["igImModPositive"][1]["cimguiname"] = "igImModPositive" defs["igImModPositive"][1]["defaults"] = {} defs["igImModPositive"][1]["funcname"] = "ImModPositive" -defs["igImModPositive"][1]["location"] = "imgui_internal:447" +defs["igImModPositive"][1]["location"] = "imgui_internal:458" defs["igImModPositive"][1]["ov_cimguiname"] = "igImModPositive" defs["igImModPositive"][1]["ret"] = "int" defs["igImModPositive"][1]["signature"] = "(int,int)" @@ -18322,7 +18753,7 @@ defs["igImMul"][1]["call_args"] = "(lhs,rhs)" defs["igImMul"][1]["cimguiname"] = "igImMul" defs["igImMul"][1]["defaults"] = {} defs["igImMul"][1]["funcname"] = "ImMul" -defs["igImMul"][1]["location"] = "imgui_internal:451" +defs["igImMul"][1]["location"] = "imgui_internal:462" defs["igImMul"][1]["nonUDT"] = 1 defs["igImMul"][1]["ov_cimguiname"] = "igImMul" defs["igImMul"][1]["ret"] = "void" @@ -18341,7 +18772,7 @@ defs["igImParseFormatFindEnd"][1]["call_args"] = "(format)" defs["igImParseFormatFindEnd"][1]["cimguiname"] = "igImParseFormatFindEnd" defs["igImParseFormatFindEnd"][1]["defaults"] = {} defs["igImParseFormatFindEnd"][1]["funcname"] = "ImParseFormatFindEnd" -defs["igImParseFormatFindEnd"][1]["location"] = "imgui_internal:334" +defs["igImParseFormatFindEnd"][1]["location"] = "imgui_internal:345" defs["igImParseFormatFindEnd"][1]["ov_cimguiname"] = "igImParseFormatFindEnd" defs["igImParseFormatFindEnd"][1]["ret"] = "const char*" defs["igImParseFormatFindEnd"][1]["signature"] = "(const char*)" @@ -18359,7 +18790,7 @@ defs["igImParseFormatFindStart"][1]["call_args"] = "(format)" defs["igImParseFormatFindStart"][1]["cimguiname"] = "igImParseFormatFindStart" defs["igImParseFormatFindStart"][1]["defaults"] = {} defs["igImParseFormatFindStart"][1]["funcname"] = "ImParseFormatFindStart" -defs["igImParseFormatFindStart"][1]["location"] = "imgui_internal:333" +defs["igImParseFormatFindStart"][1]["location"] = "imgui_internal:344" defs["igImParseFormatFindStart"][1]["ov_cimguiname"] = "igImParseFormatFindStart" defs["igImParseFormatFindStart"][1]["ret"] = "const char*" defs["igImParseFormatFindStart"][1]["signature"] = "(const char*)" @@ -18380,7 +18811,7 @@ defs["igImParseFormatPrecision"][1]["call_args"] = "(format,default_value)" defs["igImParseFormatPrecision"][1]["cimguiname"] = "igImParseFormatPrecision" defs["igImParseFormatPrecision"][1]["defaults"] = {} defs["igImParseFormatPrecision"][1]["funcname"] = "ImParseFormatPrecision" -defs["igImParseFormatPrecision"][1]["location"] = "imgui_internal:336" +defs["igImParseFormatPrecision"][1]["location"] = "imgui_internal:347" defs["igImParseFormatPrecision"][1]["ov_cimguiname"] = "igImParseFormatPrecision" defs["igImParseFormatPrecision"][1]["ret"] = "int" defs["igImParseFormatPrecision"][1]["signature"] = "(const char*,int)" @@ -18404,7 +18835,7 @@ defs["igImParseFormatTrimDecorations"][1]["call_args"] = "(format,buf,buf_size)" defs["igImParseFormatTrimDecorations"][1]["cimguiname"] = "igImParseFormatTrimDecorations" defs["igImParseFormatTrimDecorations"][1]["defaults"] = {} defs["igImParseFormatTrimDecorations"][1]["funcname"] = "ImParseFormatTrimDecorations" -defs["igImParseFormatTrimDecorations"][1]["location"] = "imgui_internal:335" +defs["igImParseFormatTrimDecorations"][1]["location"] = "imgui_internal:346" defs["igImParseFormatTrimDecorations"][1]["ov_cimguiname"] = "igImParseFormatTrimDecorations" defs["igImParseFormatTrimDecorations"][1]["ret"] = "const char*" defs["igImParseFormatTrimDecorations"][1]["signature"] = "(const char*,char*,size_t)" @@ -18425,7 +18856,7 @@ defs["igImPow"][1]["call_args"] = "(x,y)" defs["igImPow"][1]["cimguiname"] = "igImPow" defs["igImPow"][1]["defaults"] = {} defs["igImPow"][1]["funcname"] = "ImPow" -defs["igImPow"][1]["location"] = "imgui_internal:408" +defs["igImPow"][1]["location"] = "imgui_internal:419" defs["igImPow"][1]["ov_cimguiname"] = "igImPowFloat" defs["igImPow"][1]["ret"] = "float" defs["igImPow"][1]["signature"] = "(float,float)" @@ -18444,13 +18875,42 @@ defs["igImPow"][2]["call_args"] = "(x,y)" defs["igImPow"][2]["cimguiname"] = "igImPow" defs["igImPow"][2]["defaults"] = {} defs["igImPow"][2]["funcname"] = "ImPow" -defs["igImPow"][2]["location"] = "imgui_internal:409" +defs["igImPow"][2]["location"] = "imgui_internal:420" defs["igImPow"][2]["ov_cimguiname"] = "igImPowdouble" defs["igImPow"][2]["ret"] = "double" defs["igImPow"][2]["signature"] = "(double,double)" defs["igImPow"][2]["stname"] = "" defs["igImPow"]["(double,double)"] = defs["igImPow"][2] defs["igImPow"]["(float,float)"] = defs["igImPow"][1] +defs["igImQsort"] = {} +defs["igImQsort"][1] = {} +defs["igImQsort"][1]["args"] = "(void* base,size_t count,size_t size_of_element,int(*compare_func)(void const*,void const*))" +defs["igImQsort"][1]["argsT"] = {} +defs["igImQsort"][1]["argsT"][1] = {} +defs["igImQsort"][1]["argsT"][1]["name"] = "base" +defs["igImQsort"][1]["argsT"][1]["type"] = "void*" +defs["igImQsort"][1]["argsT"][2] = {} +defs["igImQsort"][1]["argsT"][2]["name"] = "count" +defs["igImQsort"][1]["argsT"][2]["type"] = "size_t" +defs["igImQsort"][1]["argsT"][3] = {} +defs["igImQsort"][1]["argsT"][3]["name"] = "size_of_element" +defs["igImQsort"][1]["argsT"][3]["type"] = "size_t" +defs["igImQsort"][1]["argsT"][4] = {} +defs["igImQsort"][1]["argsT"][4]["name"] = "compare_func" +defs["igImQsort"][1]["argsT"][4]["ret"] = "int" +defs["igImQsort"][1]["argsT"][4]["signature"] = "(void const*,void const*)" +defs["igImQsort"][1]["argsT"][4]["type"] = "int(*)(void const*,void const*)" +defs["igImQsort"][1]["argsoriginal"] = "(void* base,size_t count,size_t size_of_element,int(*compare_func)(void const*,void const*))" +defs["igImQsort"][1]["call_args"] = "(base,count,size_of_element,compare_func)" +defs["igImQsort"][1]["cimguiname"] = "igImQsort" +defs["igImQsort"][1]["defaults"] = {} +defs["igImQsort"][1]["funcname"] = "ImQsort" +defs["igImQsort"][1]["location"] = "imgui_internal:318" +defs["igImQsort"][1]["ov_cimguiname"] = "igImQsort" +defs["igImQsort"][1]["ret"] = "void" +defs["igImQsort"][1]["signature"] = "(void*,size_t,size_t,int(*)(void const*,void const*))" +defs["igImQsort"][1]["stname"] = "" +defs["igImQsort"]["(void*,size_t,size_t,int(*)(void const*,void const*))"] = defs["igImQsort"][1] defs["igImRotate"] = {} defs["igImRotate"][1] = {} defs["igImRotate"][1]["args"] = "(ImVec2 *pOut,const ImVec2 v,float cos_a,float sin_a)" @@ -18472,7 +18932,7 @@ defs["igImRotate"][1]["call_args"] = "(v,cos_a,sin_a)" defs["igImRotate"][1]["cimguiname"] = "igImRotate" defs["igImRotate"][1]["defaults"] = {} defs["igImRotate"][1]["funcname"] = "ImRotate" -defs["igImRotate"][1]["location"] = "imgui_internal:449" +defs["igImRotate"][1]["location"] = "imgui_internal:460" defs["igImRotate"][1]["nonUDT"] = 1 defs["igImRotate"][1]["ov_cimguiname"] = "igImRotate" defs["igImRotate"][1]["ret"] = "void" @@ -18491,7 +18951,7 @@ defs["igImRsqrt"][1]["call_args"] = "(x)" defs["igImRsqrt"][1]["cimguiname"] = "igImRsqrt" defs["igImRsqrt"][1]["defaults"] = {} defs["igImRsqrt"][1]["funcname"] = "ImRsqrt" -defs["igImRsqrt"][1]["location"] = "imgui_internal:418" +defs["igImRsqrt"][1]["location"] = "imgui_internal:429" defs["igImRsqrt"][1]["ov_cimguiname"] = "igImRsqrtFloat" defs["igImRsqrt"][1]["ret"] = "float" defs["igImRsqrt"][1]["signature"] = "(float)" @@ -18507,7 +18967,7 @@ defs["igImRsqrt"][2]["call_args"] = "(x)" defs["igImRsqrt"][2]["cimguiname"] = "igImRsqrt" defs["igImRsqrt"][2]["defaults"] = {} defs["igImRsqrt"][2]["funcname"] = "ImRsqrt" -defs["igImRsqrt"][2]["location"] = "imgui_internal:422" +defs["igImRsqrt"][2]["location"] = "imgui_internal:433" defs["igImRsqrt"][2]["ov_cimguiname"] = "igImRsqrtdouble" defs["igImRsqrt"][2]["ret"] = "double" defs["igImRsqrt"][2]["signature"] = "(double)" @@ -18526,7 +18986,7 @@ defs["igImSaturate"][1]["call_args"] = "(f)" defs["igImSaturate"][1]["cimguiname"] = "igImSaturate" defs["igImSaturate"][1]["defaults"] = {} defs["igImSaturate"][1]["funcname"] = "ImSaturate" -defs["igImSaturate"][1]["location"] = "imgui_internal:440" +defs["igImSaturate"][1]["location"] = "imgui_internal:451" defs["igImSaturate"][1]["ov_cimguiname"] = "igImSaturate" defs["igImSaturate"][1]["ret"] = "float" defs["igImSaturate"][1]["signature"] = "(float)" @@ -18544,7 +19004,7 @@ defs["igImSign"][1]["call_args"] = "(x)" defs["igImSign"][1]["cimguiname"] = "igImSign" defs["igImSign"][1]["defaults"] = {} defs["igImSign"][1]["funcname"] = "ImSign" -defs["igImSign"][1]["location"] = "imgui_internal:415" +defs["igImSign"][1]["location"] = "imgui_internal:426" defs["igImSign"][1]["ov_cimguiname"] = "igImSignFloat" defs["igImSign"][1]["ret"] = "float" defs["igImSign"][1]["signature"] = "(float)" @@ -18560,7 +19020,7 @@ defs["igImSign"][2]["call_args"] = "(x)" defs["igImSign"][2]["cimguiname"] = "igImSign" defs["igImSign"][2]["defaults"] = {} defs["igImSign"][2]["funcname"] = "ImSign" -defs["igImSign"][2]["location"] = "imgui_internal:416" +defs["igImSign"][2]["location"] = "imgui_internal:427" defs["igImSign"][2]["ov_cimguiname"] = "igImSigndouble" defs["igImSign"][2]["ret"] = "double" defs["igImSign"][2]["signature"] = "(double)" @@ -18579,7 +19039,7 @@ defs["igImStrSkipBlank"][1]["call_args"] = "(str)" defs["igImStrSkipBlank"][1]["cimguiname"] = "igImStrSkipBlank" defs["igImStrSkipBlank"][1]["defaults"] = {} defs["igImStrSkipBlank"][1]["funcname"] = "ImStrSkipBlank" -defs["igImStrSkipBlank"][1]["location"] = "imgui_internal:330" +defs["igImStrSkipBlank"][1]["location"] = "imgui_internal:341" defs["igImStrSkipBlank"][1]["ov_cimguiname"] = "igImStrSkipBlank" defs["igImStrSkipBlank"][1]["ret"] = "const char*" defs["igImStrSkipBlank"][1]["signature"] = "(const char*)" @@ -18597,7 +19057,7 @@ defs["igImStrTrimBlanks"][1]["call_args"] = "(str)" defs["igImStrTrimBlanks"][1]["cimguiname"] = "igImStrTrimBlanks" defs["igImStrTrimBlanks"][1]["defaults"] = {} defs["igImStrTrimBlanks"][1]["funcname"] = "ImStrTrimBlanks" -defs["igImStrTrimBlanks"][1]["location"] = "imgui_internal:329" +defs["igImStrTrimBlanks"][1]["location"] = "imgui_internal:340" defs["igImStrTrimBlanks"][1]["ov_cimguiname"] = "igImStrTrimBlanks" defs["igImStrTrimBlanks"][1]["ret"] = "void" defs["igImStrTrimBlanks"][1]["signature"] = "(char*)" @@ -18618,7 +19078,7 @@ defs["igImStrbolW"][1]["call_args"] = "(buf_mid_line,buf_begin)" defs["igImStrbolW"][1]["cimguiname"] = "igImStrbolW" defs["igImStrbolW"][1]["defaults"] = {} defs["igImStrbolW"][1]["funcname"] = "ImStrbolW" -defs["igImStrbolW"][1]["location"] = "imgui_internal:327" +defs["igImStrbolW"][1]["location"] = "imgui_internal:338" defs["igImStrbolW"][1]["ov_cimguiname"] = "igImStrbolW" defs["igImStrbolW"][1]["ret"] = "const ImWchar*" defs["igImStrbolW"][1]["signature"] = "(const ImWchar*,const ImWchar*)" @@ -18642,7 +19102,7 @@ defs["igImStrchrRange"][1]["call_args"] = "(str_begin,str_end,c)" defs["igImStrchrRange"][1]["cimguiname"] = "igImStrchrRange" defs["igImStrchrRange"][1]["defaults"] = {} defs["igImStrchrRange"][1]["funcname"] = "ImStrchrRange" -defs["igImStrchrRange"][1]["location"] = "imgui_internal:324" +defs["igImStrchrRange"][1]["location"] = "imgui_internal:335" defs["igImStrchrRange"][1]["ov_cimguiname"] = "igImStrchrRange" defs["igImStrchrRange"][1]["ret"] = "const char*" defs["igImStrchrRange"][1]["signature"] = "(const char*,const char*,char)" @@ -18660,7 +19120,7 @@ defs["igImStrdup"][1]["call_args"] = "(str)" defs["igImStrdup"][1]["cimguiname"] = "igImStrdup" defs["igImStrdup"][1]["defaults"] = {} defs["igImStrdup"][1]["funcname"] = "ImStrdup" -defs["igImStrdup"][1]["location"] = "imgui_internal:322" +defs["igImStrdup"][1]["location"] = "imgui_internal:333" defs["igImStrdup"][1]["ov_cimguiname"] = "igImStrdup" defs["igImStrdup"][1]["ret"] = "char*" defs["igImStrdup"][1]["signature"] = "(const char*)" @@ -18684,7 +19144,7 @@ defs["igImStrdupcpy"][1]["call_args"] = "(dst,p_dst_size,str)" defs["igImStrdupcpy"][1]["cimguiname"] = "igImStrdupcpy" defs["igImStrdupcpy"][1]["defaults"] = {} defs["igImStrdupcpy"][1]["funcname"] = "ImStrdupcpy" -defs["igImStrdupcpy"][1]["location"] = "imgui_internal:323" +defs["igImStrdupcpy"][1]["location"] = "imgui_internal:334" defs["igImStrdupcpy"][1]["ov_cimguiname"] = "igImStrdupcpy" defs["igImStrdupcpy"][1]["ret"] = "char*" defs["igImStrdupcpy"][1]["signature"] = "(char*,size_t*,const char*)" @@ -18705,7 +19165,7 @@ defs["igImStreolRange"][1]["call_args"] = "(str,str_end)" defs["igImStreolRange"][1]["cimguiname"] = "igImStreolRange" defs["igImStreolRange"][1]["defaults"] = {} defs["igImStreolRange"][1]["funcname"] = "ImStreolRange" -defs["igImStreolRange"][1]["location"] = "imgui_internal:326" +defs["igImStreolRange"][1]["location"] = "imgui_internal:337" defs["igImStreolRange"][1]["ov_cimguiname"] = "igImStreolRange" defs["igImStreolRange"][1]["ret"] = "const char*" defs["igImStreolRange"][1]["signature"] = "(const char*,const char*)" @@ -18726,7 +19186,7 @@ defs["igImStricmp"][1]["call_args"] = "(str1,str2)" defs["igImStricmp"][1]["cimguiname"] = "igImStricmp" defs["igImStricmp"][1]["defaults"] = {} defs["igImStricmp"][1]["funcname"] = "ImStricmp" -defs["igImStricmp"][1]["location"] = "imgui_internal:319" +defs["igImStricmp"][1]["location"] = "imgui_internal:330" defs["igImStricmp"][1]["ov_cimguiname"] = "igImStricmp" defs["igImStricmp"][1]["ret"] = "int" defs["igImStricmp"][1]["signature"] = "(const char*,const char*)" @@ -18753,7 +19213,7 @@ defs["igImStristr"][1]["call_args"] = "(haystack,haystack_end,needle,needle_end) defs["igImStristr"][1]["cimguiname"] = "igImStristr" defs["igImStristr"][1]["defaults"] = {} defs["igImStristr"][1]["funcname"] = "ImStristr" -defs["igImStristr"][1]["location"] = "imgui_internal:328" +defs["igImStristr"][1]["location"] = "imgui_internal:339" defs["igImStristr"][1]["ov_cimguiname"] = "igImStristr" defs["igImStristr"][1]["ret"] = "const char*" defs["igImStristr"][1]["signature"] = "(const char*,const char*,const char*,const char*)" @@ -18771,7 +19231,7 @@ defs["igImStrlenW"][1]["call_args"] = "(str)" defs["igImStrlenW"][1]["cimguiname"] = "igImStrlenW" defs["igImStrlenW"][1]["defaults"] = {} defs["igImStrlenW"][1]["funcname"] = "ImStrlenW" -defs["igImStrlenW"][1]["location"] = "imgui_internal:325" +defs["igImStrlenW"][1]["location"] = "imgui_internal:336" defs["igImStrlenW"][1]["ov_cimguiname"] = "igImStrlenW" defs["igImStrlenW"][1]["ret"] = "int" defs["igImStrlenW"][1]["signature"] = "(const ImWchar*)" @@ -18795,7 +19255,7 @@ defs["igImStrncpy"][1]["call_args"] = "(dst,src,count)" defs["igImStrncpy"][1]["cimguiname"] = "igImStrncpy" defs["igImStrncpy"][1]["defaults"] = {} defs["igImStrncpy"][1]["funcname"] = "ImStrncpy" -defs["igImStrncpy"][1]["location"] = "imgui_internal:321" +defs["igImStrncpy"][1]["location"] = "imgui_internal:332" defs["igImStrncpy"][1]["ov_cimguiname"] = "igImStrncpy" defs["igImStrncpy"][1]["ret"] = "void" defs["igImStrncpy"][1]["signature"] = "(char*,const char*,size_t)" @@ -18819,7 +19279,7 @@ defs["igImStrnicmp"][1]["call_args"] = "(str1,str2,count)" defs["igImStrnicmp"][1]["cimguiname"] = "igImStrnicmp" defs["igImStrnicmp"][1]["defaults"] = {} defs["igImStrnicmp"][1]["funcname"] = "ImStrnicmp" -defs["igImStrnicmp"][1]["location"] = "imgui_internal:320" +defs["igImStrnicmp"][1]["location"] = "imgui_internal:331" defs["igImStrnicmp"][1]["ov_cimguiname"] = "igImStrnicmp" defs["igImStrnicmp"][1]["ret"] = "int" defs["igImStrnicmp"][1]["signature"] = "(const char*,const char*,size_t)" @@ -18843,7 +19303,7 @@ defs["igImTextCharFromUtf8"][1]["call_args"] = "(out_char,in_text,in_text_end)" defs["igImTextCharFromUtf8"][1]["cimguiname"] = "igImTextCharFromUtf8" defs["igImTextCharFromUtf8"][1]["defaults"] = {} defs["igImTextCharFromUtf8"][1]["funcname"] = "ImTextCharFromUtf8" -defs["igImTextCharFromUtf8"][1]["location"] = "imgui_internal:343" +defs["igImTextCharFromUtf8"][1]["location"] = "imgui_internal:354" defs["igImTextCharFromUtf8"][1]["ov_cimguiname"] = "igImTextCharFromUtf8" defs["igImTextCharFromUtf8"][1]["ret"] = "int" defs["igImTextCharFromUtf8"][1]["signature"] = "(unsigned int*,const char*,const char*)" @@ -18864,7 +19324,7 @@ defs["igImTextCharToUtf8"][1]["call_args"] = "(out_buf,c)" defs["igImTextCharToUtf8"][1]["cimguiname"] = "igImTextCharToUtf8" defs["igImTextCharToUtf8"][1]["defaults"] = {} defs["igImTextCharToUtf8"][1]["funcname"] = "ImTextCharToUtf8" -defs["igImTextCharToUtf8"][1]["location"] = "imgui_internal:341" +defs["igImTextCharToUtf8"][1]["location"] = "imgui_internal:352" defs["igImTextCharToUtf8"][1]["ov_cimguiname"] = "igImTextCharToUtf8" defs["igImTextCharToUtf8"][1]["ret"] = "const char*" defs["igImTextCharToUtf8"][1]["signature"] = "(char[5],unsigned int)" @@ -18885,7 +19345,7 @@ defs["igImTextCountCharsFromUtf8"][1]["call_args"] = "(in_text,in_text_end)" defs["igImTextCountCharsFromUtf8"][1]["cimguiname"] = "igImTextCountCharsFromUtf8" defs["igImTextCountCharsFromUtf8"][1]["defaults"] = {} defs["igImTextCountCharsFromUtf8"][1]["funcname"] = "ImTextCountCharsFromUtf8" -defs["igImTextCountCharsFromUtf8"][1]["location"] = "imgui_internal:345" +defs["igImTextCountCharsFromUtf8"][1]["location"] = "imgui_internal:356" defs["igImTextCountCharsFromUtf8"][1]["ov_cimguiname"] = "igImTextCountCharsFromUtf8" defs["igImTextCountCharsFromUtf8"][1]["ret"] = "int" defs["igImTextCountCharsFromUtf8"][1]["signature"] = "(const char*,const char*)" @@ -18906,7 +19366,7 @@ defs["igImTextCountUtf8BytesFromChar"][1]["call_args"] = "(in_text,in_text_end)" defs["igImTextCountUtf8BytesFromChar"][1]["cimguiname"] = "igImTextCountUtf8BytesFromChar" defs["igImTextCountUtf8BytesFromChar"][1]["defaults"] = {} defs["igImTextCountUtf8BytesFromChar"][1]["funcname"] = "ImTextCountUtf8BytesFromChar" -defs["igImTextCountUtf8BytesFromChar"][1]["location"] = "imgui_internal:346" +defs["igImTextCountUtf8BytesFromChar"][1]["location"] = "imgui_internal:357" defs["igImTextCountUtf8BytesFromChar"][1]["ov_cimguiname"] = "igImTextCountUtf8BytesFromChar" defs["igImTextCountUtf8BytesFromChar"][1]["ret"] = "int" defs["igImTextCountUtf8BytesFromChar"][1]["signature"] = "(const char*,const char*)" @@ -18927,7 +19387,7 @@ defs["igImTextCountUtf8BytesFromStr"][1]["call_args"] = "(in_text,in_text_end)" defs["igImTextCountUtf8BytesFromStr"][1]["cimguiname"] = "igImTextCountUtf8BytesFromStr" defs["igImTextCountUtf8BytesFromStr"][1]["defaults"] = {} defs["igImTextCountUtf8BytesFromStr"][1]["funcname"] = "ImTextCountUtf8BytesFromStr" -defs["igImTextCountUtf8BytesFromStr"][1]["location"] = "imgui_internal:347" +defs["igImTextCountUtf8BytesFromStr"][1]["location"] = "imgui_internal:358" defs["igImTextCountUtf8BytesFromStr"][1]["ov_cimguiname"] = "igImTextCountUtf8BytesFromStr" defs["igImTextCountUtf8BytesFromStr"][1]["ret"] = "int" defs["igImTextCountUtf8BytesFromStr"][1]["signature"] = "(const ImWchar*,const ImWchar*)" @@ -18958,7 +19418,7 @@ defs["igImTextStrFromUtf8"][1]["cimguiname"] = "igImTextStrFromUtf8" defs["igImTextStrFromUtf8"][1]["defaults"] = {} defs["igImTextStrFromUtf8"][1]["defaults"]["in_remaining"] = "NULL" defs["igImTextStrFromUtf8"][1]["funcname"] = "ImTextStrFromUtf8" -defs["igImTextStrFromUtf8"][1]["location"] = "imgui_internal:344" +defs["igImTextStrFromUtf8"][1]["location"] = "imgui_internal:355" defs["igImTextStrFromUtf8"][1]["ov_cimguiname"] = "igImTextStrFromUtf8" defs["igImTextStrFromUtf8"][1]["ret"] = "int" defs["igImTextStrFromUtf8"][1]["signature"] = "(ImWchar*,int,const char*,const char*,const char**)" @@ -18985,7 +19445,7 @@ defs["igImTextStrToUtf8"][1]["call_args"] = "(out_buf,out_buf_size,in_text,in_te defs["igImTextStrToUtf8"][1]["cimguiname"] = "igImTextStrToUtf8" defs["igImTextStrToUtf8"][1]["defaults"] = {} defs["igImTextStrToUtf8"][1]["funcname"] = "ImTextStrToUtf8" -defs["igImTextStrToUtf8"][1]["location"] = "imgui_internal:342" +defs["igImTextStrToUtf8"][1]["location"] = "imgui_internal:353" defs["igImTextStrToUtf8"][1]["ov_cimguiname"] = "igImTextStrToUtf8" defs["igImTextStrToUtf8"][1]["ret"] = "int" defs["igImTextStrToUtf8"][1]["signature"] = "(char*,int,const ImWchar*,const ImWchar*)" @@ -19009,7 +19469,7 @@ defs["igImTriangleArea"][1]["call_args"] = "(a,b,c)" defs["igImTriangleArea"][1]["cimguiname"] = "igImTriangleArea" defs["igImTriangleArea"][1]["defaults"] = {} defs["igImTriangleArea"][1]["funcname"] = "ImTriangleArea" -defs["igImTriangleArea"][1]["location"] = "imgui_internal:463" +defs["igImTriangleArea"][1]["location"] = "imgui_internal:475" defs["igImTriangleArea"][1]["ov_cimguiname"] = "igImTriangleArea" defs["igImTriangleArea"][1]["ret"] = "float" defs["igImTriangleArea"][1]["signature"] = "(const ImVec2,const ImVec2,const ImVec2)" @@ -19048,7 +19508,7 @@ defs["igImTriangleBarycentricCoords"][1]["call_args"] = "(a,b,c,p,*out_u,*out_v, defs["igImTriangleBarycentricCoords"][1]["cimguiname"] = "igImTriangleBarycentricCoords" defs["igImTriangleBarycentricCoords"][1]["defaults"] = {} defs["igImTriangleBarycentricCoords"][1]["funcname"] = "ImTriangleBarycentricCoords" -defs["igImTriangleBarycentricCoords"][1]["location"] = "imgui_internal:462" +defs["igImTriangleBarycentricCoords"][1]["location"] = "imgui_internal:474" defs["igImTriangleBarycentricCoords"][1]["ov_cimguiname"] = "igImTriangleBarycentricCoords" defs["igImTriangleBarycentricCoords"][1]["ret"] = "void" defs["igImTriangleBarycentricCoords"][1]["signature"] = "(const ImVec2,const ImVec2,const ImVec2,const ImVec2,float*,float*,float*)" @@ -19078,7 +19538,7 @@ defs["igImTriangleClosestPoint"][1]["call_args"] = "(a,b,c,p)" defs["igImTriangleClosestPoint"][1]["cimguiname"] = "igImTriangleClosestPoint" defs["igImTriangleClosestPoint"][1]["defaults"] = {} defs["igImTriangleClosestPoint"][1]["funcname"] = "ImTriangleClosestPoint" -defs["igImTriangleClosestPoint"][1]["location"] = "imgui_internal:461" +defs["igImTriangleClosestPoint"][1]["location"] = "imgui_internal:473" defs["igImTriangleClosestPoint"][1]["nonUDT"] = 1 defs["igImTriangleClosestPoint"][1]["ov_cimguiname"] = "igImTriangleClosestPoint" defs["igImTriangleClosestPoint"][1]["ret"] = "void" @@ -19106,7 +19566,7 @@ defs["igImTriangleContainsPoint"][1]["call_args"] = "(a,b,c,p)" defs["igImTriangleContainsPoint"][1]["cimguiname"] = "igImTriangleContainsPoint" defs["igImTriangleContainsPoint"][1]["defaults"] = {} defs["igImTriangleContainsPoint"][1]["funcname"] = "ImTriangleContainsPoint" -defs["igImTriangleContainsPoint"][1]["location"] = "imgui_internal:460" +defs["igImTriangleContainsPoint"][1]["location"] = "imgui_internal:472" defs["igImTriangleContainsPoint"][1]["ov_cimguiname"] = "igImTriangleContainsPoint" defs["igImTriangleContainsPoint"][1]["ret"] = "bool" defs["igImTriangleContainsPoint"][1]["signature"] = "(const ImVec2,const ImVec2,const ImVec2,const ImVec2)" @@ -19124,7 +19584,7 @@ defs["igImUpperPowerOfTwo"][1]["call_args"] = "(v)" defs["igImUpperPowerOfTwo"][1]["cimguiname"] = "igImUpperPowerOfTwo" defs["igImUpperPowerOfTwo"][1]["defaults"] = {} defs["igImUpperPowerOfTwo"][1]["funcname"] = "ImUpperPowerOfTwo" -defs["igImUpperPowerOfTwo"][1]["location"] = "imgui_internal:316" +defs["igImUpperPowerOfTwo"][1]["location"] = "imgui_internal:327" defs["igImUpperPowerOfTwo"][1]["ov_cimguiname"] = "igImUpperPowerOfTwo" defs["igImUpperPowerOfTwo"][1]["ret"] = "int" defs["igImUpperPowerOfTwo"][1]["signature"] = "(int)" @@ -19161,7 +19621,7 @@ defs["igImage"][1]["defaults"]["tint_col"] = "ImVec4(1,1,1,1)" defs["igImage"][1]["defaults"]["uv0"] = "ImVec2(0,0)" defs["igImage"][1]["defaults"]["uv1"] = "ImVec2(1,1)" defs["igImage"][1]["funcname"] = "Image" -defs["igImage"][1]["location"] = "imgui:515" +defs["igImage"][1]["location"] = "imgui:516" defs["igImage"][1]["namespace"] = "ImGui" defs["igImage"][1]["ov_cimguiname"] = "igImage" defs["igImage"][1]["ret"] = "void" @@ -19203,7 +19663,7 @@ defs["igImageButton"][1]["defaults"]["tint_col"] = "ImVec4(1,1,1,1)" defs["igImageButton"][1]["defaults"]["uv0"] = "ImVec2(0,0)" defs["igImageButton"][1]["defaults"]["uv1"] = "ImVec2(1,1)" defs["igImageButton"][1]["funcname"] = "ImageButton" -defs["igImageButton"][1]["location"] = "imgui:516" +defs["igImageButton"][1]["location"] = "imgui:517" defs["igImageButton"][1]["namespace"] = "ImGui" defs["igImageButton"][1]["ov_cimguiname"] = "igImageButton" defs["igImageButton"][1]["ret"] = "bool" @@ -19243,7 +19703,7 @@ defs["igImageButtonEx"][1]["call_args"] = "(id,texture_id,size,uv0,uv1,padding,b defs["igImageButtonEx"][1]["cimguiname"] = "igImageButtonEx" defs["igImageButtonEx"][1]["defaults"] = {} defs["igImageButtonEx"][1]["funcname"] = "ImageButtonEx" -defs["igImageButtonEx"][1]["location"] = "imgui_internal:2888" +defs["igImageButtonEx"][1]["location"] = "imgui_internal:3009" defs["igImageButtonEx"][1]["namespace"] = "ImGui" defs["igImageButtonEx"][1]["ov_cimguiname"] = "igImageButtonEx" defs["igImageButtonEx"][1]["ret"] = "bool" @@ -19263,7 +19723,7 @@ defs["igIndent"][1]["cimguiname"] = "igIndent" defs["igIndent"][1]["defaults"] = {} defs["igIndent"][1]["defaults"]["indent_w"] = "0.0f" defs["igIndent"][1]["funcname"] = "Indent" -defs["igIndent"][1]["location"] = "imgui:454" +defs["igIndent"][1]["location"] = "imgui:455" defs["igIndent"][1]["namespace"] = "ImGui" defs["igIndent"][1]["ov_cimguiname"] = "igIndent" defs["igIndent"][1]["ret"] = "void" @@ -19282,7 +19742,7 @@ defs["igInitialize"][1]["call_args"] = "(context)" defs["igInitialize"][1]["cimguiname"] = "igInitialize" defs["igInitialize"][1]["defaults"] = {} defs["igInitialize"][1]["funcname"] = "Initialize" -defs["igInitialize"][1]["location"] = "imgui_internal:2572" +defs["igInitialize"][1]["location"] = "imgui_internal:2677" defs["igInitialize"][1]["namespace"] = "ImGui" defs["igInitialize"][1]["ov_cimguiname"] = "igInitialize" defs["igInitialize"][1]["ret"] = "void" @@ -19320,7 +19780,7 @@ defs["igInputDouble"][1]["defaults"]["format"] = "\"%.6f\"" defs["igInputDouble"][1]["defaults"]["step"] = "0.0" defs["igInputDouble"][1]["defaults"]["step_fast"] = "0.0" defs["igInputDouble"][1]["funcname"] = "InputDouble" -defs["igInputDouble"][1]["location"] = "imgui:593" +defs["igInputDouble"][1]["location"] = "imgui:594" defs["igInputDouble"][1]["namespace"] = "ImGui" defs["igInputDouble"][1]["ov_cimguiname"] = "igInputDouble" defs["igInputDouble"][1]["ret"] = "bool" @@ -19358,7 +19818,7 @@ defs["igInputFloat"][1]["defaults"]["format"] = "\"%.3f\"" defs["igInputFloat"][1]["defaults"]["step"] = "0.0f" defs["igInputFloat"][1]["defaults"]["step_fast"] = "0.0f" defs["igInputFloat"][1]["funcname"] = "InputFloat" -defs["igInputFloat"][1]["location"] = "imgui:585" +defs["igInputFloat"][1]["location"] = "imgui:586" defs["igInputFloat"][1]["namespace"] = "ImGui" defs["igInputFloat"][1]["ov_cimguiname"] = "igInputFloat" defs["igInputFloat"][1]["ret"] = "bool" @@ -19388,7 +19848,7 @@ defs["igInputFloat2"][1]["defaults"] = {} defs["igInputFloat2"][1]["defaults"]["flags"] = "0" defs["igInputFloat2"][1]["defaults"]["format"] = "\"%.3f\"" defs["igInputFloat2"][1]["funcname"] = "InputFloat2" -defs["igInputFloat2"][1]["location"] = "imgui:586" +defs["igInputFloat2"][1]["location"] = "imgui:587" defs["igInputFloat2"][1]["namespace"] = "ImGui" defs["igInputFloat2"][1]["ov_cimguiname"] = "igInputFloat2" defs["igInputFloat2"][1]["ret"] = "bool" @@ -19418,7 +19878,7 @@ defs["igInputFloat3"][1]["defaults"] = {} defs["igInputFloat3"][1]["defaults"]["flags"] = "0" defs["igInputFloat3"][1]["defaults"]["format"] = "\"%.3f\"" defs["igInputFloat3"][1]["funcname"] = "InputFloat3" -defs["igInputFloat3"][1]["location"] = "imgui:587" +defs["igInputFloat3"][1]["location"] = "imgui:588" defs["igInputFloat3"][1]["namespace"] = "ImGui" defs["igInputFloat3"][1]["ov_cimguiname"] = "igInputFloat3" defs["igInputFloat3"][1]["ret"] = "bool" @@ -19448,7 +19908,7 @@ defs["igInputFloat4"][1]["defaults"] = {} defs["igInputFloat4"][1]["defaults"]["flags"] = "0" defs["igInputFloat4"][1]["defaults"]["format"] = "\"%.3f\"" defs["igInputFloat4"][1]["funcname"] = "InputFloat4" -defs["igInputFloat4"][1]["location"] = "imgui:588" +defs["igInputFloat4"][1]["location"] = "imgui:589" defs["igInputFloat4"][1]["namespace"] = "ImGui" defs["igInputFloat4"][1]["ov_cimguiname"] = "igInputFloat4" defs["igInputFloat4"][1]["ret"] = "bool" @@ -19482,7 +19942,7 @@ defs["igInputInt"][1]["defaults"]["flags"] = "0" defs["igInputInt"][1]["defaults"]["step"] = "1" defs["igInputInt"][1]["defaults"]["step_fast"] = "100" defs["igInputInt"][1]["funcname"] = "InputInt" -defs["igInputInt"][1]["location"] = "imgui:589" +defs["igInputInt"][1]["location"] = "imgui:590" defs["igInputInt"][1]["namespace"] = "ImGui" defs["igInputInt"][1]["ov_cimguiname"] = "igInputInt" defs["igInputInt"][1]["ret"] = "bool" @@ -19508,7 +19968,7 @@ defs["igInputInt2"][1]["cimguiname"] = "igInputInt2" defs["igInputInt2"][1]["defaults"] = {} defs["igInputInt2"][1]["defaults"]["flags"] = "0" defs["igInputInt2"][1]["funcname"] = "InputInt2" -defs["igInputInt2"][1]["location"] = "imgui:590" +defs["igInputInt2"][1]["location"] = "imgui:591" defs["igInputInt2"][1]["namespace"] = "ImGui" defs["igInputInt2"][1]["ov_cimguiname"] = "igInputInt2" defs["igInputInt2"][1]["ret"] = "bool" @@ -19534,7 +19994,7 @@ defs["igInputInt3"][1]["cimguiname"] = "igInputInt3" defs["igInputInt3"][1]["defaults"] = {} defs["igInputInt3"][1]["defaults"]["flags"] = "0" defs["igInputInt3"][1]["funcname"] = "InputInt3" -defs["igInputInt3"][1]["location"] = "imgui:591" +defs["igInputInt3"][1]["location"] = "imgui:592" defs["igInputInt3"][1]["namespace"] = "ImGui" defs["igInputInt3"][1]["ov_cimguiname"] = "igInputInt3" defs["igInputInt3"][1]["ret"] = "bool" @@ -19560,7 +20020,7 @@ defs["igInputInt4"][1]["cimguiname"] = "igInputInt4" defs["igInputInt4"][1]["defaults"] = {} defs["igInputInt4"][1]["defaults"]["flags"] = "0" defs["igInputInt4"][1]["funcname"] = "InputInt4" -defs["igInputInt4"][1]["location"] = "imgui:592" +defs["igInputInt4"][1]["location"] = "imgui:593" defs["igInputInt4"][1]["namespace"] = "ImGui" defs["igInputInt4"][1]["ov_cimguiname"] = "igInputInt4" defs["igInputInt4"][1]["ret"] = "bool" @@ -19601,7 +20061,7 @@ defs["igInputScalar"][1]["defaults"]["format"] = "NULL" defs["igInputScalar"][1]["defaults"]["p_step"] = "NULL" defs["igInputScalar"][1]["defaults"]["p_step_fast"] = "NULL" defs["igInputScalar"][1]["funcname"] = "InputScalar" -defs["igInputScalar"][1]["location"] = "imgui:594" +defs["igInputScalar"][1]["location"] = "imgui:595" defs["igInputScalar"][1]["namespace"] = "ImGui" defs["igInputScalar"][1]["ov_cimguiname"] = "igInputScalar" defs["igInputScalar"][1]["ret"] = "bool" @@ -19645,7 +20105,7 @@ defs["igInputScalarN"][1]["defaults"]["format"] = "NULL" defs["igInputScalarN"][1]["defaults"]["p_step"] = "NULL" defs["igInputScalarN"][1]["defaults"]["p_step_fast"] = "NULL" defs["igInputScalarN"][1]["funcname"] = "InputScalarN" -defs["igInputScalarN"][1]["location"] = "imgui:595" +defs["igInputScalarN"][1]["location"] = "imgui:596" defs["igInputScalarN"][1]["namespace"] = "ImGui" defs["igInputScalarN"][1]["ov_cimguiname"] = "igInputScalarN" defs["igInputScalarN"][1]["ret"] = "bool" @@ -19682,7 +20142,7 @@ defs["igInputText"][1]["defaults"]["callback"] = "NULL" defs["igInputText"][1]["defaults"]["flags"] = "0" defs["igInputText"][1]["defaults"]["user_data"] = "NULL" defs["igInputText"][1]["funcname"] = "InputText" -defs["igInputText"][1]["location"] = "imgui:582" +defs["igInputText"][1]["location"] = "imgui:583" defs["igInputText"][1]["namespace"] = "ImGui" defs["igInputText"][1]["ov_cimguiname"] = "igInputText" defs["igInputText"][1]["ret"] = "bool" @@ -19724,7 +20184,7 @@ defs["igInputTextEx"][1]["defaults"] = {} defs["igInputTextEx"][1]["defaults"]["callback"] = "NULL" defs["igInputTextEx"][1]["defaults"]["user_data"] = "NULL" defs["igInputTextEx"][1]["funcname"] = "InputTextEx" -defs["igInputTextEx"][1]["location"] = "imgui_internal:2925" +defs["igInputTextEx"][1]["location"] = "imgui_internal:3046" defs["igInputTextEx"][1]["namespace"] = "ImGui" defs["igInputTextEx"][1]["ov_cimguiname"] = "igInputTextEx" defs["igInputTextEx"][1]["ret"] = "bool" @@ -19765,7 +20225,7 @@ defs["igInputTextMultiline"][1]["defaults"]["flags"] = "0" defs["igInputTextMultiline"][1]["defaults"]["size"] = "ImVec2(0,0)" defs["igInputTextMultiline"][1]["defaults"]["user_data"] = "NULL" defs["igInputTextMultiline"][1]["funcname"] = "InputTextMultiline" -defs["igInputTextMultiline"][1]["location"] = "imgui:583" +defs["igInputTextMultiline"][1]["location"] = "imgui:584" defs["igInputTextMultiline"][1]["namespace"] = "ImGui" defs["igInputTextMultiline"][1]["ov_cimguiname"] = "igInputTextMultiline" defs["igInputTextMultiline"][1]["ret"] = "bool" @@ -19805,7 +20265,7 @@ defs["igInputTextWithHint"][1]["defaults"]["callback"] = "NULL" defs["igInputTextWithHint"][1]["defaults"]["flags"] = "0" defs["igInputTextWithHint"][1]["defaults"]["user_data"] = "NULL" defs["igInputTextWithHint"][1]["funcname"] = "InputTextWithHint" -defs["igInputTextWithHint"][1]["location"] = "imgui:584" +defs["igInputTextWithHint"][1]["location"] = "imgui:585" defs["igInputTextWithHint"][1]["namespace"] = "ImGui" defs["igInputTextWithHint"][1]["ov_cimguiname"] = "igInputTextWithHint" defs["igInputTextWithHint"][1]["ret"] = "bool" @@ -19831,7 +20291,7 @@ defs["igInvisibleButton"][1]["cimguiname"] = "igInvisibleButton" defs["igInvisibleButton"][1]["defaults"] = {} defs["igInvisibleButton"][1]["defaults"]["flags"] = "0" defs["igInvisibleButton"][1]["funcname"] = "InvisibleButton" -defs["igInvisibleButton"][1]["location"] = "imgui:513" +defs["igInvisibleButton"][1]["location"] = "imgui:514" defs["igInvisibleButton"][1]["namespace"] = "ImGui" defs["igInvisibleButton"][1]["ov_cimguiname"] = "igInvisibleButton" defs["igInvisibleButton"][1]["ret"] = "bool" @@ -19850,7 +20310,7 @@ defs["igIsActiveIdUsingKey"][1]["call_args"] = "(key)" defs["igIsActiveIdUsingKey"][1]["cimguiname"] = "igIsActiveIdUsingKey" defs["igIsActiveIdUsingKey"][1]["defaults"] = {} defs["igIsActiveIdUsingKey"][1]["funcname"] = "IsActiveIdUsingKey" -defs["igIsActiveIdUsingKey"][1]["location"] = "imgui_internal:2711" +defs["igIsActiveIdUsingKey"][1]["location"] = "imgui_internal:2829" defs["igIsActiveIdUsingKey"][1]["namespace"] = "ImGui" defs["igIsActiveIdUsingKey"][1]["ov_cimguiname"] = "igIsActiveIdUsingKey" defs["igIsActiveIdUsingKey"][1]["ret"] = "bool" @@ -19869,7 +20329,7 @@ defs["igIsActiveIdUsingNavDir"][1]["call_args"] = "(dir)" defs["igIsActiveIdUsingNavDir"][1]["cimguiname"] = "igIsActiveIdUsingNavDir" defs["igIsActiveIdUsingNavDir"][1]["defaults"] = {} defs["igIsActiveIdUsingNavDir"][1]["funcname"] = "IsActiveIdUsingNavDir" -defs["igIsActiveIdUsingNavDir"][1]["location"] = "imgui_internal:2709" +defs["igIsActiveIdUsingNavDir"][1]["location"] = "imgui_internal:2827" defs["igIsActiveIdUsingNavDir"][1]["namespace"] = "ImGui" defs["igIsActiveIdUsingNavDir"][1]["ov_cimguiname"] = "igIsActiveIdUsingNavDir" defs["igIsActiveIdUsingNavDir"][1]["ret"] = "bool" @@ -19888,7 +20348,7 @@ defs["igIsActiveIdUsingNavInput"][1]["call_args"] = "(input)" defs["igIsActiveIdUsingNavInput"][1]["cimguiname"] = "igIsActiveIdUsingNavInput" defs["igIsActiveIdUsingNavInput"][1]["defaults"] = {} defs["igIsActiveIdUsingNavInput"][1]["funcname"] = "IsActiveIdUsingNavInput" -defs["igIsActiveIdUsingNavInput"][1]["location"] = "imgui_internal:2710" +defs["igIsActiveIdUsingNavInput"][1]["location"] = "imgui_internal:2828" defs["igIsActiveIdUsingNavInput"][1]["namespace"] = "ImGui" defs["igIsActiveIdUsingNavInput"][1]["ov_cimguiname"] = "igIsActiveIdUsingNavInput" defs["igIsActiveIdUsingNavInput"][1]["ret"] = "bool" @@ -19904,7 +20364,7 @@ defs["igIsAnyItemActive"][1]["call_args"] = "()" defs["igIsAnyItemActive"][1]["cimguiname"] = "igIsAnyItemActive" defs["igIsAnyItemActive"][1]["defaults"] = {} defs["igIsAnyItemActive"][1]["funcname"] = "IsAnyItemActive" -defs["igIsAnyItemActive"][1]["location"] = "imgui:877" +defs["igIsAnyItemActive"][1]["location"] = "imgui:879" defs["igIsAnyItemActive"][1]["namespace"] = "ImGui" defs["igIsAnyItemActive"][1]["ov_cimguiname"] = "igIsAnyItemActive" defs["igIsAnyItemActive"][1]["ret"] = "bool" @@ -19920,7 +20380,7 @@ defs["igIsAnyItemFocused"][1]["call_args"] = "()" defs["igIsAnyItemFocused"][1]["cimguiname"] = "igIsAnyItemFocused" defs["igIsAnyItemFocused"][1]["defaults"] = {} defs["igIsAnyItemFocused"][1]["funcname"] = "IsAnyItemFocused" -defs["igIsAnyItemFocused"][1]["location"] = "imgui:878" +defs["igIsAnyItemFocused"][1]["location"] = "imgui:880" defs["igIsAnyItemFocused"][1]["namespace"] = "ImGui" defs["igIsAnyItemFocused"][1]["ov_cimguiname"] = "igIsAnyItemFocused" defs["igIsAnyItemFocused"][1]["ret"] = "bool" @@ -19936,7 +20396,7 @@ defs["igIsAnyItemHovered"][1]["call_args"] = "()" defs["igIsAnyItemHovered"][1]["cimguiname"] = "igIsAnyItemHovered" defs["igIsAnyItemHovered"][1]["defaults"] = {} defs["igIsAnyItemHovered"][1]["funcname"] = "IsAnyItemHovered" -defs["igIsAnyItemHovered"][1]["location"] = "imgui:876" +defs["igIsAnyItemHovered"][1]["location"] = "imgui:878" defs["igIsAnyItemHovered"][1]["namespace"] = "ImGui" defs["igIsAnyItemHovered"][1]["ov_cimguiname"] = "igIsAnyItemHovered" defs["igIsAnyItemHovered"][1]["ret"] = "bool" @@ -19952,7 +20412,7 @@ defs["igIsAnyMouseDown"][1]["call_args"] = "()" defs["igIsAnyMouseDown"][1]["cimguiname"] = "igIsAnyMouseDown" defs["igIsAnyMouseDown"][1]["defaults"] = {} defs["igIsAnyMouseDown"][1]["funcname"] = "IsAnyMouseDown" -defs["igIsAnyMouseDown"][1]["location"] = "imgui:936" +defs["igIsAnyMouseDown"][1]["location"] = "imgui:938" defs["igIsAnyMouseDown"][1]["namespace"] = "ImGui" defs["igIsAnyMouseDown"][1]["ov_cimguiname"] = "igIsAnyMouseDown" defs["igIsAnyMouseDown"][1]["ret"] = "bool" @@ -19961,7 +20421,7 @@ defs["igIsAnyMouseDown"][1]["stname"] = "" defs["igIsAnyMouseDown"]["()"] = defs["igIsAnyMouseDown"][1] defs["igIsClippedEx"] = {} defs["igIsClippedEx"][1] = {} -defs["igIsClippedEx"][1]["args"] = "(const ImRect bb,ImGuiID id,bool clip_even_when_logged)" +defs["igIsClippedEx"][1]["args"] = "(const ImRect bb,ImGuiID id)" defs["igIsClippedEx"][1]["argsT"] = {} defs["igIsClippedEx"][1]["argsT"][1] = {} defs["igIsClippedEx"][1]["argsT"][1]["name"] = "bb" @@ -19969,21 +20429,18 @@ defs["igIsClippedEx"][1]["argsT"][1]["type"] = "const ImRect" defs["igIsClippedEx"][1]["argsT"][2] = {} defs["igIsClippedEx"][1]["argsT"][2]["name"] = "id" defs["igIsClippedEx"][1]["argsT"][2]["type"] = "ImGuiID" -defs["igIsClippedEx"][1]["argsT"][3] = {} -defs["igIsClippedEx"][1]["argsT"][3]["name"] = "clip_even_when_logged" -defs["igIsClippedEx"][1]["argsT"][3]["type"] = "bool" -defs["igIsClippedEx"][1]["argsoriginal"] = "(const ImRect& bb,ImGuiID id,bool clip_even_when_logged)" -defs["igIsClippedEx"][1]["call_args"] = "(bb,id,clip_even_when_logged)" +defs["igIsClippedEx"][1]["argsoriginal"] = "(const ImRect& bb,ImGuiID id)" +defs["igIsClippedEx"][1]["call_args"] = "(bb,id)" defs["igIsClippedEx"][1]["cimguiname"] = "igIsClippedEx" defs["igIsClippedEx"][1]["defaults"] = {} defs["igIsClippedEx"][1]["funcname"] = "IsClippedEx" -defs["igIsClippedEx"][1]["location"] = "imgui_internal:2633" +defs["igIsClippedEx"][1]["location"] = "imgui_internal:2744" defs["igIsClippedEx"][1]["namespace"] = "ImGui" defs["igIsClippedEx"][1]["ov_cimguiname"] = "igIsClippedEx" defs["igIsClippedEx"][1]["ret"] = "bool" -defs["igIsClippedEx"][1]["signature"] = "(const ImRect,ImGuiID,bool)" +defs["igIsClippedEx"][1]["signature"] = "(const ImRect,ImGuiID)" defs["igIsClippedEx"][1]["stname"] = "" -defs["igIsClippedEx"]["(const ImRect,ImGuiID,bool)"] = defs["igIsClippedEx"][1] +defs["igIsClippedEx"]["(const ImRect,ImGuiID)"] = defs["igIsClippedEx"][1] defs["igIsDragDropPayloadBeingAccepted"] = {} defs["igIsDragDropPayloadBeingAccepted"][1] = {} defs["igIsDragDropPayloadBeingAccepted"][1]["args"] = "()" @@ -19993,7 +20450,7 @@ defs["igIsDragDropPayloadBeingAccepted"][1]["call_args"] = "()" defs["igIsDragDropPayloadBeingAccepted"][1]["cimguiname"] = "igIsDragDropPayloadBeingAccepted" defs["igIsDragDropPayloadBeingAccepted"][1]["defaults"] = {} defs["igIsDragDropPayloadBeingAccepted"][1]["funcname"] = "IsDragDropPayloadBeingAccepted" -defs["igIsDragDropPayloadBeingAccepted"][1]["location"] = "imgui_internal:2770" +defs["igIsDragDropPayloadBeingAccepted"][1]["location"] = "imgui_internal:2890" defs["igIsDragDropPayloadBeingAccepted"][1]["namespace"] = "ImGui" defs["igIsDragDropPayloadBeingAccepted"][1]["ov_cimguiname"] = "igIsDragDropPayloadBeingAccepted" defs["igIsDragDropPayloadBeingAccepted"][1]["ret"] = "bool" @@ -20009,7 +20466,7 @@ defs["igIsItemActivated"][1]["call_args"] = "()" defs["igIsItemActivated"][1]["cimguiname"] = "igIsItemActivated" defs["igIsItemActivated"][1]["defaults"] = {} defs["igIsItemActivated"][1]["funcname"] = "IsItemActivated" -defs["igIsItemActivated"][1]["location"] = "imgui:872" +defs["igIsItemActivated"][1]["location"] = "imgui:874" defs["igIsItemActivated"][1]["namespace"] = "ImGui" defs["igIsItemActivated"][1]["ov_cimguiname"] = "igIsItemActivated" defs["igIsItemActivated"][1]["ret"] = "bool" @@ -20025,7 +20482,7 @@ defs["igIsItemActive"][1]["call_args"] = "()" defs["igIsItemActive"][1]["cimguiname"] = "igIsItemActive" defs["igIsItemActive"][1]["defaults"] = {} defs["igIsItemActive"][1]["funcname"] = "IsItemActive" -defs["igIsItemActive"][1]["location"] = "imgui:867" +defs["igIsItemActive"][1]["location"] = "imgui:869" defs["igIsItemActive"][1]["namespace"] = "ImGui" defs["igIsItemActive"][1]["ov_cimguiname"] = "igIsItemActive" defs["igIsItemActive"][1]["ret"] = "bool" @@ -20045,7 +20502,7 @@ defs["igIsItemClicked"][1]["cimguiname"] = "igIsItemClicked" defs["igIsItemClicked"][1]["defaults"] = {} defs["igIsItemClicked"][1]["defaults"]["mouse_button"] = "0" defs["igIsItemClicked"][1]["funcname"] = "IsItemClicked" -defs["igIsItemClicked"][1]["location"] = "imgui:869" +defs["igIsItemClicked"][1]["location"] = "imgui:871" defs["igIsItemClicked"][1]["namespace"] = "ImGui" defs["igIsItemClicked"][1]["ov_cimguiname"] = "igIsItemClicked" defs["igIsItemClicked"][1]["ret"] = "bool" @@ -20061,7 +20518,7 @@ defs["igIsItemDeactivated"][1]["call_args"] = "()" defs["igIsItemDeactivated"][1]["cimguiname"] = "igIsItemDeactivated" defs["igIsItemDeactivated"][1]["defaults"] = {} defs["igIsItemDeactivated"][1]["funcname"] = "IsItemDeactivated" -defs["igIsItemDeactivated"][1]["location"] = "imgui:873" +defs["igIsItemDeactivated"][1]["location"] = "imgui:875" defs["igIsItemDeactivated"][1]["namespace"] = "ImGui" defs["igIsItemDeactivated"][1]["ov_cimguiname"] = "igIsItemDeactivated" defs["igIsItemDeactivated"][1]["ret"] = "bool" @@ -20077,7 +20534,7 @@ defs["igIsItemDeactivatedAfterEdit"][1]["call_args"] = "()" defs["igIsItemDeactivatedAfterEdit"][1]["cimguiname"] = "igIsItemDeactivatedAfterEdit" defs["igIsItemDeactivatedAfterEdit"][1]["defaults"] = {} defs["igIsItemDeactivatedAfterEdit"][1]["funcname"] = "IsItemDeactivatedAfterEdit" -defs["igIsItemDeactivatedAfterEdit"][1]["location"] = "imgui:874" +defs["igIsItemDeactivatedAfterEdit"][1]["location"] = "imgui:876" defs["igIsItemDeactivatedAfterEdit"][1]["namespace"] = "ImGui" defs["igIsItemDeactivatedAfterEdit"][1]["ov_cimguiname"] = "igIsItemDeactivatedAfterEdit" defs["igIsItemDeactivatedAfterEdit"][1]["ret"] = "bool" @@ -20093,7 +20550,7 @@ defs["igIsItemEdited"][1]["call_args"] = "()" defs["igIsItemEdited"][1]["cimguiname"] = "igIsItemEdited" defs["igIsItemEdited"][1]["defaults"] = {} defs["igIsItemEdited"][1]["funcname"] = "IsItemEdited" -defs["igIsItemEdited"][1]["location"] = "imgui:871" +defs["igIsItemEdited"][1]["location"] = "imgui:873" defs["igIsItemEdited"][1]["namespace"] = "ImGui" defs["igIsItemEdited"][1]["ov_cimguiname"] = "igIsItemEdited" defs["igIsItemEdited"][1]["ret"] = "bool" @@ -20109,7 +20566,7 @@ defs["igIsItemFocused"][1]["call_args"] = "()" defs["igIsItemFocused"][1]["cimguiname"] = "igIsItemFocused" defs["igIsItemFocused"][1]["defaults"] = {} defs["igIsItemFocused"][1]["funcname"] = "IsItemFocused" -defs["igIsItemFocused"][1]["location"] = "imgui:868" +defs["igIsItemFocused"][1]["location"] = "imgui:870" defs["igIsItemFocused"][1]["namespace"] = "ImGui" defs["igIsItemFocused"][1]["ov_cimguiname"] = "igIsItemFocused" defs["igIsItemFocused"][1]["ret"] = "bool" @@ -20129,7 +20586,7 @@ defs["igIsItemHovered"][1]["cimguiname"] = "igIsItemHovered" defs["igIsItemHovered"][1]["defaults"] = {} defs["igIsItemHovered"][1]["defaults"]["flags"] = "0" defs["igIsItemHovered"][1]["funcname"] = "IsItemHovered" -defs["igIsItemHovered"][1]["location"] = "imgui:866" +defs["igIsItemHovered"][1]["location"] = "imgui:868" defs["igIsItemHovered"][1]["namespace"] = "ImGui" defs["igIsItemHovered"][1]["ov_cimguiname"] = "igIsItemHovered" defs["igIsItemHovered"][1]["ret"] = "bool" @@ -20145,7 +20602,7 @@ defs["igIsItemToggledOpen"][1]["call_args"] = "()" defs["igIsItemToggledOpen"][1]["cimguiname"] = "igIsItemToggledOpen" defs["igIsItemToggledOpen"][1]["defaults"] = {} defs["igIsItemToggledOpen"][1]["funcname"] = "IsItemToggledOpen" -defs["igIsItemToggledOpen"][1]["location"] = "imgui:875" +defs["igIsItemToggledOpen"][1]["location"] = "imgui:877" defs["igIsItemToggledOpen"][1]["namespace"] = "ImGui" defs["igIsItemToggledOpen"][1]["ov_cimguiname"] = "igIsItemToggledOpen" defs["igIsItemToggledOpen"][1]["ret"] = "bool" @@ -20161,7 +20618,7 @@ defs["igIsItemToggledSelection"][1]["call_args"] = "()" defs["igIsItemToggledSelection"][1]["cimguiname"] = "igIsItemToggledSelection" defs["igIsItemToggledSelection"][1]["defaults"] = {} defs["igIsItemToggledSelection"][1]["funcname"] = "IsItemToggledSelection" -defs["igIsItemToggledSelection"][1]["location"] = "imgui_internal:2638" +defs["igIsItemToggledSelection"][1]["location"] = "imgui_internal:2749" defs["igIsItemToggledSelection"][1]["namespace"] = "ImGui" defs["igIsItemToggledSelection"][1]["ov_cimguiname"] = "igIsItemToggledSelection" defs["igIsItemToggledSelection"][1]["ret"] = "bool" @@ -20177,7 +20634,7 @@ defs["igIsItemVisible"][1]["call_args"] = "()" defs["igIsItemVisible"][1]["cimguiname"] = "igIsItemVisible" defs["igIsItemVisible"][1]["defaults"] = {} defs["igIsItemVisible"][1]["funcname"] = "IsItemVisible" -defs["igIsItemVisible"][1]["location"] = "imgui:870" +defs["igIsItemVisible"][1]["location"] = "imgui:872" defs["igIsItemVisible"][1]["namespace"] = "ImGui" defs["igIsItemVisible"][1]["ov_cimguiname"] = "igIsItemVisible" defs["igIsItemVisible"][1]["ret"] = "bool" @@ -20196,7 +20653,7 @@ defs["igIsKeyDown"][1]["call_args"] = "(user_key_index)" defs["igIsKeyDown"][1]["cimguiname"] = "igIsKeyDown" defs["igIsKeyDown"][1]["defaults"] = {} defs["igIsKeyDown"][1]["funcname"] = "IsKeyDown" -defs["igIsKeyDown"][1]["location"] = "imgui:920" +defs["igIsKeyDown"][1]["location"] = "imgui:921" defs["igIsKeyDown"][1]["namespace"] = "ImGui" defs["igIsKeyDown"][1]["ov_cimguiname"] = "igIsKeyDown" defs["igIsKeyDown"][1]["ret"] = "bool" @@ -20219,7 +20676,7 @@ defs["igIsKeyPressed"][1]["cimguiname"] = "igIsKeyPressed" defs["igIsKeyPressed"][1]["defaults"] = {} defs["igIsKeyPressed"][1]["defaults"]["repeat"] = "true" defs["igIsKeyPressed"][1]["funcname"] = "IsKeyPressed" -defs["igIsKeyPressed"][1]["location"] = "imgui:921" +defs["igIsKeyPressed"][1]["location"] = "imgui:922" defs["igIsKeyPressed"][1]["namespace"] = "ImGui" defs["igIsKeyPressed"][1]["ov_cimguiname"] = "igIsKeyPressed" defs["igIsKeyPressed"][1]["ret"] = "bool" @@ -20242,7 +20699,7 @@ defs["igIsKeyPressedMap"][1]["cimguiname"] = "igIsKeyPressedMap" defs["igIsKeyPressedMap"][1]["defaults"] = {} defs["igIsKeyPressedMap"][1]["defaults"]["repeat"] = "true" defs["igIsKeyPressedMap"][1]["funcname"] = "IsKeyPressedMap" -defs["igIsKeyPressedMap"][1]["location"] = "imgui_internal:2713" +defs["igIsKeyPressedMap"][1]["location"] = "imgui_internal:2831" defs["igIsKeyPressedMap"][1]["namespace"] = "ImGui" defs["igIsKeyPressedMap"][1]["ov_cimguiname"] = "igIsKeyPressedMap" defs["igIsKeyPressedMap"][1]["ret"] = "bool" @@ -20261,7 +20718,7 @@ defs["igIsKeyReleased"][1]["call_args"] = "(user_key_index)" defs["igIsKeyReleased"][1]["cimguiname"] = "igIsKeyReleased" defs["igIsKeyReleased"][1]["defaults"] = {} defs["igIsKeyReleased"][1]["funcname"] = "IsKeyReleased" -defs["igIsKeyReleased"][1]["location"] = "imgui:922" +defs["igIsKeyReleased"][1]["location"] = "imgui:923" defs["igIsKeyReleased"][1]["namespace"] = "ImGui" defs["igIsKeyReleased"][1]["ov_cimguiname"] = "igIsKeyReleased" defs["igIsKeyReleased"][1]["ret"] = "bool" @@ -20284,7 +20741,7 @@ defs["igIsMouseClicked"][1]["cimguiname"] = "igIsMouseClicked" defs["igIsMouseClicked"][1]["defaults"] = {} defs["igIsMouseClicked"][1]["defaults"]["repeat"] = "false" defs["igIsMouseClicked"][1]["funcname"] = "IsMouseClicked" -defs["igIsMouseClicked"][1]["location"] = "imgui:931" +defs["igIsMouseClicked"][1]["location"] = "imgui:932" defs["igIsMouseClicked"][1]["namespace"] = "ImGui" defs["igIsMouseClicked"][1]["ov_cimguiname"] = "igIsMouseClicked" defs["igIsMouseClicked"][1]["ret"] = "bool" @@ -20303,7 +20760,7 @@ defs["igIsMouseDoubleClicked"][1]["call_args"] = "(button)" defs["igIsMouseDoubleClicked"][1]["cimguiname"] = "igIsMouseDoubleClicked" defs["igIsMouseDoubleClicked"][1]["defaults"] = {} defs["igIsMouseDoubleClicked"][1]["funcname"] = "IsMouseDoubleClicked" -defs["igIsMouseDoubleClicked"][1]["location"] = "imgui:933" +defs["igIsMouseDoubleClicked"][1]["location"] = "imgui:934" defs["igIsMouseDoubleClicked"][1]["namespace"] = "ImGui" defs["igIsMouseDoubleClicked"][1]["ov_cimguiname"] = "igIsMouseDoubleClicked" defs["igIsMouseDoubleClicked"][1]["ret"] = "bool" @@ -20322,7 +20779,7 @@ defs["igIsMouseDown"][1]["call_args"] = "(button)" defs["igIsMouseDown"][1]["cimguiname"] = "igIsMouseDown" defs["igIsMouseDown"][1]["defaults"] = {} defs["igIsMouseDown"][1]["funcname"] = "IsMouseDown" -defs["igIsMouseDown"][1]["location"] = "imgui:930" +defs["igIsMouseDown"][1]["location"] = "imgui:931" defs["igIsMouseDown"][1]["namespace"] = "ImGui" defs["igIsMouseDown"][1]["ov_cimguiname"] = "igIsMouseDown" defs["igIsMouseDown"][1]["ret"] = "bool" @@ -20345,7 +20802,7 @@ defs["igIsMouseDragPastThreshold"][1]["cimguiname"] = "igIsMouseDragPastThreshol defs["igIsMouseDragPastThreshold"][1]["defaults"] = {} defs["igIsMouseDragPastThreshold"][1]["defaults"]["lock_threshold"] = "-1.0f" defs["igIsMouseDragPastThreshold"][1]["funcname"] = "IsMouseDragPastThreshold" -defs["igIsMouseDragPastThreshold"][1]["location"] = "imgui_internal:2712" +defs["igIsMouseDragPastThreshold"][1]["location"] = "imgui_internal:2830" defs["igIsMouseDragPastThreshold"][1]["namespace"] = "ImGui" defs["igIsMouseDragPastThreshold"][1]["ov_cimguiname"] = "igIsMouseDragPastThreshold" defs["igIsMouseDragPastThreshold"][1]["ret"] = "bool" @@ -20368,7 +20825,7 @@ defs["igIsMouseDragging"][1]["cimguiname"] = "igIsMouseDragging" defs["igIsMouseDragging"][1]["defaults"] = {} defs["igIsMouseDragging"][1]["defaults"]["lock_threshold"] = "-1.0f" defs["igIsMouseDragging"][1]["funcname"] = "IsMouseDragging" -defs["igIsMouseDragging"][1]["location"] = "imgui:939" +defs["igIsMouseDragging"][1]["location"] = "imgui:941" defs["igIsMouseDragging"][1]["namespace"] = "ImGui" defs["igIsMouseDragging"][1]["ov_cimguiname"] = "igIsMouseDragging" defs["igIsMouseDragging"][1]["ret"] = "bool" @@ -20394,7 +20851,7 @@ defs["igIsMouseHoveringRect"][1]["cimguiname"] = "igIsMouseHoveringRect" defs["igIsMouseHoveringRect"][1]["defaults"] = {} defs["igIsMouseHoveringRect"][1]["defaults"]["clip"] = "true" defs["igIsMouseHoveringRect"][1]["funcname"] = "IsMouseHoveringRect" -defs["igIsMouseHoveringRect"][1]["location"] = "imgui:934" +defs["igIsMouseHoveringRect"][1]["location"] = "imgui:936" defs["igIsMouseHoveringRect"][1]["namespace"] = "ImGui" defs["igIsMouseHoveringRect"][1]["ov_cimguiname"] = "igIsMouseHoveringRect" defs["igIsMouseHoveringRect"][1]["ret"] = "bool" @@ -20414,7 +20871,7 @@ defs["igIsMousePosValid"][1]["cimguiname"] = "igIsMousePosValid" defs["igIsMousePosValid"][1]["defaults"] = {} defs["igIsMousePosValid"][1]["defaults"]["mouse_pos"] = "NULL" defs["igIsMousePosValid"][1]["funcname"] = "IsMousePosValid" -defs["igIsMousePosValid"][1]["location"] = "imgui:935" +defs["igIsMousePosValid"][1]["location"] = "imgui:937" defs["igIsMousePosValid"][1]["namespace"] = "ImGui" defs["igIsMousePosValid"][1]["ov_cimguiname"] = "igIsMousePosValid" defs["igIsMousePosValid"][1]["ret"] = "bool" @@ -20433,7 +20890,7 @@ defs["igIsMouseReleased"][1]["call_args"] = "(button)" defs["igIsMouseReleased"][1]["cimguiname"] = "igIsMouseReleased" defs["igIsMouseReleased"][1]["defaults"] = {} defs["igIsMouseReleased"][1]["funcname"] = "IsMouseReleased" -defs["igIsMouseReleased"][1]["location"] = "imgui:932" +defs["igIsMouseReleased"][1]["location"] = "imgui:933" defs["igIsMouseReleased"][1]["namespace"] = "ImGui" defs["igIsMouseReleased"][1]["ov_cimguiname"] = "igIsMouseReleased" defs["igIsMouseReleased"][1]["ret"] = "bool" @@ -20452,7 +20909,7 @@ defs["igIsNavInputDown"][1]["call_args"] = "(n)" defs["igIsNavInputDown"][1]["cimguiname"] = "igIsNavInputDown" defs["igIsNavInputDown"][1]["defaults"] = {} defs["igIsNavInputDown"][1]["funcname"] = "IsNavInputDown" -defs["igIsNavInputDown"][1]["location"] = "imgui_internal:2714" +defs["igIsNavInputDown"][1]["location"] = "imgui_internal:2832" defs["igIsNavInputDown"][1]["namespace"] = "ImGui" defs["igIsNavInputDown"][1]["ov_cimguiname"] = "igIsNavInputDown" defs["igIsNavInputDown"][1]["ret"] = "bool" @@ -20474,7 +20931,7 @@ defs["igIsNavInputTest"][1]["call_args"] = "(n,rm)" defs["igIsNavInputTest"][1]["cimguiname"] = "igIsNavInputTest" defs["igIsNavInputTest"][1]["defaults"] = {} defs["igIsNavInputTest"][1]["funcname"] = "IsNavInputTest" -defs["igIsNavInputTest"][1]["location"] = "imgui_internal:2715" +defs["igIsNavInputTest"][1]["location"] = "imgui_internal:2833" defs["igIsNavInputTest"][1]["namespace"] = "ImGui" defs["igIsNavInputTest"][1]["ov_cimguiname"] = "igIsNavInputTest" defs["igIsNavInputTest"][1]["ret"] = "bool" @@ -20497,7 +20954,7 @@ defs["igIsPopupOpen"][1]["cimguiname"] = "igIsPopupOpen" defs["igIsPopupOpen"][1]["defaults"] = {} defs["igIsPopupOpen"][1]["defaults"]["flags"] = "0" defs["igIsPopupOpen"][1]["funcname"] = "IsPopupOpen" -defs["igIsPopupOpen"][1]["location"] = "imgui:720" +defs["igIsPopupOpen"][1]["location"] = "imgui:721" defs["igIsPopupOpen"][1]["namespace"] = "ImGui" defs["igIsPopupOpen"][1]["ov_cimguiname"] = "igIsPopupOpenStr" defs["igIsPopupOpen"][1]["ret"] = "bool" @@ -20517,7 +20974,7 @@ defs["igIsPopupOpen"][2]["call_args"] = "(id,popup_flags)" defs["igIsPopupOpen"][2]["cimguiname"] = "igIsPopupOpen" defs["igIsPopupOpen"][2]["defaults"] = {} defs["igIsPopupOpen"][2]["funcname"] = "IsPopupOpen" -defs["igIsPopupOpen"][2]["location"] = "imgui_internal:2666" +defs["igIsPopupOpen"][2]["location"] = "imgui_internal:2780" defs["igIsPopupOpen"][2]["namespace"] = "ImGui" defs["igIsPopupOpen"][2]["ov_cimguiname"] = "igIsPopupOpenID" defs["igIsPopupOpen"][2]["ret"] = "bool" @@ -20537,7 +20994,7 @@ defs["igIsRectVisible"][1]["call_args"] = "(size)" defs["igIsRectVisible"][1]["cimguiname"] = "igIsRectVisible" defs["igIsRectVisible"][1]["defaults"] = {} defs["igIsRectVisible"][1]["funcname"] = "IsRectVisible" -defs["igIsRectVisible"][1]["location"] = "imgui:891" +defs["igIsRectVisible"][1]["location"] = "imgui:893" defs["igIsRectVisible"][1]["namespace"] = "ImGui" defs["igIsRectVisible"][1]["ov_cimguiname"] = "igIsRectVisibleNil" defs["igIsRectVisible"][1]["ret"] = "bool" @@ -20557,7 +21014,7 @@ defs["igIsRectVisible"][2]["call_args"] = "(rect_min,rect_max)" defs["igIsRectVisible"][2]["cimguiname"] = "igIsRectVisible" defs["igIsRectVisible"][2]["defaults"] = {} defs["igIsRectVisible"][2]["funcname"] = "IsRectVisible" -defs["igIsRectVisible"][2]["location"] = "imgui:892" +defs["igIsRectVisible"][2]["location"] = "imgui:894" defs["igIsRectVisible"][2]["namespace"] = "ImGui" defs["igIsRectVisible"][2]["ov_cimguiname"] = "igIsRectVisibleVec2" defs["igIsRectVisible"][2]["ret"] = "bool" @@ -20580,7 +21037,7 @@ defs["igIsWindowAbove"][1]["call_args"] = "(potential_above,potential_below)" defs["igIsWindowAbove"][1]["cimguiname"] = "igIsWindowAbove" defs["igIsWindowAbove"][1]["defaults"] = {} defs["igIsWindowAbove"][1]["funcname"] = "IsWindowAbove" -defs["igIsWindowAbove"][1]["location"] = "imgui_internal:2552" +defs["igIsWindowAbove"][1]["location"] = "imgui_internal:2652" defs["igIsWindowAbove"][1]["namespace"] = "ImGui" defs["igIsWindowAbove"][1]["ov_cimguiname"] = "igIsWindowAbove" defs["igIsWindowAbove"][1]["ret"] = "bool" @@ -20596,7 +21053,7 @@ defs["igIsWindowAppearing"][1]["call_args"] = "()" defs["igIsWindowAppearing"][1]["cimguiname"] = "igIsWindowAppearing" defs["igIsWindowAppearing"][1]["defaults"] = {} defs["igIsWindowAppearing"][1]["funcname"] = "IsWindowAppearing" -defs["igIsWindowAppearing"][1]["location"] = "imgui:358" +defs["igIsWindowAppearing"][1]["location"] = "imgui:359" defs["igIsWindowAppearing"][1]["namespace"] = "ImGui" defs["igIsWindowAppearing"][1]["ov_cimguiname"] = "igIsWindowAppearing" defs["igIsWindowAppearing"][1]["ret"] = "bool" @@ -20605,7 +21062,7 @@ defs["igIsWindowAppearing"][1]["stname"] = "" defs["igIsWindowAppearing"]["()"] = defs["igIsWindowAppearing"][1] defs["igIsWindowChildOf"] = {} defs["igIsWindowChildOf"][1] = {} -defs["igIsWindowChildOf"][1]["args"] = "(ImGuiWindow* window,ImGuiWindow* potential_parent)" +defs["igIsWindowChildOf"][1]["args"] = "(ImGuiWindow* window,ImGuiWindow* potential_parent,bool popup_hierarchy,bool dock_hierarchy)" defs["igIsWindowChildOf"][1]["argsT"] = {} defs["igIsWindowChildOf"][1]["argsT"][1] = {} defs["igIsWindowChildOf"][1]["argsT"][1]["name"] = "window" @@ -20613,18 +21070,24 @@ defs["igIsWindowChildOf"][1]["argsT"][1]["type"] = "ImGuiWindow*" defs["igIsWindowChildOf"][1]["argsT"][2] = {} defs["igIsWindowChildOf"][1]["argsT"][2]["name"] = "potential_parent" defs["igIsWindowChildOf"][1]["argsT"][2]["type"] = "ImGuiWindow*" -defs["igIsWindowChildOf"][1]["argsoriginal"] = "(ImGuiWindow* window,ImGuiWindow* potential_parent)" -defs["igIsWindowChildOf"][1]["call_args"] = "(window,potential_parent)" +defs["igIsWindowChildOf"][1]["argsT"][3] = {} +defs["igIsWindowChildOf"][1]["argsT"][3]["name"] = "popup_hierarchy" +defs["igIsWindowChildOf"][1]["argsT"][3]["type"] = "bool" +defs["igIsWindowChildOf"][1]["argsT"][4] = {} +defs["igIsWindowChildOf"][1]["argsT"][4]["name"] = "dock_hierarchy" +defs["igIsWindowChildOf"][1]["argsT"][4]["type"] = "bool" +defs["igIsWindowChildOf"][1]["argsoriginal"] = "(ImGuiWindow* window,ImGuiWindow* potential_parent,bool popup_hierarchy,bool dock_hierarchy)" +defs["igIsWindowChildOf"][1]["call_args"] = "(window,potential_parent,popup_hierarchy,dock_hierarchy)" defs["igIsWindowChildOf"][1]["cimguiname"] = "igIsWindowChildOf" defs["igIsWindowChildOf"][1]["defaults"] = {} defs["igIsWindowChildOf"][1]["funcname"] = "IsWindowChildOf" -defs["igIsWindowChildOf"][1]["location"] = "imgui_internal:2551" +defs["igIsWindowChildOf"][1]["location"] = "imgui_internal:2650" defs["igIsWindowChildOf"][1]["namespace"] = "ImGui" defs["igIsWindowChildOf"][1]["ov_cimguiname"] = "igIsWindowChildOf" defs["igIsWindowChildOf"][1]["ret"] = "bool" -defs["igIsWindowChildOf"][1]["signature"] = "(ImGuiWindow*,ImGuiWindow*)" +defs["igIsWindowChildOf"][1]["signature"] = "(ImGuiWindow*,ImGuiWindow*,bool,bool)" defs["igIsWindowChildOf"][1]["stname"] = "" -defs["igIsWindowChildOf"]["(ImGuiWindow*,ImGuiWindow*)"] = defs["igIsWindowChildOf"][1] +defs["igIsWindowChildOf"]["(ImGuiWindow*,ImGuiWindow*,bool,bool)"] = defs["igIsWindowChildOf"][1] defs["igIsWindowCollapsed"] = {} defs["igIsWindowCollapsed"][1] = {} defs["igIsWindowCollapsed"][1]["args"] = "()" @@ -20634,7 +21097,7 @@ defs["igIsWindowCollapsed"][1]["call_args"] = "()" defs["igIsWindowCollapsed"][1]["cimguiname"] = "igIsWindowCollapsed" defs["igIsWindowCollapsed"][1]["defaults"] = {} defs["igIsWindowCollapsed"][1]["funcname"] = "IsWindowCollapsed" -defs["igIsWindowCollapsed"][1]["location"] = "imgui:359" +defs["igIsWindowCollapsed"][1]["location"] = "imgui:360" defs["igIsWindowCollapsed"][1]["namespace"] = "ImGui" defs["igIsWindowCollapsed"][1]["ov_cimguiname"] = "igIsWindowCollapsed" defs["igIsWindowCollapsed"][1]["ret"] = "bool" @@ -20650,7 +21113,7 @@ defs["igIsWindowDocked"][1]["call_args"] = "()" defs["igIsWindowDocked"][1]["cimguiname"] = "igIsWindowDocked" defs["igIsWindowDocked"][1]["defaults"] = {} defs["igIsWindowDocked"][1]["funcname"] = "IsWindowDocked" -defs["igIsWindowDocked"][1]["location"] = "imgui:821" +defs["igIsWindowDocked"][1]["location"] = "imgui:823" defs["igIsWindowDocked"][1]["namespace"] = "ImGui" defs["igIsWindowDocked"][1]["ov_cimguiname"] = "igIsWindowDocked" defs["igIsWindowDocked"][1]["ret"] = "bool" @@ -20670,7 +21133,7 @@ defs["igIsWindowFocused"][1]["cimguiname"] = "igIsWindowFocused" defs["igIsWindowFocused"][1]["defaults"] = {} defs["igIsWindowFocused"][1]["defaults"]["flags"] = "0" defs["igIsWindowFocused"][1]["funcname"] = "IsWindowFocused" -defs["igIsWindowFocused"][1]["location"] = "imgui:360" +defs["igIsWindowFocused"][1]["location"] = "imgui:361" defs["igIsWindowFocused"][1]["namespace"] = "ImGui" defs["igIsWindowFocused"][1]["ov_cimguiname"] = "igIsWindowFocused" defs["igIsWindowFocused"][1]["ret"] = "bool" @@ -20690,7 +21153,7 @@ defs["igIsWindowHovered"][1]["cimguiname"] = "igIsWindowHovered" defs["igIsWindowHovered"][1]["defaults"] = {} defs["igIsWindowHovered"][1]["defaults"]["flags"] = "0" defs["igIsWindowHovered"][1]["funcname"] = "IsWindowHovered" -defs["igIsWindowHovered"][1]["location"] = "imgui:361" +defs["igIsWindowHovered"][1]["location"] = "imgui:362" defs["igIsWindowHovered"][1]["namespace"] = "ImGui" defs["igIsWindowHovered"][1]["ov_cimguiname"] = "igIsWindowHovered" defs["igIsWindowHovered"][1]["ret"] = "bool" @@ -20709,16 +21172,38 @@ defs["igIsWindowNavFocusable"][1]["call_args"] = "(window)" defs["igIsWindowNavFocusable"][1]["cimguiname"] = "igIsWindowNavFocusable" defs["igIsWindowNavFocusable"][1]["defaults"] = {} defs["igIsWindowNavFocusable"][1]["funcname"] = "IsWindowNavFocusable" -defs["igIsWindowNavFocusable"][1]["location"] = "imgui_internal:2553" +defs["igIsWindowNavFocusable"][1]["location"] = "imgui_internal:2653" defs["igIsWindowNavFocusable"][1]["namespace"] = "ImGui" defs["igIsWindowNavFocusable"][1]["ov_cimguiname"] = "igIsWindowNavFocusable" defs["igIsWindowNavFocusable"][1]["ret"] = "bool" defs["igIsWindowNavFocusable"][1]["signature"] = "(ImGuiWindow*)" defs["igIsWindowNavFocusable"][1]["stname"] = "" defs["igIsWindowNavFocusable"]["(ImGuiWindow*)"] = defs["igIsWindowNavFocusable"][1] +defs["igIsWindowWithinBeginStackOf"] = {} +defs["igIsWindowWithinBeginStackOf"][1] = {} +defs["igIsWindowWithinBeginStackOf"][1]["args"] = "(ImGuiWindow* window,ImGuiWindow* potential_parent)" +defs["igIsWindowWithinBeginStackOf"][1]["argsT"] = {} +defs["igIsWindowWithinBeginStackOf"][1]["argsT"][1] = {} +defs["igIsWindowWithinBeginStackOf"][1]["argsT"][1]["name"] = "window" +defs["igIsWindowWithinBeginStackOf"][1]["argsT"][1]["type"] = "ImGuiWindow*" +defs["igIsWindowWithinBeginStackOf"][1]["argsT"][2] = {} +defs["igIsWindowWithinBeginStackOf"][1]["argsT"][2]["name"] = "potential_parent" +defs["igIsWindowWithinBeginStackOf"][1]["argsT"][2]["type"] = "ImGuiWindow*" +defs["igIsWindowWithinBeginStackOf"][1]["argsoriginal"] = "(ImGuiWindow* window,ImGuiWindow* potential_parent)" +defs["igIsWindowWithinBeginStackOf"][1]["call_args"] = "(window,potential_parent)" +defs["igIsWindowWithinBeginStackOf"][1]["cimguiname"] = "igIsWindowWithinBeginStackOf" +defs["igIsWindowWithinBeginStackOf"][1]["defaults"] = {} +defs["igIsWindowWithinBeginStackOf"][1]["funcname"] = "IsWindowWithinBeginStackOf" +defs["igIsWindowWithinBeginStackOf"][1]["location"] = "imgui_internal:2651" +defs["igIsWindowWithinBeginStackOf"][1]["namespace"] = "ImGui" +defs["igIsWindowWithinBeginStackOf"][1]["ov_cimguiname"] = "igIsWindowWithinBeginStackOf" +defs["igIsWindowWithinBeginStackOf"][1]["ret"] = "bool" +defs["igIsWindowWithinBeginStackOf"][1]["signature"] = "(ImGuiWindow*,ImGuiWindow*)" +defs["igIsWindowWithinBeginStackOf"][1]["stname"] = "" +defs["igIsWindowWithinBeginStackOf"]["(ImGuiWindow*,ImGuiWindow*)"] = defs["igIsWindowWithinBeginStackOf"][1] defs["igItemAdd"] = {} defs["igItemAdd"][1] = {} -defs["igItemAdd"][1]["args"] = "(const ImRect bb,ImGuiID id,const ImRect* nav_bb,ImGuiItemAddFlags flags)" +defs["igItemAdd"][1]["args"] = "(const ImRect bb,ImGuiID id,const ImRect* nav_bb,ImGuiItemFlags extra_flags)" defs["igItemAdd"][1]["argsT"] = {} defs["igItemAdd"][1]["argsT"][1] = {} defs["igItemAdd"][1]["argsT"][1]["name"] = "bb" @@ -20730,44 +21215,22 @@ defs["igItemAdd"][1]["argsT"][3] = {} defs["igItemAdd"][1]["argsT"][3]["name"] = "nav_bb" defs["igItemAdd"][1]["argsT"][3]["type"] = "const ImRect*" defs["igItemAdd"][1]["argsT"][4] = {} -defs["igItemAdd"][1]["argsT"][4]["name"] = "flags" -defs["igItemAdd"][1]["argsT"][4]["type"] = "ImGuiItemAddFlags" -defs["igItemAdd"][1]["argsoriginal"] = "(const ImRect& bb,ImGuiID id,const ImRect* nav_bb=((void*)0),ImGuiItemAddFlags flags=0)" -defs["igItemAdd"][1]["call_args"] = "(bb,id,nav_bb,flags)" +defs["igItemAdd"][1]["argsT"][4]["name"] = "extra_flags" +defs["igItemAdd"][1]["argsT"][4]["type"] = "ImGuiItemFlags" +defs["igItemAdd"][1]["argsoriginal"] = "(const ImRect& bb,ImGuiID id,const ImRect* nav_bb=((void*)0),ImGuiItemFlags extra_flags=0)" +defs["igItemAdd"][1]["call_args"] = "(bb,id,nav_bb,extra_flags)" defs["igItemAdd"][1]["cimguiname"] = "igItemAdd" defs["igItemAdd"][1]["defaults"] = {} -defs["igItemAdd"][1]["defaults"]["flags"] = "0" +defs["igItemAdd"][1]["defaults"]["extra_flags"] = "0" defs["igItemAdd"][1]["defaults"]["nav_bb"] = "NULL" defs["igItemAdd"][1]["funcname"] = "ItemAdd" -defs["igItemAdd"][1]["location"] = "imgui_internal:2630" +defs["igItemAdd"][1]["location"] = "imgui_internal:2742" defs["igItemAdd"][1]["namespace"] = "ImGui" defs["igItemAdd"][1]["ov_cimguiname"] = "igItemAdd" defs["igItemAdd"][1]["ret"] = "bool" -defs["igItemAdd"][1]["signature"] = "(const ImRect,ImGuiID,const ImRect*,ImGuiItemAddFlags)" +defs["igItemAdd"][1]["signature"] = "(const ImRect,ImGuiID,const ImRect*,ImGuiItemFlags)" defs["igItemAdd"][1]["stname"] = "" -defs["igItemAdd"]["(const ImRect,ImGuiID,const ImRect*,ImGuiItemAddFlags)"] = defs["igItemAdd"][1] -defs["igItemFocusable"] = {} -defs["igItemFocusable"][1] = {} -defs["igItemFocusable"][1]["args"] = "(ImGuiWindow* window,ImGuiID id)" -defs["igItemFocusable"][1]["argsT"] = {} -defs["igItemFocusable"][1]["argsT"][1] = {} -defs["igItemFocusable"][1]["argsT"][1]["name"] = "window" -defs["igItemFocusable"][1]["argsT"][1]["type"] = "ImGuiWindow*" -defs["igItemFocusable"][1]["argsT"][2] = {} -defs["igItemFocusable"][1]["argsT"][2]["name"] = "id" -defs["igItemFocusable"][1]["argsT"][2]["type"] = "ImGuiID" -defs["igItemFocusable"][1]["argsoriginal"] = "(ImGuiWindow* window,ImGuiID id)" -defs["igItemFocusable"][1]["call_args"] = "(window,id)" -defs["igItemFocusable"][1]["cimguiname"] = "igItemFocusable" -defs["igItemFocusable"][1]["defaults"] = {} -defs["igItemFocusable"][1]["funcname"] = "ItemFocusable" -defs["igItemFocusable"][1]["location"] = "imgui_internal:2632" -defs["igItemFocusable"][1]["namespace"] = "ImGui" -defs["igItemFocusable"][1]["ov_cimguiname"] = "igItemFocusable" -defs["igItemFocusable"][1]["ret"] = "void" -defs["igItemFocusable"][1]["signature"] = "(ImGuiWindow*,ImGuiID)" -defs["igItemFocusable"][1]["stname"] = "" -defs["igItemFocusable"]["(ImGuiWindow*,ImGuiID)"] = defs["igItemFocusable"][1] +defs["igItemAdd"]["(const ImRect,ImGuiID,const ImRect*,ImGuiItemFlags)"] = defs["igItemAdd"][1] defs["igItemHoverable"] = {} defs["igItemHoverable"][1] = {} defs["igItemHoverable"][1]["args"] = "(const ImRect bb,ImGuiID id)" @@ -20783,7 +21246,7 @@ defs["igItemHoverable"][1]["call_args"] = "(bb,id)" defs["igItemHoverable"][1]["cimguiname"] = "igItemHoverable" defs["igItemHoverable"][1]["defaults"] = {} defs["igItemHoverable"][1]["funcname"] = "ItemHoverable" -defs["igItemHoverable"][1]["location"] = "imgui_internal:2631" +defs["igItemHoverable"][1]["location"] = "imgui_internal:2743" defs["igItemHoverable"][1]["namespace"] = "ImGui" defs["igItemHoverable"][1]["ov_cimguiname"] = "igItemHoverable" defs["igItemHoverable"][1]["ret"] = "bool" @@ -20806,7 +21269,7 @@ defs["igItemSize"][1]["cimguiname"] = "igItemSize" defs["igItemSize"][1]["defaults"] = {} defs["igItemSize"][1]["defaults"]["text_baseline_y"] = "-1.0f" defs["igItemSize"][1]["funcname"] = "ItemSize" -defs["igItemSize"][1]["location"] = "imgui_internal:2628" +defs["igItemSize"][1]["location"] = "imgui_internal:2740" defs["igItemSize"][1]["namespace"] = "ImGui" defs["igItemSize"][1]["ov_cimguiname"] = "igItemSizeVec2" defs["igItemSize"][1]["ret"] = "void" @@ -20827,7 +21290,7 @@ defs["igItemSize"][2]["cimguiname"] = "igItemSize" defs["igItemSize"][2]["defaults"] = {} defs["igItemSize"][2]["defaults"]["text_baseline_y"] = "-1.0f" defs["igItemSize"][2]["funcname"] = "ItemSize" -defs["igItemSize"][2]["location"] = "imgui_internal:2629" +defs["igItemSize"][2]["location"] = "imgui_internal:2741" defs["igItemSize"][2]["namespace"] = "ImGui" defs["igItemSize"][2]["ov_cimguiname"] = "igItemSizeRect" defs["igItemSize"][2]["ret"] = "void" @@ -20847,7 +21310,7 @@ defs["igKeepAliveID"][1]["call_args"] = "(id)" defs["igKeepAliveID"][1]["cimguiname"] = "igKeepAliveID" defs["igKeepAliveID"][1]["defaults"] = {} defs["igKeepAliveID"][1]["funcname"] = "KeepAliveID" -defs["igKeepAliveID"][1]["location"] = "imgui_internal:2622" +defs["igKeepAliveID"][1]["location"] = "imgui_internal:2734" defs["igKeepAliveID"][1]["namespace"] = "ImGui" defs["igKeepAliveID"][1]["ov_cimguiname"] = "igKeepAliveID" defs["igKeepAliveID"][1]["ret"] = "void" @@ -20873,7 +21336,7 @@ defs["igLabelText"][1]["cimguiname"] = "igLabelText" defs["igLabelText"][1]["defaults"] = {} defs["igLabelText"][1]["funcname"] = "LabelText" defs["igLabelText"][1]["isvararg"] = "...)" -defs["igLabelText"][1]["location"] = "imgui:503" +defs["igLabelText"][1]["location"] = "imgui:504" defs["igLabelText"][1]["namespace"] = "ImGui" defs["igLabelText"][1]["ov_cimguiname"] = "igLabelText" defs["igLabelText"][1]["ret"] = "void" @@ -20898,7 +21361,7 @@ defs["igLabelTextV"][1]["call_args"] = "(label,fmt,args)" defs["igLabelTextV"][1]["cimguiname"] = "igLabelTextV" defs["igLabelTextV"][1]["defaults"] = {} defs["igLabelTextV"][1]["funcname"] = "LabelTextV" -defs["igLabelTextV"][1]["location"] = "imgui:504" +defs["igLabelTextV"][1]["location"] = "imgui:505" defs["igLabelTextV"][1]["namespace"] = "ImGui" defs["igLabelTextV"][1]["ov_cimguiname"] = "igLabelTextV" defs["igLabelTextV"][1]["ret"] = "void" @@ -20930,7 +21393,7 @@ defs["igListBox"][1]["cimguiname"] = "igListBox" defs["igListBox"][1]["defaults"] = {} defs["igListBox"][1]["defaults"]["height_in_items"] = "-1" defs["igListBox"][1]["funcname"] = "ListBox" -defs["igListBox"][1]["location"] = "imgui:641" +defs["igListBox"][1]["location"] = "imgui:642" defs["igListBox"][1]["namespace"] = "ImGui" defs["igListBox"][1]["ov_cimguiname"] = "igListBoxStr_arr" defs["igListBox"][1]["ret"] = "bool" @@ -20965,7 +21428,7 @@ defs["igListBox"][2]["cimguiname"] = "igListBox" defs["igListBox"][2]["defaults"] = {} defs["igListBox"][2]["defaults"]["height_in_items"] = "-1" defs["igListBox"][2]["funcname"] = "ListBox" -defs["igListBox"][2]["location"] = "imgui:642" +defs["igListBox"][2]["location"] = "imgui:643" defs["igListBox"][2]["namespace"] = "ImGui" defs["igListBox"][2]["ov_cimguiname"] = "igListBoxFnBoolPtr" defs["igListBox"][2]["ret"] = "bool" @@ -20985,7 +21448,7 @@ defs["igLoadIniSettingsFromDisk"][1]["call_args"] = "(ini_filename)" defs["igLoadIniSettingsFromDisk"][1]["cimguiname"] = "igLoadIniSettingsFromDisk" defs["igLoadIniSettingsFromDisk"][1]["defaults"] = {} defs["igLoadIniSettingsFromDisk"][1]["funcname"] = "LoadIniSettingsFromDisk" -defs["igLoadIniSettingsFromDisk"][1]["location"] = "imgui:955" +defs["igLoadIniSettingsFromDisk"][1]["location"] = "imgui:957" defs["igLoadIniSettingsFromDisk"][1]["namespace"] = "ImGui" defs["igLoadIniSettingsFromDisk"][1]["ov_cimguiname"] = "igLoadIniSettingsFromDisk" defs["igLoadIniSettingsFromDisk"][1]["ret"] = "void" @@ -21008,7 +21471,7 @@ defs["igLoadIniSettingsFromMemory"][1]["cimguiname"] = "igLoadIniSettingsFromMem defs["igLoadIniSettingsFromMemory"][1]["defaults"] = {} defs["igLoadIniSettingsFromMemory"][1]["defaults"]["ini_size"] = "0" defs["igLoadIniSettingsFromMemory"][1]["funcname"] = "LoadIniSettingsFromMemory" -defs["igLoadIniSettingsFromMemory"][1]["location"] = "imgui:956" +defs["igLoadIniSettingsFromMemory"][1]["location"] = "imgui:958" defs["igLoadIniSettingsFromMemory"][1]["namespace"] = "ImGui" defs["igLoadIniSettingsFromMemory"][1]["ov_cimguiname"] = "igLoadIniSettingsFromMemory" defs["igLoadIniSettingsFromMemory"][1]["ret"] = "void" @@ -21030,7 +21493,7 @@ defs["igLogBegin"][1]["call_args"] = "(type,auto_open_depth)" defs["igLogBegin"][1]["cimguiname"] = "igLogBegin" defs["igLogBegin"][1]["defaults"] = {} defs["igLogBegin"][1]["funcname"] = "LogBegin" -defs["igLogBegin"][1]["location"] = "imgui_internal:2656" +defs["igLogBegin"][1]["location"] = "imgui_internal:2769" defs["igLogBegin"][1]["namespace"] = "ImGui" defs["igLogBegin"][1]["ov_cimguiname"] = "igLogBegin" defs["igLogBegin"][1]["ret"] = "void" @@ -21046,7 +21509,7 @@ defs["igLogButtons"][1]["call_args"] = "()" defs["igLogButtons"][1]["cimguiname"] = "igLogButtons" defs["igLogButtons"][1]["defaults"] = {} defs["igLogButtons"][1]["funcname"] = "LogButtons" -defs["igLogButtons"][1]["location"] = "imgui:829" +defs["igLogButtons"][1]["location"] = "imgui:831" defs["igLogButtons"][1]["namespace"] = "ImGui" defs["igLogButtons"][1]["ov_cimguiname"] = "igLogButtons" defs["igLogButtons"][1]["ret"] = "void" @@ -21062,7 +21525,7 @@ defs["igLogFinish"][1]["call_args"] = "()" defs["igLogFinish"][1]["cimguiname"] = "igLogFinish" defs["igLogFinish"][1]["defaults"] = {} defs["igLogFinish"][1]["funcname"] = "LogFinish" -defs["igLogFinish"][1]["location"] = "imgui:828" +defs["igLogFinish"][1]["location"] = "imgui:830" defs["igLogFinish"][1]["namespace"] = "ImGui" defs["igLogFinish"][1]["ov_cimguiname"] = "igLogFinish" defs["igLogFinish"][1]["ret"] = "void" @@ -21088,7 +21551,7 @@ defs["igLogRenderedText"][1]["cimguiname"] = "igLogRenderedText" defs["igLogRenderedText"][1]["defaults"] = {} defs["igLogRenderedText"][1]["defaults"]["text_end"] = "NULL" defs["igLogRenderedText"][1]["funcname"] = "LogRenderedText" -defs["igLogRenderedText"][1]["location"] = "imgui_internal:2658" +defs["igLogRenderedText"][1]["location"] = "imgui_internal:2771" defs["igLogRenderedText"][1]["namespace"] = "ImGui" defs["igLogRenderedText"][1]["ov_cimguiname"] = "igLogRenderedText" defs["igLogRenderedText"][1]["ret"] = "void" @@ -21110,7 +21573,7 @@ defs["igLogSetNextTextDecoration"][1]["call_args"] = "(prefix,suffix)" defs["igLogSetNextTextDecoration"][1]["cimguiname"] = "igLogSetNextTextDecoration" defs["igLogSetNextTextDecoration"][1]["defaults"] = {} defs["igLogSetNextTextDecoration"][1]["funcname"] = "LogSetNextTextDecoration" -defs["igLogSetNextTextDecoration"][1]["location"] = "imgui_internal:2659" +defs["igLogSetNextTextDecoration"][1]["location"] = "imgui_internal:2772" defs["igLogSetNextTextDecoration"][1]["namespace"] = "ImGui" defs["igLogSetNextTextDecoration"][1]["ov_cimguiname"] = "igLogSetNextTextDecoration" defs["igLogSetNextTextDecoration"][1]["ret"] = "void" @@ -21133,7 +21596,7 @@ defs["igLogText"][1]["cimguiname"] = "igLogText" defs["igLogText"][1]["defaults"] = {} defs["igLogText"][1]["funcname"] = "LogText" defs["igLogText"][1]["isvararg"] = "...)" -defs["igLogText"][1]["location"] = "imgui:830" +defs["igLogText"][1]["location"] = "imgui:832" defs["igLogText"][1]["manual"] = true defs["igLogText"][1]["namespace"] = "ImGui" defs["igLogText"][1]["ov_cimguiname"] = "igLogText" @@ -21156,7 +21619,7 @@ defs["igLogTextV"][1]["call_args"] = "(fmt,args)" defs["igLogTextV"][1]["cimguiname"] = "igLogTextV" defs["igLogTextV"][1]["defaults"] = {} defs["igLogTextV"][1]["funcname"] = "LogTextV" -defs["igLogTextV"][1]["location"] = "imgui:831" +defs["igLogTextV"][1]["location"] = "imgui:833" defs["igLogTextV"][1]["namespace"] = "ImGui" defs["igLogTextV"][1]["ov_cimguiname"] = "igLogTextV" defs["igLogTextV"][1]["ret"] = "void" @@ -21176,7 +21639,7 @@ defs["igLogToBuffer"][1]["cimguiname"] = "igLogToBuffer" defs["igLogToBuffer"][1]["defaults"] = {} defs["igLogToBuffer"][1]["defaults"]["auto_open_depth"] = "-1" defs["igLogToBuffer"][1]["funcname"] = "LogToBuffer" -defs["igLogToBuffer"][1]["location"] = "imgui_internal:2657" +defs["igLogToBuffer"][1]["location"] = "imgui_internal:2770" defs["igLogToBuffer"][1]["namespace"] = "ImGui" defs["igLogToBuffer"][1]["ov_cimguiname"] = "igLogToBuffer" defs["igLogToBuffer"][1]["ret"] = "void" @@ -21196,7 +21659,7 @@ defs["igLogToClipboard"][1]["cimguiname"] = "igLogToClipboard" defs["igLogToClipboard"][1]["defaults"] = {} defs["igLogToClipboard"][1]["defaults"]["auto_open_depth"] = "-1" defs["igLogToClipboard"][1]["funcname"] = "LogToClipboard" -defs["igLogToClipboard"][1]["location"] = "imgui:827" +defs["igLogToClipboard"][1]["location"] = "imgui:829" defs["igLogToClipboard"][1]["namespace"] = "ImGui" defs["igLogToClipboard"][1]["ov_cimguiname"] = "igLogToClipboard" defs["igLogToClipboard"][1]["ret"] = "void" @@ -21220,7 +21683,7 @@ defs["igLogToFile"][1]["defaults"] = {} defs["igLogToFile"][1]["defaults"]["auto_open_depth"] = "-1" defs["igLogToFile"][1]["defaults"]["filename"] = "NULL" defs["igLogToFile"][1]["funcname"] = "LogToFile" -defs["igLogToFile"][1]["location"] = "imgui:826" +defs["igLogToFile"][1]["location"] = "imgui:828" defs["igLogToFile"][1]["namespace"] = "ImGui" defs["igLogToFile"][1]["ov_cimguiname"] = "igLogToFile" defs["igLogToFile"][1]["ret"] = "void" @@ -21240,7 +21703,7 @@ defs["igLogToTTY"][1]["cimguiname"] = "igLogToTTY" defs["igLogToTTY"][1]["defaults"] = {} defs["igLogToTTY"][1]["defaults"]["auto_open_depth"] = "-1" defs["igLogToTTY"][1]["funcname"] = "LogToTTY" -defs["igLogToTTY"][1]["location"] = "imgui:825" +defs["igLogToTTY"][1]["location"] = "imgui:827" defs["igLogToTTY"][1]["namespace"] = "ImGui" defs["igLogToTTY"][1]["ov_cimguiname"] = "igLogToTTY" defs["igLogToTTY"][1]["ret"] = "void" @@ -21256,7 +21719,7 @@ defs["igMarkIniSettingsDirty"][1]["call_args"] = "()" defs["igMarkIniSettingsDirty"][1]["cimguiname"] = "igMarkIniSettingsDirty" defs["igMarkIniSettingsDirty"][1]["defaults"] = {} defs["igMarkIniSettingsDirty"][1]["funcname"] = "MarkIniSettingsDirty" -defs["igMarkIniSettingsDirty"][1]["location"] = "imgui_internal:2595" +defs["igMarkIniSettingsDirty"][1]["location"] = "imgui_internal:2700" defs["igMarkIniSettingsDirty"][1]["namespace"] = "ImGui" defs["igMarkIniSettingsDirty"][1]["ov_cimguiname"] = "igMarkIniSettingsDirtyNil" defs["igMarkIniSettingsDirty"][1]["ret"] = "void" @@ -21273,7 +21736,7 @@ defs["igMarkIniSettingsDirty"][2]["call_args"] = "(window)" defs["igMarkIniSettingsDirty"][2]["cimguiname"] = "igMarkIniSettingsDirty" defs["igMarkIniSettingsDirty"][2]["defaults"] = {} defs["igMarkIniSettingsDirty"][2]["funcname"] = "MarkIniSettingsDirty" -defs["igMarkIniSettingsDirty"][2]["location"] = "imgui_internal:2596" +defs["igMarkIniSettingsDirty"][2]["location"] = "imgui_internal:2701" defs["igMarkIniSettingsDirty"][2]["namespace"] = "ImGui" defs["igMarkIniSettingsDirty"][2]["ov_cimguiname"] = "igMarkIniSettingsDirtyWindowPtr" defs["igMarkIniSettingsDirty"][2]["ret"] = "void" @@ -21293,7 +21756,7 @@ defs["igMarkItemEdited"][1]["call_args"] = "(id)" defs["igMarkItemEdited"][1]["cimguiname"] = "igMarkItemEdited" defs["igMarkItemEdited"][1]["defaults"] = {} defs["igMarkItemEdited"][1]["funcname"] = "MarkItemEdited" -defs["igMarkItemEdited"][1]["location"] = "imgui_internal:2623" +defs["igMarkItemEdited"][1]["location"] = "imgui_internal:2735" defs["igMarkItemEdited"][1]["namespace"] = "ImGui" defs["igMarkItemEdited"][1]["ov_cimguiname"] = "igMarkItemEdited" defs["igMarkItemEdited"][1]["ret"] = "void" @@ -21312,7 +21775,7 @@ defs["igMemAlloc"][1]["call_args"] = "(size)" defs["igMemAlloc"][1]["cimguiname"] = "igMemAlloc" defs["igMemAlloc"][1]["defaults"] = {} defs["igMemAlloc"][1]["funcname"] = "MemAlloc" -defs["igMemAlloc"][1]["location"] = "imgui:970" +defs["igMemAlloc"][1]["location"] = "imgui:972" defs["igMemAlloc"][1]["namespace"] = "ImGui" defs["igMemAlloc"][1]["ov_cimguiname"] = "igMemAlloc" defs["igMemAlloc"][1]["ret"] = "void*" @@ -21331,7 +21794,7 @@ defs["igMemFree"][1]["call_args"] = "(ptr)" defs["igMemFree"][1]["cimguiname"] = "igMemFree" defs["igMemFree"][1]["defaults"] = {} defs["igMemFree"][1]["funcname"] = "MemFree" -defs["igMemFree"][1]["location"] = "imgui:971" +defs["igMemFree"][1]["location"] = "imgui:973" defs["igMemFree"][1]["namespace"] = "ImGui" defs["igMemFree"][1]["ov_cimguiname"] = "igMemFree" defs["igMemFree"][1]["ret"] = "void" @@ -21362,7 +21825,7 @@ defs["igMenuItem"][1]["defaults"]["enabled"] = "true" defs["igMenuItem"][1]["defaults"]["selected"] = "false" defs["igMenuItem"][1]["defaults"]["shortcut"] = "NULL" defs["igMenuItem"][1]["funcname"] = "MenuItem" -defs["igMenuItem"][1]["location"] = "imgui:669" +defs["igMenuItem"][1]["location"] = "imgui:670" defs["igMenuItem"][1]["namespace"] = "ImGui" defs["igMenuItem"][1]["ov_cimguiname"] = "igMenuItemBool" defs["igMenuItem"][1]["ret"] = "bool" @@ -21389,7 +21852,7 @@ defs["igMenuItem"][2]["cimguiname"] = "igMenuItem" defs["igMenuItem"][2]["defaults"] = {} defs["igMenuItem"][2]["defaults"]["enabled"] = "true" defs["igMenuItem"][2]["funcname"] = "MenuItem" -defs["igMenuItem"][2]["location"] = "imgui:670" +defs["igMenuItem"][2]["location"] = "imgui:671" defs["igMenuItem"][2]["namespace"] = "ImGui" defs["igMenuItem"][2]["ov_cimguiname"] = "igMenuItemBoolPtr" defs["igMenuItem"][2]["ret"] = "bool" @@ -21424,13 +21887,29 @@ defs["igMenuItemEx"][1]["defaults"]["enabled"] = "true" defs["igMenuItemEx"][1]["defaults"]["selected"] = "false" defs["igMenuItemEx"][1]["defaults"]["shortcut"] = "NULL" defs["igMenuItemEx"][1]["funcname"] = "MenuItemEx" -defs["igMenuItemEx"][1]["location"] = "imgui_internal:2677" +defs["igMenuItemEx"][1]["location"] = "imgui_internal:2792" defs["igMenuItemEx"][1]["namespace"] = "ImGui" defs["igMenuItemEx"][1]["ov_cimguiname"] = "igMenuItemEx" defs["igMenuItemEx"][1]["ret"] = "bool" defs["igMenuItemEx"][1]["signature"] = "(const char*,const char*,const char*,bool,bool)" defs["igMenuItemEx"][1]["stname"] = "" defs["igMenuItemEx"]["(const char*,const char*,const char*,bool,bool)"] = defs["igMenuItemEx"][1] +defs["igNavInitRequestApplyResult"] = {} +defs["igNavInitRequestApplyResult"][1] = {} +defs["igNavInitRequestApplyResult"][1]["args"] = "()" +defs["igNavInitRequestApplyResult"][1]["argsT"] = {} +defs["igNavInitRequestApplyResult"][1]["argsoriginal"] = "()" +defs["igNavInitRequestApplyResult"][1]["call_args"] = "()" +defs["igNavInitRequestApplyResult"][1]["cimguiname"] = "igNavInitRequestApplyResult" +defs["igNavInitRequestApplyResult"][1]["defaults"] = {} +defs["igNavInitRequestApplyResult"][1]["funcname"] = "NavInitRequestApplyResult" +defs["igNavInitRequestApplyResult"][1]["location"] = "imgui_internal:2801" +defs["igNavInitRequestApplyResult"][1]["namespace"] = "ImGui" +defs["igNavInitRequestApplyResult"][1]["ov_cimguiname"] = "igNavInitRequestApplyResult" +defs["igNavInitRequestApplyResult"][1]["ret"] = "void" +defs["igNavInitRequestApplyResult"][1]["signature"] = "()" +defs["igNavInitRequestApplyResult"][1]["stname"] = "" +defs["igNavInitRequestApplyResult"]["()"] = defs["igNavInitRequestApplyResult"][1] defs["igNavInitWindow"] = {} defs["igNavInitWindow"][1] = {} defs["igNavInitWindow"][1]["args"] = "(ImGuiWindow* window,bool force_reinit)" @@ -21446,7 +21925,7 @@ defs["igNavInitWindow"][1]["call_args"] = "(window,force_reinit)" defs["igNavInitWindow"][1]["cimguiname"] = "igNavInitWindow" defs["igNavInitWindow"][1]["defaults"] = {} defs["igNavInitWindow"][1]["funcname"] = "NavInitWindow" -defs["igNavInitWindow"][1]["location"] = "imgui_internal:2685" +defs["igNavInitWindow"][1]["location"] = "imgui_internal:2800" defs["igNavInitWindow"][1]["namespace"] = "ImGui" defs["igNavInitWindow"][1]["ov_cimguiname"] = "igNavInitWindow" defs["igNavInitWindow"][1]["ret"] = "void" @@ -21462,7 +21941,7 @@ defs["igNavMoveRequestApplyResult"][1]["call_args"] = "()" defs["igNavMoveRequestApplyResult"][1]["cimguiname"] = "igNavMoveRequestApplyResult" defs["igNavMoveRequestApplyResult"][1]["defaults"] = {} defs["igNavMoveRequestApplyResult"][1]["funcname"] = "NavMoveRequestApplyResult" -defs["igNavMoveRequestApplyResult"][1]["location"] = "imgui_internal:2689" +defs["igNavMoveRequestApplyResult"][1]["location"] = "imgui_internal:2807" defs["igNavMoveRequestApplyResult"][1]["namespace"] = "ImGui" defs["igNavMoveRequestApplyResult"][1]["ov_cimguiname"] = "igNavMoveRequestApplyResult" defs["igNavMoveRequestApplyResult"][1]["ret"] = "void" @@ -21478,7 +21957,7 @@ defs["igNavMoveRequestButNoResultYet"][1]["call_args"] = "()" defs["igNavMoveRequestButNoResultYet"][1]["cimguiname"] = "igNavMoveRequestButNoResultYet" defs["igNavMoveRequestButNoResultYet"][1]["defaults"] = {} defs["igNavMoveRequestButNoResultYet"][1]["funcname"] = "NavMoveRequestButNoResultYet" -defs["igNavMoveRequestButNoResultYet"][1]["location"] = "imgui_internal:2686" +defs["igNavMoveRequestButNoResultYet"][1]["location"] = "imgui_internal:2802" defs["igNavMoveRequestButNoResultYet"][1]["namespace"] = "ImGui" defs["igNavMoveRequestButNoResultYet"][1]["ov_cimguiname"] = "igNavMoveRequestButNoResultYet" defs["igNavMoveRequestButNoResultYet"][1]["ret"] = "bool" @@ -21494,7 +21973,7 @@ defs["igNavMoveRequestCancel"][1]["call_args"] = "()" defs["igNavMoveRequestCancel"][1]["cimguiname"] = "igNavMoveRequestCancel" defs["igNavMoveRequestCancel"][1]["defaults"] = {} defs["igNavMoveRequestCancel"][1]["funcname"] = "NavMoveRequestCancel" -defs["igNavMoveRequestCancel"][1]["location"] = "imgui_internal:2688" +defs["igNavMoveRequestCancel"][1]["location"] = "imgui_internal:2806" defs["igNavMoveRequestCancel"][1]["namespace"] = "ImGui" defs["igNavMoveRequestCancel"][1]["ov_cimguiname"] = "igNavMoveRequestCancel" defs["igNavMoveRequestCancel"][1]["ret"] = "void" @@ -21503,7 +21982,7 @@ defs["igNavMoveRequestCancel"][1]["stname"] = "" defs["igNavMoveRequestCancel"]["()"] = defs["igNavMoveRequestCancel"][1] defs["igNavMoveRequestForward"] = {} defs["igNavMoveRequestForward"][1] = {} -defs["igNavMoveRequestForward"][1]["args"] = "(ImGuiDir move_dir,ImGuiDir clip_dir,ImGuiNavMoveFlags move_flags)" +defs["igNavMoveRequestForward"][1]["args"] = "(ImGuiDir move_dir,ImGuiDir clip_dir,ImGuiNavMoveFlags move_flags,ImGuiScrollFlags scroll_flags)" defs["igNavMoveRequestForward"][1]["argsT"] = {} defs["igNavMoveRequestForward"][1]["argsT"][1] = {} defs["igNavMoveRequestForward"][1]["argsT"][1]["name"] = "move_dir" @@ -21514,18 +21993,68 @@ defs["igNavMoveRequestForward"][1]["argsT"][2]["type"] = "ImGuiDir" defs["igNavMoveRequestForward"][1]["argsT"][3] = {} defs["igNavMoveRequestForward"][1]["argsT"][3]["name"] = "move_flags" defs["igNavMoveRequestForward"][1]["argsT"][3]["type"] = "ImGuiNavMoveFlags" -defs["igNavMoveRequestForward"][1]["argsoriginal"] = "(ImGuiDir move_dir,ImGuiDir clip_dir,ImGuiNavMoveFlags move_flags)" -defs["igNavMoveRequestForward"][1]["call_args"] = "(move_dir,clip_dir,move_flags)" +defs["igNavMoveRequestForward"][1]["argsT"][4] = {} +defs["igNavMoveRequestForward"][1]["argsT"][4]["name"] = "scroll_flags" +defs["igNavMoveRequestForward"][1]["argsT"][4]["type"] = "ImGuiScrollFlags" +defs["igNavMoveRequestForward"][1]["argsoriginal"] = "(ImGuiDir move_dir,ImGuiDir clip_dir,ImGuiNavMoveFlags move_flags,ImGuiScrollFlags scroll_flags)" +defs["igNavMoveRequestForward"][1]["call_args"] = "(move_dir,clip_dir,move_flags,scroll_flags)" defs["igNavMoveRequestForward"][1]["cimguiname"] = "igNavMoveRequestForward" defs["igNavMoveRequestForward"][1]["defaults"] = {} defs["igNavMoveRequestForward"][1]["funcname"] = "NavMoveRequestForward" -defs["igNavMoveRequestForward"][1]["location"] = "imgui_internal:2687" +defs["igNavMoveRequestForward"][1]["location"] = "imgui_internal:2804" defs["igNavMoveRequestForward"][1]["namespace"] = "ImGui" defs["igNavMoveRequestForward"][1]["ov_cimguiname"] = "igNavMoveRequestForward" defs["igNavMoveRequestForward"][1]["ret"] = "void" -defs["igNavMoveRequestForward"][1]["signature"] = "(ImGuiDir,ImGuiDir,ImGuiNavMoveFlags)" +defs["igNavMoveRequestForward"][1]["signature"] = "(ImGuiDir,ImGuiDir,ImGuiNavMoveFlags,ImGuiScrollFlags)" defs["igNavMoveRequestForward"][1]["stname"] = "" -defs["igNavMoveRequestForward"]["(ImGuiDir,ImGuiDir,ImGuiNavMoveFlags)"] = defs["igNavMoveRequestForward"][1] +defs["igNavMoveRequestForward"]["(ImGuiDir,ImGuiDir,ImGuiNavMoveFlags,ImGuiScrollFlags)"] = defs["igNavMoveRequestForward"][1] +defs["igNavMoveRequestResolveWithLastItem"] = {} +defs["igNavMoveRequestResolveWithLastItem"][1] = {} +defs["igNavMoveRequestResolveWithLastItem"][1]["args"] = "(ImGuiNavItemData* result)" +defs["igNavMoveRequestResolveWithLastItem"][1]["argsT"] = {} +defs["igNavMoveRequestResolveWithLastItem"][1]["argsT"][1] = {} +defs["igNavMoveRequestResolveWithLastItem"][1]["argsT"][1]["name"] = "result" +defs["igNavMoveRequestResolveWithLastItem"][1]["argsT"][1]["type"] = "ImGuiNavItemData*" +defs["igNavMoveRequestResolveWithLastItem"][1]["argsoriginal"] = "(ImGuiNavItemData* result)" +defs["igNavMoveRequestResolveWithLastItem"][1]["call_args"] = "(result)" +defs["igNavMoveRequestResolveWithLastItem"][1]["cimguiname"] = "igNavMoveRequestResolveWithLastItem" +defs["igNavMoveRequestResolveWithLastItem"][1]["defaults"] = {} +defs["igNavMoveRequestResolveWithLastItem"][1]["funcname"] = "NavMoveRequestResolveWithLastItem" +defs["igNavMoveRequestResolveWithLastItem"][1]["location"] = "imgui_internal:2805" +defs["igNavMoveRequestResolveWithLastItem"][1]["namespace"] = "ImGui" +defs["igNavMoveRequestResolveWithLastItem"][1]["ov_cimguiname"] = "igNavMoveRequestResolveWithLastItem" +defs["igNavMoveRequestResolveWithLastItem"][1]["ret"] = "void" +defs["igNavMoveRequestResolveWithLastItem"][1]["signature"] = "(ImGuiNavItemData*)" +defs["igNavMoveRequestResolveWithLastItem"][1]["stname"] = "" +defs["igNavMoveRequestResolveWithLastItem"]["(ImGuiNavItemData*)"] = defs["igNavMoveRequestResolveWithLastItem"][1] +defs["igNavMoveRequestSubmit"] = {} +defs["igNavMoveRequestSubmit"][1] = {} +defs["igNavMoveRequestSubmit"][1]["args"] = "(ImGuiDir move_dir,ImGuiDir clip_dir,ImGuiNavMoveFlags move_flags,ImGuiScrollFlags scroll_flags)" +defs["igNavMoveRequestSubmit"][1]["argsT"] = {} +defs["igNavMoveRequestSubmit"][1]["argsT"][1] = {} +defs["igNavMoveRequestSubmit"][1]["argsT"][1]["name"] = "move_dir" +defs["igNavMoveRequestSubmit"][1]["argsT"][1]["type"] = "ImGuiDir" +defs["igNavMoveRequestSubmit"][1]["argsT"][2] = {} +defs["igNavMoveRequestSubmit"][1]["argsT"][2]["name"] = "clip_dir" +defs["igNavMoveRequestSubmit"][1]["argsT"][2]["type"] = "ImGuiDir" +defs["igNavMoveRequestSubmit"][1]["argsT"][3] = {} +defs["igNavMoveRequestSubmit"][1]["argsT"][3]["name"] = "move_flags" +defs["igNavMoveRequestSubmit"][1]["argsT"][3]["type"] = "ImGuiNavMoveFlags" +defs["igNavMoveRequestSubmit"][1]["argsT"][4] = {} +defs["igNavMoveRequestSubmit"][1]["argsT"][4]["name"] = "scroll_flags" +defs["igNavMoveRequestSubmit"][1]["argsT"][4]["type"] = "ImGuiScrollFlags" +defs["igNavMoveRequestSubmit"][1]["argsoriginal"] = "(ImGuiDir move_dir,ImGuiDir clip_dir,ImGuiNavMoveFlags move_flags,ImGuiScrollFlags scroll_flags)" +defs["igNavMoveRequestSubmit"][1]["call_args"] = "(move_dir,clip_dir,move_flags,scroll_flags)" +defs["igNavMoveRequestSubmit"][1]["cimguiname"] = "igNavMoveRequestSubmit" +defs["igNavMoveRequestSubmit"][1]["defaults"] = {} +defs["igNavMoveRequestSubmit"][1]["funcname"] = "NavMoveRequestSubmit" +defs["igNavMoveRequestSubmit"][1]["location"] = "imgui_internal:2803" +defs["igNavMoveRequestSubmit"][1]["namespace"] = "ImGui" +defs["igNavMoveRequestSubmit"][1]["ov_cimguiname"] = "igNavMoveRequestSubmit" +defs["igNavMoveRequestSubmit"][1]["ret"] = "void" +defs["igNavMoveRequestSubmit"][1]["signature"] = "(ImGuiDir,ImGuiDir,ImGuiNavMoveFlags,ImGuiScrollFlags)" +defs["igNavMoveRequestSubmit"][1]["stname"] = "" +defs["igNavMoveRequestSubmit"]["(ImGuiDir,ImGuiDir,ImGuiNavMoveFlags,ImGuiScrollFlags)"] = defs["igNavMoveRequestSubmit"][1] defs["igNavMoveRequestTryWrapping"] = {} defs["igNavMoveRequestTryWrapping"][1] = {} defs["igNavMoveRequestTryWrapping"][1]["args"] = "(ImGuiWindow* window,ImGuiNavMoveFlags move_flags)" @@ -21541,7 +22070,7 @@ defs["igNavMoveRequestTryWrapping"][1]["call_args"] = "(window,move_flags)" defs["igNavMoveRequestTryWrapping"][1]["cimguiname"] = "igNavMoveRequestTryWrapping" defs["igNavMoveRequestTryWrapping"][1]["defaults"] = {} defs["igNavMoveRequestTryWrapping"][1]["funcname"] = "NavMoveRequestTryWrapping" -defs["igNavMoveRequestTryWrapping"][1]["location"] = "imgui_internal:2690" +defs["igNavMoveRequestTryWrapping"][1]["location"] = "imgui_internal:2808" defs["igNavMoveRequestTryWrapping"][1]["namespace"] = "ImGui" defs["igNavMoveRequestTryWrapping"][1]["ov_cimguiname"] = "igNavMoveRequestTryWrapping" defs["igNavMoveRequestTryWrapping"][1]["ret"] = "void" @@ -21573,7 +22102,7 @@ defs["igNewLine"][1]["call_args"] = "()" defs["igNewLine"][1]["cimguiname"] = "igNewLine" defs["igNewLine"][1]["defaults"] = {} defs["igNewLine"][1]["funcname"] = "NewLine" -defs["igNewLine"][1]["location"] = "imgui:451" +defs["igNewLine"][1]["location"] = "imgui:452" defs["igNewLine"][1]["namespace"] = "ImGui" defs["igNewLine"][1]["ov_cimguiname"] = "igNewLine" defs["igNewLine"][1]["ret"] = "void" @@ -21589,7 +22118,7 @@ defs["igNextColumn"][1]["call_args"] = "()" defs["igNextColumn"][1]["cimguiname"] = "igNextColumn" defs["igNextColumn"][1]["defaults"] = {} defs["igNextColumn"][1]["funcname"] = "NextColumn" -defs["igNextColumn"][1]["location"] = "imgui:787" +defs["igNextColumn"][1]["location"] = "imgui:788" defs["igNextColumn"][1]["namespace"] = "ImGui" defs["igNextColumn"][1]["ov_cimguiname"] = "igNextColumn" defs["igNextColumn"][1]["ret"] = "void" @@ -21612,7 +22141,7 @@ defs["igOpenPopup"][1]["cimguiname"] = "igOpenPopup" defs["igOpenPopup"][1]["defaults"] = {} defs["igOpenPopup"][1]["defaults"]["popup_flags"] = "0" defs["igOpenPopup"][1]["funcname"] = "OpenPopup" -defs["igOpenPopup"][1]["location"] = "imgui:702" +defs["igOpenPopup"][1]["location"] = "imgui:703" defs["igOpenPopup"][1]["namespace"] = "ImGui" defs["igOpenPopup"][1]["ov_cimguiname"] = "igOpenPopupStr" defs["igOpenPopup"][1]["ret"] = "void" @@ -21633,7 +22162,7 @@ defs["igOpenPopup"][2]["cimguiname"] = "igOpenPopup" defs["igOpenPopup"][2]["defaults"] = {} defs["igOpenPopup"][2]["defaults"]["popup_flags"] = "0" defs["igOpenPopup"][2]["funcname"] = "OpenPopup" -defs["igOpenPopup"][2]["location"] = "imgui:703" +defs["igOpenPopup"][2]["location"] = "imgui:704" defs["igOpenPopup"][2]["namespace"] = "ImGui" defs["igOpenPopup"][2]["ov_cimguiname"] = "igOpenPopupID" defs["igOpenPopup"][2]["ret"] = "void" @@ -21657,7 +22186,7 @@ defs["igOpenPopupEx"][1]["cimguiname"] = "igOpenPopupEx" defs["igOpenPopupEx"][1]["defaults"] = {} defs["igOpenPopupEx"][1]["defaults"]["popup_flags"] = "ImGuiPopupFlags_None" defs["igOpenPopupEx"][1]["funcname"] = "OpenPopupEx" -defs["igOpenPopupEx"][1]["location"] = "imgui_internal:2663" +defs["igOpenPopupEx"][1]["location"] = "imgui_internal:2776" defs["igOpenPopupEx"][1]["namespace"] = "ImGui" defs["igOpenPopupEx"][1]["ov_cimguiname"] = "igOpenPopupEx" defs["igOpenPopupEx"][1]["ret"] = "void" @@ -21681,7 +22210,7 @@ defs["igOpenPopupOnItemClick"][1]["defaults"] = {} defs["igOpenPopupOnItemClick"][1]["defaults"]["popup_flags"] = "1" defs["igOpenPopupOnItemClick"][1]["defaults"]["str_id"] = "NULL" defs["igOpenPopupOnItemClick"][1]["funcname"] = "OpenPopupOnItemClick" -defs["igOpenPopupOnItemClick"][1]["location"] = "imgui:704" +defs["igOpenPopupOnItemClick"][1]["location"] = "imgui:705" defs["igOpenPopupOnItemClick"][1]["namespace"] = "ImGui" defs["igOpenPopupOnItemClick"][1]["ov_cimguiname"] = "igOpenPopupOnItemClick" defs["igOpenPopupOnItemClick"][1]["ret"] = "void" @@ -21729,7 +22258,7 @@ defs["igPlotEx"][1]["call_args"] = "(plot_type,label,values_getter,data,values_c defs["igPlotEx"][1]["cimguiname"] = "igPlotEx" defs["igPlotEx"][1]["defaults"] = {} defs["igPlotEx"][1]["funcname"] = "PlotEx" -defs["igPlotEx"][1]["location"] = "imgui_internal:2937" +defs["igPlotEx"][1]["location"] = "imgui_internal:3058" defs["igPlotEx"][1]["namespace"] = "ImGui" defs["igPlotEx"][1]["ov_cimguiname"] = "igPlotEx" defs["igPlotEx"][1]["ret"] = "int" @@ -21778,7 +22307,7 @@ defs["igPlotHistogram"][1]["defaults"]["scale_min"] = "FLT_MAX" defs["igPlotHistogram"][1]["defaults"]["stride"] = "sizeof(float)" defs["igPlotHistogram"][1]["defaults"]["values_offset"] = "0" defs["igPlotHistogram"][1]["funcname"] = "PlotHistogram" -defs["igPlotHistogram"][1]["location"] = "imgui:648" +defs["igPlotHistogram"][1]["location"] = "imgui:649" defs["igPlotHistogram"][1]["namespace"] = "ImGui" defs["igPlotHistogram"][1]["ov_cimguiname"] = "igPlotHistogramFloatPtr" defs["igPlotHistogram"][1]["ret"] = "void" @@ -21826,7 +22355,7 @@ defs["igPlotHistogram"][2]["defaults"]["scale_max"] = "FLT_MAX" defs["igPlotHistogram"][2]["defaults"]["scale_min"] = "FLT_MAX" defs["igPlotHistogram"][2]["defaults"]["values_offset"] = "0" defs["igPlotHistogram"][2]["funcname"] = "PlotHistogram" -defs["igPlotHistogram"][2]["location"] = "imgui:649" +defs["igPlotHistogram"][2]["location"] = "imgui:650" defs["igPlotHistogram"][2]["namespace"] = "ImGui" defs["igPlotHistogram"][2]["ov_cimguiname"] = "igPlotHistogramFnFloatPtr" defs["igPlotHistogram"][2]["ret"] = "void" @@ -21876,7 +22405,7 @@ defs["igPlotLines"][1]["defaults"]["scale_min"] = "FLT_MAX" defs["igPlotLines"][1]["defaults"]["stride"] = "sizeof(float)" defs["igPlotLines"][1]["defaults"]["values_offset"] = "0" defs["igPlotLines"][1]["funcname"] = "PlotLines" -defs["igPlotLines"][1]["location"] = "imgui:646" +defs["igPlotLines"][1]["location"] = "imgui:647" defs["igPlotLines"][1]["namespace"] = "ImGui" defs["igPlotLines"][1]["ov_cimguiname"] = "igPlotLinesFloatPtr" defs["igPlotLines"][1]["ret"] = "void" @@ -21924,7 +22453,7 @@ defs["igPlotLines"][2]["defaults"]["scale_max"] = "FLT_MAX" defs["igPlotLines"][2]["defaults"]["scale_min"] = "FLT_MAX" defs["igPlotLines"][2]["defaults"]["values_offset"] = "0" defs["igPlotLines"][2]["funcname"] = "PlotLines" -defs["igPlotLines"][2]["location"] = "imgui:647" +defs["igPlotLines"][2]["location"] = "imgui:648" defs["igPlotLines"][2]["namespace"] = "ImGui" defs["igPlotLines"][2]["ov_cimguiname"] = "igPlotLinesFnFloatPtr" defs["igPlotLines"][2]["ret"] = "void" @@ -21941,7 +22470,7 @@ defs["igPopAllowKeyboardFocus"][1]["call_args"] = "()" defs["igPopAllowKeyboardFocus"][1]["cimguiname"] = "igPopAllowKeyboardFocus" defs["igPopAllowKeyboardFocus"][1]["defaults"] = {} defs["igPopAllowKeyboardFocus"][1]["funcname"] = "PopAllowKeyboardFocus" -defs["igPopAllowKeyboardFocus"][1]["location"] = "imgui:420" +defs["igPopAllowKeyboardFocus"][1]["location"] = "imgui:421" defs["igPopAllowKeyboardFocus"][1]["namespace"] = "ImGui" defs["igPopAllowKeyboardFocus"][1]["ov_cimguiname"] = "igPopAllowKeyboardFocus" defs["igPopAllowKeyboardFocus"][1]["ret"] = "void" @@ -21957,7 +22486,7 @@ defs["igPopButtonRepeat"][1]["call_args"] = "()" defs["igPopButtonRepeat"][1]["cimguiname"] = "igPopButtonRepeat" defs["igPopButtonRepeat"][1]["defaults"] = {} defs["igPopButtonRepeat"][1]["funcname"] = "PopButtonRepeat" -defs["igPopButtonRepeat"][1]["location"] = "imgui:422" +defs["igPopButtonRepeat"][1]["location"] = "imgui:423" defs["igPopButtonRepeat"][1]["namespace"] = "ImGui" defs["igPopButtonRepeat"][1]["ov_cimguiname"] = "igPopButtonRepeat" defs["igPopButtonRepeat"][1]["ret"] = "void" @@ -21973,7 +22502,7 @@ defs["igPopClipRect"][1]["call_args"] = "()" defs["igPopClipRect"][1]["cimguiname"] = "igPopClipRect" defs["igPopClipRect"][1]["defaults"] = {} defs["igPopClipRect"][1]["funcname"] = "PopClipRect" -defs["igPopClipRect"][1]["location"] = "imgui:856" +defs["igPopClipRect"][1]["location"] = "imgui:858" defs["igPopClipRect"][1]["namespace"] = "ImGui" defs["igPopClipRect"][1]["ov_cimguiname"] = "igPopClipRect" defs["igPopClipRect"][1]["ret"] = "void" @@ -21989,7 +22518,7 @@ defs["igPopColumnsBackground"][1]["call_args"] = "()" defs["igPopColumnsBackground"][1]["cimguiname"] = "igPopColumnsBackground" defs["igPopColumnsBackground"][1]["defaults"] = {} defs["igPopColumnsBackground"][1]["funcname"] = "PopColumnsBackground" -defs["igPopColumnsBackground"][1]["location"] = "imgui_internal:2778" +defs["igPopColumnsBackground"][1]["location"] = "imgui_internal:2898" defs["igPopColumnsBackground"][1]["namespace"] = "ImGui" defs["igPopColumnsBackground"][1]["ov_cimguiname"] = "igPopColumnsBackground" defs["igPopColumnsBackground"][1]["ret"] = "void" @@ -22005,7 +22534,7 @@ defs["igPopFocusScope"][1]["call_args"] = "()" defs["igPopFocusScope"][1]["cimguiname"] = "igPopFocusScope" defs["igPopFocusScope"][1]["defaults"] = {} defs["igPopFocusScope"][1]["funcname"] = "PopFocusScope" -defs["igPopFocusScope"][1]["location"] = "imgui_internal:2701" +defs["igPopFocusScope"][1]["location"] = "imgui_internal:2819" defs["igPopFocusScope"][1]["namespace"] = "ImGui" defs["igPopFocusScope"][1]["ov_cimguiname"] = "igPopFocusScope" defs["igPopFocusScope"][1]["ret"] = "void" @@ -22021,7 +22550,7 @@ defs["igPopFont"][1]["call_args"] = "()" defs["igPopFont"][1]["cimguiname"] = "igPopFont" defs["igPopFont"][1]["defaults"] = {} defs["igPopFont"][1]["funcname"] = "PopFont" -defs["igPopFont"][1]["location"] = "imgui:412" +defs["igPopFont"][1]["location"] = "imgui:413" defs["igPopFont"][1]["namespace"] = "ImGui" defs["igPopFont"][1]["ov_cimguiname"] = "igPopFont" defs["igPopFont"][1]["ret"] = "void" @@ -22037,7 +22566,7 @@ defs["igPopID"][1]["call_args"] = "()" defs["igPopID"][1]["cimguiname"] = "igPopID" defs["igPopID"][1]["defaults"] = {} defs["igPopID"][1]["funcname"] = "PopID" -defs["igPopID"][1]["location"] = "imgui:488" +defs["igPopID"][1]["location"] = "imgui:489" defs["igPopID"][1]["namespace"] = "ImGui" defs["igPopID"][1]["ov_cimguiname"] = "igPopID" defs["igPopID"][1]["ret"] = "void" @@ -22053,7 +22582,7 @@ defs["igPopItemFlag"][1]["call_args"] = "()" defs["igPopItemFlag"][1]["cimguiname"] = "igPopItemFlag" defs["igPopItemFlag"][1]["defaults"] = {} defs["igPopItemFlag"][1]["funcname"] = "PopItemFlag" -defs["igPopItemFlag"][1]["location"] = "imgui_internal:2644" +defs["igPopItemFlag"][1]["location"] = "imgui_internal:2755" defs["igPopItemFlag"][1]["namespace"] = "ImGui" defs["igPopItemFlag"][1]["ov_cimguiname"] = "igPopItemFlag" defs["igPopItemFlag"][1]["ret"] = "void" @@ -22069,7 +22598,7 @@ defs["igPopItemWidth"][1]["call_args"] = "()" defs["igPopItemWidth"][1]["cimguiname"] = "igPopItemWidth" defs["igPopItemWidth"][1]["defaults"] = {} defs["igPopItemWidth"][1]["funcname"] = "PopItemWidth" -defs["igPopItemWidth"][1]["location"] = "imgui:426" +defs["igPopItemWidth"][1]["location"] = "imgui:427" defs["igPopItemWidth"][1]["namespace"] = "ImGui" defs["igPopItemWidth"][1]["ov_cimguiname"] = "igPopItemWidth" defs["igPopItemWidth"][1]["ret"] = "void" @@ -22089,7 +22618,7 @@ defs["igPopStyleColor"][1]["cimguiname"] = "igPopStyleColor" defs["igPopStyleColor"][1]["defaults"] = {} defs["igPopStyleColor"][1]["defaults"]["count"] = "1" defs["igPopStyleColor"][1]["funcname"] = "PopStyleColor" -defs["igPopStyleColor"][1]["location"] = "imgui:415" +defs["igPopStyleColor"][1]["location"] = "imgui:416" defs["igPopStyleColor"][1]["namespace"] = "ImGui" defs["igPopStyleColor"][1]["ov_cimguiname"] = "igPopStyleColor" defs["igPopStyleColor"][1]["ret"] = "void" @@ -22109,7 +22638,7 @@ defs["igPopStyleVar"][1]["cimguiname"] = "igPopStyleVar" defs["igPopStyleVar"][1]["defaults"] = {} defs["igPopStyleVar"][1]["defaults"]["count"] = "1" defs["igPopStyleVar"][1]["funcname"] = "PopStyleVar" -defs["igPopStyleVar"][1]["location"] = "imgui:418" +defs["igPopStyleVar"][1]["location"] = "imgui:419" defs["igPopStyleVar"][1]["namespace"] = "ImGui" defs["igPopStyleVar"][1]["ov_cimguiname"] = "igPopStyleVar" defs["igPopStyleVar"][1]["ret"] = "void" @@ -22125,7 +22654,7 @@ defs["igPopTextWrapPos"][1]["call_args"] = "()" defs["igPopTextWrapPos"][1]["cimguiname"] = "igPopTextWrapPos" defs["igPopTextWrapPos"][1]["defaults"] = {} defs["igPopTextWrapPos"][1]["funcname"] = "PopTextWrapPos" -defs["igPopTextWrapPos"][1]["location"] = "imgui:430" +defs["igPopTextWrapPos"][1]["location"] = "imgui:431" defs["igPopTextWrapPos"][1]["namespace"] = "ImGui" defs["igPopTextWrapPos"][1]["ov_cimguiname"] = "igPopTextWrapPos" defs["igPopTextWrapPos"][1]["ret"] = "void" @@ -22152,7 +22681,7 @@ defs["igProgressBar"][1]["defaults"] = {} defs["igProgressBar"][1]["defaults"]["overlay"] = "NULL" defs["igProgressBar"][1]["defaults"]["size_arg"] = "ImVec2(-FLT_MIN,0)" defs["igProgressBar"][1]["funcname"] = "ProgressBar" -defs["igProgressBar"][1]["location"] = "imgui:522" +defs["igProgressBar"][1]["location"] = "imgui:523" defs["igProgressBar"][1]["namespace"] = "ImGui" defs["igProgressBar"][1]["ov_cimguiname"] = "igProgressBar" defs["igProgressBar"][1]["ret"] = "void" @@ -22171,7 +22700,7 @@ defs["igPushAllowKeyboardFocus"][1]["call_args"] = "(allow_keyboard_focus)" defs["igPushAllowKeyboardFocus"][1]["cimguiname"] = "igPushAllowKeyboardFocus" defs["igPushAllowKeyboardFocus"][1]["defaults"] = {} defs["igPushAllowKeyboardFocus"][1]["funcname"] = "PushAllowKeyboardFocus" -defs["igPushAllowKeyboardFocus"][1]["location"] = "imgui:419" +defs["igPushAllowKeyboardFocus"][1]["location"] = "imgui:420" defs["igPushAllowKeyboardFocus"][1]["namespace"] = "ImGui" defs["igPushAllowKeyboardFocus"][1]["ov_cimguiname"] = "igPushAllowKeyboardFocus" defs["igPushAllowKeyboardFocus"][1]["ret"] = "void" @@ -22190,7 +22719,7 @@ defs["igPushButtonRepeat"][1]["call_args"] = "(repeat)" defs["igPushButtonRepeat"][1]["cimguiname"] = "igPushButtonRepeat" defs["igPushButtonRepeat"][1]["defaults"] = {} defs["igPushButtonRepeat"][1]["funcname"] = "PushButtonRepeat" -defs["igPushButtonRepeat"][1]["location"] = "imgui:421" +defs["igPushButtonRepeat"][1]["location"] = "imgui:422" defs["igPushButtonRepeat"][1]["namespace"] = "ImGui" defs["igPushButtonRepeat"][1]["ov_cimguiname"] = "igPushButtonRepeat" defs["igPushButtonRepeat"][1]["ret"] = "void" @@ -22215,7 +22744,7 @@ defs["igPushClipRect"][1]["call_args"] = "(clip_rect_min,clip_rect_max,intersect defs["igPushClipRect"][1]["cimguiname"] = "igPushClipRect" defs["igPushClipRect"][1]["defaults"] = {} defs["igPushClipRect"][1]["funcname"] = "PushClipRect" -defs["igPushClipRect"][1]["location"] = "imgui:855" +defs["igPushClipRect"][1]["location"] = "imgui:857" defs["igPushClipRect"][1]["namespace"] = "ImGui" defs["igPushClipRect"][1]["ov_cimguiname"] = "igPushClipRect" defs["igPushClipRect"][1]["ret"] = "void" @@ -22234,7 +22763,7 @@ defs["igPushColumnClipRect"][1]["call_args"] = "(column_index)" defs["igPushColumnClipRect"][1]["cimguiname"] = "igPushColumnClipRect" defs["igPushColumnClipRect"][1]["defaults"] = {} defs["igPushColumnClipRect"][1]["funcname"] = "PushColumnClipRect" -defs["igPushColumnClipRect"][1]["location"] = "imgui_internal:2776" +defs["igPushColumnClipRect"][1]["location"] = "imgui_internal:2896" defs["igPushColumnClipRect"][1]["namespace"] = "ImGui" defs["igPushColumnClipRect"][1]["ov_cimguiname"] = "igPushColumnClipRect" defs["igPushColumnClipRect"][1]["ret"] = "void" @@ -22250,7 +22779,7 @@ defs["igPushColumnsBackground"][1]["call_args"] = "()" defs["igPushColumnsBackground"][1]["cimguiname"] = "igPushColumnsBackground" defs["igPushColumnsBackground"][1]["defaults"] = {} defs["igPushColumnsBackground"][1]["funcname"] = "PushColumnsBackground" -defs["igPushColumnsBackground"][1]["location"] = "imgui_internal:2777" +defs["igPushColumnsBackground"][1]["location"] = "imgui_internal:2897" defs["igPushColumnsBackground"][1]["namespace"] = "ImGui" defs["igPushColumnsBackground"][1]["ov_cimguiname"] = "igPushColumnsBackground" defs["igPushColumnsBackground"][1]["ret"] = "void" @@ -22269,7 +22798,7 @@ defs["igPushFocusScope"][1]["call_args"] = "(id)" defs["igPushFocusScope"][1]["cimguiname"] = "igPushFocusScope" defs["igPushFocusScope"][1]["defaults"] = {} defs["igPushFocusScope"][1]["funcname"] = "PushFocusScope" -defs["igPushFocusScope"][1]["location"] = "imgui_internal:2700" +defs["igPushFocusScope"][1]["location"] = "imgui_internal:2818" defs["igPushFocusScope"][1]["namespace"] = "ImGui" defs["igPushFocusScope"][1]["ov_cimguiname"] = "igPushFocusScope" defs["igPushFocusScope"][1]["ret"] = "void" @@ -22288,7 +22817,7 @@ defs["igPushFont"][1]["call_args"] = "(font)" defs["igPushFont"][1]["cimguiname"] = "igPushFont" defs["igPushFont"][1]["defaults"] = {} defs["igPushFont"][1]["funcname"] = "PushFont" -defs["igPushFont"][1]["location"] = "imgui:411" +defs["igPushFont"][1]["location"] = "imgui:412" defs["igPushFont"][1]["namespace"] = "ImGui" defs["igPushFont"][1]["ov_cimguiname"] = "igPushFont" defs["igPushFont"][1]["ret"] = "void" @@ -22307,7 +22836,7 @@ defs["igPushID"][1]["call_args"] = "(str_id)" defs["igPushID"][1]["cimguiname"] = "igPushID" defs["igPushID"][1]["defaults"] = {} defs["igPushID"][1]["funcname"] = "PushID" -defs["igPushID"][1]["location"] = "imgui:484" +defs["igPushID"][1]["location"] = "imgui:485" defs["igPushID"][1]["namespace"] = "ImGui" defs["igPushID"][1]["ov_cimguiname"] = "igPushIDStr" defs["igPushID"][1]["ret"] = "void" @@ -22327,7 +22856,7 @@ defs["igPushID"][2]["call_args"] = "(str_id_begin,str_id_end)" defs["igPushID"][2]["cimguiname"] = "igPushID" defs["igPushID"][2]["defaults"] = {} defs["igPushID"][2]["funcname"] = "PushID" -defs["igPushID"][2]["location"] = "imgui:485" +defs["igPushID"][2]["location"] = "imgui:486" defs["igPushID"][2]["namespace"] = "ImGui" defs["igPushID"][2]["ov_cimguiname"] = "igPushIDStrStr" defs["igPushID"][2]["ret"] = "void" @@ -22344,7 +22873,7 @@ defs["igPushID"][3]["call_args"] = "(ptr_id)" defs["igPushID"][3]["cimguiname"] = "igPushID" defs["igPushID"][3]["defaults"] = {} defs["igPushID"][3]["funcname"] = "PushID" -defs["igPushID"][3]["location"] = "imgui:486" +defs["igPushID"][3]["location"] = "imgui:487" defs["igPushID"][3]["namespace"] = "ImGui" defs["igPushID"][3]["ov_cimguiname"] = "igPushIDPtr" defs["igPushID"][3]["ret"] = "void" @@ -22361,7 +22890,7 @@ defs["igPushID"][4]["call_args"] = "(int_id)" defs["igPushID"][4]["cimguiname"] = "igPushID" defs["igPushID"][4]["defaults"] = {} defs["igPushID"][4]["funcname"] = "PushID" -defs["igPushID"][4]["location"] = "imgui:487" +defs["igPushID"][4]["location"] = "imgui:488" defs["igPushID"][4]["namespace"] = "ImGui" defs["igPushID"][4]["ov_cimguiname"] = "igPushIDInt" defs["igPushID"][4]["ret"] = "void" @@ -22386,7 +22915,7 @@ defs["igPushItemFlag"][1]["call_args"] = "(option,enabled)" defs["igPushItemFlag"][1]["cimguiname"] = "igPushItemFlag" defs["igPushItemFlag"][1]["defaults"] = {} defs["igPushItemFlag"][1]["funcname"] = "PushItemFlag" -defs["igPushItemFlag"][1]["location"] = "imgui_internal:2643" +defs["igPushItemFlag"][1]["location"] = "imgui_internal:2754" defs["igPushItemFlag"][1]["namespace"] = "ImGui" defs["igPushItemFlag"][1]["ov_cimguiname"] = "igPushItemFlag" defs["igPushItemFlag"][1]["ret"] = "void" @@ -22405,7 +22934,7 @@ defs["igPushItemWidth"][1]["call_args"] = "(item_width)" defs["igPushItemWidth"][1]["cimguiname"] = "igPushItemWidth" defs["igPushItemWidth"][1]["defaults"] = {} defs["igPushItemWidth"][1]["funcname"] = "PushItemWidth" -defs["igPushItemWidth"][1]["location"] = "imgui:425" +defs["igPushItemWidth"][1]["location"] = "imgui:426" defs["igPushItemWidth"][1]["namespace"] = "ImGui" defs["igPushItemWidth"][1]["ov_cimguiname"] = "igPushItemWidth" defs["igPushItemWidth"][1]["ret"] = "void" @@ -22427,7 +22956,7 @@ defs["igPushMultiItemsWidths"][1]["call_args"] = "(components,width_full)" defs["igPushMultiItemsWidths"][1]["cimguiname"] = "igPushMultiItemsWidths" defs["igPushMultiItemsWidths"][1]["defaults"] = {} defs["igPushMultiItemsWidths"][1]["funcname"] = "PushMultiItemsWidths" -defs["igPushMultiItemsWidths"][1]["location"] = "imgui_internal:2637" +defs["igPushMultiItemsWidths"][1]["location"] = "imgui_internal:2748" defs["igPushMultiItemsWidths"][1]["namespace"] = "ImGui" defs["igPushMultiItemsWidths"][1]["ov_cimguiname"] = "igPushMultiItemsWidths" defs["igPushMultiItemsWidths"][1]["ret"] = "void" @@ -22446,7 +22975,7 @@ defs["igPushOverrideID"][1]["call_args"] = "(id)" defs["igPushOverrideID"][1]["cimguiname"] = "igPushOverrideID" defs["igPushOverrideID"][1]["defaults"] = {} defs["igPushOverrideID"][1]["funcname"] = "PushOverrideID" -defs["igPushOverrideID"][1]["location"] = "imgui_internal:2624" +defs["igPushOverrideID"][1]["location"] = "imgui_internal:2736" defs["igPushOverrideID"][1]["namespace"] = "ImGui" defs["igPushOverrideID"][1]["ov_cimguiname"] = "igPushOverrideID" defs["igPushOverrideID"][1]["ret"] = "void" @@ -22468,7 +22997,7 @@ defs["igPushStyleColor"][1]["call_args"] = "(idx,col)" defs["igPushStyleColor"][1]["cimguiname"] = "igPushStyleColor" defs["igPushStyleColor"][1]["defaults"] = {} defs["igPushStyleColor"][1]["funcname"] = "PushStyleColor" -defs["igPushStyleColor"][1]["location"] = "imgui:413" +defs["igPushStyleColor"][1]["location"] = "imgui:414" defs["igPushStyleColor"][1]["namespace"] = "ImGui" defs["igPushStyleColor"][1]["ov_cimguiname"] = "igPushStyleColorU32" defs["igPushStyleColor"][1]["ret"] = "void" @@ -22488,7 +23017,7 @@ defs["igPushStyleColor"][2]["call_args"] = "(idx,col)" defs["igPushStyleColor"][2]["cimguiname"] = "igPushStyleColor" defs["igPushStyleColor"][2]["defaults"] = {} defs["igPushStyleColor"][2]["funcname"] = "PushStyleColor" -defs["igPushStyleColor"][2]["location"] = "imgui:414" +defs["igPushStyleColor"][2]["location"] = "imgui:415" defs["igPushStyleColor"][2]["namespace"] = "ImGui" defs["igPushStyleColor"][2]["ov_cimguiname"] = "igPushStyleColorVec4" defs["igPushStyleColor"][2]["ret"] = "void" @@ -22511,7 +23040,7 @@ defs["igPushStyleVar"][1]["call_args"] = "(idx,val)" defs["igPushStyleVar"][1]["cimguiname"] = "igPushStyleVar" defs["igPushStyleVar"][1]["defaults"] = {} defs["igPushStyleVar"][1]["funcname"] = "PushStyleVar" -defs["igPushStyleVar"][1]["location"] = "imgui:416" +defs["igPushStyleVar"][1]["location"] = "imgui:417" defs["igPushStyleVar"][1]["namespace"] = "ImGui" defs["igPushStyleVar"][1]["ov_cimguiname"] = "igPushStyleVarFloat" defs["igPushStyleVar"][1]["ret"] = "void" @@ -22531,7 +23060,7 @@ defs["igPushStyleVar"][2]["call_args"] = "(idx,val)" defs["igPushStyleVar"][2]["cimguiname"] = "igPushStyleVar" defs["igPushStyleVar"][2]["defaults"] = {} defs["igPushStyleVar"][2]["funcname"] = "PushStyleVar" -defs["igPushStyleVar"][2]["location"] = "imgui:417" +defs["igPushStyleVar"][2]["location"] = "imgui:418" defs["igPushStyleVar"][2]["namespace"] = "ImGui" defs["igPushStyleVar"][2]["ov_cimguiname"] = "igPushStyleVarVec2" defs["igPushStyleVar"][2]["ret"] = "void" @@ -22552,7 +23081,7 @@ defs["igPushTextWrapPos"][1]["cimguiname"] = "igPushTextWrapPos" defs["igPushTextWrapPos"][1]["defaults"] = {} defs["igPushTextWrapPos"][1]["defaults"]["wrap_local_pos_x"] = "0.0f" defs["igPushTextWrapPos"][1]["funcname"] = "PushTextWrapPos" -defs["igPushTextWrapPos"][1]["location"] = "imgui:429" +defs["igPushTextWrapPos"][1]["location"] = "imgui:430" defs["igPushTextWrapPos"][1]["namespace"] = "ImGui" defs["igPushTextWrapPos"][1]["ov_cimguiname"] = "igPushTextWrapPos" defs["igPushTextWrapPos"][1]["ret"] = "void" @@ -22574,7 +23103,7 @@ defs["igRadioButton"][1]["call_args"] = "(label,active)" defs["igRadioButton"][1]["cimguiname"] = "igRadioButton" defs["igRadioButton"][1]["defaults"] = {} defs["igRadioButton"][1]["funcname"] = "RadioButton" -defs["igRadioButton"][1]["location"] = "imgui:520" +defs["igRadioButton"][1]["location"] = "imgui:521" defs["igRadioButton"][1]["namespace"] = "ImGui" defs["igRadioButton"][1]["ov_cimguiname"] = "igRadioButtonBool" defs["igRadioButton"][1]["ret"] = "bool" @@ -22597,7 +23126,7 @@ defs["igRadioButton"][2]["call_args"] = "(label,v,v_button)" defs["igRadioButton"][2]["cimguiname"] = "igRadioButton" defs["igRadioButton"][2]["defaults"] = {} defs["igRadioButton"][2]["funcname"] = "RadioButton" -defs["igRadioButton"][2]["location"] = "imgui:521" +defs["igRadioButton"][2]["location"] = "imgui:522" defs["igRadioButton"][2]["namespace"] = "ImGui" defs["igRadioButton"][2]["ov_cimguiname"] = "igRadioButtonIntPtr" defs["igRadioButton"][2]["ret"] = "bool" @@ -22620,7 +23149,7 @@ defs["igRemoveContextHook"][1]["call_args"] = "(context,hook_to_remove)" defs["igRemoveContextHook"][1]["cimguiname"] = "igRemoveContextHook" defs["igRemoveContextHook"][1]["defaults"] = {} defs["igRemoveContextHook"][1]["funcname"] = "RemoveContextHook" -defs["igRemoveContextHook"][1]["location"] = "imgui_internal:2584" +defs["igRemoveContextHook"][1]["location"] = "imgui_internal:2689" defs["igRemoveContextHook"][1]["namespace"] = "ImGui" defs["igRemoveContextHook"][1]["ov_cimguiname"] = "igRemoveContextHook" defs["igRemoveContextHook"][1]["ret"] = "void" @@ -22668,7 +23197,7 @@ defs["igRenderArrow"][1]["cimguiname"] = "igRenderArrow" defs["igRenderArrow"][1]["defaults"] = {} defs["igRenderArrow"][1]["defaults"]["scale"] = "1.0f" defs["igRenderArrow"][1]["funcname"] = "RenderArrow" -defs["igRenderArrow"][1]["location"] = "imgui_internal:2865" +defs["igRenderArrow"][1]["location"] = "imgui_internal:2985" defs["igRenderArrow"][1]["namespace"] = "ImGui" defs["igRenderArrow"][1]["ov_cimguiname"] = "igRenderArrow" defs["igRenderArrow"][1]["ret"] = "void" @@ -22696,7 +23225,7 @@ defs["igRenderArrowDockMenu"][1]["call_args"] = "(draw_list,p_min,sz,col)" defs["igRenderArrowDockMenu"][1]["cimguiname"] = "igRenderArrowDockMenu" defs["igRenderArrowDockMenu"][1]["defaults"] = {} defs["igRenderArrowDockMenu"][1]["funcname"] = "RenderArrowDockMenu" -defs["igRenderArrowDockMenu"][1]["location"] = "imgui_internal:2870" +defs["igRenderArrowDockMenu"][1]["location"] = "imgui_internal:2990" defs["igRenderArrowDockMenu"][1]["namespace"] = "ImGui" defs["igRenderArrowDockMenu"][1]["ov_cimguiname"] = "igRenderArrowDockMenu" defs["igRenderArrowDockMenu"][1]["ret"] = "void" @@ -22727,7 +23256,7 @@ defs["igRenderArrowPointingAt"][1]["call_args"] = "(draw_list,pos,half_sz,direct defs["igRenderArrowPointingAt"][1]["cimguiname"] = "igRenderArrowPointingAt" defs["igRenderArrowPointingAt"][1]["defaults"] = {} defs["igRenderArrowPointingAt"][1]["funcname"] = "RenderArrowPointingAt" -defs["igRenderArrowPointingAt"][1]["location"] = "imgui_internal:2869" +defs["igRenderArrowPointingAt"][1]["location"] = "imgui_internal:2989" defs["igRenderArrowPointingAt"][1]["namespace"] = "ImGui" defs["igRenderArrowPointingAt"][1]["ov_cimguiname"] = "igRenderArrowPointingAt" defs["igRenderArrowPointingAt"][1]["ret"] = "void" @@ -22752,7 +23281,7 @@ defs["igRenderBullet"][1]["call_args"] = "(draw_list,pos,col)" defs["igRenderBullet"][1]["cimguiname"] = "igRenderBullet" defs["igRenderBullet"][1]["defaults"] = {} defs["igRenderBullet"][1]["funcname"] = "RenderBullet" -defs["igRenderBullet"][1]["location"] = "imgui_internal:2866" +defs["igRenderBullet"][1]["location"] = "imgui_internal:2986" defs["igRenderBullet"][1]["namespace"] = "ImGui" defs["igRenderBullet"][1]["ov_cimguiname"] = "igRenderBullet" defs["igRenderBullet"][1]["ret"] = "void" @@ -22780,7 +23309,7 @@ defs["igRenderCheckMark"][1]["call_args"] = "(draw_list,pos,col,sz)" defs["igRenderCheckMark"][1]["cimguiname"] = "igRenderCheckMark" defs["igRenderCheckMark"][1]["defaults"] = {} defs["igRenderCheckMark"][1]["funcname"] = "RenderCheckMark" -defs["igRenderCheckMark"][1]["location"] = "imgui_internal:2867" +defs["igRenderCheckMark"][1]["location"] = "imgui_internal:2987" defs["igRenderCheckMark"][1]["namespace"] = "ImGui" defs["igRenderCheckMark"][1]["ov_cimguiname"] = "igRenderCheckMark" defs["igRenderCheckMark"][1]["ret"] = "void" @@ -22822,7 +23351,7 @@ defs["igRenderColorRectWithAlphaCheckerboard"][1]["defaults"] = {} defs["igRenderColorRectWithAlphaCheckerboard"][1]["defaults"]["flags"] = "0" defs["igRenderColorRectWithAlphaCheckerboard"][1]["defaults"]["rounding"] = "0.0f" defs["igRenderColorRectWithAlphaCheckerboard"][1]["funcname"] = "RenderColorRectWithAlphaCheckerboard" -defs["igRenderColorRectWithAlphaCheckerboard"][1]["location"] = "imgui_internal:2860" +defs["igRenderColorRectWithAlphaCheckerboard"][1]["location"] = "imgui_internal:2980" defs["igRenderColorRectWithAlphaCheckerboard"][1]["namespace"] = "ImGui" defs["igRenderColorRectWithAlphaCheckerboard"][1]["ov_cimguiname"] = "igRenderColorRectWithAlphaCheckerboard" defs["igRenderColorRectWithAlphaCheckerboard"][1]["ret"] = "void" @@ -22855,7 +23384,7 @@ defs["igRenderFrame"][1]["defaults"] = {} defs["igRenderFrame"][1]["defaults"]["border"] = "true" defs["igRenderFrame"][1]["defaults"]["rounding"] = "0.0f" defs["igRenderFrame"][1]["funcname"] = "RenderFrame" -defs["igRenderFrame"][1]["location"] = "imgui_internal:2858" +defs["igRenderFrame"][1]["location"] = "imgui_internal:2978" defs["igRenderFrame"][1]["namespace"] = "ImGui" defs["igRenderFrame"][1]["ov_cimguiname"] = "igRenderFrame" defs["igRenderFrame"][1]["ret"] = "void" @@ -22881,7 +23410,7 @@ defs["igRenderFrameBorder"][1]["cimguiname"] = "igRenderFrameBorder" defs["igRenderFrameBorder"][1]["defaults"] = {} defs["igRenderFrameBorder"][1]["defaults"]["rounding"] = "0.0f" defs["igRenderFrameBorder"][1]["funcname"] = "RenderFrameBorder" -defs["igRenderFrameBorder"][1]["location"] = "imgui_internal:2859" +defs["igRenderFrameBorder"][1]["location"] = "imgui_internal:2979" defs["igRenderFrameBorder"][1]["namespace"] = "ImGui" defs["igRenderFrameBorder"][1]["ov_cimguiname"] = "igRenderFrameBorder" defs["igRenderFrameBorder"][1]["ret"] = "void" @@ -22918,7 +23447,7 @@ defs["igRenderMouseCursor"][1]["call_args"] = "(draw_list,pos,scale,mouse_cursor defs["igRenderMouseCursor"][1]["cimguiname"] = "igRenderMouseCursor" defs["igRenderMouseCursor"][1]["defaults"] = {} defs["igRenderMouseCursor"][1]["funcname"] = "RenderMouseCursor" -defs["igRenderMouseCursor"][1]["location"] = "imgui_internal:2868" +defs["igRenderMouseCursor"][1]["location"] = "imgui_internal:2988" defs["igRenderMouseCursor"][1]["namespace"] = "ImGui" defs["igRenderMouseCursor"][1]["ov_cimguiname"] = "igRenderMouseCursor" defs["igRenderMouseCursor"][1]["ret"] = "void" @@ -22944,7 +23473,7 @@ defs["igRenderNavHighlight"][1]["cimguiname"] = "igRenderNavHighlight" defs["igRenderNavHighlight"][1]["defaults"] = {} defs["igRenderNavHighlight"][1]["defaults"]["flags"] = "ImGuiNavHighlightFlags_TypeDefault" defs["igRenderNavHighlight"][1]["funcname"] = "RenderNavHighlight" -defs["igRenderNavHighlight"][1]["location"] = "imgui_internal:2861" +defs["igRenderNavHighlight"][1]["location"] = "imgui_internal:2981" defs["igRenderNavHighlight"][1]["namespace"] = "ImGui" defs["igRenderNavHighlight"][1]["ov_cimguiname"] = "igRenderNavHighlight" defs["igRenderNavHighlight"][1]["ret"] = "void" @@ -22968,7 +23497,7 @@ defs["igRenderPlatformWindowsDefault"][1]["defaults"] = {} defs["igRenderPlatformWindowsDefault"][1]["defaults"]["platform_render_arg"] = "NULL" defs["igRenderPlatformWindowsDefault"][1]["defaults"]["renderer_render_arg"] = "NULL" defs["igRenderPlatformWindowsDefault"][1]["funcname"] = "RenderPlatformWindowsDefault" -defs["igRenderPlatformWindowsDefault"][1]["location"] = "imgui:978" +defs["igRenderPlatformWindowsDefault"][1]["location"] = "imgui:980" defs["igRenderPlatformWindowsDefault"][1]["namespace"] = "ImGui" defs["igRenderPlatformWindowsDefault"][1]["ov_cimguiname"] = "igRenderPlatformWindowsDefault" defs["igRenderPlatformWindowsDefault"][1]["ret"] = "void" @@ -23002,7 +23531,7 @@ defs["igRenderRectFilledRangeH"][1]["call_args"] = "(draw_list,rect,col,x_start_ defs["igRenderRectFilledRangeH"][1]["cimguiname"] = "igRenderRectFilledRangeH" defs["igRenderRectFilledRangeH"][1]["defaults"] = {} defs["igRenderRectFilledRangeH"][1]["funcname"] = "RenderRectFilledRangeH" -defs["igRenderRectFilledRangeH"][1]["location"] = "imgui_internal:2871" +defs["igRenderRectFilledRangeH"][1]["location"] = "imgui_internal:2991" defs["igRenderRectFilledRangeH"][1]["namespace"] = "ImGui" defs["igRenderRectFilledRangeH"][1]["ov_cimguiname"] = "igRenderRectFilledRangeH" defs["igRenderRectFilledRangeH"][1]["ret"] = "void" @@ -23033,7 +23562,7 @@ defs["igRenderRectFilledWithHole"][1]["call_args"] = "(draw_list,outer,inner,col defs["igRenderRectFilledWithHole"][1]["cimguiname"] = "igRenderRectFilledWithHole" defs["igRenderRectFilledWithHole"][1]["defaults"] = {} defs["igRenderRectFilledWithHole"][1]["funcname"] = "RenderRectFilledWithHole" -defs["igRenderRectFilledWithHole"][1]["location"] = "imgui_internal:2872" +defs["igRenderRectFilledWithHole"][1]["location"] = "imgui_internal:2992" defs["igRenderRectFilledWithHole"][1]["namespace"] = "ImGui" defs["igRenderRectFilledWithHole"][1]["ov_cimguiname"] = "igRenderRectFilledWithHole" defs["igRenderRectFilledWithHole"][1]["ret"] = "void" @@ -23063,7 +23592,7 @@ defs["igRenderText"][1]["defaults"] = {} defs["igRenderText"][1]["defaults"]["hide_text_after_hash"] = "true" defs["igRenderText"][1]["defaults"]["text_end"] = "NULL" defs["igRenderText"][1]["funcname"] = "RenderText" -defs["igRenderText"][1]["location"] = "imgui_internal:2853" +defs["igRenderText"][1]["location"] = "imgui_internal:2973" defs["igRenderText"][1]["namespace"] = "ImGui" defs["igRenderText"][1]["ov_cimguiname"] = "igRenderText" defs["igRenderText"][1]["ret"] = "void" @@ -23102,7 +23631,7 @@ defs["igRenderTextClipped"][1]["defaults"] = {} defs["igRenderTextClipped"][1]["defaults"]["align"] = "ImVec2(0,0)" defs["igRenderTextClipped"][1]["defaults"]["clip_rect"] = "NULL" defs["igRenderTextClipped"][1]["funcname"] = "RenderTextClipped" -defs["igRenderTextClipped"][1]["location"] = "imgui_internal:2855" +defs["igRenderTextClipped"][1]["location"] = "imgui_internal:2975" defs["igRenderTextClipped"][1]["namespace"] = "ImGui" defs["igRenderTextClipped"][1]["ov_cimguiname"] = "igRenderTextClipped" defs["igRenderTextClipped"][1]["ret"] = "void" @@ -23144,7 +23673,7 @@ defs["igRenderTextClippedEx"][1]["defaults"] = {} defs["igRenderTextClippedEx"][1]["defaults"]["align"] = "ImVec2(0,0)" defs["igRenderTextClippedEx"][1]["defaults"]["clip_rect"] = "NULL" defs["igRenderTextClippedEx"][1]["funcname"] = "RenderTextClippedEx" -defs["igRenderTextClippedEx"][1]["location"] = "imgui_internal:2856" +defs["igRenderTextClippedEx"][1]["location"] = "imgui_internal:2976" defs["igRenderTextClippedEx"][1]["namespace"] = "ImGui" defs["igRenderTextClippedEx"][1]["ov_cimguiname"] = "igRenderTextClippedEx" defs["igRenderTextClippedEx"][1]["ret"] = "void" @@ -23184,7 +23713,7 @@ defs["igRenderTextEllipsis"][1]["call_args"] = "(draw_list,pos_min,pos_max,clip_ defs["igRenderTextEllipsis"][1]["cimguiname"] = "igRenderTextEllipsis" defs["igRenderTextEllipsis"][1]["defaults"] = {} defs["igRenderTextEllipsis"][1]["funcname"] = "RenderTextEllipsis" -defs["igRenderTextEllipsis"][1]["location"] = "imgui_internal:2857" +defs["igRenderTextEllipsis"][1]["location"] = "imgui_internal:2977" defs["igRenderTextEllipsis"][1]["namespace"] = "ImGui" defs["igRenderTextEllipsis"][1]["ov_cimguiname"] = "igRenderTextEllipsis" defs["igRenderTextEllipsis"][1]["ret"] = "void" @@ -23212,7 +23741,7 @@ defs["igRenderTextWrapped"][1]["call_args"] = "(pos,text,text_end,wrap_width)" defs["igRenderTextWrapped"][1]["cimguiname"] = "igRenderTextWrapped" defs["igRenderTextWrapped"][1]["defaults"] = {} defs["igRenderTextWrapped"][1]["funcname"] = "RenderTextWrapped" -defs["igRenderTextWrapped"][1]["location"] = "imgui_internal:2854" +defs["igRenderTextWrapped"][1]["location"] = "imgui_internal:2974" defs["igRenderTextWrapped"][1]["namespace"] = "ImGui" defs["igRenderTextWrapped"][1]["ov_cimguiname"] = "igRenderTextWrapped" defs["igRenderTextWrapped"][1]["ret"] = "void" @@ -23232,7 +23761,7 @@ defs["igResetMouseDragDelta"][1]["cimguiname"] = "igResetMouseDragDelta" defs["igResetMouseDragDelta"][1]["defaults"] = {} defs["igResetMouseDragDelta"][1]["defaults"]["button"] = "0" defs["igResetMouseDragDelta"][1]["funcname"] = "ResetMouseDragDelta" -defs["igResetMouseDragDelta"][1]["location"] = "imgui:941" +defs["igResetMouseDragDelta"][1]["location"] = "imgui:943" defs["igResetMouseDragDelta"][1]["namespace"] = "ImGui" defs["igResetMouseDragDelta"][1]["ov_cimguiname"] = "igResetMouseDragDelta" defs["igResetMouseDragDelta"][1]["ret"] = "void" @@ -23256,7 +23785,7 @@ defs["igSameLine"][1]["defaults"] = {} defs["igSameLine"][1]["defaults"]["offset_from_start_x"] = "0.0f" defs["igSameLine"][1]["defaults"]["spacing"] = "-1.0f" defs["igSameLine"][1]["funcname"] = "SameLine" -defs["igSameLine"][1]["location"] = "imgui:450" +defs["igSameLine"][1]["location"] = "imgui:451" defs["igSameLine"][1]["namespace"] = "ImGui" defs["igSameLine"][1]["ov_cimguiname"] = "igSameLine" defs["igSameLine"][1]["ret"] = "void" @@ -23275,7 +23804,7 @@ defs["igSaveIniSettingsToDisk"][1]["call_args"] = "(ini_filename)" defs["igSaveIniSettingsToDisk"][1]["cimguiname"] = "igSaveIniSettingsToDisk" defs["igSaveIniSettingsToDisk"][1]["defaults"] = {} defs["igSaveIniSettingsToDisk"][1]["funcname"] = "SaveIniSettingsToDisk" -defs["igSaveIniSettingsToDisk"][1]["location"] = "imgui:957" +defs["igSaveIniSettingsToDisk"][1]["location"] = "imgui:959" defs["igSaveIniSettingsToDisk"][1]["namespace"] = "ImGui" defs["igSaveIniSettingsToDisk"][1]["ov_cimguiname"] = "igSaveIniSettingsToDisk" defs["igSaveIniSettingsToDisk"][1]["ret"] = "void" @@ -23295,7 +23824,7 @@ defs["igSaveIniSettingsToMemory"][1]["cimguiname"] = "igSaveIniSettingsToMemory" defs["igSaveIniSettingsToMemory"][1]["defaults"] = {} defs["igSaveIniSettingsToMemory"][1]["defaults"]["out_ini_size"] = "NULL" defs["igSaveIniSettingsToMemory"][1]["funcname"] = "SaveIniSettingsToMemory" -defs["igSaveIniSettingsToMemory"][1]["location"] = "imgui:958" +defs["igSaveIniSettingsToMemory"][1]["location"] = "imgui:960" defs["igSaveIniSettingsToMemory"][1]["namespace"] = "ImGui" defs["igSaveIniSettingsToMemory"][1]["ov_cimguiname"] = "igSaveIniSettingsToMemory" defs["igSaveIniSettingsToMemory"][1]["ret"] = "const char*" @@ -23317,7 +23846,7 @@ defs["igScaleWindowsInViewport"][1]["call_args"] = "(viewport,scale)" defs["igScaleWindowsInViewport"][1]["cimguiname"] = "igScaleWindowsInViewport" defs["igScaleWindowsInViewport"][1]["defaults"] = {} defs["igScaleWindowsInViewport"][1]["funcname"] = "ScaleWindowsInViewport" -defs["igScaleWindowsInViewport"][1]["location"] = "imgui_internal:2589" +defs["igScaleWindowsInViewport"][1]["location"] = "imgui_internal:2694" defs["igScaleWindowsInViewport"][1]["namespace"] = "ImGui" defs["igScaleWindowsInViewport"][1]["ov_cimguiname"] = "igScaleWindowsInViewport" defs["igScaleWindowsInViewport"][1]["ret"] = "void" @@ -23326,30 +23855,102 @@ defs["igScaleWindowsInViewport"][1]["stname"] = "" defs["igScaleWindowsInViewport"]["(ImGuiViewportP*,float)"] = defs["igScaleWindowsInViewport"][1] defs["igScrollToBringRectIntoView"] = {} defs["igScrollToBringRectIntoView"][1] = {} -defs["igScrollToBringRectIntoView"][1]["args"] = "(ImVec2 *pOut,ImGuiWindow* window,const ImRect item_rect)" +defs["igScrollToBringRectIntoView"][1]["args"] = "(ImGuiWindow* window,const ImRect rect)" defs["igScrollToBringRectIntoView"][1]["argsT"] = {} defs["igScrollToBringRectIntoView"][1]["argsT"][1] = {} -defs["igScrollToBringRectIntoView"][1]["argsT"][1]["name"] = "pOut" -defs["igScrollToBringRectIntoView"][1]["argsT"][1]["type"] = "ImVec2*" +defs["igScrollToBringRectIntoView"][1]["argsT"][1]["name"] = "window" +defs["igScrollToBringRectIntoView"][1]["argsT"][1]["type"] = "ImGuiWindow*" defs["igScrollToBringRectIntoView"][1]["argsT"][2] = {} -defs["igScrollToBringRectIntoView"][1]["argsT"][2]["name"] = "window" -defs["igScrollToBringRectIntoView"][1]["argsT"][2]["type"] = "ImGuiWindow*" -defs["igScrollToBringRectIntoView"][1]["argsT"][3] = {} -defs["igScrollToBringRectIntoView"][1]["argsT"][3]["name"] = "item_rect" -defs["igScrollToBringRectIntoView"][1]["argsT"][3]["type"] = "const ImRect" -defs["igScrollToBringRectIntoView"][1]["argsoriginal"] = "(ImGuiWindow* window,const ImRect& item_rect)" -defs["igScrollToBringRectIntoView"][1]["call_args"] = "(window,item_rect)" +defs["igScrollToBringRectIntoView"][1]["argsT"][2]["name"] = "rect" +defs["igScrollToBringRectIntoView"][1]["argsT"][2]["type"] = "const ImRect" +defs["igScrollToBringRectIntoView"][1]["argsoriginal"] = "(ImGuiWindow* window,const ImRect& rect)" +defs["igScrollToBringRectIntoView"][1]["call_args"] = "(window,rect)" defs["igScrollToBringRectIntoView"][1]["cimguiname"] = "igScrollToBringRectIntoView" defs["igScrollToBringRectIntoView"][1]["defaults"] = {} defs["igScrollToBringRectIntoView"][1]["funcname"] = "ScrollToBringRectIntoView" -defs["igScrollToBringRectIntoView"][1]["location"] = "imgui_internal:2609" +defs["igScrollToBringRectIntoView"][1]["location"] = "imgui_internal:2720" defs["igScrollToBringRectIntoView"][1]["namespace"] = "ImGui" -defs["igScrollToBringRectIntoView"][1]["nonUDT"] = 1 defs["igScrollToBringRectIntoView"][1]["ov_cimguiname"] = "igScrollToBringRectIntoView" defs["igScrollToBringRectIntoView"][1]["ret"] = "void" defs["igScrollToBringRectIntoView"][1]["signature"] = "(ImGuiWindow*,const ImRect)" defs["igScrollToBringRectIntoView"][1]["stname"] = "" defs["igScrollToBringRectIntoView"]["(ImGuiWindow*,const ImRect)"] = defs["igScrollToBringRectIntoView"][1] +defs["igScrollToItem"] = {} +defs["igScrollToItem"][1] = {} +defs["igScrollToItem"][1]["args"] = "(ImGuiScrollFlags flags)" +defs["igScrollToItem"][1]["argsT"] = {} +defs["igScrollToItem"][1]["argsT"][1] = {} +defs["igScrollToItem"][1]["argsT"][1]["name"] = "flags" +defs["igScrollToItem"][1]["argsT"][1]["type"] = "ImGuiScrollFlags" +defs["igScrollToItem"][1]["argsoriginal"] = "(ImGuiScrollFlags flags=0)" +defs["igScrollToItem"][1]["call_args"] = "(flags)" +defs["igScrollToItem"][1]["cimguiname"] = "igScrollToItem" +defs["igScrollToItem"][1]["defaults"] = {} +defs["igScrollToItem"][1]["defaults"]["flags"] = "0" +defs["igScrollToItem"][1]["funcname"] = "ScrollToItem" +defs["igScrollToItem"][1]["location"] = "imgui_internal:2716" +defs["igScrollToItem"][1]["namespace"] = "ImGui" +defs["igScrollToItem"][1]["ov_cimguiname"] = "igScrollToItem" +defs["igScrollToItem"][1]["ret"] = "void" +defs["igScrollToItem"][1]["signature"] = "(ImGuiScrollFlags)" +defs["igScrollToItem"][1]["stname"] = "" +defs["igScrollToItem"]["(ImGuiScrollFlags)"] = defs["igScrollToItem"][1] +defs["igScrollToRect"] = {} +defs["igScrollToRect"][1] = {} +defs["igScrollToRect"][1]["args"] = "(ImGuiWindow* window,const ImRect rect,ImGuiScrollFlags flags)" +defs["igScrollToRect"][1]["argsT"] = {} +defs["igScrollToRect"][1]["argsT"][1] = {} +defs["igScrollToRect"][1]["argsT"][1]["name"] = "window" +defs["igScrollToRect"][1]["argsT"][1]["type"] = "ImGuiWindow*" +defs["igScrollToRect"][1]["argsT"][2] = {} +defs["igScrollToRect"][1]["argsT"][2]["name"] = "rect" +defs["igScrollToRect"][1]["argsT"][2]["type"] = "const ImRect" +defs["igScrollToRect"][1]["argsT"][3] = {} +defs["igScrollToRect"][1]["argsT"][3]["name"] = "flags" +defs["igScrollToRect"][1]["argsT"][3]["type"] = "ImGuiScrollFlags" +defs["igScrollToRect"][1]["argsoriginal"] = "(ImGuiWindow* window,const ImRect& rect,ImGuiScrollFlags flags=0)" +defs["igScrollToRect"][1]["call_args"] = "(window,rect,flags)" +defs["igScrollToRect"][1]["cimguiname"] = "igScrollToRect" +defs["igScrollToRect"][1]["defaults"] = {} +defs["igScrollToRect"][1]["defaults"]["flags"] = "0" +defs["igScrollToRect"][1]["funcname"] = "ScrollToRect" +defs["igScrollToRect"][1]["location"] = "imgui_internal:2717" +defs["igScrollToRect"][1]["namespace"] = "ImGui" +defs["igScrollToRect"][1]["ov_cimguiname"] = "igScrollToRect" +defs["igScrollToRect"][1]["ret"] = "void" +defs["igScrollToRect"][1]["signature"] = "(ImGuiWindow*,const ImRect,ImGuiScrollFlags)" +defs["igScrollToRect"][1]["stname"] = "" +defs["igScrollToRect"]["(ImGuiWindow*,const ImRect,ImGuiScrollFlags)"] = defs["igScrollToRect"][1] +defs["igScrollToRectEx"] = {} +defs["igScrollToRectEx"][1] = {} +defs["igScrollToRectEx"][1]["args"] = "(ImVec2 *pOut,ImGuiWindow* window,const ImRect rect,ImGuiScrollFlags flags)" +defs["igScrollToRectEx"][1]["argsT"] = {} +defs["igScrollToRectEx"][1]["argsT"][1] = {} +defs["igScrollToRectEx"][1]["argsT"][1]["name"] = "pOut" +defs["igScrollToRectEx"][1]["argsT"][1]["type"] = "ImVec2*" +defs["igScrollToRectEx"][1]["argsT"][2] = {} +defs["igScrollToRectEx"][1]["argsT"][2]["name"] = "window" +defs["igScrollToRectEx"][1]["argsT"][2]["type"] = "ImGuiWindow*" +defs["igScrollToRectEx"][1]["argsT"][3] = {} +defs["igScrollToRectEx"][1]["argsT"][3]["name"] = "rect" +defs["igScrollToRectEx"][1]["argsT"][3]["type"] = "const ImRect" +defs["igScrollToRectEx"][1]["argsT"][4] = {} +defs["igScrollToRectEx"][1]["argsT"][4]["name"] = "flags" +defs["igScrollToRectEx"][1]["argsT"][4]["type"] = "ImGuiScrollFlags" +defs["igScrollToRectEx"][1]["argsoriginal"] = "(ImGuiWindow* window,const ImRect& rect,ImGuiScrollFlags flags=0)" +defs["igScrollToRectEx"][1]["call_args"] = "(window,rect,flags)" +defs["igScrollToRectEx"][1]["cimguiname"] = "igScrollToRectEx" +defs["igScrollToRectEx"][1]["defaults"] = {} +defs["igScrollToRectEx"][1]["defaults"]["flags"] = "0" +defs["igScrollToRectEx"][1]["funcname"] = "ScrollToRectEx" +defs["igScrollToRectEx"][1]["location"] = "imgui_internal:2718" +defs["igScrollToRectEx"][1]["namespace"] = "ImGui" +defs["igScrollToRectEx"][1]["nonUDT"] = 1 +defs["igScrollToRectEx"][1]["ov_cimguiname"] = "igScrollToRectEx" +defs["igScrollToRectEx"][1]["ret"] = "void" +defs["igScrollToRectEx"][1]["signature"] = "(ImGuiWindow*,const ImRect,ImGuiScrollFlags)" +defs["igScrollToRectEx"][1]["stname"] = "" +defs["igScrollToRectEx"]["(ImGuiWindow*,const ImRect,ImGuiScrollFlags)"] = defs["igScrollToRectEx"][1] defs["igScrollbar"] = {} defs["igScrollbar"][1] = {} defs["igScrollbar"][1]["args"] = "(ImGuiAxis axis)" @@ -23362,7 +23963,7 @@ defs["igScrollbar"][1]["call_args"] = "(axis)" defs["igScrollbar"][1]["cimguiname"] = "igScrollbar" defs["igScrollbar"][1]["defaults"] = {} defs["igScrollbar"][1]["funcname"] = "Scrollbar" -defs["igScrollbar"][1]["location"] = "imgui_internal:2886" +defs["igScrollbar"][1]["location"] = "imgui_internal:3007" defs["igScrollbar"][1]["namespace"] = "ImGui" defs["igScrollbar"][1]["ov_cimguiname"] = "igScrollbar" defs["igScrollbar"][1]["ret"] = "void" @@ -23371,7 +23972,7 @@ defs["igScrollbar"][1]["stname"] = "" defs["igScrollbar"]["(ImGuiAxis)"] = defs["igScrollbar"][1] defs["igScrollbarEx"] = {} defs["igScrollbarEx"][1] = {} -defs["igScrollbarEx"][1]["args"] = "(const ImRect bb,ImGuiID id,ImGuiAxis axis,float* p_scroll_v,float avail_v,float contents_v,ImDrawFlags flags)" +defs["igScrollbarEx"][1]["args"] = "(const ImRect bb,ImGuiID id,ImGuiAxis axis,ImS64* p_scroll_v,ImS64 avail_v,ImS64 contents_v,ImDrawFlags flags)" defs["igScrollbarEx"][1]["argsT"] = {} defs["igScrollbarEx"][1]["argsT"][1] = {} defs["igScrollbarEx"][1]["argsT"][1]["name"] = "bb" @@ -23384,28 +23985,28 @@ defs["igScrollbarEx"][1]["argsT"][3]["name"] = "axis" defs["igScrollbarEx"][1]["argsT"][3]["type"] = "ImGuiAxis" defs["igScrollbarEx"][1]["argsT"][4] = {} defs["igScrollbarEx"][1]["argsT"][4]["name"] = "p_scroll_v" -defs["igScrollbarEx"][1]["argsT"][4]["type"] = "float*" +defs["igScrollbarEx"][1]["argsT"][4]["type"] = "ImS64*" defs["igScrollbarEx"][1]["argsT"][5] = {} defs["igScrollbarEx"][1]["argsT"][5]["name"] = "avail_v" -defs["igScrollbarEx"][1]["argsT"][5]["type"] = "float" +defs["igScrollbarEx"][1]["argsT"][5]["type"] = "ImS64" defs["igScrollbarEx"][1]["argsT"][6] = {} defs["igScrollbarEx"][1]["argsT"][6]["name"] = "contents_v" -defs["igScrollbarEx"][1]["argsT"][6]["type"] = "float" +defs["igScrollbarEx"][1]["argsT"][6]["type"] = "ImS64" defs["igScrollbarEx"][1]["argsT"][7] = {} defs["igScrollbarEx"][1]["argsT"][7]["name"] = "flags" defs["igScrollbarEx"][1]["argsT"][7]["type"] = "ImDrawFlags" -defs["igScrollbarEx"][1]["argsoriginal"] = "(const ImRect& bb,ImGuiID id,ImGuiAxis axis,float* p_scroll_v,float avail_v,float contents_v,ImDrawFlags flags)" +defs["igScrollbarEx"][1]["argsoriginal"] = "(const ImRect& bb,ImGuiID id,ImGuiAxis axis,ImS64* p_scroll_v,ImS64 avail_v,ImS64 contents_v,ImDrawFlags flags)" defs["igScrollbarEx"][1]["call_args"] = "(bb,id,axis,p_scroll_v,avail_v,contents_v,flags)" defs["igScrollbarEx"][1]["cimguiname"] = "igScrollbarEx" defs["igScrollbarEx"][1]["defaults"] = {} defs["igScrollbarEx"][1]["funcname"] = "ScrollbarEx" -defs["igScrollbarEx"][1]["location"] = "imgui_internal:2887" +defs["igScrollbarEx"][1]["location"] = "imgui_internal:3008" defs["igScrollbarEx"][1]["namespace"] = "ImGui" defs["igScrollbarEx"][1]["ov_cimguiname"] = "igScrollbarEx" defs["igScrollbarEx"][1]["ret"] = "bool" -defs["igScrollbarEx"][1]["signature"] = "(const ImRect,ImGuiID,ImGuiAxis,float*,float,float,ImDrawFlags)" +defs["igScrollbarEx"][1]["signature"] = "(const ImRect,ImGuiID,ImGuiAxis,ImS64*,ImS64,ImS64,ImDrawFlags)" defs["igScrollbarEx"][1]["stname"] = "" -defs["igScrollbarEx"]["(const ImRect,ImGuiID,ImGuiAxis,float*,float,float,ImDrawFlags)"] = defs["igScrollbarEx"][1] +defs["igScrollbarEx"]["(const ImRect,ImGuiID,ImGuiAxis,ImS64*,ImS64,ImS64,ImDrawFlags)"] = defs["igScrollbarEx"][1] defs["igSelectable"] = {} defs["igSelectable"][1] = {} defs["igSelectable"][1]["args"] = "(const char* label,bool selected,ImGuiSelectableFlags flags,const ImVec2 size)" @@ -23430,7 +24031,7 @@ defs["igSelectable"][1]["defaults"]["flags"] = "0" defs["igSelectable"][1]["defaults"]["selected"] = "false" defs["igSelectable"][1]["defaults"]["size"] = "ImVec2(0,0)" defs["igSelectable"][1]["funcname"] = "Selectable" -defs["igSelectable"][1]["location"] = "imgui:630" +defs["igSelectable"][1]["location"] = "imgui:631" defs["igSelectable"][1]["namespace"] = "ImGui" defs["igSelectable"][1]["ov_cimguiname"] = "igSelectableBool" defs["igSelectable"][1]["ret"] = "bool" @@ -23458,7 +24059,7 @@ defs["igSelectable"][2]["defaults"] = {} defs["igSelectable"][2]["defaults"]["flags"] = "0" defs["igSelectable"][2]["defaults"]["size"] = "ImVec2(0,0)" defs["igSelectable"][2]["funcname"] = "Selectable" -defs["igSelectable"][2]["location"] = "imgui:631" +defs["igSelectable"][2]["location"] = "imgui:632" defs["igSelectable"][2]["namespace"] = "ImGui" defs["igSelectable"][2]["ov_cimguiname"] = "igSelectableBoolPtr" defs["igSelectable"][2]["ret"] = "bool" @@ -23475,7 +24076,7 @@ defs["igSeparator"][1]["call_args"] = "()" defs["igSeparator"][1]["cimguiname"] = "igSeparator" defs["igSeparator"][1]["defaults"] = {} defs["igSeparator"][1]["funcname"] = "Separator" -defs["igSeparator"][1]["location"] = "imgui:449" +defs["igSeparator"][1]["location"] = "imgui:450" defs["igSeparator"][1]["namespace"] = "ImGui" defs["igSeparator"][1]["ov_cimguiname"] = "igSeparator" defs["igSeparator"][1]["ret"] = "void" @@ -23494,7 +24095,7 @@ defs["igSeparatorEx"][1]["call_args"] = "(flags)" defs["igSeparatorEx"][1]["cimguiname"] = "igSeparatorEx" defs["igSeparatorEx"][1]["defaults"] = {} defs["igSeparatorEx"][1]["funcname"] = "SeparatorEx" -defs["igSeparatorEx"][1]["location"] = "imgui_internal:2893" +defs["igSeparatorEx"][1]["location"] = "imgui_internal:3014" defs["igSeparatorEx"][1]["namespace"] = "ImGui" defs["igSeparatorEx"][1]["ov_cimguiname"] = "igSeparatorEx" defs["igSeparatorEx"][1]["ret"] = "void" @@ -23516,7 +24117,7 @@ defs["igSetActiveID"][1]["call_args"] = "(id,window)" defs["igSetActiveID"][1]["cimguiname"] = "igSetActiveID" defs["igSetActiveID"][1]["defaults"] = {} defs["igSetActiveID"][1]["funcname"] = "SetActiveID" -defs["igSetActiveID"][1]["location"] = "imgui_internal:2617" +defs["igSetActiveID"][1]["location"] = "imgui_internal:2729" defs["igSetActiveID"][1]["namespace"] = "ImGui" defs["igSetActiveID"][1]["ov_cimguiname"] = "igSetActiveID" defs["igSetActiveID"][1]["ret"] = "void" @@ -23532,7 +24133,7 @@ defs["igSetActiveIdUsingNavAndKeys"][1]["call_args"] = "()" defs["igSetActiveIdUsingNavAndKeys"][1]["cimguiname"] = "igSetActiveIdUsingNavAndKeys" defs["igSetActiveIdUsingNavAndKeys"][1]["defaults"] = {} defs["igSetActiveIdUsingNavAndKeys"][1]["funcname"] = "SetActiveIdUsingNavAndKeys" -defs["igSetActiveIdUsingNavAndKeys"][1]["location"] = "imgui_internal:2708" +defs["igSetActiveIdUsingNavAndKeys"][1]["location"] = "imgui_internal:2826" defs["igSetActiveIdUsingNavAndKeys"][1]["namespace"] = "ImGui" defs["igSetActiveIdUsingNavAndKeys"][1]["ov_cimguiname"] = "igSetActiveIdUsingNavAndKeys" defs["igSetActiveIdUsingNavAndKeys"][1]["ret"] = "void" @@ -23558,7 +24159,7 @@ defs["igSetAllocatorFunctions"][1]["cimguiname"] = "igSetAllocatorFunctions" defs["igSetAllocatorFunctions"][1]["defaults"] = {} defs["igSetAllocatorFunctions"][1]["defaults"]["user_data"] = "NULL" defs["igSetAllocatorFunctions"][1]["funcname"] = "SetAllocatorFunctions" -defs["igSetAllocatorFunctions"][1]["location"] = "imgui:968" +defs["igSetAllocatorFunctions"][1]["location"] = "imgui:970" defs["igSetAllocatorFunctions"][1]["namespace"] = "ImGui" defs["igSetAllocatorFunctions"][1]["ov_cimguiname"] = "igSetAllocatorFunctions" defs["igSetAllocatorFunctions"][1]["ret"] = "void" @@ -23577,7 +24178,7 @@ defs["igSetClipboardText"][1]["call_args"] = "(text)" defs["igSetClipboardText"][1]["cimguiname"] = "igSetClipboardText" defs["igSetClipboardText"][1]["defaults"] = {} defs["igSetClipboardText"][1]["funcname"] = "SetClipboardText" -defs["igSetClipboardText"][1]["location"] = "imgui:949" +defs["igSetClipboardText"][1]["location"] = "imgui:951" defs["igSetClipboardText"][1]["namespace"] = "ImGui" defs["igSetClipboardText"][1]["ov_cimguiname"] = "igSetClipboardText" defs["igSetClipboardText"][1]["ret"] = "void" @@ -23596,7 +24197,7 @@ defs["igSetColorEditOptions"][1]["call_args"] = "(flags)" defs["igSetColorEditOptions"][1]["cimguiname"] = "igSetColorEditOptions" defs["igSetColorEditOptions"][1]["defaults"] = {} defs["igSetColorEditOptions"][1]["funcname"] = "SetColorEditOptions" -defs["igSetColorEditOptions"][1]["location"] = "imgui:605" +defs["igSetColorEditOptions"][1]["location"] = "imgui:606" defs["igSetColorEditOptions"][1]["namespace"] = "ImGui" defs["igSetColorEditOptions"][1]["ov_cimguiname"] = "igSetColorEditOptions" defs["igSetColorEditOptions"][1]["ret"] = "void" @@ -23618,7 +24219,7 @@ defs["igSetColumnOffset"][1]["call_args"] = "(column_index,offset_x)" defs["igSetColumnOffset"][1]["cimguiname"] = "igSetColumnOffset" defs["igSetColumnOffset"][1]["defaults"] = {} defs["igSetColumnOffset"][1]["funcname"] = "SetColumnOffset" -defs["igSetColumnOffset"][1]["location"] = "imgui:792" +defs["igSetColumnOffset"][1]["location"] = "imgui:793" defs["igSetColumnOffset"][1]["namespace"] = "ImGui" defs["igSetColumnOffset"][1]["ov_cimguiname"] = "igSetColumnOffset" defs["igSetColumnOffset"][1]["ret"] = "void" @@ -23640,7 +24241,7 @@ defs["igSetColumnWidth"][1]["call_args"] = "(column_index,width)" defs["igSetColumnWidth"][1]["cimguiname"] = "igSetColumnWidth" defs["igSetColumnWidth"][1]["defaults"] = {} defs["igSetColumnWidth"][1]["funcname"] = "SetColumnWidth" -defs["igSetColumnWidth"][1]["location"] = "imgui:790" +defs["igSetColumnWidth"][1]["location"] = "imgui:791" defs["igSetColumnWidth"][1]["namespace"] = "ImGui" defs["igSetColumnWidth"][1]["ov_cimguiname"] = "igSetColumnWidth" defs["igSetColumnWidth"][1]["ret"] = "void" @@ -23678,7 +24279,7 @@ defs["igSetCurrentFont"][1]["call_args"] = "(font)" defs["igSetCurrentFont"][1]["cimguiname"] = "igSetCurrentFont" defs["igSetCurrentFont"][1]["defaults"] = {} defs["igSetCurrentFont"][1]["funcname"] = "SetCurrentFont" -defs["igSetCurrentFont"][1]["location"] = "imgui_internal:2567" +defs["igSetCurrentFont"][1]["location"] = "imgui_internal:2672" defs["igSetCurrentFont"][1]["namespace"] = "ImGui" defs["igSetCurrentFont"][1]["ov_cimguiname"] = "igSetCurrentFont" defs["igSetCurrentFont"][1]["ret"] = "void" @@ -23700,7 +24301,7 @@ defs["igSetCurrentViewport"][1]["call_args"] = "(window,viewport)" defs["igSetCurrentViewport"][1]["cimguiname"] = "igSetCurrentViewport" defs["igSetCurrentViewport"][1]["defaults"] = {} defs["igSetCurrentViewport"][1]["funcname"] = "SetCurrentViewport" -defs["igSetCurrentViewport"][1]["location"] = "imgui_internal:2591" +defs["igSetCurrentViewport"][1]["location"] = "imgui_internal:2696" defs["igSetCurrentViewport"][1]["namespace"] = "ImGui" defs["igSetCurrentViewport"][1]["ov_cimguiname"] = "igSetCurrentViewport" defs["igSetCurrentViewport"][1]["ret"] = "void" @@ -23719,7 +24320,7 @@ defs["igSetCursorPos"][1]["call_args"] = "(local_pos)" defs["igSetCursorPos"][1]["cimguiname"] = "igSetCursorPos" defs["igSetCursorPos"][1]["defaults"] = {} defs["igSetCursorPos"][1]["funcname"] = "SetCursorPos" -defs["igSetCursorPos"][1]["location"] = "imgui:461" +defs["igSetCursorPos"][1]["location"] = "imgui:462" defs["igSetCursorPos"][1]["namespace"] = "ImGui" defs["igSetCursorPos"][1]["ov_cimguiname"] = "igSetCursorPos" defs["igSetCursorPos"][1]["ret"] = "void" @@ -23738,7 +24339,7 @@ defs["igSetCursorPosX"][1]["call_args"] = "(local_x)" defs["igSetCursorPosX"][1]["cimguiname"] = "igSetCursorPosX" defs["igSetCursorPosX"][1]["defaults"] = {} defs["igSetCursorPosX"][1]["funcname"] = "SetCursorPosX" -defs["igSetCursorPosX"][1]["location"] = "imgui:462" +defs["igSetCursorPosX"][1]["location"] = "imgui:463" defs["igSetCursorPosX"][1]["namespace"] = "ImGui" defs["igSetCursorPosX"][1]["ov_cimguiname"] = "igSetCursorPosX" defs["igSetCursorPosX"][1]["ret"] = "void" @@ -23757,7 +24358,7 @@ defs["igSetCursorPosY"][1]["call_args"] = "(local_y)" defs["igSetCursorPosY"][1]["cimguiname"] = "igSetCursorPosY" defs["igSetCursorPosY"][1]["defaults"] = {} defs["igSetCursorPosY"][1]["funcname"] = "SetCursorPosY" -defs["igSetCursorPosY"][1]["location"] = "imgui:463" +defs["igSetCursorPosY"][1]["location"] = "imgui:464" defs["igSetCursorPosY"][1]["namespace"] = "ImGui" defs["igSetCursorPosY"][1]["ov_cimguiname"] = "igSetCursorPosY" defs["igSetCursorPosY"][1]["ret"] = "void" @@ -23776,7 +24377,7 @@ defs["igSetCursorScreenPos"][1]["call_args"] = "(pos)" defs["igSetCursorScreenPos"][1]["cimguiname"] = "igSetCursorScreenPos" defs["igSetCursorScreenPos"][1]["defaults"] = {} defs["igSetCursorScreenPos"][1]["funcname"] = "SetCursorScreenPos" -defs["igSetCursorScreenPos"][1]["location"] = "imgui:466" +defs["igSetCursorScreenPos"][1]["location"] = "imgui:467" defs["igSetCursorScreenPos"][1]["namespace"] = "ImGui" defs["igSetCursorScreenPos"][1]["ov_cimguiname"] = "igSetCursorScreenPos" defs["igSetCursorScreenPos"][1]["ret"] = "void" @@ -23805,7 +24406,7 @@ defs["igSetDragDropPayload"][1]["cimguiname"] = "igSetDragDropPayload" defs["igSetDragDropPayload"][1]["defaults"] = {} defs["igSetDragDropPayload"][1]["defaults"]["cond"] = "0" defs["igSetDragDropPayload"][1]["funcname"] = "SetDragDropPayload" -defs["igSetDragDropPayload"][1]["location"] = "imgui:839" +defs["igSetDragDropPayload"][1]["location"] = "imgui:841" defs["igSetDragDropPayload"][1]["namespace"] = "ImGui" defs["igSetDragDropPayload"][1]["ov_cimguiname"] = "igSetDragDropPayload" defs["igSetDragDropPayload"][1]["ret"] = "bool" @@ -23827,7 +24428,7 @@ defs["igSetFocusID"][1]["call_args"] = "(id,window)" defs["igSetFocusID"][1]["cimguiname"] = "igSetFocusID" defs["igSetFocusID"][1]["defaults"] = {} defs["igSetFocusID"][1]["funcname"] = "SetFocusID" -defs["igSetFocusID"][1]["location"] = "imgui_internal:2618" +defs["igSetFocusID"][1]["location"] = "imgui_internal:2730" defs["igSetFocusID"][1]["namespace"] = "ImGui" defs["igSetFocusID"][1]["ov_cimguiname"] = "igSetFocusID" defs["igSetFocusID"][1]["ret"] = "void" @@ -23846,7 +24447,7 @@ defs["igSetHoveredID"][1]["call_args"] = "(id)" defs["igSetHoveredID"][1]["cimguiname"] = "igSetHoveredID" defs["igSetHoveredID"][1]["defaults"] = {} defs["igSetHoveredID"][1]["funcname"] = "SetHoveredID" -defs["igSetHoveredID"][1]["location"] = "imgui_internal:2621" +defs["igSetHoveredID"][1]["location"] = "imgui_internal:2733" defs["igSetHoveredID"][1]["namespace"] = "ImGui" defs["igSetHoveredID"][1]["ov_cimguiname"] = "igSetHoveredID" defs["igSetHoveredID"][1]["ret"] = "void" @@ -23862,7 +24463,7 @@ defs["igSetItemAllowOverlap"][1]["call_args"] = "()" defs["igSetItemAllowOverlap"][1]["cimguiname"] = "igSetItemAllowOverlap" defs["igSetItemAllowOverlap"][1]["defaults"] = {} defs["igSetItemAllowOverlap"][1]["funcname"] = "SetItemAllowOverlap" -defs["igSetItemAllowOverlap"][1]["location"] = "imgui:882" +defs["igSetItemAllowOverlap"][1]["location"] = "imgui:884" defs["igSetItemAllowOverlap"][1]["namespace"] = "ImGui" defs["igSetItemAllowOverlap"][1]["ov_cimguiname"] = "igSetItemAllowOverlap" defs["igSetItemAllowOverlap"][1]["ret"] = "void" @@ -23878,7 +24479,7 @@ defs["igSetItemDefaultFocus"][1]["call_args"] = "()" defs["igSetItemDefaultFocus"][1]["cimguiname"] = "igSetItemDefaultFocus" defs["igSetItemDefaultFocus"][1]["defaults"] = {} defs["igSetItemDefaultFocus"][1]["funcname"] = "SetItemDefaultFocus" -defs["igSetItemDefaultFocus"][1]["location"] = "imgui:860" +defs["igSetItemDefaultFocus"][1]["location"] = "imgui:862" defs["igSetItemDefaultFocus"][1]["namespace"] = "ImGui" defs["igSetItemDefaultFocus"][1]["ov_cimguiname"] = "igSetItemDefaultFocus" defs["igSetItemDefaultFocus"][1]["ret"] = "void" @@ -23894,7 +24495,7 @@ defs["igSetItemUsingMouseWheel"][1]["call_args"] = "()" defs["igSetItemUsingMouseWheel"][1]["cimguiname"] = "igSetItemUsingMouseWheel" defs["igSetItemUsingMouseWheel"][1]["defaults"] = {} defs["igSetItemUsingMouseWheel"][1]["funcname"] = "SetItemUsingMouseWheel" -defs["igSetItemUsingMouseWheel"][1]["location"] = "imgui_internal:2707" +defs["igSetItemUsingMouseWheel"][1]["location"] = "imgui_internal:2825" defs["igSetItemUsingMouseWheel"][1]["namespace"] = "ImGui" defs["igSetItemUsingMouseWheel"][1]["ov_cimguiname"] = "igSetItemUsingMouseWheel" defs["igSetItemUsingMouseWheel"][1]["ret"] = "void" @@ -23914,7 +24515,7 @@ defs["igSetKeyboardFocusHere"][1]["cimguiname"] = "igSetKeyboardFocusHere" defs["igSetKeyboardFocusHere"][1]["defaults"] = {} defs["igSetKeyboardFocusHere"][1]["defaults"]["offset"] = "0" defs["igSetKeyboardFocusHere"][1]["funcname"] = "SetKeyboardFocusHere" -defs["igSetKeyboardFocusHere"][1]["location"] = "imgui:861" +defs["igSetKeyboardFocusHere"][1]["location"] = "imgui:863" defs["igSetKeyboardFocusHere"][1]["namespace"] = "ImGui" defs["igSetKeyboardFocusHere"][1]["ov_cimguiname"] = "igSetKeyboardFocusHere" defs["igSetKeyboardFocusHere"][1]["ret"] = "void" @@ -23942,7 +24543,7 @@ defs["igSetLastItemData"][1]["call_args"] = "(item_id,in_flags,status_flags,item defs["igSetLastItemData"][1]["cimguiname"] = "igSetLastItemData" defs["igSetLastItemData"][1]["defaults"] = {} defs["igSetLastItemData"][1]["funcname"] = "SetLastItemData" -defs["igSetLastItemData"][1]["location"] = "imgui_internal:2634" +defs["igSetLastItemData"][1]["location"] = "imgui_internal:2745" defs["igSetLastItemData"][1]["namespace"] = "ImGui" defs["igSetLastItemData"][1]["ov_cimguiname"] = "igSetLastItemData" defs["igSetLastItemData"][1]["ret"] = "void" @@ -23961,7 +24562,7 @@ defs["igSetMouseCursor"][1]["call_args"] = "(cursor_type)" defs["igSetMouseCursor"][1]["cimguiname"] = "igSetMouseCursor" defs["igSetMouseCursor"][1]["defaults"] = {} defs["igSetMouseCursor"][1]["funcname"] = "SetMouseCursor" -defs["igSetMouseCursor"][1]["location"] = "imgui:943" +defs["igSetMouseCursor"][1]["location"] = "imgui:945" defs["igSetMouseCursor"][1]["namespace"] = "ImGui" defs["igSetMouseCursor"][1]["ov_cimguiname"] = "igSetMouseCursor" defs["igSetMouseCursor"][1]["ret"] = "void" @@ -23989,7 +24590,7 @@ defs["igSetNavID"][1]["call_args"] = "(id,nav_layer,focus_scope_id,rect_rel)" defs["igSetNavID"][1]["cimguiname"] = "igSetNavID" defs["igSetNavID"][1]["defaults"] = {} defs["igSetNavID"][1]["funcname"] = "SetNavID" -defs["igSetNavID"][1]["location"] = "imgui_internal:2695" +defs["igSetNavID"][1]["location"] = "imgui_internal:2813" defs["igSetNavID"][1]["namespace"] = "ImGui" defs["igSetNavID"][1]["ov_cimguiname"] = "igSetNavID" defs["igSetNavID"][1]["ret"] = "void" @@ -24012,7 +24613,7 @@ defs["igSetNextItemOpen"][1]["cimguiname"] = "igSetNextItemOpen" defs["igSetNextItemOpen"][1]["defaults"] = {} defs["igSetNextItemOpen"][1]["defaults"]["cond"] = "0" defs["igSetNextItemOpen"][1]["funcname"] = "SetNextItemOpen" -defs["igSetNextItemOpen"][1]["location"] = "imgui:625" +defs["igSetNextItemOpen"][1]["location"] = "imgui:626" defs["igSetNextItemOpen"][1]["namespace"] = "ImGui" defs["igSetNextItemOpen"][1]["ov_cimguiname"] = "igSetNextItemOpen" defs["igSetNextItemOpen"][1]["ret"] = "void" @@ -24031,7 +24632,7 @@ defs["igSetNextItemWidth"][1]["call_args"] = "(item_width)" defs["igSetNextItemWidth"][1]["cimguiname"] = "igSetNextItemWidth" defs["igSetNextItemWidth"][1]["defaults"] = {} defs["igSetNextItemWidth"][1]["funcname"] = "SetNextItemWidth" -defs["igSetNextItemWidth"][1]["location"] = "imgui:427" +defs["igSetNextItemWidth"][1]["location"] = "imgui:428" defs["igSetNextItemWidth"][1]["namespace"] = "ImGui" defs["igSetNextItemWidth"][1]["ov_cimguiname"] = "igSetNextItemWidth" defs["igSetNextItemWidth"][1]["ret"] = "void" @@ -24050,7 +24651,7 @@ defs["igSetNextWindowBgAlpha"][1]["call_args"] = "(alpha)" defs["igSetNextWindowBgAlpha"][1]["cimguiname"] = "igSetNextWindowBgAlpha" defs["igSetNextWindowBgAlpha"][1]["defaults"] = {} defs["igSetNextWindowBgAlpha"][1]["funcname"] = "SetNextWindowBgAlpha" -defs["igSetNextWindowBgAlpha"][1]["location"] = "imgui:378" +defs["igSetNextWindowBgAlpha"][1]["location"] = "imgui:379" defs["igSetNextWindowBgAlpha"][1]["namespace"] = "ImGui" defs["igSetNextWindowBgAlpha"][1]["ov_cimguiname"] = "igSetNextWindowBgAlpha" defs["igSetNextWindowBgAlpha"][1]["ret"] = "void" @@ -24069,7 +24670,7 @@ defs["igSetNextWindowClass"][1]["call_args"] = "(window_class)" defs["igSetNextWindowClass"][1]["cimguiname"] = "igSetNextWindowClass" defs["igSetNextWindowClass"][1]["defaults"] = {} defs["igSetNextWindowClass"][1]["funcname"] = "SetNextWindowClass" -defs["igSetNextWindowClass"][1]["location"] = "imgui:819" +defs["igSetNextWindowClass"][1]["location"] = "imgui:821" defs["igSetNextWindowClass"][1]["namespace"] = "ImGui" defs["igSetNextWindowClass"][1]["ov_cimguiname"] = "igSetNextWindowClass" defs["igSetNextWindowClass"][1]["ret"] = "void" @@ -24092,7 +24693,7 @@ defs["igSetNextWindowCollapsed"][1]["cimguiname"] = "igSetNextWindowCollapsed" defs["igSetNextWindowCollapsed"][1]["defaults"] = {} defs["igSetNextWindowCollapsed"][1]["defaults"]["cond"] = "0" defs["igSetNextWindowCollapsed"][1]["funcname"] = "SetNextWindowCollapsed" -defs["igSetNextWindowCollapsed"][1]["location"] = "imgui:376" +defs["igSetNextWindowCollapsed"][1]["location"] = "imgui:377" defs["igSetNextWindowCollapsed"][1]["namespace"] = "ImGui" defs["igSetNextWindowCollapsed"][1]["ov_cimguiname"] = "igSetNextWindowCollapsed" defs["igSetNextWindowCollapsed"][1]["ret"] = "void" @@ -24111,7 +24712,7 @@ defs["igSetNextWindowContentSize"][1]["call_args"] = "(size)" defs["igSetNextWindowContentSize"][1]["cimguiname"] = "igSetNextWindowContentSize" defs["igSetNextWindowContentSize"][1]["defaults"] = {} defs["igSetNextWindowContentSize"][1]["funcname"] = "SetNextWindowContentSize" -defs["igSetNextWindowContentSize"][1]["location"] = "imgui:375" +defs["igSetNextWindowContentSize"][1]["location"] = "imgui:376" defs["igSetNextWindowContentSize"][1]["namespace"] = "ImGui" defs["igSetNextWindowContentSize"][1]["ov_cimguiname"] = "igSetNextWindowContentSize" defs["igSetNextWindowContentSize"][1]["ret"] = "void" @@ -24134,7 +24735,7 @@ defs["igSetNextWindowDockID"][1]["cimguiname"] = "igSetNextWindowDockID" defs["igSetNextWindowDockID"][1]["defaults"] = {} defs["igSetNextWindowDockID"][1]["defaults"]["cond"] = "0" defs["igSetNextWindowDockID"][1]["funcname"] = "SetNextWindowDockID" -defs["igSetNextWindowDockID"][1]["location"] = "imgui:818" +defs["igSetNextWindowDockID"][1]["location"] = "imgui:820" defs["igSetNextWindowDockID"][1]["namespace"] = "ImGui" defs["igSetNextWindowDockID"][1]["ov_cimguiname"] = "igSetNextWindowDockID" defs["igSetNextWindowDockID"][1]["ret"] = "void" @@ -24150,7 +24751,7 @@ defs["igSetNextWindowFocus"][1]["call_args"] = "()" defs["igSetNextWindowFocus"][1]["cimguiname"] = "igSetNextWindowFocus" defs["igSetNextWindowFocus"][1]["defaults"] = {} defs["igSetNextWindowFocus"][1]["funcname"] = "SetNextWindowFocus" -defs["igSetNextWindowFocus"][1]["location"] = "imgui:377" +defs["igSetNextWindowFocus"][1]["location"] = "imgui:378" defs["igSetNextWindowFocus"][1]["namespace"] = "ImGui" defs["igSetNextWindowFocus"][1]["ov_cimguiname"] = "igSetNextWindowFocus" defs["igSetNextWindowFocus"][1]["ret"] = "void" @@ -24177,7 +24778,7 @@ defs["igSetNextWindowPos"][1]["defaults"] = {} defs["igSetNextWindowPos"][1]["defaults"]["cond"] = "0" defs["igSetNextWindowPos"][1]["defaults"]["pivot"] = "ImVec2(0,0)" defs["igSetNextWindowPos"][1]["funcname"] = "SetNextWindowPos" -defs["igSetNextWindowPos"][1]["location"] = "imgui:372" +defs["igSetNextWindowPos"][1]["location"] = "imgui:373" defs["igSetNextWindowPos"][1]["namespace"] = "ImGui" defs["igSetNextWindowPos"][1]["ov_cimguiname"] = "igSetNextWindowPos" defs["igSetNextWindowPos"][1]["ret"] = "void" @@ -24196,7 +24797,7 @@ defs["igSetNextWindowScroll"][1]["call_args"] = "(scroll)" defs["igSetNextWindowScroll"][1]["cimguiname"] = "igSetNextWindowScroll" defs["igSetNextWindowScroll"][1]["defaults"] = {} defs["igSetNextWindowScroll"][1]["funcname"] = "SetNextWindowScroll" -defs["igSetNextWindowScroll"][1]["location"] = "imgui_internal:2604" +defs["igSetNextWindowScroll"][1]["location"] = "imgui_internal:2709" defs["igSetNextWindowScroll"][1]["namespace"] = "ImGui" defs["igSetNextWindowScroll"][1]["ov_cimguiname"] = "igSetNextWindowScroll" defs["igSetNextWindowScroll"][1]["ret"] = "void" @@ -24219,7 +24820,7 @@ defs["igSetNextWindowSize"][1]["cimguiname"] = "igSetNextWindowSize" defs["igSetNextWindowSize"][1]["defaults"] = {} defs["igSetNextWindowSize"][1]["defaults"]["cond"] = "0" defs["igSetNextWindowSize"][1]["funcname"] = "SetNextWindowSize" -defs["igSetNextWindowSize"][1]["location"] = "imgui:373" +defs["igSetNextWindowSize"][1]["location"] = "imgui:374" defs["igSetNextWindowSize"][1]["namespace"] = "ImGui" defs["igSetNextWindowSize"][1]["ov_cimguiname"] = "igSetNextWindowSize" defs["igSetNextWindowSize"][1]["ret"] = "void" @@ -24249,7 +24850,7 @@ defs["igSetNextWindowSizeConstraints"][1]["defaults"] = {} defs["igSetNextWindowSizeConstraints"][1]["defaults"]["custom_callback"] = "NULL" defs["igSetNextWindowSizeConstraints"][1]["defaults"]["custom_callback_data"] = "NULL" defs["igSetNextWindowSizeConstraints"][1]["funcname"] = "SetNextWindowSizeConstraints" -defs["igSetNextWindowSizeConstraints"][1]["location"] = "imgui:374" +defs["igSetNextWindowSizeConstraints"][1]["location"] = "imgui:375" defs["igSetNextWindowSizeConstraints"][1]["namespace"] = "ImGui" defs["igSetNextWindowSizeConstraints"][1]["ov_cimguiname"] = "igSetNextWindowSizeConstraints" defs["igSetNextWindowSizeConstraints"][1]["ret"] = "void" @@ -24268,7 +24869,7 @@ defs["igSetNextWindowViewport"][1]["call_args"] = "(viewport_id)" defs["igSetNextWindowViewport"][1]["cimguiname"] = "igSetNextWindowViewport" defs["igSetNextWindowViewport"][1]["defaults"] = {} defs["igSetNextWindowViewport"][1]["funcname"] = "SetNextWindowViewport" -defs["igSetNextWindowViewport"][1]["location"] = "imgui:379" +defs["igSetNextWindowViewport"][1]["location"] = "imgui:380" defs["igSetNextWindowViewport"][1]["namespace"] = "ImGui" defs["igSetNextWindowViewport"][1]["ov_cimguiname"] = "igSetNextWindowViewport" defs["igSetNextWindowViewport"][1]["ret"] = "void" @@ -24291,7 +24892,7 @@ defs["igSetScrollFromPosX"][1]["cimguiname"] = "igSetScrollFromPosX" defs["igSetScrollFromPosX"][1]["defaults"] = {} defs["igSetScrollFromPosX"][1]["defaults"]["center_x_ratio"] = "0.5f" defs["igSetScrollFromPosX"][1]["funcname"] = "SetScrollFromPosX" -defs["igSetScrollFromPosX"][1]["location"] = "imgui:407" +defs["igSetScrollFromPosX"][1]["location"] = "imgui:408" defs["igSetScrollFromPosX"][1]["namespace"] = "ImGui" defs["igSetScrollFromPosX"][1]["ov_cimguiname"] = "igSetScrollFromPosXFloat" defs["igSetScrollFromPosX"][1]["ret"] = "void" @@ -24314,7 +24915,7 @@ defs["igSetScrollFromPosX"][2]["call_args"] = "(window,local_x,center_x_ratio)" defs["igSetScrollFromPosX"][2]["cimguiname"] = "igSetScrollFromPosX" defs["igSetScrollFromPosX"][2]["defaults"] = {} defs["igSetScrollFromPosX"][2]["funcname"] = "SetScrollFromPosX" -defs["igSetScrollFromPosX"][2]["location"] = "imgui_internal:2607" +defs["igSetScrollFromPosX"][2]["location"] = "imgui_internal:2712" defs["igSetScrollFromPosX"][2]["namespace"] = "ImGui" defs["igSetScrollFromPosX"][2]["ov_cimguiname"] = "igSetScrollFromPosXWindowPtr" defs["igSetScrollFromPosX"][2]["ret"] = "void" @@ -24338,7 +24939,7 @@ defs["igSetScrollFromPosY"][1]["cimguiname"] = "igSetScrollFromPosY" defs["igSetScrollFromPosY"][1]["defaults"] = {} defs["igSetScrollFromPosY"][1]["defaults"]["center_y_ratio"] = "0.5f" defs["igSetScrollFromPosY"][1]["funcname"] = "SetScrollFromPosY" -defs["igSetScrollFromPosY"][1]["location"] = "imgui:408" +defs["igSetScrollFromPosY"][1]["location"] = "imgui:409" defs["igSetScrollFromPosY"][1]["namespace"] = "ImGui" defs["igSetScrollFromPosY"][1]["ov_cimguiname"] = "igSetScrollFromPosYFloat" defs["igSetScrollFromPosY"][1]["ret"] = "void" @@ -24361,7 +24962,7 @@ defs["igSetScrollFromPosY"][2]["call_args"] = "(window,local_y,center_y_ratio)" defs["igSetScrollFromPosY"][2]["cimguiname"] = "igSetScrollFromPosY" defs["igSetScrollFromPosY"][2]["defaults"] = {} defs["igSetScrollFromPosY"][2]["funcname"] = "SetScrollFromPosY" -defs["igSetScrollFromPosY"][2]["location"] = "imgui_internal:2608" +defs["igSetScrollFromPosY"][2]["location"] = "imgui_internal:2713" defs["igSetScrollFromPosY"][2]["namespace"] = "ImGui" defs["igSetScrollFromPosY"][2]["ov_cimguiname"] = "igSetScrollFromPosYWindowPtr" defs["igSetScrollFromPosY"][2]["ret"] = "void" @@ -24382,7 +24983,7 @@ defs["igSetScrollHereX"][1]["cimguiname"] = "igSetScrollHereX" defs["igSetScrollHereX"][1]["defaults"] = {} defs["igSetScrollHereX"][1]["defaults"]["center_x_ratio"] = "0.5f" defs["igSetScrollHereX"][1]["funcname"] = "SetScrollHereX" -defs["igSetScrollHereX"][1]["location"] = "imgui:405" +defs["igSetScrollHereX"][1]["location"] = "imgui:406" defs["igSetScrollHereX"][1]["namespace"] = "ImGui" defs["igSetScrollHereX"][1]["ov_cimguiname"] = "igSetScrollHereX" defs["igSetScrollHereX"][1]["ret"] = "void" @@ -24402,7 +25003,7 @@ defs["igSetScrollHereY"][1]["cimguiname"] = "igSetScrollHereY" defs["igSetScrollHereY"][1]["defaults"] = {} defs["igSetScrollHereY"][1]["defaults"]["center_y_ratio"] = "0.5f" defs["igSetScrollHereY"][1]["funcname"] = "SetScrollHereY" -defs["igSetScrollHereY"][1]["location"] = "imgui:406" +defs["igSetScrollHereY"][1]["location"] = "imgui:407" defs["igSetScrollHereY"][1]["namespace"] = "ImGui" defs["igSetScrollHereY"][1]["ov_cimguiname"] = "igSetScrollHereY" defs["igSetScrollHereY"][1]["ret"] = "void" @@ -24421,7 +25022,7 @@ defs["igSetScrollX"][1]["call_args"] = "(scroll_x)" defs["igSetScrollX"][1]["cimguiname"] = "igSetScrollX" defs["igSetScrollX"][1]["defaults"] = {} defs["igSetScrollX"][1]["funcname"] = "SetScrollX" -defs["igSetScrollX"][1]["location"] = "imgui:401" +defs["igSetScrollX"][1]["location"] = "imgui:402" defs["igSetScrollX"][1]["namespace"] = "ImGui" defs["igSetScrollX"][1]["ov_cimguiname"] = "igSetScrollXFloat" defs["igSetScrollX"][1]["ret"] = "void" @@ -24441,7 +25042,7 @@ defs["igSetScrollX"][2]["call_args"] = "(window,scroll_x)" defs["igSetScrollX"][2]["cimguiname"] = "igSetScrollX" defs["igSetScrollX"][2]["defaults"] = {} defs["igSetScrollX"][2]["funcname"] = "SetScrollX" -defs["igSetScrollX"][2]["location"] = "imgui_internal:2605" +defs["igSetScrollX"][2]["location"] = "imgui_internal:2710" defs["igSetScrollX"][2]["namespace"] = "ImGui" defs["igSetScrollX"][2]["ov_cimguiname"] = "igSetScrollXWindowPtr" defs["igSetScrollX"][2]["ret"] = "void" @@ -24461,7 +25062,7 @@ defs["igSetScrollY"][1]["call_args"] = "(scroll_y)" defs["igSetScrollY"][1]["cimguiname"] = "igSetScrollY" defs["igSetScrollY"][1]["defaults"] = {} defs["igSetScrollY"][1]["funcname"] = "SetScrollY" -defs["igSetScrollY"][1]["location"] = "imgui:402" +defs["igSetScrollY"][1]["location"] = "imgui:403" defs["igSetScrollY"][1]["namespace"] = "ImGui" defs["igSetScrollY"][1]["ov_cimguiname"] = "igSetScrollYFloat" defs["igSetScrollY"][1]["ret"] = "void" @@ -24481,7 +25082,7 @@ defs["igSetScrollY"][2]["call_args"] = "(window,scroll_y)" defs["igSetScrollY"][2]["cimguiname"] = "igSetScrollY" defs["igSetScrollY"][2]["defaults"] = {} defs["igSetScrollY"][2]["funcname"] = "SetScrollY" -defs["igSetScrollY"][2]["location"] = "imgui_internal:2606" +defs["igSetScrollY"][2]["location"] = "imgui_internal:2711" defs["igSetScrollY"][2]["namespace"] = "ImGui" defs["igSetScrollY"][2]["ov_cimguiname"] = "igSetScrollYWindowPtr" defs["igSetScrollY"][2]["ret"] = "void" @@ -24501,7 +25102,7 @@ defs["igSetStateStorage"][1]["call_args"] = "(storage)" defs["igSetStateStorage"][1]["cimguiname"] = "igSetStateStorage" defs["igSetStateStorage"][1]["defaults"] = {} defs["igSetStateStorage"][1]["funcname"] = "SetStateStorage" -defs["igSetStateStorage"][1]["location"] = "imgui:901" +defs["igSetStateStorage"][1]["location"] = "imgui:903" defs["igSetStateStorage"][1]["namespace"] = "ImGui" defs["igSetStateStorage"][1]["ov_cimguiname"] = "igSetStateStorage" defs["igSetStateStorage"][1]["ret"] = "void" @@ -24520,7 +25121,7 @@ defs["igSetTabItemClosed"][1]["call_args"] = "(tab_or_docked_window_label)" defs["igSetTabItemClosed"][1]["cimguiname"] = "igSetTabItemClosed" defs["igSetTabItemClosed"][1]["defaults"] = {} defs["igSetTabItemClosed"][1]["funcname"] = "SetTabItemClosed" -defs["igSetTabItemClosed"][1]["location"] = "imgui:802" +defs["igSetTabItemClosed"][1]["location"] = "imgui:803" defs["igSetTabItemClosed"][1]["namespace"] = "ImGui" defs["igSetTabItemClosed"][1]["ov_cimguiname"] = "igSetTabItemClosed" defs["igSetTabItemClosed"][1]["ret"] = "void" @@ -24543,7 +25144,7 @@ defs["igSetTooltip"][1]["cimguiname"] = "igSetTooltip" defs["igSetTooltip"][1]["defaults"] = {} defs["igSetTooltip"][1]["funcname"] = "SetTooltip" defs["igSetTooltip"][1]["isvararg"] = "...)" -defs["igSetTooltip"][1]["location"] = "imgui:676" +defs["igSetTooltip"][1]["location"] = "imgui:677" defs["igSetTooltip"][1]["namespace"] = "ImGui" defs["igSetTooltip"][1]["ov_cimguiname"] = "igSetTooltip" defs["igSetTooltip"][1]["ret"] = "void" @@ -24565,7 +25166,7 @@ defs["igSetTooltipV"][1]["call_args"] = "(fmt,args)" defs["igSetTooltipV"][1]["cimguiname"] = "igSetTooltipV" defs["igSetTooltipV"][1]["defaults"] = {} defs["igSetTooltipV"][1]["funcname"] = "SetTooltipV" -defs["igSetTooltipV"][1]["location"] = "imgui:677" +defs["igSetTooltipV"][1]["location"] = "imgui:678" defs["igSetTooltipV"][1]["namespace"] = "ImGui" defs["igSetTooltipV"][1]["ov_cimguiname"] = "igSetTooltipV" defs["igSetTooltipV"][1]["ret"] = "void" @@ -24587,7 +25188,7 @@ defs["igSetWindowClipRectBeforeSetChannel"][1]["call_args"] = "(window,clip_rect defs["igSetWindowClipRectBeforeSetChannel"][1]["cimguiname"] = "igSetWindowClipRectBeforeSetChannel" defs["igSetWindowClipRectBeforeSetChannel"][1]["defaults"] = {} defs["igSetWindowClipRectBeforeSetChannel"][1]["funcname"] = "SetWindowClipRectBeforeSetChannel" -defs["igSetWindowClipRectBeforeSetChannel"][1]["location"] = "imgui_internal:2773" +defs["igSetWindowClipRectBeforeSetChannel"][1]["location"] = "imgui_internal:2893" defs["igSetWindowClipRectBeforeSetChannel"][1]["namespace"] = "ImGui" defs["igSetWindowClipRectBeforeSetChannel"][1]["ov_cimguiname"] = "igSetWindowClipRectBeforeSetChannel" defs["igSetWindowClipRectBeforeSetChannel"][1]["ret"] = "void" @@ -24610,7 +25211,7 @@ defs["igSetWindowCollapsed"][1]["cimguiname"] = "igSetWindowCollapsed" defs["igSetWindowCollapsed"][1]["defaults"] = {} defs["igSetWindowCollapsed"][1]["defaults"]["cond"] = "0" defs["igSetWindowCollapsed"][1]["funcname"] = "SetWindowCollapsed" -defs["igSetWindowCollapsed"][1]["location"] = "imgui:382" +defs["igSetWindowCollapsed"][1]["location"] = "imgui:383" defs["igSetWindowCollapsed"][1]["namespace"] = "ImGui" defs["igSetWindowCollapsed"][1]["ov_cimguiname"] = "igSetWindowCollapsedBool" defs["igSetWindowCollapsed"][1]["ret"] = "void" @@ -24634,7 +25235,7 @@ defs["igSetWindowCollapsed"][2]["cimguiname"] = "igSetWindowCollapsed" defs["igSetWindowCollapsed"][2]["defaults"] = {} defs["igSetWindowCollapsed"][2]["defaults"]["cond"] = "0" defs["igSetWindowCollapsed"][2]["funcname"] = "SetWindowCollapsed" -defs["igSetWindowCollapsed"][2]["location"] = "imgui:387" +defs["igSetWindowCollapsed"][2]["location"] = "imgui:388" defs["igSetWindowCollapsed"][2]["namespace"] = "ImGui" defs["igSetWindowCollapsed"][2]["ov_cimguiname"] = "igSetWindowCollapsedStr" defs["igSetWindowCollapsed"][2]["ret"] = "void" @@ -24658,7 +25259,7 @@ defs["igSetWindowCollapsed"][3]["cimguiname"] = "igSetWindowCollapsed" defs["igSetWindowCollapsed"][3]["defaults"] = {} defs["igSetWindowCollapsed"][3]["defaults"]["cond"] = "0" defs["igSetWindowCollapsed"][3]["funcname"] = "SetWindowCollapsed" -defs["igSetWindowCollapsed"][3]["location"] = "imgui_internal:2556" +defs["igSetWindowCollapsed"][3]["location"] = "imgui_internal:2656" defs["igSetWindowCollapsed"][3]["namespace"] = "ImGui" defs["igSetWindowCollapsed"][3]["ov_cimguiname"] = "igSetWindowCollapsedWindowPtr" defs["igSetWindowCollapsed"][3]["ret"] = "void" @@ -24685,7 +25286,7 @@ defs["igSetWindowDock"][1]["call_args"] = "(window,dock_id,cond)" defs["igSetWindowDock"][1]["cimguiname"] = "igSetWindowDock" defs["igSetWindowDock"][1]["defaults"] = {} defs["igSetWindowDock"][1]["funcname"] = "SetWindowDock" -defs["igSetWindowDock"][1]["location"] = "imgui_internal:2741" +defs["igSetWindowDock"][1]["location"] = "imgui_internal:2861" defs["igSetWindowDock"][1]["namespace"] = "ImGui" defs["igSetWindowDock"][1]["ov_cimguiname"] = "igSetWindowDock" defs["igSetWindowDock"][1]["ret"] = "void" @@ -24701,7 +25302,7 @@ defs["igSetWindowFocus"][1]["call_args"] = "()" defs["igSetWindowFocus"][1]["cimguiname"] = "igSetWindowFocus" defs["igSetWindowFocus"][1]["defaults"] = {} defs["igSetWindowFocus"][1]["funcname"] = "SetWindowFocus" -defs["igSetWindowFocus"][1]["location"] = "imgui:383" +defs["igSetWindowFocus"][1]["location"] = "imgui:384" defs["igSetWindowFocus"][1]["namespace"] = "ImGui" defs["igSetWindowFocus"][1]["ov_cimguiname"] = "igSetWindowFocusNil" defs["igSetWindowFocus"][1]["ret"] = "void" @@ -24718,7 +25319,7 @@ defs["igSetWindowFocus"][2]["call_args"] = "(name)" defs["igSetWindowFocus"][2]["cimguiname"] = "igSetWindowFocus" defs["igSetWindowFocus"][2]["defaults"] = {} defs["igSetWindowFocus"][2]["funcname"] = "SetWindowFocus" -defs["igSetWindowFocus"][2]["location"] = "imgui:388" +defs["igSetWindowFocus"][2]["location"] = "imgui:389" defs["igSetWindowFocus"][2]["namespace"] = "ImGui" defs["igSetWindowFocus"][2]["ov_cimguiname"] = "igSetWindowFocusStr" defs["igSetWindowFocus"][2]["ret"] = "void" @@ -24738,7 +25339,7 @@ defs["igSetWindowFontScale"][1]["call_args"] = "(scale)" defs["igSetWindowFontScale"][1]["cimguiname"] = "igSetWindowFontScale" defs["igSetWindowFontScale"][1]["defaults"] = {} defs["igSetWindowFontScale"][1]["funcname"] = "SetWindowFontScale" -defs["igSetWindowFontScale"][1]["location"] = "imgui:384" +defs["igSetWindowFontScale"][1]["location"] = "imgui:385" defs["igSetWindowFontScale"][1]["namespace"] = "ImGui" defs["igSetWindowFontScale"][1]["ov_cimguiname"] = "igSetWindowFontScale" defs["igSetWindowFontScale"][1]["ret"] = "void" @@ -24763,7 +25364,7 @@ defs["igSetWindowHitTestHole"][1]["call_args"] = "(window,pos,size)" defs["igSetWindowHitTestHole"][1]["cimguiname"] = "igSetWindowHitTestHole" defs["igSetWindowHitTestHole"][1]["defaults"] = {} defs["igSetWindowHitTestHole"][1]["funcname"] = "SetWindowHitTestHole" -defs["igSetWindowHitTestHole"][1]["location"] = "imgui_internal:2557" +defs["igSetWindowHitTestHole"][1]["location"] = "imgui_internal:2657" defs["igSetWindowHitTestHole"][1]["namespace"] = "ImGui" defs["igSetWindowHitTestHole"][1]["ov_cimguiname"] = "igSetWindowHitTestHole" defs["igSetWindowHitTestHole"][1]["ret"] = "void" @@ -24786,7 +25387,7 @@ defs["igSetWindowPos"][1]["cimguiname"] = "igSetWindowPos" defs["igSetWindowPos"][1]["defaults"] = {} defs["igSetWindowPos"][1]["defaults"]["cond"] = "0" defs["igSetWindowPos"][1]["funcname"] = "SetWindowPos" -defs["igSetWindowPos"][1]["location"] = "imgui:380" +defs["igSetWindowPos"][1]["location"] = "imgui:381" defs["igSetWindowPos"][1]["namespace"] = "ImGui" defs["igSetWindowPos"][1]["ov_cimguiname"] = "igSetWindowPosVec2" defs["igSetWindowPos"][1]["ret"] = "void" @@ -24810,7 +25411,7 @@ defs["igSetWindowPos"][2]["cimguiname"] = "igSetWindowPos" defs["igSetWindowPos"][2]["defaults"] = {} defs["igSetWindowPos"][2]["defaults"]["cond"] = "0" defs["igSetWindowPos"][2]["funcname"] = "SetWindowPos" -defs["igSetWindowPos"][2]["location"] = "imgui:385" +defs["igSetWindowPos"][2]["location"] = "imgui:386" defs["igSetWindowPos"][2]["namespace"] = "ImGui" defs["igSetWindowPos"][2]["ov_cimguiname"] = "igSetWindowPosStr" defs["igSetWindowPos"][2]["ret"] = "void" @@ -24834,7 +25435,7 @@ defs["igSetWindowPos"][3]["cimguiname"] = "igSetWindowPos" defs["igSetWindowPos"][3]["defaults"] = {} defs["igSetWindowPos"][3]["defaults"]["cond"] = "0" defs["igSetWindowPos"][3]["funcname"] = "SetWindowPos" -defs["igSetWindowPos"][3]["location"] = "imgui_internal:2554" +defs["igSetWindowPos"][3]["location"] = "imgui_internal:2654" defs["igSetWindowPos"][3]["namespace"] = "ImGui" defs["igSetWindowPos"][3]["ov_cimguiname"] = "igSetWindowPosWindowPtr" defs["igSetWindowPos"][3]["ret"] = "void" @@ -24859,7 +25460,7 @@ defs["igSetWindowSize"][1]["cimguiname"] = "igSetWindowSize" defs["igSetWindowSize"][1]["defaults"] = {} defs["igSetWindowSize"][1]["defaults"]["cond"] = "0" defs["igSetWindowSize"][1]["funcname"] = "SetWindowSize" -defs["igSetWindowSize"][1]["location"] = "imgui:381" +defs["igSetWindowSize"][1]["location"] = "imgui:382" defs["igSetWindowSize"][1]["namespace"] = "ImGui" defs["igSetWindowSize"][1]["ov_cimguiname"] = "igSetWindowSizeVec2" defs["igSetWindowSize"][1]["ret"] = "void" @@ -24883,7 +25484,7 @@ defs["igSetWindowSize"][2]["cimguiname"] = "igSetWindowSize" defs["igSetWindowSize"][2]["defaults"] = {} defs["igSetWindowSize"][2]["defaults"]["cond"] = "0" defs["igSetWindowSize"][2]["funcname"] = "SetWindowSize" -defs["igSetWindowSize"][2]["location"] = "imgui:386" +defs["igSetWindowSize"][2]["location"] = "imgui:387" defs["igSetWindowSize"][2]["namespace"] = "ImGui" defs["igSetWindowSize"][2]["ov_cimguiname"] = "igSetWindowSizeStr" defs["igSetWindowSize"][2]["ret"] = "void" @@ -24907,7 +25508,7 @@ defs["igSetWindowSize"][3]["cimguiname"] = "igSetWindowSize" defs["igSetWindowSize"][3]["defaults"] = {} defs["igSetWindowSize"][3]["defaults"]["cond"] = "0" defs["igSetWindowSize"][3]["funcname"] = "SetWindowSize" -defs["igSetWindowSize"][3]["location"] = "imgui_internal:2555" +defs["igSetWindowSize"][3]["location"] = "imgui_internal:2655" defs["igSetWindowSize"][3]["namespace"] = "ImGui" defs["igSetWindowSize"][3]["ov_cimguiname"] = "igSetWindowSizeWindowPtr" defs["igSetWindowSize"][3]["ret"] = "void" @@ -24946,7 +25547,7 @@ defs["igShadeVertsLinearColorGradientKeepAlpha"][1]["call_args"] = "(draw_list,v defs["igShadeVertsLinearColorGradientKeepAlpha"][1]["cimguiname"] = "igShadeVertsLinearColorGradientKeepAlpha" defs["igShadeVertsLinearColorGradientKeepAlpha"][1]["defaults"] = {} defs["igShadeVertsLinearColorGradientKeepAlpha"][1]["funcname"] = "ShadeVertsLinearColorGradientKeepAlpha" -defs["igShadeVertsLinearColorGradientKeepAlpha"][1]["location"] = "imgui_internal:2940" +defs["igShadeVertsLinearColorGradientKeepAlpha"][1]["location"] = "imgui_internal:3061" defs["igShadeVertsLinearColorGradientKeepAlpha"][1]["namespace"] = "ImGui" defs["igShadeVertsLinearColorGradientKeepAlpha"][1]["ov_cimguiname"] = "igShadeVertsLinearColorGradientKeepAlpha" defs["igShadeVertsLinearColorGradientKeepAlpha"][1]["ret"] = "void" @@ -24986,7 +25587,7 @@ defs["igShadeVertsLinearUV"][1]["call_args"] = "(draw_list,vert_start_idx,vert_e defs["igShadeVertsLinearUV"][1]["cimguiname"] = "igShadeVertsLinearUV" defs["igShadeVertsLinearUV"][1]["defaults"] = {} defs["igShadeVertsLinearUV"][1]["funcname"] = "ShadeVertsLinearUV" -defs["igShadeVertsLinearUV"][1]["location"] = "imgui_internal:2941" +defs["igShadeVertsLinearUV"][1]["location"] = "imgui_internal:3062" defs["igShadeVertsLinearUV"][1]["namespace"] = "ImGui" defs["igShadeVertsLinearUV"][1]["ov_cimguiname"] = "igShadeVertsLinearUV" defs["igShadeVertsLinearUV"][1]["ret"] = "void" @@ -25006,7 +25607,7 @@ defs["igShowAboutWindow"][1]["cimguiname"] = "igShowAboutWindow" defs["igShowAboutWindow"][1]["defaults"] = {} defs["igShowAboutWindow"][1]["defaults"]["p_open"] = "NULL" defs["igShowAboutWindow"][1]["funcname"] = "ShowAboutWindow" -defs["igShowAboutWindow"][1]["location"] = "imgui:317" +defs["igShowAboutWindow"][1]["location"] = "imgui:318" defs["igShowAboutWindow"][1]["namespace"] = "ImGui" defs["igShowAboutWindow"][1]["ov_cimguiname"] = "igShowAboutWindow" defs["igShowAboutWindow"][1]["ret"] = "void" @@ -25045,7 +25646,7 @@ defs["igShowFontAtlas"][1]["call_args"] = "(atlas)" defs["igShowFontAtlas"][1]["cimguiname"] = "igShowFontAtlas" defs["igShowFontAtlas"][1]["defaults"] = {} defs["igShowFontAtlas"][1]["funcname"] = "ShowFontAtlas" -defs["igShowFontAtlas"][1]["location"] = "imgui_internal:2953" +defs["igShowFontAtlas"][1]["location"] = "imgui_internal:3075" defs["igShowFontAtlas"][1]["namespace"] = "ImGui" defs["igShowFontAtlas"][1]["ov_cimguiname"] = "igShowFontAtlas" defs["igShowFontAtlas"][1]["ret"] = "void" @@ -25064,7 +25665,7 @@ defs["igShowFontSelector"][1]["call_args"] = "(label)" defs["igShowFontSelector"][1]["cimguiname"] = "igShowFontSelector" defs["igShowFontSelector"][1]["defaults"] = {} defs["igShowFontSelector"][1]["funcname"] = "ShowFontSelector" -defs["igShowFontSelector"][1]["location"] = "imgui:320" +defs["igShowFontSelector"][1]["location"] = "imgui:321" defs["igShowFontSelector"][1]["namespace"] = "ImGui" defs["igShowFontSelector"][1]["ov_cimguiname"] = "igShowFontSelector" defs["igShowFontSelector"][1]["ret"] = "void" @@ -25091,6 +25692,26 @@ defs["igShowMetricsWindow"][1]["ret"] = "void" defs["igShowMetricsWindow"][1]["signature"] = "(bool*)" defs["igShowMetricsWindow"][1]["stname"] = "" defs["igShowMetricsWindow"]["(bool*)"] = defs["igShowMetricsWindow"][1] +defs["igShowStackToolWindow"] = {} +defs["igShowStackToolWindow"][1] = {} +defs["igShowStackToolWindow"][1]["args"] = "(bool* p_open)" +defs["igShowStackToolWindow"][1]["argsT"] = {} +defs["igShowStackToolWindow"][1]["argsT"][1] = {} +defs["igShowStackToolWindow"][1]["argsT"][1]["name"] = "p_open" +defs["igShowStackToolWindow"][1]["argsT"][1]["type"] = "bool*" +defs["igShowStackToolWindow"][1]["argsoriginal"] = "(bool* p_open=((void*)0))" +defs["igShowStackToolWindow"][1]["call_args"] = "(p_open)" +defs["igShowStackToolWindow"][1]["cimguiname"] = "igShowStackToolWindow" +defs["igShowStackToolWindow"][1]["defaults"] = {} +defs["igShowStackToolWindow"][1]["defaults"]["p_open"] = "NULL" +defs["igShowStackToolWindow"][1]["funcname"] = "ShowStackToolWindow" +defs["igShowStackToolWindow"][1]["location"] = "imgui:317" +defs["igShowStackToolWindow"][1]["namespace"] = "ImGui" +defs["igShowStackToolWindow"][1]["ov_cimguiname"] = "igShowStackToolWindow" +defs["igShowStackToolWindow"][1]["ret"] = "void" +defs["igShowStackToolWindow"][1]["signature"] = "(bool*)" +defs["igShowStackToolWindow"][1]["stname"] = "" +defs["igShowStackToolWindow"]["(bool*)"] = defs["igShowStackToolWindow"][1] defs["igShowStyleEditor"] = {} defs["igShowStyleEditor"][1] = {} defs["igShowStyleEditor"][1]["args"] = "(ImGuiStyle* ref)" @@ -25104,7 +25725,7 @@ defs["igShowStyleEditor"][1]["cimguiname"] = "igShowStyleEditor" defs["igShowStyleEditor"][1]["defaults"] = {} defs["igShowStyleEditor"][1]["defaults"]["ref"] = "NULL" defs["igShowStyleEditor"][1]["funcname"] = "ShowStyleEditor" -defs["igShowStyleEditor"][1]["location"] = "imgui:318" +defs["igShowStyleEditor"][1]["location"] = "imgui:319" defs["igShowStyleEditor"][1]["namespace"] = "ImGui" defs["igShowStyleEditor"][1]["ov_cimguiname"] = "igShowStyleEditor" defs["igShowStyleEditor"][1]["ret"] = "void" @@ -25123,7 +25744,7 @@ defs["igShowStyleSelector"][1]["call_args"] = "(label)" defs["igShowStyleSelector"][1]["cimguiname"] = "igShowStyleSelector" defs["igShowStyleSelector"][1]["defaults"] = {} defs["igShowStyleSelector"][1]["funcname"] = "ShowStyleSelector" -defs["igShowStyleSelector"][1]["location"] = "imgui:319" +defs["igShowStyleSelector"][1]["location"] = "imgui:320" defs["igShowStyleSelector"][1]["namespace"] = "ImGui" defs["igShowStyleSelector"][1]["ov_cimguiname"] = "igShowStyleSelector" defs["igShowStyleSelector"][1]["ret"] = "bool" @@ -25139,7 +25760,7 @@ defs["igShowUserGuide"][1]["call_args"] = "()" defs["igShowUserGuide"][1]["cimguiname"] = "igShowUserGuide" defs["igShowUserGuide"][1]["defaults"] = {} defs["igShowUserGuide"][1]["funcname"] = "ShowUserGuide" -defs["igShowUserGuide"][1]["location"] = "imgui:321" +defs["igShowUserGuide"][1]["location"] = "imgui:322" defs["igShowUserGuide"][1]["namespace"] = "ImGui" defs["igShowUserGuide"][1]["ov_cimguiname"] = "igShowUserGuide" defs["igShowUserGuide"][1]["ret"] = "void" @@ -25164,7 +25785,7 @@ defs["igShrinkWidths"][1]["call_args"] = "(items,count,width_excess)" defs["igShrinkWidths"][1]["cimguiname"] = "igShrinkWidths" defs["igShrinkWidths"][1]["defaults"] = {} defs["igShrinkWidths"][1]["funcname"] = "ShrinkWidths" -defs["igShrinkWidths"][1]["location"] = "imgui_internal:2640" +defs["igShrinkWidths"][1]["location"] = "imgui_internal:2751" defs["igShrinkWidths"][1]["namespace"] = "ImGui" defs["igShrinkWidths"][1]["ov_cimguiname"] = "igShrinkWidths" defs["igShrinkWidths"][1]["ret"] = "void" @@ -25183,7 +25804,7 @@ defs["igShutdown"][1]["call_args"] = "(context)" defs["igShutdown"][1]["cimguiname"] = "igShutdown" defs["igShutdown"][1]["defaults"] = {} defs["igShutdown"][1]["funcname"] = "Shutdown" -defs["igShutdown"][1]["location"] = "imgui_internal:2573" +defs["igShutdown"][1]["location"] = "imgui_internal:2678" defs["igShutdown"][1]["namespace"] = "ImGui" defs["igShutdown"][1]["ov_cimguiname"] = "igShutdown" defs["igShutdown"][1]["ret"] = "void" @@ -25221,7 +25842,7 @@ defs["igSliderAngle"][1]["defaults"]["format"] = "\"%.0f deg\"" defs["igSliderAngle"][1]["defaults"]["v_degrees_max"] = "+360.0f" defs["igSliderAngle"][1]["defaults"]["v_degrees_min"] = "-360.0f" defs["igSliderAngle"][1]["funcname"] = "SliderAngle" -defs["igSliderAngle"][1]["location"] = "imgui:568" +defs["igSliderAngle"][1]["location"] = "imgui:569" defs["igSliderAngle"][1]["namespace"] = "ImGui" defs["igSliderAngle"][1]["ov_cimguiname"] = "igSliderAngle" defs["igSliderAngle"][1]["ret"] = "bool" @@ -25264,7 +25885,7 @@ defs["igSliderBehavior"][1]["call_args"] = "(bb,id,data_type,p_v,p_min,p_max,for defs["igSliderBehavior"][1]["cimguiname"] = "igSliderBehavior" defs["igSliderBehavior"][1]["defaults"] = {} defs["igSliderBehavior"][1]["funcname"] = "SliderBehavior" -defs["igSliderBehavior"][1]["location"] = "imgui_internal:2900" +defs["igSliderBehavior"][1]["location"] = "imgui_internal:3021" defs["igSliderBehavior"][1]["namespace"] = "ImGui" defs["igSliderBehavior"][1]["ov_cimguiname"] = "igSliderBehavior" defs["igSliderBehavior"][1]["ret"] = "bool" @@ -25300,7 +25921,7 @@ defs["igSliderFloat"][1]["defaults"] = {} defs["igSliderFloat"][1]["defaults"]["flags"] = "0" defs["igSliderFloat"][1]["defaults"]["format"] = "\"%.3f\"" defs["igSliderFloat"][1]["funcname"] = "SliderFloat" -defs["igSliderFloat"][1]["location"] = "imgui:564" +defs["igSliderFloat"][1]["location"] = "imgui:565" defs["igSliderFloat"][1]["namespace"] = "ImGui" defs["igSliderFloat"][1]["ov_cimguiname"] = "igSliderFloat" defs["igSliderFloat"][1]["ret"] = "bool" @@ -25336,7 +25957,7 @@ defs["igSliderFloat2"][1]["defaults"] = {} defs["igSliderFloat2"][1]["defaults"]["flags"] = "0" defs["igSliderFloat2"][1]["defaults"]["format"] = "\"%.3f\"" defs["igSliderFloat2"][1]["funcname"] = "SliderFloat2" -defs["igSliderFloat2"][1]["location"] = "imgui:565" +defs["igSliderFloat2"][1]["location"] = "imgui:566" defs["igSliderFloat2"][1]["namespace"] = "ImGui" defs["igSliderFloat2"][1]["ov_cimguiname"] = "igSliderFloat2" defs["igSliderFloat2"][1]["ret"] = "bool" @@ -25372,7 +25993,7 @@ defs["igSliderFloat3"][1]["defaults"] = {} defs["igSliderFloat3"][1]["defaults"]["flags"] = "0" defs["igSliderFloat3"][1]["defaults"]["format"] = "\"%.3f\"" defs["igSliderFloat3"][1]["funcname"] = "SliderFloat3" -defs["igSliderFloat3"][1]["location"] = "imgui:566" +defs["igSliderFloat3"][1]["location"] = "imgui:567" defs["igSliderFloat3"][1]["namespace"] = "ImGui" defs["igSliderFloat3"][1]["ov_cimguiname"] = "igSliderFloat3" defs["igSliderFloat3"][1]["ret"] = "bool" @@ -25408,7 +26029,7 @@ defs["igSliderFloat4"][1]["defaults"] = {} defs["igSliderFloat4"][1]["defaults"]["flags"] = "0" defs["igSliderFloat4"][1]["defaults"]["format"] = "\"%.3f\"" defs["igSliderFloat4"][1]["funcname"] = "SliderFloat4" -defs["igSliderFloat4"][1]["location"] = "imgui:567" +defs["igSliderFloat4"][1]["location"] = "imgui:568" defs["igSliderFloat4"][1]["namespace"] = "ImGui" defs["igSliderFloat4"][1]["ov_cimguiname"] = "igSliderFloat4" defs["igSliderFloat4"][1]["ret"] = "bool" @@ -25444,7 +26065,7 @@ defs["igSliderInt"][1]["defaults"] = {} defs["igSliderInt"][1]["defaults"]["flags"] = "0" defs["igSliderInt"][1]["defaults"]["format"] = "\"%d\"" defs["igSliderInt"][1]["funcname"] = "SliderInt" -defs["igSliderInt"][1]["location"] = "imgui:569" +defs["igSliderInt"][1]["location"] = "imgui:570" defs["igSliderInt"][1]["namespace"] = "ImGui" defs["igSliderInt"][1]["ov_cimguiname"] = "igSliderInt" defs["igSliderInt"][1]["ret"] = "bool" @@ -25480,7 +26101,7 @@ defs["igSliderInt2"][1]["defaults"] = {} defs["igSliderInt2"][1]["defaults"]["flags"] = "0" defs["igSliderInt2"][1]["defaults"]["format"] = "\"%d\"" defs["igSliderInt2"][1]["funcname"] = "SliderInt2" -defs["igSliderInt2"][1]["location"] = "imgui:570" +defs["igSliderInt2"][1]["location"] = "imgui:571" defs["igSliderInt2"][1]["namespace"] = "ImGui" defs["igSliderInt2"][1]["ov_cimguiname"] = "igSliderInt2" defs["igSliderInt2"][1]["ret"] = "bool" @@ -25516,7 +26137,7 @@ defs["igSliderInt3"][1]["defaults"] = {} defs["igSliderInt3"][1]["defaults"]["flags"] = "0" defs["igSliderInt3"][1]["defaults"]["format"] = "\"%d\"" defs["igSliderInt3"][1]["funcname"] = "SliderInt3" -defs["igSliderInt3"][1]["location"] = "imgui:571" +defs["igSliderInt3"][1]["location"] = "imgui:572" defs["igSliderInt3"][1]["namespace"] = "ImGui" defs["igSliderInt3"][1]["ov_cimguiname"] = "igSliderInt3" defs["igSliderInt3"][1]["ret"] = "bool" @@ -25552,7 +26173,7 @@ defs["igSliderInt4"][1]["defaults"] = {} defs["igSliderInt4"][1]["defaults"]["flags"] = "0" defs["igSliderInt4"][1]["defaults"]["format"] = "\"%d\"" defs["igSliderInt4"][1]["funcname"] = "SliderInt4" -defs["igSliderInt4"][1]["location"] = "imgui:572" +defs["igSliderInt4"][1]["location"] = "imgui:573" defs["igSliderInt4"][1]["namespace"] = "ImGui" defs["igSliderInt4"][1]["ov_cimguiname"] = "igSliderInt4" defs["igSliderInt4"][1]["ret"] = "bool" @@ -25591,7 +26212,7 @@ defs["igSliderScalar"][1]["defaults"] = {} defs["igSliderScalar"][1]["defaults"]["flags"] = "0" defs["igSliderScalar"][1]["defaults"]["format"] = "NULL" defs["igSliderScalar"][1]["funcname"] = "SliderScalar" -defs["igSliderScalar"][1]["location"] = "imgui:573" +defs["igSliderScalar"][1]["location"] = "imgui:574" defs["igSliderScalar"][1]["namespace"] = "ImGui" defs["igSliderScalar"][1]["ov_cimguiname"] = "igSliderScalar" defs["igSliderScalar"][1]["ret"] = "bool" @@ -25633,7 +26254,7 @@ defs["igSliderScalarN"][1]["defaults"] = {} defs["igSliderScalarN"][1]["defaults"]["flags"] = "0" defs["igSliderScalarN"][1]["defaults"]["format"] = "NULL" defs["igSliderScalarN"][1]["funcname"] = "SliderScalarN" -defs["igSliderScalarN"][1]["location"] = "imgui:574" +defs["igSliderScalarN"][1]["location"] = "imgui:575" defs["igSliderScalarN"][1]["namespace"] = "ImGui" defs["igSliderScalarN"][1]["ov_cimguiname"] = "igSliderScalarN" defs["igSliderScalarN"][1]["ret"] = "bool" @@ -25652,7 +26273,7 @@ defs["igSmallButton"][1]["call_args"] = "(label)" defs["igSmallButton"][1]["cimguiname"] = "igSmallButton" defs["igSmallButton"][1]["defaults"] = {} defs["igSmallButton"][1]["funcname"] = "SmallButton" -defs["igSmallButton"][1]["location"] = "imgui:512" +defs["igSmallButton"][1]["location"] = "imgui:513" defs["igSmallButton"][1]["namespace"] = "ImGui" defs["igSmallButton"][1]["ov_cimguiname"] = "igSmallButton" defs["igSmallButton"][1]["ret"] = "bool" @@ -25668,7 +26289,7 @@ defs["igSpacing"][1]["call_args"] = "()" defs["igSpacing"][1]["cimguiname"] = "igSpacing" defs["igSpacing"][1]["defaults"] = {} defs["igSpacing"][1]["funcname"] = "Spacing" -defs["igSpacing"][1]["location"] = "imgui:452" +defs["igSpacing"][1]["location"] = "imgui:453" defs["igSpacing"][1]["namespace"] = "ImGui" defs["igSpacing"][1]["ov_cimguiname"] = "igSpacing" defs["igSpacing"][1]["ret"] = "void" @@ -25677,7 +26298,7 @@ defs["igSpacing"][1]["stname"] = "" defs["igSpacing"]["()"] = defs["igSpacing"][1] defs["igSplitterBehavior"] = {} defs["igSplitterBehavior"][1] = {} -defs["igSplitterBehavior"][1]["args"] = "(const ImRect bb,ImGuiID id,ImGuiAxis axis,float* size1,float* size2,float min_size1,float min_size2,float hover_extend,float hover_visibility_delay)" +defs["igSplitterBehavior"][1]["args"] = "(const ImRect bb,ImGuiID id,ImGuiAxis axis,float* size1,float* size2,float min_size1,float min_size2,float hover_extend,float hover_visibility_delay,ImU32 bg_col)" defs["igSplitterBehavior"][1]["argsT"] = {} defs["igSplitterBehavior"][1]["argsT"][1] = {} defs["igSplitterBehavior"][1]["argsT"][1]["name"] = "bb" @@ -25706,20 +26327,24 @@ defs["igSplitterBehavior"][1]["argsT"][8]["type"] = "float" defs["igSplitterBehavior"][1]["argsT"][9] = {} defs["igSplitterBehavior"][1]["argsT"][9]["name"] = "hover_visibility_delay" defs["igSplitterBehavior"][1]["argsT"][9]["type"] = "float" -defs["igSplitterBehavior"][1]["argsoriginal"] = "(const ImRect& bb,ImGuiID id,ImGuiAxis axis,float* size1,float* size2,float min_size1,float min_size2,float hover_extend=0.0f,float hover_visibility_delay=0.0f)" -defs["igSplitterBehavior"][1]["call_args"] = "(bb,id,axis,size1,size2,min_size1,min_size2,hover_extend,hover_visibility_delay)" +defs["igSplitterBehavior"][1]["argsT"][10] = {} +defs["igSplitterBehavior"][1]["argsT"][10]["name"] = "bg_col" +defs["igSplitterBehavior"][1]["argsT"][10]["type"] = "ImU32" +defs["igSplitterBehavior"][1]["argsoriginal"] = "(const ImRect& bb,ImGuiID id,ImGuiAxis axis,float* size1,float* size2,float min_size1,float min_size2,float hover_extend=0.0f,float hover_visibility_delay=0.0f,ImU32 bg_col=0)" +defs["igSplitterBehavior"][1]["call_args"] = "(bb,id,axis,size1,size2,min_size1,min_size2,hover_extend,hover_visibility_delay,bg_col)" defs["igSplitterBehavior"][1]["cimguiname"] = "igSplitterBehavior" defs["igSplitterBehavior"][1]["defaults"] = {} +defs["igSplitterBehavior"][1]["defaults"]["bg_col"] = "0" defs["igSplitterBehavior"][1]["defaults"]["hover_extend"] = "0.0f" defs["igSplitterBehavior"][1]["defaults"]["hover_visibility_delay"] = "0.0f" defs["igSplitterBehavior"][1]["funcname"] = "SplitterBehavior" -defs["igSplitterBehavior"][1]["location"] = "imgui_internal:2901" +defs["igSplitterBehavior"][1]["location"] = "imgui_internal:3022" defs["igSplitterBehavior"][1]["namespace"] = "ImGui" defs["igSplitterBehavior"][1]["ov_cimguiname"] = "igSplitterBehavior" defs["igSplitterBehavior"][1]["ret"] = "bool" -defs["igSplitterBehavior"][1]["signature"] = "(const ImRect,ImGuiID,ImGuiAxis,float*,float*,float,float,float,float)" +defs["igSplitterBehavior"][1]["signature"] = "(const ImRect,ImGuiID,ImGuiAxis,float*,float*,float,float,float,float,ImU32)" defs["igSplitterBehavior"][1]["stname"] = "" -defs["igSplitterBehavior"]["(const ImRect,ImGuiID,ImGuiAxis,float*,float*,float,float,float,float)"] = defs["igSplitterBehavior"][1] +defs["igSplitterBehavior"]["(const ImRect,ImGuiID,ImGuiAxis,float*,float*,float,float,float,float,ImU32)"] = defs["igSplitterBehavior"][1] defs["igStartMouseMovingWindow"] = {} defs["igStartMouseMovingWindow"][1] = {} defs["igStartMouseMovingWindow"][1]["args"] = "(ImGuiWindow* window)" @@ -25732,7 +26357,7 @@ defs["igStartMouseMovingWindow"][1]["call_args"] = "(window)" defs["igStartMouseMovingWindow"][1]["cimguiname"] = "igStartMouseMovingWindow" defs["igStartMouseMovingWindow"][1]["defaults"] = {} defs["igStartMouseMovingWindow"][1]["funcname"] = "StartMouseMovingWindow" -defs["igStartMouseMovingWindow"][1]["location"] = "imgui_internal:2577" +defs["igStartMouseMovingWindow"][1]["location"] = "imgui_internal:2682" defs["igStartMouseMovingWindow"][1]["namespace"] = "ImGui" defs["igStartMouseMovingWindow"][1]["ov_cimguiname"] = "igStartMouseMovingWindow" defs["igStartMouseMovingWindow"][1]["ret"] = "void" @@ -25757,7 +26382,7 @@ defs["igStartMouseMovingWindowOrNode"][1]["call_args"] = "(window,node,undock_fl defs["igStartMouseMovingWindowOrNode"][1]["cimguiname"] = "igStartMouseMovingWindowOrNode" defs["igStartMouseMovingWindowOrNode"][1]["defaults"] = {} defs["igStartMouseMovingWindowOrNode"][1]["funcname"] = "StartMouseMovingWindowOrNode" -defs["igStartMouseMovingWindowOrNode"][1]["location"] = "imgui_internal:2578" +defs["igStartMouseMovingWindowOrNode"][1]["location"] = "imgui_internal:2683" defs["igStartMouseMovingWindowOrNode"][1]["namespace"] = "ImGui" defs["igStartMouseMovingWindowOrNode"][1]["ov_cimguiname"] = "igStartMouseMovingWindowOrNode" defs["igStartMouseMovingWindowOrNode"][1]["ret"] = "void" @@ -25777,7 +26402,7 @@ defs["igStyleColorsClassic"][1]["cimguiname"] = "igStyleColorsClassic" defs["igStyleColorsClassic"][1]["defaults"] = {} defs["igStyleColorsClassic"][1]["defaults"]["dst"] = "NULL" defs["igStyleColorsClassic"][1]["funcname"] = "StyleColorsClassic" -defs["igStyleColorsClassic"][1]["location"] = "imgui:327" +defs["igStyleColorsClassic"][1]["location"] = "imgui:328" defs["igStyleColorsClassic"][1]["namespace"] = "ImGui" defs["igStyleColorsClassic"][1]["ov_cimguiname"] = "igStyleColorsClassic" defs["igStyleColorsClassic"][1]["ret"] = "void" @@ -25797,7 +26422,7 @@ defs["igStyleColorsDark"][1]["cimguiname"] = "igStyleColorsDark" defs["igStyleColorsDark"][1]["defaults"] = {} defs["igStyleColorsDark"][1]["defaults"]["dst"] = "NULL" defs["igStyleColorsDark"][1]["funcname"] = "StyleColorsDark" -defs["igStyleColorsDark"][1]["location"] = "imgui:325" +defs["igStyleColorsDark"][1]["location"] = "imgui:326" defs["igStyleColorsDark"][1]["namespace"] = "ImGui" defs["igStyleColorsDark"][1]["ov_cimguiname"] = "igStyleColorsDark" defs["igStyleColorsDark"][1]["ret"] = "void" @@ -25817,7 +26442,7 @@ defs["igStyleColorsLight"][1]["cimguiname"] = "igStyleColorsLight" defs["igStyleColorsLight"][1]["defaults"] = {} defs["igStyleColorsLight"][1]["defaults"]["dst"] = "NULL" defs["igStyleColorsLight"][1]["funcname"] = "StyleColorsLight" -defs["igStyleColorsLight"][1]["location"] = "imgui:326" +defs["igStyleColorsLight"][1]["location"] = "imgui:327" defs["igStyleColorsLight"][1]["namespace"] = "ImGui" defs["igStyleColorsLight"][1]["ov_cimguiname"] = "igStyleColorsLight" defs["igStyleColorsLight"][1]["ret"] = "void" @@ -25842,7 +26467,7 @@ defs["igTabBarAddTab"][1]["call_args"] = "(tab_bar,tab_flags,window)" defs["igTabBarAddTab"][1]["cimguiname"] = "igTabBarAddTab" defs["igTabBarAddTab"][1]["defaults"] = {} defs["igTabBarAddTab"][1]["funcname"] = "TabBarAddTab" -defs["igTabBarAddTab"][1]["location"] = "imgui_internal:2839" +defs["igTabBarAddTab"][1]["location"] = "imgui_internal:2959" defs["igTabBarAddTab"][1]["namespace"] = "ImGui" defs["igTabBarAddTab"][1]["ov_cimguiname"] = "igTabBarAddTab" defs["igTabBarAddTab"][1]["ret"] = "void" @@ -25864,7 +26489,7 @@ defs["igTabBarCloseTab"][1]["call_args"] = "(tab_bar,tab)" defs["igTabBarCloseTab"][1]["cimguiname"] = "igTabBarCloseTab" defs["igTabBarCloseTab"][1]["defaults"] = {} defs["igTabBarCloseTab"][1]["funcname"] = "TabBarCloseTab" -defs["igTabBarCloseTab"][1]["location"] = "imgui_internal:2841" +defs["igTabBarCloseTab"][1]["location"] = "imgui_internal:2961" defs["igTabBarCloseTab"][1]["namespace"] = "ImGui" defs["igTabBarCloseTab"][1]["ov_cimguiname"] = "igTabBarCloseTab" defs["igTabBarCloseTab"][1]["ret"] = "void" @@ -25883,7 +26508,7 @@ defs["igTabBarFindMostRecentlySelectedTabForActiveWindow"][1]["call_args"] = "(t defs["igTabBarFindMostRecentlySelectedTabForActiveWindow"][1]["cimguiname"] = "igTabBarFindMostRecentlySelectedTabForActiveWindow" defs["igTabBarFindMostRecentlySelectedTabForActiveWindow"][1]["defaults"] = {} defs["igTabBarFindMostRecentlySelectedTabForActiveWindow"][1]["funcname"] = "TabBarFindMostRecentlySelectedTabForActiveWindow" -defs["igTabBarFindMostRecentlySelectedTabForActiveWindow"][1]["location"] = "imgui_internal:2838" +defs["igTabBarFindMostRecentlySelectedTabForActiveWindow"][1]["location"] = "imgui_internal:2958" defs["igTabBarFindMostRecentlySelectedTabForActiveWindow"][1]["namespace"] = "ImGui" defs["igTabBarFindMostRecentlySelectedTabForActiveWindow"][1]["ov_cimguiname"] = "igTabBarFindMostRecentlySelectedTabForActiveWindow" defs["igTabBarFindMostRecentlySelectedTabForActiveWindow"][1]["ret"] = "ImGuiTabItem*" @@ -25905,7 +26530,7 @@ defs["igTabBarFindTabByID"][1]["call_args"] = "(tab_bar,tab_id)" defs["igTabBarFindTabByID"][1]["cimguiname"] = "igTabBarFindTabByID" defs["igTabBarFindTabByID"][1]["defaults"] = {} defs["igTabBarFindTabByID"][1]["funcname"] = "TabBarFindTabByID" -defs["igTabBarFindTabByID"][1]["location"] = "imgui_internal:2837" +defs["igTabBarFindTabByID"][1]["location"] = "imgui_internal:2957" defs["igTabBarFindTabByID"][1]["namespace"] = "ImGui" defs["igTabBarFindTabByID"][1]["ov_cimguiname"] = "igTabBarFindTabByID" defs["igTabBarFindTabByID"][1]["ret"] = "ImGuiTabItem*" @@ -25924,7 +26549,7 @@ defs["igTabBarProcessReorder"][1]["call_args"] = "(tab_bar)" defs["igTabBarProcessReorder"][1]["cimguiname"] = "igTabBarProcessReorder" defs["igTabBarProcessReorder"][1]["defaults"] = {} defs["igTabBarProcessReorder"][1]["funcname"] = "TabBarProcessReorder" -defs["igTabBarProcessReorder"][1]["location"] = "imgui_internal:2844" +defs["igTabBarProcessReorder"][1]["location"] = "imgui_internal:2964" defs["igTabBarProcessReorder"][1]["namespace"] = "ImGui" defs["igTabBarProcessReorder"][1]["ov_cimguiname"] = "igTabBarProcessReorder" defs["igTabBarProcessReorder"][1]["ret"] = "bool" @@ -25949,7 +26574,7 @@ defs["igTabBarQueueReorder"][1]["call_args"] = "(tab_bar,tab,offset)" defs["igTabBarQueueReorder"][1]["cimguiname"] = "igTabBarQueueReorder" defs["igTabBarQueueReorder"][1]["defaults"] = {} defs["igTabBarQueueReorder"][1]["funcname"] = "TabBarQueueReorder" -defs["igTabBarQueueReorder"][1]["location"] = "imgui_internal:2842" +defs["igTabBarQueueReorder"][1]["location"] = "imgui_internal:2962" defs["igTabBarQueueReorder"][1]["namespace"] = "ImGui" defs["igTabBarQueueReorder"][1]["ov_cimguiname"] = "igTabBarQueueReorder" defs["igTabBarQueueReorder"][1]["ret"] = "void" @@ -25974,7 +26599,7 @@ defs["igTabBarQueueReorderFromMousePos"][1]["call_args"] = "(tab_bar,tab,mouse_p defs["igTabBarQueueReorderFromMousePos"][1]["cimguiname"] = "igTabBarQueueReorderFromMousePos" defs["igTabBarQueueReorderFromMousePos"][1]["defaults"] = {} defs["igTabBarQueueReorderFromMousePos"][1]["funcname"] = "TabBarQueueReorderFromMousePos" -defs["igTabBarQueueReorderFromMousePos"][1]["location"] = "imgui_internal:2843" +defs["igTabBarQueueReorderFromMousePos"][1]["location"] = "imgui_internal:2963" defs["igTabBarQueueReorderFromMousePos"][1]["namespace"] = "ImGui" defs["igTabBarQueueReorderFromMousePos"][1]["ov_cimguiname"] = "igTabBarQueueReorderFromMousePos" defs["igTabBarQueueReorderFromMousePos"][1]["ret"] = "void" @@ -25996,7 +26621,7 @@ defs["igTabBarRemoveTab"][1]["call_args"] = "(tab_bar,tab_id)" defs["igTabBarRemoveTab"][1]["cimguiname"] = "igTabBarRemoveTab" defs["igTabBarRemoveTab"][1]["defaults"] = {} defs["igTabBarRemoveTab"][1]["funcname"] = "TabBarRemoveTab" -defs["igTabBarRemoveTab"][1]["location"] = "imgui_internal:2840" +defs["igTabBarRemoveTab"][1]["location"] = "imgui_internal:2960" defs["igTabBarRemoveTab"][1]["namespace"] = "ImGui" defs["igTabBarRemoveTab"][1]["ov_cimguiname"] = "igTabBarRemoveTab" defs["igTabBarRemoveTab"][1]["ret"] = "void" @@ -26024,7 +26649,7 @@ defs["igTabItemBackground"][1]["call_args"] = "(draw_list,bb,flags,col)" defs["igTabItemBackground"][1]["cimguiname"] = "igTabItemBackground" defs["igTabItemBackground"][1]["defaults"] = {} defs["igTabItemBackground"][1]["funcname"] = "TabItemBackground" -defs["igTabItemBackground"][1]["location"] = "imgui_internal:2847" +defs["igTabItemBackground"][1]["location"] = "imgui_internal:2967" defs["igTabItemBackground"][1]["namespace"] = "ImGui" defs["igTabItemBackground"][1]["ov_cimguiname"] = "igTabItemBackground" defs["igTabItemBackground"][1]["ret"] = "void" @@ -26047,7 +26672,7 @@ defs["igTabItemButton"][1]["cimguiname"] = "igTabItemButton" defs["igTabItemButton"][1]["defaults"] = {} defs["igTabItemButton"][1]["defaults"]["flags"] = "0" defs["igTabItemButton"][1]["funcname"] = "TabItemButton" -defs["igTabItemButton"][1]["location"] = "imgui:801" +defs["igTabItemButton"][1]["location"] = "imgui:802" defs["igTabItemButton"][1]["namespace"] = "ImGui" defs["igTabItemButton"][1]["ov_cimguiname"] = "igTabItemButton" defs["igTabItemButton"][1]["ret"] = "bool" @@ -26072,7 +26697,7 @@ defs["igTabItemCalcSize"][1]["call_args"] = "(label,has_close_button)" defs["igTabItemCalcSize"][1]["cimguiname"] = "igTabItemCalcSize" defs["igTabItemCalcSize"][1]["defaults"] = {} defs["igTabItemCalcSize"][1]["funcname"] = "TabItemCalcSize" -defs["igTabItemCalcSize"][1]["location"] = "imgui_internal:2846" +defs["igTabItemCalcSize"][1]["location"] = "imgui_internal:2966" defs["igTabItemCalcSize"][1]["namespace"] = "ImGui" defs["igTabItemCalcSize"][1]["nonUDT"] = 1 defs["igTabItemCalcSize"][1]["ov_cimguiname"] = "igTabItemCalcSize" @@ -26104,7 +26729,7 @@ defs["igTabItemEx"][1]["call_args"] = "(tab_bar,label,p_open,flags,docked_window defs["igTabItemEx"][1]["cimguiname"] = "igTabItemEx" defs["igTabItemEx"][1]["defaults"] = {} defs["igTabItemEx"][1]["funcname"] = "TabItemEx" -defs["igTabItemEx"][1]["location"] = "imgui_internal:2845" +defs["igTabItemEx"][1]["location"] = "imgui_internal:2965" defs["igTabItemEx"][1]["namespace"] = "ImGui" defs["igTabItemEx"][1]["ov_cimguiname"] = "igTabItemEx" defs["igTabItemEx"][1]["ret"] = "bool" @@ -26150,7 +26775,7 @@ defs["igTabItemLabelAndCloseButton"][1]["call_args"] = "(draw_list,bb,flags,fram defs["igTabItemLabelAndCloseButton"][1]["cimguiname"] = "igTabItemLabelAndCloseButton" defs["igTabItemLabelAndCloseButton"][1]["defaults"] = {} defs["igTabItemLabelAndCloseButton"][1]["funcname"] = "TabItemLabelAndCloseButton" -defs["igTabItemLabelAndCloseButton"][1]["location"] = "imgui_internal:2848" +defs["igTabItemLabelAndCloseButton"][1]["location"] = "imgui_internal:2968" defs["igTabItemLabelAndCloseButton"][1]["namespace"] = "ImGui" defs["igTabItemLabelAndCloseButton"][1]["ov_cimguiname"] = "igTabItemLabelAndCloseButton" defs["igTabItemLabelAndCloseButton"][1]["ret"] = "void" @@ -26169,7 +26794,7 @@ defs["igTableBeginApplyRequests"][1]["call_args"] = "(table)" defs["igTableBeginApplyRequests"][1]["cimguiname"] = "igTableBeginApplyRequests" defs["igTableBeginApplyRequests"][1]["defaults"] = {} defs["igTableBeginApplyRequests"][1]["funcname"] = "TableBeginApplyRequests" -defs["igTableBeginApplyRequests"][1]["location"] = "imgui_internal:2798" +defs["igTableBeginApplyRequests"][1]["location"] = "imgui_internal:2918" defs["igTableBeginApplyRequests"][1]["namespace"] = "ImGui" defs["igTableBeginApplyRequests"][1]["ov_cimguiname"] = "igTableBeginApplyRequests" defs["igTableBeginApplyRequests"][1]["ret"] = "void" @@ -26191,7 +26816,7 @@ defs["igTableBeginCell"][1]["call_args"] = "(table,column_n)" defs["igTableBeginCell"][1]["cimguiname"] = "igTableBeginCell" defs["igTableBeginCell"][1]["defaults"] = {} defs["igTableBeginCell"][1]["funcname"] = "TableBeginCell" -defs["igTableBeginCell"][1]["location"] = "imgui_internal:2813" +defs["igTableBeginCell"][1]["location"] = "imgui_internal:2933" defs["igTableBeginCell"][1]["namespace"] = "ImGui" defs["igTableBeginCell"][1]["ov_cimguiname"] = "igTableBeginCell" defs["igTableBeginCell"][1]["ret"] = "void" @@ -26213,7 +26838,7 @@ defs["igTableBeginInitMemory"][1]["call_args"] = "(table,columns_count)" defs["igTableBeginInitMemory"][1]["cimguiname"] = "igTableBeginInitMemory" defs["igTableBeginInitMemory"][1]["defaults"] = {} defs["igTableBeginInitMemory"][1]["funcname"] = "TableBeginInitMemory" -defs["igTableBeginInitMemory"][1]["location"] = "imgui_internal:2797" +defs["igTableBeginInitMemory"][1]["location"] = "imgui_internal:2917" defs["igTableBeginInitMemory"][1]["namespace"] = "ImGui" defs["igTableBeginInitMemory"][1]["ov_cimguiname"] = "igTableBeginInitMemory" defs["igTableBeginInitMemory"][1]["ret"] = "void" @@ -26232,7 +26857,7 @@ defs["igTableBeginRow"][1]["call_args"] = "(table)" defs["igTableBeginRow"][1]["cimguiname"] = "igTableBeginRow" defs["igTableBeginRow"][1]["defaults"] = {} defs["igTableBeginRow"][1]["funcname"] = "TableBeginRow" -defs["igTableBeginRow"][1]["location"] = "imgui_internal:2811" +defs["igTableBeginRow"][1]["location"] = "imgui_internal:2931" defs["igTableBeginRow"][1]["namespace"] = "ImGui" defs["igTableBeginRow"][1]["ov_cimguiname"] = "igTableBeginRow" defs["igTableBeginRow"][1]["ret"] = "void" @@ -26251,7 +26876,7 @@ defs["igTableDrawBorders"][1]["call_args"] = "(table)" defs["igTableDrawBorders"][1]["cimguiname"] = "igTableDrawBorders" defs["igTableDrawBorders"][1]["defaults"] = {} defs["igTableDrawBorders"][1]["funcname"] = "TableDrawBorders" -defs["igTableDrawBorders"][1]["location"] = "imgui_internal:2803" +defs["igTableDrawBorders"][1]["location"] = "imgui_internal:2923" defs["igTableDrawBorders"][1]["namespace"] = "ImGui" defs["igTableDrawBorders"][1]["ov_cimguiname"] = "igTableDrawBorders" defs["igTableDrawBorders"][1]["ret"] = "void" @@ -26270,7 +26895,7 @@ defs["igTableDrawContextMenu"][1]["call_args"] = "(table)" defs["igTableDrawContextMenu"][1]["cimguiname"] = "igTableDrawContextMenu" defs["igTableDrawContextMenu"][1]["defaults"] = {} defs["igTableDrawContextMenu"][1]["funcname"] = "TableDrawContextMenu" -defs["igTableDrawContextMenu"][1]["location"] = "imgui_internal:2804" +defs["igTableDrawContextMenu"][1]["location"] = "imgui_internal:2924" defs["igTableDrawContextMenu"][1]["namespace"] = "ImGui" defs["igTableDrawContextMenu"][1]["ov_cimguiname"] = "igTableDrawContextMenu" defs["igTableDrawContextMenu"][1]["ret"] = "void" @@ -26289,7 +26914,7 @@ defs["igTableEndCell"][1]["call_args"] = "(table)" defs["igTableEndCell"][1]["cimguiname"] = "igTableEndCell" defs["igTableEndCell"][1]["defaults"] = {} defs["igTableEndCell"][1]["funcname"] = "TableEndCell" -defs["igTableEndCell"][1]["location"] = "imgui_internal:2814" +defs["igTableEndCell"][1]["location"] = "imgui_internal:2934" defs["igTableEndCell"][1]["namespace"] = "ImGui" defs["igTableEndCell"][1]["ov_cimguiname"] = "igTableEndCell" defs["igTableEndCell"][1]["ret"] = "void" @@ -26308,7 +26933,7 @@ defs["igTableEndRow"][1]["call_args"] = "(table)" defs["igTableEndRow"][1]["cimguiname"] = "igTableEndRow" defs["igTableEndRow"][1]["defaults"] = {} defs["igTableEndRow"][1]["funcname"] = "TableEndRow" -defs["igTableEndRow"][1]["location"] = "imgui_internal:2812" +defs["igTableEndRow"][1]["location"] = "imgui_internal:2932" defs["igTableEndRow"][1]["namespace"] = "ImGui" defs["igTableEndRow"][1]["ov_cimguiname"] = "igTableEndRow" defs["igTableEndRow"][1]["ret"] = "void" @@ -26327,7 +26952,7 @@ defs["igTableFindByID"][1]["call_args"] = "(id)" defs["igTableFindByID"][1]["cimguiname"] = "igTableFindByID" defs["igTableFindByID"][1]["defaults"] = {} defs["igTableFindByID"][1]["funcname"] = "TableFindByID" -defs["igTableFindByID"][1]["location"] = "imgui_internal:2795" +defs["igTableFindByID"][1]["location"] = "imgui_internal:2915" defs["igTableFindByID"][1]["namespace"] = "ImGui" defs["igTableFindByID"][1]["ov_cimguiname"] = "igTableFindByID" defs["igTableFindByID"][1]["ret"] = "ImGuiTable*" @@ -26349,7 +26974,7 @@ defs["igTableFixColumnSortDirection"][1]["call_args"] = "(table,column)" defs["igTableFixColumnSortDirection"][1]["cimguiname"] = "igTableFixColumnSortDirection" defs["igTableFixColumnSortDirection"][1]["defaults"] = {} defs["igTableFixColumnSortDirection"][1]["funcname"] = "TableFixColumnSortDirection" -defs["igTableFixColumnSortDirection"][1]["location"] = "imgui_internal:2809" +defs["igTableFixColumnSortDirection"][1]["location"] = "imgui_internal:2929" defs["igTableFixColumnSortDirection"][1]["namespace"] = "ImGui" defs["igTableFixColumnSortDirection"][1]["ov_cimguiname"] = "igTableFixColumnSortDirection" defs["igTableFixColumnSortDirection"][1]["ret"] = "void" @@ -26365,7 +26990,7 @@ defs["igTableGcCompactSettings"][1]["call_args"] = "()" defs["igTableGcCompactSettings"][1]["cimguiname"] = "igTableGcCompactSettings" defs["igTableGcCompactSettings"][1]["defaults"] = {} defs["igTableGcCompactSettings"][1]["funcname"] = "TableGcCompactSettings" -defs["igTableGcCompactSettings"][1]["location"] = "imgui_internal:2824" +defs["igTableGcCompactSettings"][1]["location"] = "imgui_internal:2944" defs["igTableGcCompactSettings"][1]["namespace"] = "ImGui" defs["igTableGcCompactSettings"][1]["ov_cimguiname"] = "igTableGcCompactSettings" defs["igTableGcCompactSettings"][1]["ret"] = "void" @@ -26384,7 +27009,7 @@ defs["igTableGcCompactTransientBuffers"][1]["call_args"] = "(table)" defs["igTableGcCompactTransientBuffers"][1]["cimguiname"] = "igTableGcCompactTransientBuffers" defs["igTableGcCompactTransientBuffers"][1]["defaults"] = {} defs["igTableGcCompactTransientBuffers"][1]["funcname"] = "TableGcCompactTransientBuffers" -defs["igTableGcCompactTransientBuffers"][1]["location"] = "imgui_internal:2822" +defs["igTableGcCompactTransientBuffers"][1]["location"] = "imgui_internal:2942" defs["igTableGcCompactTransientBuffers"][1]["namespace"] = "ImGui" defs["igTableGcCompactTransientBuffers"][1]["ov_cimguiname"] = "igTableGcCompactTransientBuffersTablePtr" defs["igTableGcCompactTransientBuffers"][1]["ret"] = "void" @@ -26401,7 +27026,7 @@ defs["igTableGcCompactTransientBuffers"][2]["call_args"] = "(table)" defs["igTableGcCompactTransientBuffers"][2]["cimguiname"] = "igTableGcCompactTransientBuffers" defs["igTableGcCompactTransientBuffers"][2]["defaults"] = {} defs["igTableGcCompactTransientBuffers"][2]["funcname"] = "TableGcCompactTransientBuffers" -defs["igTableGcCompactTransientBuffers"][2]["location"] = "imgui_internal:2823" +defs["igTableGcCompactTransientBuffers"][2]["location"] = "imgui_internal:2943" defs["igTableGcCompactTransientBuffers"][2]["namespace"] = "ImGui" defs["igTableGcCompactTransientBuffers"][2]["ov_cimguiname"] = "igTableGcCompactTransientBuffersTableTempDataPtr" defs["igTableGcCompactTransientBuffers"][2]["ret"] = "void" @@ -26421,7 +27046,7 @@ defs["igTableGetBoundSettings"][1]["call_args"] = "(table)" defs["igTableGetBoundSettings"][1]["cimguiname"] = "igTableGetBoundSettings" defs["igTableGetBoundSettings"][1]["defaults"] = {} defs["igTableGetBoundSettings"][1]["funcname"] = "TableGetBoundSettings" -defs["igTableGetBoundSettings"][1]["location"] = "imgui_internal:2830" +defs["igTableGetBoundSettings"][1]["location"] = "imgui_internal:2950" defs["igTableGetBoundSettings"][1]["namespace"] = "ImGui" defs["igTableGetBoundSettings"][1]["ov_cimguiname"] = "igTableGetBoundSettings" defs["igTableGetBoundSettings"][1]["ret"] = "ImGuiTableSettings*" @@ -26446,7 +27071,7 @@ defs["igTableGetCellBgRect"][1]["call_args"] = "(table,column_n)" defs["igTableGetCellBgRect"][1]["cimguiname"] = "igTableGetCellBgRect" defs["igTableGetCellBgRect"][1]["defaults"] = {} defs["igTableGetCellBgRect"][1]["funcname"] = "TableGetCellBgRect" -defs["igTableGetCellBgRect"][1]["location"] = "imgui_internal:2815" +defs["igTableGetCellBgRect"][1]["location"] = "imgui_internal:2935" defs["igTableGetCellBgRect"][1]["namespace"] = "ImGui" defs["igTableGetCellBgRect"][1]["nonUDT"] = 1 defs["igTableGetCellBgRect"][1]["ov_cimguiname"] = "igTableGetCellBgRect" @@ -26463,7 +27088,7 @@ defs["igTableGetColumnCount"][1]["call_args"] = "()" defs["igTableGetColumnCount"][1]["cimguiname"] = "igTableGetColumnCount" defs["igTableGetColumnCount"][1]["defaults"] = {} defs["igTableGetColumnCount"][1]["funcname"] = "TableGetColumnCount" -defs["igTableGetColumnCount"][1]["location"] = "imgui:776" +defs["igTableGetColumnCount"][1]["location"] = "imgui:777" defs["igTableGetColumnCount"][1]["namespace"] = "ImGui" defs["igTableGetColumnCount"][1]["ov_cimguiname"] = "igTableGetColumnCount" defs["igTableGetColumnCount"][1]["ret"] = "int" @@ -26483,7 +27108,7 @@ defs["igTableGetColumnFlags"][1]["cimguiname"] = "igTableGetColumnFlags" defs["igTableGetColumnFlags"][1]["defaults"] = {} defs["igTableGetColumnFlags"][1]["defaults"]["column_n"] = "-1" defs["igTableGetColumnFlags"][1]["funcname"] = "TableGetColumnFlags" -defs["igTableGetColumnFlags"][1]["location"] = "imgui:780" +defs["igTableGetColumnFlags"][1]["location"] = "imgui:781" defs["igTableGetColumnFlags"][1]["namespace"] = "ImGui" defs["igTableGetColumnFlags"][1]["ov_cimguiname"] = "igTableGetColumnFlags" defs["igTableGetColumnFlags"][1]["ret"] = "ImGuiTableColumnFlags" @@ -26499,7 +27124,7 @@ defs["igTableGetColumnIndex"][1]["call_args"] = "()" defs["igTableGetColumnIndex"][1]["cimguiname"] = "igTableGetColumnIndex" defs["igTableGetColumnIndex"][1]["defaults"] = {} defs["igTableGetColumnIndex"][1]["funcname"] = "TableGetColumnIndex" -defs["igTableGetColumnIndex"][1]["location"] = "imgui:777" +defs["igTableGetColumnIndex"][1]["location"] = "imgui:778" defs["igTableGetColumnIndex"][1]["namespace"] = "ImGui" defs["igTableGetColumnIndex"][1]["ov_cimguiname"] = "igTableGetColumnIndex" defs["igTableGetColumnIndex"][1]["ret"] = "int" @@ -26519,7 +27144,7 @@ defs["igTableGetColumnName"][1]["cimguiname"] = "igTableGetColumnName" defs["igTableGetColumnName"][1]["defaults"] = {} defs["igTableGetColumnName"][1]["defaults"]["column_n"] = "-1" defs["igTableGetColumnName"][1]["funcname"] = "TableGetColumnName" -defs["igTableGetColumnName"][1]["location"] = "imgui:779" +defs["igTableGetColumnName"][1]["location"] = "imgui:780" defs["igTableGetColumnName"][1]["namespace"] = "ImGui" defs["igTableGetColumnName"][1]["ov_cimguiname"] = "igTableGetColumnNameInt" defs["igTableGetColumnName"][1]["ret"] = "const char*" @@ -26539,7 +27164,7 @@ defs["igTableGetColumnName"][2]["call_args"] = "(table,column_n)" defs["igTableGetColumnName"][2]["cimguiname"] = "igTableGetColumnName" defs["igTableGetColumnName"][2]["defaults"] = {} defs["igTableGetColumnName"][2]["funcname"] = "TableGetColumnName" -defs["igTableGetColumnName"][2]["location"] = "imgui_internal:2816" +defs["igTableGetColumnName"][2]["location"] = "imgui_internal:2936" defs["igTableGetColumnName"][2]["namespace"] = "ImGui" defs["igTableGetColumnName"][2]["ov_cimguiname"] = "igTableGetColumnNameTablePtr" defs["igTableGetColumnName"][2]["ret"] = "const char*" @@ -26559,7 +27184,7 @@ defs["igTableGetColumnNextSortDirection"][1]["call_args"] = "(column)" defs["igTableGetColumnNextSortDirection"][1]["cimguiname"] = "igTableGetColumnNextSortDirection" defs["igTableGetColumnNextSortDirection"][1]["defaults"] = {} defs["igTableGetColumnNextSortDirection"][1]["funcname"] = "TableGetColumnNextSortDirection" -defs["igTableGetColumnNextSortDirection"][1]["location"] = "imgui_internal:2808" +defs["igTableGetColumnNextSortDirection"][1]["location"] = "imgui_internal:2928" defs["igTableGetColumnNextSortDirection"][1]["namespace"] = "ImGui" defs["igTableGetColumnNextSortDirection"][1]["ov_cimguiname"] = "igTableGetColumnNextSortDirection" defs["igTableGetColumnNextSortDirection"][1]["ret"] = "ImGuiSortDirection" @@ -26585,7 +27210,7 @@ defs["igTableGetColumnResizeID"][1]["cimguiname"] = "igTableGetColumnResizeID" defs["igTableGetColumnResizeID"][1]["defaults"] = {} defs["igTableGetColumnResizeID"][1]["defaults"]["instance_no"] = "0" defs["igTableGetColumnResizeID"][1]["funcname"] = "TableGetColumnResizeID" -defs["igTableGetColumnResizeID"][1]["location"] = "imgui_internal:2817" +defs["igTableGetColumnResizeID"][1]["location"] = "imgui_internal:2937" defs["igTableGetColumnResizeID"][1]["namespace"] = "ImGui" defs["igTableGetColumnResizeID"][1]["ov_cimguiname"] = "igTableGetColumnResizeID" defs["igTableGetColumnResizeID"][1]["ret"] = "ImGuiID" @@ -26607,7 +27232,7 @@ defs["igTableGetColumnWidthAuto"][1]["call_args"] = "(table,column)" defs["igTableGetColumnWidthAuto"][1]["cimguiname"] = "igTableGetColumnWidthAuto" defs["igTableGetColumnWidthAuto"][1]["defaults"] = {} defs["igTableGetColumnWidthAuto"][1]["funcname"] = "TableGetColumnWidthAuto" -defs["igTableGetColumnWidthAuto"][1]["location"] = "imgui_internal:2810" +defs["igTableGetColumnWidthAuto"][1]["location"] = "imgui_internal:2930" defs["igTableGetColumnWidthAuto"][1]["namespace"] = "ImGui" defs["igTableGetColumnWidthAuto"][1]["ov_cimguiname"] = "igTableGetColumnWidthAuto" defs["igTableGetColumnWidthAuto"][1]["ret"] = "float" @@ -26623,7 +27248,7 @@ defs["igTableGetHeaderRowHeight"][1]["call_args"] = "()" defs["igTableGetHeaderRowHeight"][1]["cimguiname"] = "igTableGetHeaderRowHeight" defs["igTableGetHeaderRowHeight"][1]["defaults"] = {} defs["igTableGetHeaderRowHeight"][1]["funcname"] = "TableGetHeaderRowHeight" -defs["igTableGetHeaderRowHeight"][1]["location"] = "imgui_internal:2789" +defs["igTableGetHeaderRowHeight"][1]["location"] = "imgui_internal:2909" defs["igTableGetHeaderRowHeight"][1]["namespace"] = "ImGui" defs["igTableGetHeaderRowHeight"][1]["ov_cimguiname"] = "igTableGetHeaderRowHeight" defs["igTableGetHeaderRowHeight"][1]["ret"] = "float" @@ -26639,7 +27264,7 @@ defs["igTableGetHoveredColumn"][1]["call_args"] = "()" defs["igTableGetHoveredColumn"][1]["cimguiname"] = "igTableGetHoveredColumn" defs["igTableGetHoveredColumn"][1]["defaults"] = {} defs["igTableGetHoveredColumn"][1]["funcname"] = "TableGetHoveredColumn" -defs["igTableGetHoveredColumn"][1]["location"] = "imgui_internal:2788" +defs["igTableGetHoveredColumn"][1]["location"] = "imgui_internal:2908" defs["igTableGetHoveredColumn"][1]["namespace"] = "ImGui" defs["igTableGetHoveredColumn"][1]["ov_cimguiname"] = "igTableGetHoveredColumn" defs["igTableGetHoveredColumn"][1]["ret"] = "int" @@ -26661,7 +27286,7 @@ defs["igTableGetMaxColumnWidth"][1]["call_args"] = "(table,column_n)" defs["igTableGetMaxColumnWidth"][1]["cimguiname"] = "igTableGetMaxColumnWidth" defs["igTableGetMaxColumnWidth"][1]["defaults"] = {} defs["igTableGetMaxColumnWidth"][1]["funcname"] = "TableGetMaxColumnWidth" -defs["igTableGetMaxColumnWidth"][1]["location"] = "imgui_internal:2818" +defs["igTableGetMaxColumnWidth"][1]["location"] = "imgui_internal:2938" defs["igTableGetMaxColumnWidth"][1]["namespace"] = "ImGui" defs["igTableGetMaxColumnWidth"][1]["ov_cimguiname"] = "igTableGetMaxColumnWidth" defs["igTableGetMaxColumnWidth"][1]["ret"] = "float" @@ -26677,7 +27302,7 @@ defs["igTableGetRowIndex"][1]["call_args"] = "()" defs["igTableGetRowIndex"][1]["cimguiname"] = "igTableGetRowIndex" defs["igTableGetRowIndex"][1]["defaults"] = {} defs["igTableGetRowIndex"][1]["funcname"] = "TableGetRowIndex" -defs["igTableGetRowIndex"][1]["location"] = "imgui:778" +defs["igTableGetRowIndex"][1]["location"] = "imgui:779" defs["igTableGetRowIndex"][1]["namespace"] = "ImGui" defs["igTableGetRowIndex"][1]["ov_cimguiname"] = "igTableGetRowIndex" defs["igTableGetRowIndex"][1]["ret"] = "int" @@ -26693,7 +27318,7 @@ defs["igTableGetSortSpecs"][1]["call_args"] = "()" defs["igTableGetSortSpecs"][1]["cimguiname"] = "igTableGetSortSpecs" defs["igTableGetSortSpecs"][1]["defaults"] = {} defs["igTableGetSortSpecs"][1]["funcname"] = "TableGetSortSpecs" -defs["igTableGetSortSpecs"][1]["location"] = "imgui:772" +defs["igTableGetSortSpecs"][1]["location"] = "imgui:773" defs["igTableGetSortSpecs"][1]["namespace"] = "ImGui" defs["igTableGetSortSpecs"][1]["ov_cimguiname"] = "igTableGetSortSpecs" defs["igTableGetSortSpecs"][1]["ret"] = "ImGuiTableSortSpecs*" @@ -26712,7 +27337,7 @@ defs["igTableHeader"][1]["call_args"] = "(label)" defs["igTableHeader"][1]["cimguiname"] = "igTableHeader" defs["igTableHeader"][1]["defaults"] = {} defs["igTableHeader"][1]["funcname"] = "TableHeader" -defs["igTableHeader"][1]["location"] = "imgui:764" +defs["igTableHeader"][1]["location"] = "imgui:765" defs["igTableHeader"][1]["namespace"] = "ImGui" defs["igTableHeader"][1]["ov_cimguiname"] = "igTableHeader" defs["igTableHeader"][1]["ret"] = "void" @@ -26728,7 +27353,7 @@ defs["igTableHeadersRow"][1]["call_args"] = "()" defs["igTableHeadersRow"][1]["cimguiname"] = "igTableHeadersRow" defs["igTableHeadersRow"][1]["defaults"] = {} defs["igTableHeadersRow"][1]["funcname"] = "TableHeadersRow" -defs["igTableHeadersRow"][1]["location"] = "imgui:763" +defs["igTableHeadersRow"][1]["location"] = "imgui:764" defs["igTableHeadersRow"][1]["namespace"] = "ImGui" defs["igTableHeadersRow"][1]["ov_cimguiname"] = "igTableHeadersRow" defs["igTableHeadersRow"][1]["ret"] = "void" @@ -26747,7 +27372,7 @@ defs["igTableLoadSettings"][1]["call_args"] = "(table)" defs["igTableLoadSettings"][1]["cimguiname"] = "igTableLoadSettings" defs["igTableLoadSettings"][1]["defaults"] = {} defs["igTableLoadSettings"][1]["funcname"] = "TableLoadSettings" -defs["igTableLoadSettings"][1]["location"] = "imgui_internal:2827" +defs["igTableLoadSettings"][1]["location"] = "imgui_internal:2947" defs["igTableLoadSettings"][1]["namespace"] = "ImGui" defs["igTableLoadSettings"][1]["ov_cimguiname"] = "igTableLoadSettings" defs["igTableLoadSettings"][1]["ret"] = "void" @@ -26766,7 +27391,7 @@ defs["igTableMergeDrawChannels"][1]["call_args"] = "(table)" defs["igTableMergeDrawChannels"][1]["cimguiname"] = "igTableMergeDrawChannels" defs["igTableMergeDrawChannels"][1]["defaults"] = {} defs["igTableMergeDrawChannels"][1]["funcname"] = "TableMergeDrawChannels" -defs["igTableMergeDrawChannels"][1]["location"] = "imgui_internal:2805" +defs["igTableMergeDrawChannels"][1]["location"] = "imgui_internal:2925" defs["igTableMergeDrawChannels"][1]["namespace"] = "ImGui" defs["igTableMergeDrawChannels"][1]["ov_cimguiname"] = "igTableMergeDrawChannels" defs["igTableMergeDrawChannels"][1]["ret"] = "void" @@ -26782,7 +27407,7 @@ defs["igTableNextColumn"][1]["call_args"] = "()" defs["igTableNextColumn"][1]["cimguiname"] = "igTableNextColumn" defs["igTableNextColumn"][1]["defaults"] = {} defs["igTableNextColumn"][1]["funcname"] = "TableNextColumn" -defs["igTableNextColumn"][1]["location"] = "imgui:750" +defs["igTableNextColumn"][1]["location"] = "imgui:751" defs["igTableNextColumn"][1]["namespace"] = "ImGui" defs["igTableNextColumn"][1]["ov_cimguiname"] = "igTableNextColumn" defs["igTableNextColumn"][1]["ret"] = "bool" @@ -26806,7 +27431,7 @@ defs["igTableNextRow"][1]["defaults"] = {} defs["igTableNextRow"][1]["defaults"]["min_row_height"] = "0.0f" defs["igTableNextRow"][1]["defaults"]["row_flags"] = "0" defs["igTableNextRow"][1]["funcname"] = "TableNextRow" -defs["igTableNextRow"][1]["location"] = "imgui:749" +defs["igTableNextRow"][1]["location"] = "imgui:750" defs["igTableNextRow"][1]["namespace"] = "ImGui" defs["igTableNextRow"][1]["ov_cimguiname"] = "igTableNextRow" defs["igTableNextRow"][1]["ret"] = "void" @@ -26826,7 +27451,7 @@ defs["igTableOpenContextMenu"][1]["cimguiname"] = "igTableOpenContextMenu" defs["igTableOpenContextMenu"][1]["defaults"] = {} defs["igTableOpenContextMenu"][1]["defaults"]["column_n"] = "-1" defs["igTableOpenContextMenu"][1]["funcname"] = "TableOpenContextMenu" -defs["igTableOpenContextMenu"][1]["location"] = "imgui_internal:2785" +defs["igTableOpenContextMenu"][1]["location"] = "imgui_internal:2905" defs["igTableOpenContextMenu"][1]["namespace"] = "ImGui" defs["igTableOpenContextMenu"][1]["ov_cimguiname"] = "igTableOpenContextMenu" defs["igTableOpenContextMenu"][1]["ret"] = "void" @@ -26842,7 +27467,7 @@ defs["igTablePopBackgroundChannel"][1]["call_args"] = "()" defs["igTablePopBackgroundChannel"][1]["cimguiname"] = "igTablePopBackgroundChannel" defs["igTablePopBackgroundChannel"][1]["defaults"] = {} defs["igTablePopBackgroundChannel"][1]["funcname"] = "TablePopBackgroundChannel" -defs["igTablePopBackgroundChannel"][1]["location"] = "imgui_internal:2791" +defs["igTablePopBackgroundChannel"][1]["location"] = "imgui_internal:2911" defs["igTablePopBackgroundChannel"][1]["namespace"] = "ImGui" defs["igTablePopBackgroundChannel"][1]["ov_cimguiname"] = "igTablePopBackgroundChannel" defs["igTablePopBackgroundChannel"][1]["ret"] = "void" @@ -26858,7 +27483,7 @@ defs["igTablePushBackgroundChannel"][1]["call_args"] = "()" defs["igTablePushBackgroundChannel"][1]["cimguiname"] = "igTablePushBackgroundChannel" defs["igTablePushBackgroundChannel"][1]["defaults"] = {} defs["igTablePushBackgroundChannel"][1]["funcname"] = "TablePushBackgroundChannel" -defs["igTablePushBackgroundChannel"][1]["location"] = "imgui_internal:2790" +defs["igTablePushBackgroundChannel"][1]["location"] = "imgui_internal:2910" defs["igTablePushBackgroundChannel"][1]["namespace"] = "ImGui" defs["igTablePushBackgroundChannel"][1]["ov_cimguiname"] = "igTablePushBackgroundChannel" defs["igTablePushBackgroundChannel"][1]["ret"] = "void" @@ -26877,7 +27502,7 @@ defs["igTableRemove"][1]["call_args"] = "(table)" defs["igTableRemove"][1]["cimguiname"] = "igTableRemove" defs["igTableRemove"][1]["defaults"] = {} defs["igTableRemove"][1]["funcname"] = "TableRemove" -defs["igTableRemove"][1]["location"] = "imgui_internal:2821" +defs["igTableRemove"][1]["location"] = "imgui_internal:2941" defs["igTableRemove"][1]["namespace"] = "ImGui" defs["igTableRemove"][1]["ov_cimguiname"] = "igTableRemove" defs["igTableRemove"][1]["ret"] = "void" @@ -26896,7 +27521,7 @@ defs["igTableResetSettings"][1]["call_args"] = "(table)" defs["igTableResetSettings"][1]["cimguiname"] = "igTableResetSettings" defs["igTableResetSettings"][1]["defaults"] = {} defs["igTableResetSettings"][1]["funcname"] = "TableResetSettings" -defs["igTableResetSettings"][1]["location"] = "imgui_internal:2829" +defs["igTableResetSettings"][1]["location"] = "imgui_internal:2949" defs["igTableResetSettings"][1]["namespace"] = "ImGui" defs["igTableResetSettings"][1]["ov_cimguiname"] = "igTableResetSettings" defs["igTableResetSettings"][1]["ret"] = "void" @@ -26915,7 +27540,7 @@ defs["igTableSaveSettings"][1]["call_args"] = "(table)" defs["igTableSaveSettings"][1]["cimguiname"] = "igTableSaveSettings" defs["igTableSaveSettings"][1]["defaults"] = {} defs["igTableSaveSettings"][1]["funcname"] = "TableSaveSettings" -defs["igTableSaveSettings"][1]["location"] = "imgui_internal:2828" +defs["igTableSaveSettings"][1]["location"] = "imgui_internal:2948" defs["igTableSaveSettings"][1]["namespace"] = "ImGui" defs["igTableSaveSettings"][1]["ov_cimguiname"] = "igTableSaveSettings" defs["igTableSaveSettings"][1]["ret"] = "void" @@ -26941,7 +27566,7 @@ defs["igTableSetBgColor"][1]["cimguiname"] = "igTableSetBgColor" defs["igTableSetBgColor"][1]["defaults"] = {} defs["igTableSetBgColor"][1]["defaults"]["column_n"] = "-1" defs["igTableSetBgColor"][1]["funcname"] = "TableSetBgColor" -defs["igTableSetBgColor"][1]["location"] = "imgui:782" +defs["igTableSetBgColor"][1]["location"] = "imgui:783" defs["igTableSetBgColor"][1]["namespace"] = "ImGui" defs["igTableSetBgColor"][1]["ov_cimguiname"] = "igTableSetBgColor" defs["igTableSetBgColor"][1]["ret"] = "void" @@ -26963,7 +27588,7 @@ defs["igTableSetColumnEnabled"][1]["call_args"] = "(column_n,v)" defs["igTableSetColumnEnabled"][1]["cimguiname"] = "igTableSetColumnEnabled" defs["igTableSetColumnEnabled"][1]["defaults"] = {} defs["igTableSetColumnEnabled"][1]["funcname"] = "TableSetColumnEnabled" -defs["igTableSetColumnEnabled"][1]["location"] = "imgui:781" +defs["igTableSetColumnEnabled"][1]["location"] = "imgui:782" defs["igTableSetColumnEnabled"][1]["namespace"] = "ImGui" defs["igTableSetColumnEnabled"][1]["ov_cimguiname"] = "igTableSetColumnEnabled" defs["igTableSetColumnEnabled"][1]["ret"] = "void" @@ -26982,7 +27607,7 @@ defs["igTableSetColumnIndex"][1]["call_args"] = "(column_n)" defs["igTableSetColumnIndex"][1]["cimguiname"] = "igTableSetColumnIndex" defs["igTableSetColumnIndex"][1]["defaults"] = {} defs["igTableSetColumnIndex"][1]["funcname"] = "TableSetColumnIndex" -defs["igTableSetColumnIndex"][1]["location"] = "imgui:751" +defs["igTableSetColumnIndex"][1]["location"] = "imgui:752" defs["igTableSetColumnIndex"][1]["namespace"] = "ImGui" defs["igTableSetColumnIndex"][1]["ov_cimguiname"] = "igTableSetColumnIndex" defs["igTableSetColumnIndex"][1]["ret"] = "bool" @@ -27007,7 +27632,7 @@ defs["igTableSetColumnSortDirection"][1]["call_args"] = "(column_n,sort_directio defs["igTableSetColumnSortDirection"][1]["cimguiname"] = "igTableSetColumnSortDirection" defs["igTableSetColumnSortDirection"][1]["defaults"] = {} defs["igTableSetColumnSortDirection"][1]["funcname"] = "TableSetColumnSortDirection" -defs["igTableSetColumnSortDirection"][1]["location"] = "imgui_internal:2787" +defs["igTableSetColumnSortDirection"][1]["location"] = "imgui_internal:2907" defs["igTableSetColumnSortDirection"][1]["namespace"] = "ImGui" defs["igTableSetColumnSortDirection"][1]["ov_cimguiname"] = "igTableSetColumnSortDirection" defs["igTableSetColumnSortDirection"][1]["ret"] = "void" @@ -27029,7 +27654,7 @@ defs["igTableSetColumnWidth"][1]["call_args"] = "(column_n,width)" defs["igTableSetColumnWidth"][1]["cimguiname"] = "igTableSetColumnWidth" defs["igTableSetColumnWidth"][1]["defaults"] = {} defs["igTableSetColumnWidth"][1]["funcname"] = "TableSetColumnWidth" -defs["igTableSetColumnWidth"][1]["location"] = "imgui_internal:2786" +defs["igTableSetColumnWidth"][1]["location"] = "imgui_internal:2906" defs["igTableSetColumnWidth"][1]["namespace"] = "ImGui" defs["igTableSetColumnWidth"][1]["ov_cimguiname"] = "igTableSetColumnWidth" defs["igTableSetColumnWidth"][1]["ret"] = "void" @@ -27048,7 +27673,7 @@ defs["igTableSetColumnWidthAutoAll"][1]["call_args"] = "(table)" defs["igTableSetColumnWidthAutoAll"][1]["cimguiname"] = "igTableSetColumnWidthAutoAll" defs["igTableSetColumnWidthAutoAll"][1]["defaults"] = {} defs["igTableSetColumnWidthAutoAll"][1]["funcname"] = "TableSetColumnWidthAutoAll" -defs["igTableSetColumnWidthAutoAll"][1]["location"] = "imgui_internal:2820" +defs["igTableSetColumnWidthAutoAll"][1]["location"] = "imgui_internal:2940" defs["igTableSetColumnWidthAutoAll"][1]["namespace"] = "ImGui" defs["igTableSetColumnWidthAutoAll"][1]["ov_cimguiname"] = "igTableSetColumnWidthAutoAll" defs["igTableSetColumnWidthAutoAll"][1]["ret"] = "void" @@ -27070,7 +27695,7 @@ defs["igTableSetColumnWidthAutoSingle"][1]["call_args"] = "(table,column_n)" defs["igTableSetColumnWidthAutoSingle"][1]["cimguiname"] = "igTableSetColumnWidthAutoSingle" defs["igTableSetColumnWidthAutoSingle"][1]["defaults"] = {} defs["igTableSetColumnWidthAutoSingle"][1]["funcname"] = "TableSetColumnWidthAutoSingle" -defs["igTableSetColumnWidthAutoSingle"][1]["location"] = "imgui_internal:2819" +defs["igTableSetColumnWidthAutoSingle"][1]["location"] = "imgui_internal:2939" defs["igTableSetColumnWidthAutoSingle"][1]["namespace"] = "ImGui" defs["igTableSetColumnWidthAutoSingle"][1]["ov_cimguiname"] = "igTableSetColumnWidthAutoSingle" defs["igTableSetColumnWidthAutoSingle"][1]["ret"] = "void" @@ -27092,7 +27717,7 @@ defs["igTableSettingsCreate"][1]["call_args"] = "(id,columns_count)" defs["igTableSettingsCreate"][1]["cimguiname"] = "igTableSettingsCreate" defs["igTableSettingsCreate"][1]["defaults"] = {} defs["igTableSettingsCreate"][1]["funcname"] = "TableSettingsCreate" -defs["igTableSettingsCreate"][1]["location"] = "imgui_internal:2832" +defs["igTableSettingsCreate"][1]["location"] = "imgui_internal:2952" defs["igTableSettingsCreate"][1]["namespace"] = "ImGui" defs["igTableSettingsCreate"][1]["ov_cimguiname"] = "igTableSettingsCreate" defs["igTableSettingsCreate"][1]["ret"] = "ImGuiTableSettings*" @@ -27111,7 +27736,7 @@ defs["igTableSettingsFindByID"][1]["call_args"] = "(id)" defs["igTableSettingsFindByID"][1]["cimguiname"] = "igTableSettingsFindByID" defs["igTableSettingsFindByID"][1]["defaults"] = {} defs["igTableSettingsFindByID"][1]["funcname"] = "TableSettingsFindByID" -defs["igTableSettingsFindByID"][1]["location"] = "imgui_internal:2833" +defs["igTableSettingsFindByID"][1]["location"] = "imgui_internal:2953" defs["igTableSettingsFindByID"][1]["namespace"] = "ImGui" defs["igTableSettingsFindByID"][1]["ov_cimguiname"] = "igTableSettingsFindByID" defs["igTableSettingsFindByID"][1]["ret"] = "ImGuiTableSettings*" @@ -27130,7 +27755,7 @@ defs["igTableSettingsInstallHandler"][1]["call_args"] = "(context)" defs["igTableSettingsInstallHandler"][1]["cimguiname"] = "igTableSettingsInstallHandler" defs["igTableSettingsInstallHandler"][1]["defaults"] = {} defs["igTableSettingsInstallHandler"][1]["funcname"] = "TableSettingsInstallHandler" -defs["igTableSettingsInstallHandler"][1]["location"] = "imgui_internal:2831" +defs["igTableSettingsInstallHandler"][1]["location"] = "imgui_internal:2951" defs["igTableSettingsInstallHandler"][1]["namespace"] = "ImGui" defs["igTableSettingsInstallHandler"][1]["ov_cimguiname"] = "igTableSettingsInstallHandler" defs["igTableSettingsInstallHandler"][1]["ret"] = "void" @@ -27161,7 +27786,7 @@ defs["igTableSetupColumn"][1]["defaults"]["flags"] = "0" defs["igTableSetupColumn"][1]["defaults"]["init_width_or_weight"] = "0.0f" defs["igTableSetupColumn"][1]["defaults"]["user_id"] = "0" defs["igTableSetupColumn"][1]["funcname"] = "TableSetupColumn" -defs["igTableSetupColumn"][1]["location"] = "imgui:761" +defs["igTableSetupColumn"][1]["location"] = "imgui:762" defs["igTableSetupColumn"][1]["namespace"] = "ImGui" defs["igTableSetupColumn"][1]["ov_cimguiname"] = "igTableSetupColumn" defs["igTableSetupColumn"][1]["ret"] = "void" @@ -27180,7 +27805,7 @@ defs["igTableSetupDrawChannels"][1]["call_args"] = "(table)" defs["igTableSetupDrawChannels"][1]["cimguiname"] = "igTableSetupDrawChannels" defs["igTableSetupDrawChannels"][1]["defaults"] = {} defs["igTableSetupDrawChannels"][1]["funcname"] = "TableSetupDrawChannels" -defs["igTableSetupDrawChannels"][1]["location"] = "imgui_internal:2799" +defs["igTableSetupDrawChannels"][1]["location"] = "imgui_internal:2919" defs["igTableSetupDrawChannels"][1]["namespace"] = "ImGui" defs["igTableSetupDrawChannels"][1]["ov_cimguiname"] = "igTableSetupDrawChannels" defs["igTableSetupDrawChannels"][1]["ret"] = "void" @@ -27202,7 +27827,7 @@ defs["igTableSetupScrollFreeze"][1]["call_args"] = "(cols,rows)" defs["igTableSetupScrollFreeze"][1]["cimguiname"] = "igTableSetupScrollFreeze" defs["igTableSetupScrollFreeze"][1]["defaults"] = {} defs["igTableSetupScrollFreeze"][1]["funcname"] = "TableSetupScrollFreeze" -defs["igTableSetupScrollFreeze"][1]["location"] = "imgui:762" +defs["igTableSetupScrollFreeze"][1]["location"] = "imgui:763" defs["igTableSetupScrollFreeze"][1]["namespace"] = "ImGui" defs["igTableSetupScrollFreeze"][1]["ov_cimguiname"] = "igTableSetupScrollFreeze" defs["igTableSetupScrollFreeze"][1]["ret"] = "void" @@ -27221,7 +27846,7 @@ defs["igTableSortSpecsBuild"][1]["call_args"] = "(table)" defs["igTableSortSpecsBuild"][1]["cimguiname"] = "igTableSortSpecsBuild" defs["igTableSortSpecsBuild"][1]["defaults"] = {} defs["igTableSortSpecsBuild"][1]["funcname"] = "TableSortSpecsBuild" -defs["igTableSortSpecsBuild"][1]["location"] = "imgui_internal:2807" +defs["igTableSortSpecsBuild"][1]["location"] = "imgui_internal:2927" defs["igTableSortSpecsBuild"][1]["namespace"] = "ImGui" defs["igTableSortSpecsBuild"][1]["ov_cimguiname"] = "igTableSortSpecsBuild" defs["igTableSortSpecsBuild"][1]["ret"] = "void" @@ -27240,7 +27865,7 @@ defs["igTableSortSpecsSanitize"][1]["call_args"] = "(table)" defs["igTableSortSpecsSanitize"][1]["cimguiname"] = "igTableSortSpecsSanitize" defs["igTableSortSpecsSanitize"][1]["defaults"] = {} defs["igTableSortSpecsSanitize"][1]["funcname"] = "TableSortSpecsSanitize" -defs["igTableSortSpecsSanitize"][1]["location"] = "imgui_internal:2806" +defs["igTableSortSpecsSanitize"][1]["location"] = "imgui_internal:2926" defs["igTableSortSpecsSanitize"][1]["namespace"] = "ImGui" defs["igTableSortSpecsSanitize"][1]["ov_cimguiname"] = "igTableSortSpecsSanitize" defs["igTableSortSpecsSanitize"][1]["ret"] = "void" @@ -27259,7 +27884,7 @@ defs["igTableUpdateBorders"][1]["call_args"] = "(table)" defs["igTableUpdateBorders"][1]["cimguiname"] = "igTableUpdateBorders" defs["igTableUpdateBorders"][1]["defaults"] = {} defs["igTableUpdateBorders"][1]["funcname"] = "TableUpdateBorders" -defs["igTableUpdateBorders"][1]["location"] = "imgui_internal:2801" +defs["igTableUpdateBorders"][1]["location"] = "imgui_internal:2921" defs["igTableUpdateBorders"][1]["namespace"] = "ImGui" defs["igTableUpdateBorders"][1]["ov_cimguiname"] = "igTableUpdateBorders" defs["igTableUpdateBorders"][1]["ret"] = "void" @@ -27278,7 +27903,7 @@ defs["igTableUpdateColumnsWeightFromWidth"][1]["call_args"] = "(table)" defs["igTableUpdateColumnsWeightFromWidth"][1]["cimguiname"] = "igTableUpdateColumnsWeightFromWidth" defs["igTableUpdateColumnsWeightFromWidth"][1]["defaults"] = {} defs["igTableUpdateColumnsWeightFromWidth"][1]["funcname"] = "TableUpdateColumnsWeightFromWidth" -defs["igTableUpdateColumnsWeightFromWidth"][1]["location"] = "imgui_internal:2802" +defs["igTableUpdateColumnsWeightFromWidth"][1]["location"] = "imgui_internal:2922" defs["igTableUpdateColumnsWeightFromWidth"][1]["namespace"] = "ImGui" defs["igTableUpdateColumnsWeightFromWidth"][1]["ov_cimguiname"] = "igTableUpdateColumnsWeightFromWidth" defs["igTableUpdateColumnsWeightFromWidth"][1]["ret"] = "void" @@ -27297,7 +27922,7 @@ defs["igTableUpdateLayout"][1]["call_args"] = "(table)" defs["igTableUpdateLayout"][1]["cimguiname"] = "igTableUpdateLayout" defs["igTableUpdateLayout"][1]["defaults"] = {} defs["igTableUpdateLayout"][1]["funcname"] = "TableUpdateLayout" -defs["igTableUpdateLayout"][1]["location"] = "imgui_internal:2800" +defs["igTableUpdateLayout"][1]["location"] = "imgui_internal:2920" defs["igTableUpdateLayout"][1]["namespace"] = "ImGui" defs["igTableUpdateLayout"][1]["ov_cimguiname"] = "igTableUpdateLayout" defs["igTableUpdateLayout"][1]["ret"] = "void" @@ -27316,7 +27941,7 @@ defs["igTempInputIsActive"][1]["call_args"] = "(id)" defs["igTempInputIsActive"][1]["cimguiname"] = "igTempInputIsActive" defs["igTempInputIsActive"][1]["defaults"] = {} defs["igTempInputIsActive"][1]["funcname"] = "TempInputIsActive" -defs["igTempInputIsActive"][1]["location"] = "imgui_internal:2928" +defs["igTempInputIsActive"][1]["location"] = "imgui_internal:3049" defs["igTempInputIsActive"][1]["namespace"] = "ImGui" defs["igTempInputIsActive"][1]["ov_cimguiname"] = "igTempInputIsActive" defs["igTempInputIsActive"][1]["ret"] = "bool" @@ -27358,7 +27983,7 @@ defs["igTempInputScalar"][1]["defaults"] = {} defs["igTempInputScalar"][1]["defaults"]["p_clamp_max"] = "NULL" defs["igTempInputScalar"][1]["defaults"]["p_clamp_min"] = "NULL" defs["igTempInputScalar"][1]["funcname"] = "TempInputScalar" -defs["igTempInputScalar"][1]["location"] = "imgui_internal:2927" +defs["igTempInputScalar"][1]["location"] = "imgui_internal:3048" defs["igTempInputScalar"][1]["namespace"] = "ImGui" defs["igTempInputScalar"][1]["ov_cimguiname"] = "igTempInputScalar" defs["igTempInputScalar"][1]["ret"] = "bool" @@ -27392,7 +28017,7 @@ defs["igTempInputText"][1]["call_args"] = "(bb,id,label,buf,buf_size,flags)" defs["igTempInputText"][1]["cimguiname"] = "igTempInputText" defs["igTempInputText"][1]["defaults"] = {} defs["igTempInputText"][1]["funcname"] = "TempInputText" -defs["igTempInputText"][1]["location"] = "imgui_internal:2926" +defs["igTempInputText"][1]["location"] = "imgui_internal:3047" defs["igTempInputText"][1]["namespace"] = "ImGui" defs["igTempInputText"][1]["ov_cimguiname"] = "igTempInputText" defs["igTempInputText"][1]["ret"] = "bool" @@ -27415,7 +28040,7 @@ defs["igText"][1]["cimguiname"] = "igText" defs["igText"][1]["defaults"] = {} defs["igText"][1]["funcname"] = "Text" defs["igText"][1]["isvararg"] = "...)" -defs["igText"][1]["location"] = "imgui:495" +defs["igText"][1]["location"] = "imgui:496" defs["igText"][1]["namespace"] = "ImGui" defs["igText"][1]["ov_cimguiname"] = "igText" defs["igText"][1]["ret"] = "void" @@ -27441,7 +28066,7 @@ defs["igTextColored"][1]["cimguiname"] = "igTextColored" defs["igTextColored"][1]["defaults"] = {} defs["igTextColored"][1]["funcname"] = "TextColored" defs["igTextColored"][1]["isvararg"] = "...)" -defs["igTextColored"][1]["location"] = "imgui:497" +defs["igTextColored"][1]["location"] = "imgui:498" defs["igTextColored"][1]["namespace"] = "ImGui" defs["igTextColored"][1]["ov_cimguiname"] = "igTextColored" defs["igTextColored"][1]["ret"] = "void" @@ -27466,7 +28091,7 @@ defs["igTextColoredV"][1]["call_args"] = "(col,fmt,args)" defs["igTextColoredV"][1]["cimguiname"] = "igTextColoredV" defs["igTextColoredV"][1]["defaults"] = {} defs["igTextColoredV"][1]["funcname"] = "TextColoredV" -defs["igTextColoredV"][1]["location"] = "imgui:498" +defs["igTextColoredV"][1]["location"] = "imgui:499" defs["igTextColoredV"][1]["namespace"] = "ImGui" defs["igTextColoredV"][1]["ov_cimguiname"] = "igTextColoredV" defs["igTextColoredV"][1]["ret"] = "void" @@ -27489,7 +28114,7 @@ defs["igTextDisabled"][1]["cimguiname"] = "igTextDisabled" defs["igTextDisabled"][1]["defaults"] = {} defs["igTextDisabled"][1]["funcname"] = "TextDisabled" defs["igTextDisabled"][1]["isvararg"] = "...)" -defs["igTextDisabled"][1]["location"] = "imgui:499" +defs["igTextDisabled"][1]["location"] = "imgui:500" defs["igTextDisabled"][1]["namespace"] = "ImGui" defs["igTextDisabled"][1]["ov_cimguiname"] = "igTextDisabled" defs["igTextDisabled"][1]["ret"] = "void" @@ -27511,7 +28136,7 @@ defs["igTextDisabledV"][1]["call_args"] = "(fmt,args)" defs["igTextDisabledV"][1]["cimguiname"] = "igTextDisabledV" defs["igTextDisabledV"][1]["defaults"] = {} defs["igTextDisabledV"][1]["funcname"] = "TextDisabledV" -defs["igTextDisabledV"][1]["location"] = "imgui:500" +defs["igTextDisabledV"][1]["location"] = "imgui:501" defs["igTextDisabledV"][1]["namespace"] = "ImGui" defs["igTextDisabledV"][1]["ov_cimguiname"] = "igTextDisabledV" defs["igTextDisabledV"][1]["ret"] = "void" @@ -27538,7 +28163,7 @@ defs["igTextEx"][1]["defaults"] = {} defs["igTextEx"][1]["defaults"]["flags"] = "0" defs["igTextEx"][1]["defaults"]["text_end"] = "NULL" defs["igTextEx"][1]["funcname"] = "TextEx" -defs["igTextEx"][1]["location"] = "imgui_internal:2881" +defs["igTextEx"][1]["location"] = "imgui_internal:3002" defs["igTextEx"][1]["namespace"] = "ImGui" defs["igTextEx"][1]["ov_cimguiname"] = "igTextEx" defs["igTextEx"][1]["ret"] = "void" @@ -27561,7 +28186,7 @@ defs["igTextUnformatted"][1]["cimguiname"] = "igTextUnformatted" defs["igTextUnformatted"][1]["defaults"] = {} defs["igTextUnformatted"][1]["defaults"]["text_end"] = "NULL" defs["igTextUnformatted"][1]["funcname"] = "TextUnformatted" -defs["igTextUnformatted"][1]["location"] = "imgui:494" +defs["igTextUnformatted"][1]["location"] = "imgui:495" defs["igTextUnformatted"][1]["namespace"] = "ImGui" defs["igTextUnformatted"][1]["ov_cimguiname"] = "igTextUnformatted" defs["igTextUnformatted"][1]["ret"] = "void" @@ -27583,7 +28208,7 @@ defs["igTextV"][1]["call_args"] = "(fmt,args)" defs["igTextV"][1]["cimguiname"] = "igTextV" defs["igTextV"][1]["defaults"] = {} defs["igTextV"][1]["funcname"] = "TextV" -defs["igTextV"][1]["location"] = "imgui:496" +defs["igTextV"][1]["location"] = "imgui:497" defs["igTextV"][1]["namespace"] = "ImGui" defs["igTextV"][1]["ov_cimguiname"] = "igTextV" defs["igTextV"][1]["ret"] = "void" @@ -27606,7 +28231,7 @@ defs["igTextWrapped"][1]["cimguiname"] = "igTextWrapped" defs["igTextWrapped"][1]["defaults"] = {} defs["igTextWrapped"][1]["funcname"] = "TextWrapped" defs["igTextWrapped"][1]["isvararg"] = "...)" -defs["igTextWrapped"][1]["location"] = "imgui:501" +defs["igTextWrapped"][1]["location"] = "imgui:502" defs["igTextWrapped"][1]["namespace"] = "ImGui" defs["igTextWrapped"][1]["ov_cimguiname"] = "igTextWrapped" defs["igTextWrapped"][1]["ret"] = "void" @@ -27628,7 +28253,7 @@ defs["igTextWrappedV"][1]["call_args"] = "(fmt,args)" defs["igTextWrappedV"][1]["cimguiname"] = "igTextWrappedV" defs["igTextWrappedV"][1]["defaults"] = {} defs["igTextWrappedV"][1]["funcname"] = "TextWrappedV" -defs["igTextWrappedV"][1]["location"] = "imgui:502" +defs["igTextWrappedV"][1]["location"] = "imgui:503" defs["igTextWrappedV"][1]["namespace"] = "ImGui" defs["igTextWrappedV"][1]["ov_cimguiname"] = "igTextWrappedV" defs["igTextWrappedV"][1]["ret"] = "void" @@ -27653,7 +28278,7 @@ defs["igTranslateWindowsInViewport"][1]["call_args"] = "(viewport,old_pos,new_po defs["igTranslateWindowsInViewport"][1]["cimguiname"] = "igTranslateWindowsInViewport" defs["igTranslateWindowsInViewport"][1]["defaults"] = {} defs["igTranslateWindowsInViewport"][1]["funcname"] = "TranslateWindowsInViewport" -defs["igTranslateWindowsInViewport"][1]["location"] = "imgui_internal:2588" +defs["igTranslateWindowsInViewport"][1]["location"] = "imgui_internal:2693" defs["igTranslateWindowsInViewport"][1]["namespace"] = "ImGui" defs["igTranslateWindowsInViewport"][1]["ov_cimguiname"] = "igTranslateWindowsInViewport" defs["igTranslateWindowsInViewport"][1]["ret"] = "void" @@ -27672,7 +28297,7 @@ defs["igTreeNode"][1]["call_args"] = "(label)" defs["igTreeNode"][1]["cimguiname"] = "igTreeNode" defs["igTreeNode"][1]["defaults"] = {} defs["igTreeNode"][1]["funcname"] = "TreeNode" -defs["igTreeNode"][1]["location"] = "imgui:609" +defs["igTreeNode"][1]["location"] = "imgui:610" defs["igTreeNode"][1]["namespace"] = "ImGui" defs["igTreeNode"][1]["ov_cimguiname"] = "igTreeNodeStr" defs["igTreeNode"][1]["ret"] = "bool" @@ -27696,7 +28321,7 @@ defs["igTreeNode"][2]["cimguiname"] = "igTreeNode" defs["igTreeNode"][2]["defaults"] = {} defs["igTreeNode"][2]["funcname"] = "TreeNode" defs["igTreeNode"][2]["isvararg"] = "...)" -defs["igTreeNode"][2]["location"] = "imgui:610" +defs["igTreeNode"][2]["location"] = "imgui:611" defs["igTreeNode"][2]["namespace"] = "ImGui" defs["igTreeNode"][2]["ov_cimguiname"] = "igTreeNodeStrStr" defs["igTreeNode"][2]["ret"] = "bool" @@ -27720,7 +28345,7 @@ defs["igTreeNode"][3]["cimguiname"] = "igTreeNode" defs["igTreeNode"][3]["defaults"] = {} defs["igTreeNode"][3]["funcname"] = "TreeNode" defs["igTreeNode"][3]["isvararg"] = "...)" -defs["igTreeNode"][3]["location"] = "imgui:611" +defs["igTreeNode"][3]["location"] = "imgui:612" defs["igTreeNode"][3]["namespace"] = "ImGui" defs["igTreeNode"][3]["ov_cimguiname"] = "igTreeNodePtr" defs["igTreeNode"][3]["ret"] = "bool" @@ -27751,7 +28376,7 @@ defs["igTreeNodeBehavior"][1]["cimguiname"] = "igTreeNodeBehavior" defs["igTreeNodeBehavior"][1]["defaults"] = {} defs["igTreeNodeBehavior"][1]["defaults"]["label_end"] = "NULL" defs["igTreeNodeBehavior"][1]["funcname"] = "TreeNodeBehavior" -defs["igTreeNodeBehavior"][1]["location"] = "imgui_internal:2902" +defs["igTreeNodeBehavior"][1]["location"] = "imgui_internal:3023" defs["igTreeNodeBehavior"][1]["namespace"] = "ImGui" defs["igTreeNodeBehavior"][1]["ov_cimguiname"] = "igTreeNodeBehavior" defs["igTreeNodeBehavior"][1]["ret"] = "bool" @@ -27774,7 +28399,7 @@ defs["igTreeNodeBehaviorIsOpen"][1]["cimguiname"] = "igTreeNodeBehaviorIsOpen" defs["igTreeNodeBehaviorIsOpen"][1]["defaults"] = {} defs["igTreeNodeBehaviorIsOpen"][1]["defaults"]["flags"] = "0" defs["igTreeNodeBehaviorIsOpen"][1]["funcname"] = "TreeNodeBehaviorIsOpen" -defs["igTreeNodeBehaviorIsOpen"][1]["location"] = "imgui_internal:2903" +defs["igTreeNodeBehaviorIsOpen"][1]["location"] = "imgui_internal:3024" defs["igTreeNodeBehaviorIsOpen"][1]["namespace"] = "ImGui" defs["igTreeNodeBehaviorIsOpen"][1]["ov_cimguiname"] = "igTreeNodeBehaviorIsOpen" defs["igTreeNodeBehaviorIsOpen"][1]["ret"] = "bool" @@ -27797,7 +28422,7 @@ defs["igTreeNodeEx"][1]["cimguiname"] = "igTreeNodeEx" defs["igTreeNodeEx"][1]["defaults"] = {} defs["igTreeNodeEx"][1]["defaults"]["flags"] = "0" defs["igTreeNodeEx"][1]["funcname"] = "TreeNodeEx" -defs["igTreeNodeEx"][1]["location"] = "imgui:614" +defs["igTreeNodeEx"][1]["location"] = "imgui:615" defs["igTreeNodeEx"][1]["namespace"] = "ImGui" defs["igTreeNodeEx"][1]["ov_cimguiname"] = "igTreeNodeExStr" defs["igTreeNodeEx"][1]["ret"] = "bool" @@ -27824,7 +28449,7 @@ defs["igTreeNodeEx"][2]["cimguiname"] = "igTreeNodeEx" defs["igTreeNodeEx"][2]["defaults"] = {} defs["igTreeNodeEx"][2]["funcname"] = "TreeNodeEx" defs["igTreeNodeEx"][2]["isvararg"] = "...)" -defs["igTreeNodeEx"][2]["location"] = "imgui:615" +defs["igTreeNodeEx"][2]["location"] = "imgui:616" defs["igTreeNodeEx"][2]["namespace"] = "ImGui" defs["igTreeNodeEx"][2]["ov_cimguiname"] = "igTreeNodeExStrStr" defs["igTreeNodeEx"][2]["ret"] = "bool" @@ -27851,7 +28476,7 @@ defs["igTreeNodeEx"][3]["cimguiname"] = "igTreeNodeEx" defs["igTreeNodeEx"][3]["defaults"] = {} defs["igTreeNodeEx"][3]["funcname"] = "TreeNodeEx" defs["igTreeNodeEx"][3]["isvararg"] = "...)" -defs["igTreeNodeEx"][3]["location"] = "imgui:616" +defs["igTreeNodeEx"][3]["location"] = "imgui:617" defs["igTreeNodeEx"][3]["namespace"] = "ImGui" defs["igTreeNodeEx"][3]["ov_cimguiname"] = "igTreeNodeExPtr" defs["igTreeNodeEx"][3]["ret"] = "bool" @@ -27881,7 +28506,7 @@ defs["igTreeNodeExV"][1]["call_args"] = "(str_id,flags,fmt,args)" defs["igTreeNodeExV"][1]["cimguiname"] = "igTreeNodeExV" defs["igTreeNodeExV"][1]["defaults"] = {} defs["igTreeNodeExV"][1]["funcname"] = "TreeNodeExV" -defs["igTreeNodeExV"][1]["location"] = "imgui:617" +defs["igTreeNodeExV"][1]["location"] = "imgui:618" defs["igTreeNodeExV"][1]["namespace"] = "ImGui" defs["igTreeNodeExV"][1]["ov_cimguiname"] = "igTreeNodeExVStr" defs["igTreeNodeExV"][1]["ret"] = "bool" @@ -27907,7 +28532,7 @@ defs["igTreeNodeExV"][2]["call_args"] = "(ptr_id,flags,fmt,args)" defs["igTreeNodeExV"][2]["cimguiname"] = "igTreeNodeExV" defs["igTreeNodeExV"][2]["defaults"] = {} defs["igTreeNodeExV"][2]["funcname"] = "TreeNodeExV" -defs["igTreeNodeExV"][2]["location"] = "imgui:618" +defs["igTreeNodeExV"][2]["location"] = "imgui:619" defs["igTreeNodeExV"][2]["namespace"] = "ImGui" defs["igTreeNodeExV"][2]["ov_cimguiname"] = "igTreeNodeExVPtr" defs["igTreeNodeExV"][2]["ret"] = "bool" @@ -27933,7 +28558,7 @@ defs["igTreeNodeV"][1]["call_args"] = "(str_id,fmt,args)" defs["igTreeNodeV"][1]["cimguiname"] = "igTreeNodeV" defs["igTreeNodeV"][1]["defaults"] = {} defs["igTreeNodeV"][1]["funcname"] = "TreeNodeV" -defs["igTreeNodeV"][1]["location"] = "imgui:612" +defs["igTreeNodeV"][1]["location"] = "imgui:613" defs["igTreeNodeV"][1]["namespace"] = "ImGui" defs["igTreeNodeV"][1]["ov_cimguiname"] = "igTreeNodeVStr" defs["igTreeNodeV"][1]["ret"] = "bool" @@ -27956,7 +28581,7 @@ defs["igTreeNodeV"][2]["call_args"] = "(ptr_id,fmt,args)" defs["igTreeNodeV"][2]["cimguiname"] = "igTreeNodeV" defs["igTreeNodeV"][2]["defaults"] = {} defs["igTreeNodeV"][2]["funcname"] = "TreeNodeV" -defs["igTreeNodeV"][2]["location"] = "imgui:613" +defs["igTreeNodeV"][2]["location"] = "imgui:614" defs["igTreeNodeV"][2]["namespace"] = "ImGui" defs["igTreeNodeV"][2]["ov_cimguiname"] = "igTreeNodeVPtr" defs["igTreeNodeV"][2]["ret"] = "bool" @@ -27973,7 +28598,7 @@ defs["igTreePop"][1]["call_args"] = "()" defs["igTreePop"][1]["cimguiname"] = "igTreePop" defs["igTreePop"][1]["defaults"] = {} defs["igTreePop"][1]["funcname"] = "TreePop" -defs["igTreePop"][1]["location"] = "imgui:621" +defs["igTreePop"][1]["location"] = "imgui:622" defs["igTreePop"][1]["namespace"] = "ImGui" defs["igTreePop"][1]["ov_cimguiname"] = "igTreePop" defs["igTreePop"][1]["ret"] = "void" @@ -27992,7 +28617,7 @@ defs["igTreePush"][1]["call_args"] = "(str_id)" defs["igTreePush"][1]["cimguiname"] = "igTreePush" defs["igTreePush"][1]["defaults"] = {} defs["igTreePush"][1]["funcname"] = "TreePush" -defs["igTreePush"][1]["location"] = "imgui:619" +defs["igTreePush"][1]["location"] = "imgui:620" defs["igTreePush"][1]["namespace"] = "ImGui" defs["igTreePush"][1]["ov_cimguiname"] = "igTreePushStr" defs["igTreePush"][1]["ret"] = "void" @@ -28010,7 +28635,7 @@ defs["igTreePush"][2]["cimguiname"] = "igTreePush" defs["igTreePush"][2]["defaults"] = {} defs["igTreePush"][2]["defaults"]["ptr_id"] = "NULL" defs["igTreePush"][2]["funcname"] = "TreePush" -defs["igTreePush"][2]["location"] = "imgui:620" +defs["igTreePush"][2]["location"] = "imgui:621" defs["igTreePush"][2]["namespace"] = "ImGui" defs["igTreePush"][2]["ov_cimguiname"] = "igTreePushPtr" defs["igTreePush"][2]["ret"] = "void" @@ -28030,7 +28655,7 @@ defs["igTreePushOverrideID"][1]["call_args"] = "(id)" defs["igTreePushOverrideID"][1]["cimguiname"] = "igTreePushOverrideID" defs["igTreePushOverrideID"][1]["defaults"] = {} defs["igTreePushOverrideID"][1]["funcname"] = "TreePushOverrideID" -defs["igTreePushOverrideID"][1]["location"] = "imgui_internal:2904" +defs["igTreePushOverrideID"][1]["location"] = "imgui_internal:3025" defs["igTreePushOverrideID"][1]["namespace"] = "ImGui" defs["igTreePushOverrideID"][1]["ov_cimguiname"] = "igTreePushOverrideID" defs["igTreePushOverrideID"][1]["ret"] = "void" @@ -28050,7 +28675,7 @@ defs["igUnindent"][1]["cimguiname"] = "igUnindent" defs["igUnindent"][1]["defaults"] = {} defs["igUnindent"][1]["defaults"]["indent_w"] = "0.0f" defs["igUnindent"][1]["funcname"] = "Unindent" -defs["igUnindent"][1]["location"] = "imgui:455" +defs["igUnindent"][1]["location"] = "imgui:456" defs["igUnindent"][1]["namespace"] = "ImGui" defs["igUnindent"][1]["ov_cimguiname"] = "igUnindent" defs["igUnindent"][1]["ret"] = "void" @@ -28066,7 +28691,7 @@ defs["igUpdateHoveredWindowAndCaptureFlags"][1]["call_args"] = "()" defs["igUpdateHoveredWindowAndCaptureFlags"][1]["cimguiname"] = "igUpdateHoveredWindowAndCaptureFlags" defs["igUpdateHoveredWindowAndCaptureFlags"][1]["defaults"] = {} defs["igUpdateHoveredWindowAndCaptureFlags"][1]["funcname"] = "UpdateHoveredWindowAndCaptureFlags" -defs["igUpdateHoveredWindowAndCaptureFlags"][1]["location"] = "imgui_internal:2576" +defs["igUpdateHoveredWindowAndCaptureFlags"][1]["location"] = "imgui_internal:2681" defs["igUpdateHoveredWindowAndCaptureFlags"][1]["namespace"] = "ImGui" defs["igUpdateHoveredWindowAndCaptureFlags"][1]["ov_cimguiname"] = "igUpdateHoveredWindowAndCaptureFlags" defs["igUpdateHoveredWindowAndCaptureFlags"][1]["ret"] = "void" @@ -28082,7 +28707,7 @@ defs["igUpdateMouseMovingWindowEndFrame"][1]["call_args"] = "()" defs["igUpdateMouseMovingWindowEndFrame"][1]["cimguiname"] = "igUpdateMouseMovingWindowEndFrame" defs["igUpdateMouseMovingWindowEndFrame"][1]["defaults"] = {} defs["igUpdateMouseMovingWindowEndFrame"][1]["funcname"] = "UpdateMouseMovingWindowEndFrame" -defs["igUpdateMouseMovingWindowEndFrame"][1]["location"] = "imgui_internal:2580" +defs["igUpdateMouseMovingWindowEndFrame"][1]["location"] = "imgui_internal:2685" defs["igUpdateMouseMovingWindowEndFrame"][1]["namespace"] = "ImGui" defs["igUpdateMouseMovingWindowEndFrame"][1]["ov_cimguiname"] = "igUpdateMouseMovingWindowEndFrame" defs["igUpdateMouseMovingWindowEndFrame"][1]["ret"] = "void" @@ -28098,7 +28723,7 @@ defs["igUpdateMouseMovingWindowNewFrame"][1]["call_args"] = "()" defs["igUpdateMouseMovingWindowNewFrame"][1]["cimguiname"] = "igUpdateMouseMovingWindowNewFrame" defs["igUpdateMouseMovingWindowNewFrame"][1]["defaults"] = {} defs["igUpdateMouseMovingWindowNewFrame"][1]["funcname"] = "UpdateMouseMovingWindowNewFrame" -defs["igUpdateMouseMovingWindowNewFrame"][1]["location"] = "imgui_internal:2579" +defs["igUpdateMouseMovingWindowNewFrame"][1]["location"] = "imgui_internal:2684" defs["igUpdateMouseMovingWindowNewFrame"][1]["namespace"] = "ImGui" defs["igUpdateMouseMovingWindowNewFrame"][1]["ov_cimguiname"] = "igUpdateMouseMovingWindowNewFrame" defs["igUpdateMouseMovingWindowNewFrame"][1]["ret"] = "void" @@ -28114,7 +28739,7 @@ defs["igUpdatePlatformWindows"][1]["call_args"] = "()" defs["igUpdatePlatformWindows"][1]["cimguiname"] = "igUpdatePlatformWindows" defs["igUpdatePlatformWindows"][1]["defaults"] = {} defs["igUpdatePlatformWindows"][1]["funcname"] = "UpdatePlatformWindows" -defs["igUpdatePlatformWindows"][1]["location"] = "imgui:977" +defs["igUpdatePlatformWindows"][1]["location"] = "imgui:979" defs["igUpdatePlatformWindows"][1]["namespace"] = "ImGui" defs["igUpdatePlatformWindows"][1]["ov_cimguiname"] = "igUpdatePlatformWindows" defs["igUpdatePlatformWindows"][1]["ret"] = "void" @@ -28139,7 +28764,7 @@ defs["igUpdateWindowParentAndRootLinks"][1]["call_args"] = "(window,flags,parent defs["igUpdateWindowParentAndRootLinks"][1]["cimguiname"] = "igUpdateWindowParentAndRootLinks" defs["igUpdateWindowParentAndRootLinks"][1]["defaults"] = {} defs["igUpdateWindowParentAndRootLinks"][1]["funcname"] = "UpdateWindowParentAndRootLinks" -defs["igUpdateWindowParentAndRootLinks"][1]["location"] = "imgui_internal:2549" +defs["igUpdateWindowParentAndRootLinks"][1]["location"] = "imgui_internal:2648" defs["igUpdateWindowParentAndRootLinks"][1]["namespace"] = "ImGui" defs["igUpdateWindowParentAndRootLinks"][1]["ov_cimguiname"] = "igUpdateWindowParentAndRootLinks" defs["igUpdateWindowParentAndRootLinks"][1]["ret"] = "void" @@ -28178,7 +28803,7 @@ defs["igVSliderFloat"][1]["defaults"] = {} defs["igVSliderFloat"][1]["defaults"]["flags"] = "0" defs["igVSliderFloat"][1]["defaults"]["format"] = "\"%.3f\"" defs["igVSliderFloat"][1]["funcname"] = "VSliderFloat" -defs["igVSliderFloat"][1]["location"] = "imgui:575" +defs["igVSliderFloat"][1]["location"] = "imgui:576" defs["igVSliderFloat"][1]["namespace"] = "ImGui" defs["igVSliderFloat"][1]["ov_cimguiname"] = "igVSliderFloat" defs["igVSliderFloat"][1]["ret"] = "bool" @@ -28217,7 +28842,7 @@ defs["igVSliderInt"][1]["defaults"] = {} defs["igVSliderInt"][1]["defaults"]["flags"] = "0" defs["igVSliderInt"][1]["defaults"]["format"] = "\"%d\"" defs["igVSliderInt"][1]["funcname"] = "VSliderInt" -defs["igVSliderInt"][1]["location"] = "imgui:576" +defs["igVSliderInt"][1]["location"] = "imgui:577" defs["igVSliderInt"][1]["namespace"] = "ImGui" defs["igVSliderInt"][1]["ov_cimguiname"] = "igVSliderInt" defs["igVSliderInt"][1]["ret"] = "bool" @@ -28259,7 +28884,7 @@ defs["igVSliderScalar"][1]["defaults"] = {} defs["igVSliderScalar"][1]["defaults"]["flags"] = "0" defs["igVSliderScalar"][1]["defaults"]["format"] = "NULL" defs["igVSliderScalar"][1]["funcname"] = "VSliderScalar" -defs["igVSliderScalar"][1]["location"] = "imgui:577" +defs["igVSliderScalar"][1]["location"] = "imgui:578" defs["igVSliderScalar"][1]["namespace"] = "ImGui" defs["igVSliderScalar"][1]["ov_cimguiname"] = "igVSliderScalar" defs["igVSliderScalar"][1]["ret"] = "bool" @@ -28281,7 +28906,7 @@ defs["igValue"][1]["call_args"] = "(prefix,b)" defs["igValue"][1]["cimguiname"] = "igValue" defs["igValue"][1]["defaults"] = {} defs["igValue"][1]["funcname"] = "Value" -defs["igValue"][1]["location"] = "imgui:653" +defs["igValue"][1]["location"] = "imgui:654" defs["igValue"][1]["namespace"] = "ImGui" defs["igValue"][1]["ov_cimguiname"] = "igValueBool" defs["igValue"][1]["ret"] = "void" @@ -28301,7 +28926,7 @@ defs["igValue"][2]["call_args"] = "(prefix,v)" defs["igValue"][2]["cimguiname"] = "igValue" defs["igValue"][2]["defaults"] = {} defs["igValue"][2]["funcname"] = "Value" -defs["igValue"][2]["location"] = "imgui:654" +defs["igValue"][2]["location"] = "imgui:655" defs["igValue"][2]["namespace"] = "ImGui" defs["igValue"][2]["ov_cimguiname"] = "igValueInt" defs["igValue"][2]["ret"] = "void" @@ -28321,7 +28946,7 @@ defs["igValue"][3]["call_args"] = "(prefix,v)" defs["igValue"][3]["cimguiname"] = "igValue" defs["igValue"][3]["defaults"] = {} defs["igValue"][3]["funcname"] = "Value" -defs["igValue"][3]["location"] = "imgui:655" +defs["igValue"][3]["location"] = "imgui:656" defs["igValue"][3]["namespace"] = "ImGui" defs["igValue"][3]["ov_cimguiname"] = "igValueUint" defs["igValue"][3]["ret"] = "void" @@ -28345,7 +28970,7 @@ defs["igValue"][4]["cimguiname"] = "igValue" defs["igValue"][4]["defaults"] = {} defs["igValue"][4]["defaults"]["float_format"] = "NULL" defs["igValue"][4]["funcname"] = "Value" -defs["igValue"][4]["location"] = "imgui:656" +defs["igValue"][4]["location"] = "imgui:657" defs["igValue"][4]["namespace"] = "ImGui" defs["igValue"][4]["ov_cimguiname"] = "igValueFloat" defs["igValue"][4]["ret"] = "void" @@ -28355,5 +28980,57 @@ defs["igValue"]["(const char*,bool)"] = defs["igValue"][1] defs["igValue"]["(const char*,float,const char*)"] = defs["igValue"][4] defs["igValue"]["(const char*,int)"] = defs["igValue"][2] defs["igValue"]["(const char*,unsigned int)"] = defs["igValue"][3] +defs["igWindowRectAbsToRel"] = {} +defs["igWindowRectAbsToRel"][1] = {} +defs["igWindowRectAbsToRel"][1]["args"] = "(ImRect *pOut,ImGuiWindow* window,const ImRect r)" +defs["igWindowRectAbsToRel"][1]["argsT"] = {} +defs["igWindowRectAbsToRel"][1]["argsT"][1] = {} +defs["igWindowRectAbsToRel"][1]["argsT"][1]["name"] = "pOut" +defs["igWindowRectAbsToRel"][1]["argsT"][1]["type"] = "ImRect*" +defs["igWindowRectAbsToRel"][1]["argsT"][2] = {} +defs["igWindowRectAbsToRel"][1]["argsT"][2]["name"] = "window" +defs["igWindowRectAbsToRel"][1]["argsT"][2]["type"] = "ImGuiWindow*" +defs["igWindowRectAbsToRel"][1]["argsT"][3] = {} +defs["igWindowRectAbsToRel"][1]["argsT"][3]["name"] = "r" +defs["igWindowRectAbsToRel"][1]["argsT"][3]["type"] = "const ImRect" +defs["igWindowRectAbsToRel"][1]["argsoriginal"] = "(ImGuiWindow* window,const ImRect& r)" +defs["igWindowRectAbsToRel"][1]["call_args"] = "(window,r)" +defs["igWindowRectAbsToRel"][1]["cimguiname"] = "igWindowRectAbsToRel" +defs["igWindowRectAbsToRel"][1]["defaults"] = {} +defs["igWindowRectAbsToRel"][1]["funcname"] = "WindowRectAbsToRel" +defs["igWindowRectAbsToRel"][1]["location"] = "imgui_internal:2658" +defs["igWindowRectAbsToRel"][1]["namespace"] = "ImGui" +defs["igWindowRectAbsToRel"][1]["nonUDT"] = 1 +defs["igWindowRectAbsToRel"][1]["ov_cimguiname"] = "igWindowRectAbsToRel" +defs["igWindowRectAbsToRel"][1]["ret"] = "void" +defs["igWindowRectAbsToRel"][1]["signature"] = "(ImGuiWindow*,const ImRect)" +defs["igWindowRectAbsToRel"][1]["stname"] = "" +defs["igWindowRectAbsToRel"]["(ImGuiWindow*,const ImRect)"] = defs["igWindowRectAbsToRel"][1] +defs["igWindowRectRelToAbs"] = {} +defs["igWindowRectRelToAbs"][1] = {} +defs["igWindowRectRelToAbs"][1]["args"] = "(ImRect *pOut,ImGuiWindow* window,const ImRect r)" +defs["igWindowRectRelToAbs"][1]["argsT"] = {} +defs["igWindowRectRelToAbs"][1]["argsT"][1] = {} +defs["igWindowRectRelToAbs"][1]["argsT"][1]["name"] = "pOut" +defs["igWindowRectRelToAbs"][1]["argsT"][1]["type"] = "ImRect*" +defs["igWindowRectRelToAbs"][1]["argsT"][2] = {} +defs["igWindowRectRelToAbs"][1]["argsT"][2]["name"] = "window" +defs["igWindowRectRelToAbs"][1]["argsT"][2]["type"] = "ImGuiWindow*" +defs["igWindowRectRelToAbs"][1]["argsT"][3] = {} +defs["igWindowRectRelToAbs"][1]["argsT"][3]["name"] = "r" +defs["igWindowRectRelToAbs"][1]["argsT"][3]["type"] = "const ImRect" +defs["igWindowRectRelToAbs"][1]["argsoriginal"] = "(ImGuiWindow* window,const ImRect& r)" +defs["igWindowRectRelToAbs"][1]["call_args"] = "(window,r)" +defs["igWindowRectRelToAbs"][1]["cimguiname"] = "igWindowRectRelToAbs" +defs["igWindowRectRelToAbs"][1]["defaults"] = {} +defs["igWindowRectRelToAbs"][1]["funcname"] = "WindowRectRelToAbs" +defs["igWindowRectRelToAbs"][1]["location"] = "imgui_internal:2659" +defs["igWindowRectRelToAbs"][1]["namespace"] = "ImGui" +defs["igWindowRectRelToAbs"][1]["nonUDT"] = 1 +defs["igWindowRectRelToAbs"][1]["ov_cimguiname"] = "igWindowRectRelToAbs" +defs["igWindowRectRelToAbs"][1]["ret"] = "void" +defs["igWindowRectRelToAbs"][1]["signature"] = "(ImGuiWindow*,const ImRect)" +defs["igWindowRectRelToAbs"][1]["stname"] = "" +defs["igWindowRectRelToAbs"]["(ImGuiWindow*,const ImRect)"] = defs["igWindowRectRelToAbs"][1] return defs \ No newline at end of file diff --git a/imgui-sys/third-party/imgui-docking/structs_and_enums.json b/imgui-sys/third-party/imgui-docking/structs_and_enums.json index 604d18847..aa22506c9 100644 --- a/imgui-sys/third-party/imgui-docking/structs_and_enums.json +++ b/imgui-sys/third-party/imgui-docking/structs_and_enums.json @@ -121,6 +121,28 @@ "value": "1 << 2" } ], + "ImGuiActivateFlags_": [ + { + "calc_value": 0, + "name": "ImGuiActivateFlags_None", + "value": "0" + }, + { + "calc_value": 1, + "name": "ImGuiActivateFlags_PreferInput", + "value": "1 << 0" + }, + { + "calc_value": 2, + "name": "ImGuiActivateFlags_PreferTweak", + "value": "1 << 1" + }, + { + "calc_value": 4, + "name": "ImGuiActivateFlags_TryToPreserveState", + "value": "1 << 2" + } + ], "ImGuiAxis": [ { "calc_value": -1, @@ -1275,6 +1297,16 @@ "name": "ImGuiFocusedFlags_AnyWindow", "value": "1 << 2" }, + { + "calc_value": 8, + "name": "ImGuiFocusedFlags_NoPopupHierarchy", + "value": "1 << 3" + }, + { + "calc_value": 16, + "name": "ImGuiFocusedFlags_DockHierarchy", + "value": "1 << 4" + }, { "calc_value": 3, "name": "ImGuiFocusedFlags_RootAndChildWindows", @@ -1304,26 +1336,36 @@ }, { "calc_value": 8, - "name": "ImGuiHoveredFlags_AllowWhenBlockedByPopup", + "name": "ImGuiHoveredFlags_NoPopupHierarchy", "value": "1 << 3" }, + { + "calc_value": 16, + "name": "ImGuiHoveredFlags_DockHierarchy", + "value": "1 << 4" + }, { "calc_value": 32, - "name": "ImGuiHoveredFlags_AllowWhenBlockedByActiveItem", + "name": "ImGuiHoveredFlags_AllowWhenBlockedByPopup", "value": "1 << 5" }, { - "calc_value": 64, + "calc_value": 128, + "name": "ImGuiHoveredFlags_AllowWhenBlockedByActiveItem", + "value": "1 << 7" + }, + { + "calc_value": 256, "name": "ImGuiHoveredFlags_AllowWhenOverlapped", - "value": "1 << 6" + "value": "1 << 8" }, { - "calc_value": 128, + "calc_value": 512, "name": "ImGuiHoveredFlags_AllowWhenDisabled", - "value": "1 << 7" + "value": "1 << 9" }, { - "calc_value": 104, + "calc_value": 416, "name": "ImGuiHoveredFlags_RectOnly", "value": "ImGuiHoveredFlags_AllowWhenBlockedByPopup | ImGuiHoveredFlags_AllowWhenBlockedByActiveItem | ImGuiHoveredFlags_AllowWhenOverlapped" }, @@ -1526,18 +1568,6 @@ "value": "1 << 19" } ], - "ImGuiItemAddFlags_": [ - { - "calc_value": 0, - "name": "ImGuiItemAddFlags_None", - "value": "0" - }, - { - "calc_value": 1, - "name": "ImGuiItemAddFlags_Focusable", - "value": "1 << 0" - } - ], "ImGuiItemFlags_": [ { "calc_value": 0, @@ -1583,6 +1613,11 @@ "calc_value": 128, "name": "ImGuiItemFlags_ReadOnly", "value": "1 << 7" + }, + { + "calc_value": 256, + "name": "ImGuiItemFlags_Inputable", + "value": "1 << 8" } ], "ImGuiItemStatusFlags_": [ @@ -1633,18 +1668,8 @@ }, { "calc_value": 256, - "name": "ImGuiItemStatusFlags_FocusedByCode", - "value": "1 << 8" - }, - { - "calc_value": 512, "name": "ImGuiItemStatusFlags_FocusedByTabbing", - "value": "1 << 9" - }, - { - "calc_value": 768, - "name": "ImGuiItemStatusFlags_Focused", - "value": "ImGuiItemStatusFlags_FocusedByCode | ImGuiItemStatusFlags_FocusedByTabbing" + "value": "1 << 8" } ], "ImGuiKeyModFlags_": [ @@ -1917,18 +1942,23 @@ }, { "calc_value": 1, - "name": "ImGuiNavDirSourceFlags_Keyboard", + "name": "ImGuiNavDirSourceFlags_RawKeyboard", "value": "1 << 0" }, { "calc_value": 2, - "name": "ImGuiNavDirSourceFlags_PadDPad", + "name": "ImGuiNavDirSourceFlags_Keyboard", "value": "1 << 1" }, { "calc_value": 4, - "name": "ImGuiNavDirSourceFlags_PadLStick", + "name": "ImGuiNavDirSourceFlags_PadDPad", "value": "1 << 2" + }, + { + "calc_value": 8, + "name": "ImGuiNavDirSourceFlags_PadLStick", + "value": "1 << 3" } ], "ImGuiNavHighlightFlags_": [ @@ -2125,13 +2155,38 @@ }, { "calc_value": 64, - "name": "ImGuiNavMoveFlags_ScrollToEdge", + "name": "ImGuiNavMoveFlags_ScrollToEdgeY", "value": "1 << 6" }, { "calc_value": 128, "name": "ImGuiNavMoveFlags_Forwarded", "value": "1 << 7" + }, + { + "calc_value": 256, + "name": "ImGuiNavMoveFlags_DebugNoResult", + "value": "1 << 8" + }, + { + "calc_value": 512, + "name": "ImGuiNavMoveFlags_FocusApi", + "value": "1 << 9" + }, + { + "calc_value": 1024, + "name": "ImGuiNavMoveFlags_Tabbing", + "value": "1 << 10" + }, + { + "calc_value": 2048, + "name": "ImGuiNavMoveFlags_Activate", + "value": "1 << 11" + }, + { + "calc_value": 4096, + "name": "ImGuiNavMoveFlags_DontSetNavHighlight", + "value": "1 << 12" } ], "ImGuiNextItemDataFlags_": [ @@ -2331,6 +2386,58 @@ "value": "2" } ], + "ImGuiScrollFlags_": [ + { + "calc_value": 0, + "name": "ImGuiScrollFlags_None", + "value": "0" + }, + { + "calc_value": 1, + "name": "ImGuiScrollFlags_KeepVisibleEdgeX", + "value": "1 << 0" + }, + { + "calc_value": 2, + "name": "ImGuiScrollFlags_KeepVisibleEdgeY", + "value": "1 << 1" + }, + { + "calc_value": 4, + "name": "ImGuiScrollFlags_KeepVisibleCenterX", + "value": "1 << 2" + }, + { + "calc_value": 8, + "name": "ImGuiScrollFlags_KeepVisibleCenterY", + "value": "1 << 3" + }, + { + "calc_value": 16, + "name": "ImGuiScrollFlags_AlwaysCenterX", + "value": "1 << 4" + }, + { + "calc_value": 32, + "name": "ImGuiScrollFlags_AlwaysCenterY", + "value": "1 << 5" + }, + { + "calc_value": 64, + "name": "ImGuiScrollFlags_NoScrollParent", + "value": "1 << 6" + }, + { + "calc_value": 21, + "name": "ImGuiScrollFlags_MaskX_", + "value": "ImGuiScrollFlags_KeepVisibleEdgeX | ImGuiScrollFlags_KeepVisibleCenterX | ImGuiScrollFlags_AlwaysCenterX" + }, + { + "calc_value": 42, + "name": "ImGuiScrollFlags_MaskY_", + "value": "ImGuiScrollFlags_KeepVisibleEdgeY | ImGuiScrollFlags_KeepVisibleCenterY | ImGuiScrollFlags_AlwaysCenterY" + } + ], "ImGuiSelectableFlagsPrivate_": [ { "calc_value": 1048576, @@ -3508,154 +3615,159 @@ }, "enumtypes": [], "locations": { - "ImBitVector": "imgui_internal:558", - "ImColor": "imgui:2337", - "ImDrawChannel": "imgui:2427", - "ImDrawCmd": "imgui:2386", - "ImDrawCmdHeader": "imgui:2419", - "ImDrawData": "imgui:2617", - "ImDrawDataBuilder": "imgui_internal:731", - "ImDrawFlags_": "imgui:2453", - "ImDrawList": "imgui:2491", - "ImDrawListFlags_": "imgui:2473", - "ImDrawListSharedData": "imgui_internal:711", - "ImDrawListSplitter": "imgui:2436", - "ImDrawVert": "imgui:2404", - "ImFont": "imgui:2836", - "ImFontAtlas": "imgui:2734", - "ImFontAtlasCustomRect": "imgui:2696", - "ImFontAtlasFlags_": "imgui:2709", - "ImFontBuilderIO": "imgui_internal:2977", - "ImFontConfig": "imgui:2640", - "ImFontGlyph": "imgui:2669", - "ImFontGlyphRangesBuilder": "imgui:2681", - "ImGuiAxis": "imgui_internal:896", - "ImGuiBackendFlags_": "imgui:1506", - "ImGuiButtonFlagsPrivate_": "imgui_internal:803", - "ImGuiButtonFlags_": "imgui:1620", - "ImGuiCol_": "imgui:1521", - "ImGuiColorEditFlags_": "imgui:1633", - "ImGuiColorMod": "imgui_internal:961", - "ImGuiComboFlagsPrivate_": "imgui_internal:826", - "ImGuiComboFlags_": "imgui:1120", - "ImGuiComboPreviewData": "imgui_internal:978", - "ImGuiCond_": "imgui:1725", - "ImGuiConfigFlags_": "imgui:1481", - "ImGuiContext": "imgui_internal:1580", - "ImGuiContextHook": "imgui_internal:1565", - "ImGuiContextHookType": "imgui_internal:1563", - "ImGuiDataAuthority_": "imgui_internal:1325", - "ImGuiDataTypeInfo": "imgui_internal:944", - "ImGuiDataTypePrivate_": "imgui_internal:953", - "ImGuiDataTypeTempStorage": "imgui_internal:938", - "ImGuiDataType_": "imgui:1374", - "ImGuiDir_": "imgui:1390", - "ImGuiDockContext": "imgui_internal:1420", - "ImGuiDockNode": "imgui_internal:1341", - "ImGuiDockNodeFlagsPrivate_": "imgui_internal:1300", - "ImGuiDockNodeFlags_": "imgui:1339", - "ImGuiDockNodeState": "imgui_internal:1332", - "ImGuiDragDropFlags_": "imgui:1352", - "ImGuiFocusedFlags_": "imgui:1309", - "ImGuiGroupData": "imgui_internal:991", - "ImGuiHoveredFlags_": "imgui:1321", - "ImGuiIO": "imgui:1891", - "ImGuiInputReadMode": "imgui_internal:921", - "ImGuiInputSource": "imgui_internal:909", - "ImGuiInputTextCallbackData": "imgui:2046", - "ImGuiInputTextFlagsPrivate_": "imgui_internal:794", - "ImGuiInputTextFlags_": "imgui:1033", - "ImGuiInputTextState": "imgui_internal:1026", - "ImGuiItemAddFlags_": "imgui_internal:762", - "ImGuiItemFlags_": "imgui_internal:747", - "ImGuiItemStatusFlags_": "imgui_internal:769", - "ImGuiKeyModFlags_": "imgui:1437", - "ImGuiKey_": "imgui:1409", - "ImGuiLastItemData": "imgui_internal:1141", - "ImGuiLayoutType_": "imgui_internal:880", - "ImGuiListClipper": "imgui:2288", - "ImGuiLogType": "imgui_internal:886", - "ImGuiMenuColumns": "imgui_internal:1007", - "ImGuiMetricsConfig": "imgui_internal:1519", - "ImGuiMouseButton_": "imgui:1697", - "ImGuiMouseCursor_": "imgui:1707", - "ImGuiNavDirSourceFlags_": "imgui_internal:1187", - "ImGuiNavHighlightFlags_": "imgui_internal:1178", - "ImGuiNavInput_": "imgui:1450", - "ImGuiNavItemData": "imgui_internal:1215", - "ImGuiNavLayer": "imgui_internal:1208", - "ImGuiNavMoveFlags_": "imgui_internal:1195", - "ImGuiNextItemData": "imgui_internal:1128", - "ImGuiNextItemDataFlags_": "imgui_internal:1121", - "ImGuiNextWindowData": "imgui_internal:1094", - "ImGuiNextWindowDataFlags_": "imgui_internal:1077", - "ImGuiOldColumnData": "imgui_internal:1254", - "ImGuiOldColumnFlags_": "imgui_internal:1234", - "ImGuiOldColumns": "imgui_internal:1264", - "ImGuiOnceUponAFrame": "imgui:2166", - "ImGuiPayload": "imgui:2107", - "ImGuiPlatformIO": "imgui:2999", - "ImGuiPlatformMonitor": "imgui:3063", - "ImGuiPlotType": "imgui_internal:903", - "ImGuiPopupData": "imgui_internal:1064", - "ImGuiPopupFlags_": "imgui:1093", - "ImGuiPopupPositionPolicy": "imgui_internal:931", - "ImGuiPtrOrIndex": "imgui_internal:1165", - "ImGuiSelectableFlagsPrivate_": "imgui_internal:839", - "ImGuiSelectableFlags_": "imgui:1109", - "ImGuiSeparatorFlags_": "imgui_internal:858", - "ImGuiSettingsHandler": "imgui_internal:1500", - "ImGuiShrinkWidthItem": "imgui_internal:1159", - "ImGuiSizeCallbackData": "imgui:2077", - "ImGuiSliderFlagsPrivate_": "imgui_internal:832", - "ImGuiSliderFlags_": "imgui:1680", - "ImGuiSortDirection_": "imgui:1401", - "ImGuiStackSizes": "imgui_internal:1543", - "ImGuiStorage": "imgui:2228", - "ImGuiStoragePair": "imgui:2231", - "ImGuiStyle": "imgui:1836", - "ImGuiStyleMod": "imgui_internal:968", - "ImGuiStyleVar_": "imgui:1588", - "ImGuiTabBar": "imgui_internal:2235", - "ImGuiTabBarFlagsPrivate_": "imgui_internal:2198", - "ImGuiTabBarFlags_": "imgui:1134", - "ImGuiTabItem": "imgui_internal:2216", - "ImGuiTabItemFlagsPrivate_": "imgui_internal:2206", - "ImGuiTabItemFlags_": "imgui:1150", - "ImGuiTable": "imgui_internal:2362", - "ImGuiTableBgTarget_": "imgui:1300", - "ImGuiTableCellData": "imgui_internal:2355", - "ImGuiTableColumn": "imgui_internal:2296", - "ImGuiTableColumnFlags_": "imgui:1243", - "ImGuiTableColumnSettings": "imgui_internal:2496", - "ImGuiTableColumnSortSpecs": "imgui:2129", - "ImGuiTableFlags_": "imgui:1186", - "ImGuiTableRowFlags_": "imgui:1285", - "ImGuiTableSettings": "imgui_internal:2520", - "ImGuiTableSortSpecs": "imgui:2143", - "ImGuiTableTempData": "imgui_internal:2475", - "ImGuiTextBuffer": "imgui:2201", - "ImGuiTextFilter": "imgui:2174", - "ImGuiTextFlags_": "imgui_internal:866", - "ImGuiTextRange": "imgui:2184", - "ImGuiTooltipFlags_": "imgui_internal:872", - "ImGuiTreeNodeFlagsPrivate_": "imgui_internal:853", - "ImGuiTreeNodeFlags_": "imgui:1064", - "ImGuiViewport": "imgui:2917", - "ImGuiViewportFlags_": "imgui:2892", - "ImGuiViewportP": "imgui_internal:1437", - "ImGuiWindow": "imgui_internal:2057", - "ImGuiWindowClass": "imgui:2092", - "ImGuiWindowDockStyle": "imgui_internal:1415", - "ImGuiWindowDockStyleCol": "imgui_internal:1404", - "ImGuiWindowFlags_": "imgui:990", - "ImGuiWindowSettings": "imgui_internal:1483", - "ImGuiWindowStackData": "imgui_internal:1153", - "ImGuiWindowTempData": "imgui_internal:2008", - "ImRect": "imgui_internal:487", - "ImVec1": "imgui_internal:469", + "ImBitVector": "imgui_internal:570", + "ImColor": "imgui:2347", + "ImDrawChannel": "imgui:2437", + "ImDrawCmd": "imgui:2396", + "ImDrawCmdHeader": "imgui:2429", + "ImDrawData": "imgui:2627", + "ImDrawDataBuilder": "imgui_internal:743", + "ImDrawFlags_": "imgui:2463", + "ImDrawList": "imgui:2501", + "ImDrawListFlags_": "imgui:2483", + "ImDrawListSharedData": "imgui_internal:723", + "ImDrawListSplitter": "imgui:2446", + "ImDrawVert": "imgui:2414", + "ImFont": "imgui:2846", + "ImFontAtlas": "imgui:2744", + "ImFontAtlasCustomRect": "imgui:2706", + "ImFontAtlasFlags_": "imgui:2719", + "ImFontBuilderIO": "imgui_internal:3101", + "ImFontConfig": "imgui:2650", + "ImFontGlyph": "imgui:2679", + "ImFontGlyphRangesBuilder": "imgui:2691", + "ImGuiActivateFlags_": "imgui_internal:1227", + "ImGuiAxis": "imgui_internal:899", + "ImGuiBackendFlags_": "imgui:1512", + "ImGuiButtonFlagsPrivate_": "imgui_internal:806", + "ImGuiButtonFlags_": "imgui:1626", + "ImGuiCol_": "imgui:1527", + "ImGuiColorEditFlags_": "imgui:1639", + "ImGuiColorMod": "imgui_internal:964", + "ImGuiComboFlagsPrivate_": "imgui_internal:829", + "ImGuiComboFlags_": "imgui:1122", + "ImGuiComboPreviewData": "imgui_internal:981", + "ImGuiCond_": "imgui:1731", + "ImGuiConfigFlags_": "imgui:1487", + "ImGuiContext": "imgui_internal:1670", + "ImGuiContextHook": "imgui_internal:1655", + "ImGuiContextHookType": "imgui_internal:1653", + "ImGuiDataAuthority_": "imgui_internal:1404", + "ImGuiDataTypeInfo": "imgui_internal:947", + "ImGuiDataTypePrivate_": "imgui_internal:956", + "ImGuiDataTypeTempStorage": "imgui_internal:941", + "ImGuiDataType_": "imgui:1380", + "ImGuiDir_": "imgui:1396", + "ImGuiDockContext": "imgui_internal:1502", + "ImGuiDockNode": "imgui_internal:1420", + "ImGuiDockNodeFlagsPrivate_": "imgui_internal:1379", + "ImGuiDockNodeFlags_": "imgui:1345", + "ImGuiDockNodeState": "imgui_internal:1411", + "ImGuiDragDropFlags_": "imgui:1358", + "ImGuiFocusedFlags_": "imgui:1311", + "ImGuiGroupData": "imgui_internal:994", + "ImGuiHoveredFlags_": "imgui:1325", + "ImGuiIO": "imgui:1897", + "ImGuiInputReadMode": "imgui_internal:924", + "ImGuiInputSource": "imgui_internal:912", + "ImGuiInputTextCallbackData": "imgui:2054", + "ImGuiInputTextFlagsPrivate_": "imgui_internal:797", + "ImGuiInputTextFlags_": "imgui:1035", + "ImGuiInputTextState": "imgui_internal:1029", + "ImGuiItemFlags_": "imgui_internal:759", + "ImGuiItemStatusFlags_": "imgui_internal:774", + "ImGuiKeyModFlags_": "imgui:1443", + "ImGuiKey_": "imgui:1415", + "ImGuiLastItemData": "imgui_internal:1142", + "ImGuiLayoutType_": "imgui_internal:883", + "ImGuiListClipper": "imgui:2299", + "ImGuiListClipperData": "imgui_internal:1211", + "ImGuiListClipperRange": "imgui_internal:1198", + "ImGuiLogType": "imgui_internal:889", + "ImGuiMenuColumns": "imgui_internal:1010", + "ImGuiMetricsConfig": "imgui_internal:1601", + "ImGuiMouseButton_": "imgui:1703", + "ImGuiMouseCursor_": "imgui:1713", + "ImGuiNavDirSourceFlags_": "imgui_internal:1259", + "ImGuiNavHighlightFlags_": "imgui_internal:1250", + "ImGuiNavInput_": "imgui:1456", + "ImGuiNavItemData": "imgui_internal:1293", + "ImGuiNavLayer": "imgui_internal:1286", + "ImGuiNavMoveFlags_": "imgui_internal:1268", + "ImGuiNextItemData": "imgui_internal:1129", + "ImGuiNextItemDataFlags_": "imgui_internal:1122", + "ImGuiNextWindowData": "imgui_internal:1095", + "ImGuiNextWindowDataFlags_": "imgui_internal:1078", + "ImGuiOldColumnData": "imgui_internal:1333", + "ImGuiOldColumnFlags_": "imgui_internal:1313", + "ImGuiOldColumns": "imgui_internal:1343", + "ImGuiOnceUponAFrame": "imgui:2174", + "ImGuiPayload": "imgui:2115", + "ImGuiPlatformIO": "imgui:3009", + "ImGuiPlatformMonitor": "imgui:3073", + "ImGuiPlotType": "imgui_internal:906", + "ImGuiPopupData": "imgui_internal:1065", + "ImGuiPopupFlags_": "imgui:1095", + "ImGuiPopupPositionPolicy": "imgui_internal:934", + "ImGuiPtrOrIndex": "imgui_internal:1185", + "ImGuiScrollFlags_": "imgui_internal:1236", + "ImGuiSelectableFlagsPrivate_": "imgui_internal:842", + "ImGuiSelectableFlags_": "imgui:1111", + "ImGuiSeparatorFlags_": "imgui_internal:861", + "ImGuiSettingsHandler": "imgui_internal:1582", + "ImGuiShrinkWidthItem": "imgui_internal:1179", + "ImGuiSizeCallbackData": "imgui:2085", + "ImGuiSliderFlagsPrivate_": "imgui_internal:835", + "ImGuiSliderFlags_": "imgui:1686", + "ImGuiSortDirection_": "imgui:1407", + "ImGuiStackLevelInfo": "imgui_internal:1627", + "ImGuiStackSizes": "imgui_internal:1154", + "ImGuiStackTool": "imgui_internal:1638", + "ImGuiStorage": "imgui:2236", + "ImGuiStoragePair": "imgui:2239", + "ImGuiStyle": "imgui:1842", + "ImGuiStyleMod": "imgui_internal:971", + "ImGuiStyleVar_": "imgui:1594", + "ImGuiTabBar": "imgui_internal:2334", + "ImGuiTabBarFlagsPrivate_": "imgui_internal:2297", + "ImGuiTabBarFlags_": "imgui:1136", + "ImGuiTabItem": "imgui_internal:2315", + "ImGuiTabItemFlagsPrivate_": "imgui_internal:2305", + "ImGuiTabItemFlags_": "imgui:1152", + "ImGuiTable": "imgui_internal:2461", + "ImGuiTableBgTarget_": "imgui:1302", + "ImGuiTableCellData": "imgui_internal:2454", + "ImGuiTableColumn": "imgui_internal:2395", + "ImGuiTableColumnFlags_": "imgui:1245", + "ImGuiTableColumnSettings": "imgui_internal:2595", + "ImGuiTableColumnSortSpecs": "imgui:2137", + "ImGuiTableFlags_": "imgui:1188", + "ImGuiTableRowFlags_": "imgui:1287", + "ImGuiTableSettings": "imgui_internal:2619", + "ImGuiTableSortSpecs": "imgui:2151", + "ImGuiTableTempData": "imgui_internal:2574", + "ImGuiTextBuffer": "imgui:2209", + "ImGuiTextFilter": "imgui:2182", + "ImGuiTextFlags_": "imgui_internal:869", + "ImGuiTextRange": "imgui:2192", + "ImGuiTooltipFlags_": "imgui_internal:875", + "ImGuiTreeNodeFlagsPrivate_": "imgui_internal:856", + "ImGuiTreeNodeFlags_": "imgui:1066", + "ImGuiViewport": "imgui:2927", + "ImGuiViewportFlags_": "imgui:2902", + "ImGuiViewportP": "imgui_internal:1519", + "ImGuiWindow": "imgui_internal:2153", + "ImGuiWindowClass": "imgui:2100", + "ImGuiWindowDockStyle": "imgui_internal:1497", + "ImGuiWindowDockStyleCol": "imgui_internal:1486", + "ImGuiWindowFlags_": "imgui:992", + "ImGuiWindowSettings": "imgui_internal:1565", + "ImGuiWindowStackData": "imgui_internal:1172", + "ImGuiWindowTempData": "imgui_internal:2106", + "ImRect": "imgui_internal:499", + "ImVec1": "imgui_internal:481", "ImVec2": "imgui:266", - "ImVec2ih": "imgui_internal:477", + "ImVec2ih": "imgui_internal:489", "ImVec4": "imgui:279", "STB_TexteditState": "imstb_textedit:317", "StbTexteditRow": "imstb_textedit:364", @@ -4391,10 +4503,6 @@ "name": "TestEngineHookItems", "type": "bool" }, - { - "name": "TestEngineHookIdInfo", - "type": "ImGuiID" - }, { "name": "TestEngine", "type": "void*" @@ -4463,6 +4571,10 @@ "name": "WheelingWindowTimer", "type": "float" }, + { + "name": "DebugHookIdInfo", + "type": "ImGuiID" + }, { "name": "HoveredId", "type": "ImGuiID" @@ -4643,6 +4755,10 @@ "template_type": "ImGuiPopupData", "type": "ImVector_ImGuiPopupData" }, + { + "name": "BeginMenuCount", + "type": "int" + }, { "name": "Viewports", "template_type": "ImGuiViewportP*", @@ -4701,12 +4817,12 @@ "type": "ImGuiID" }, { - "name": "NavInputId", + "name": "NavActivateInputId", "type": "ImGuiID" }, { - "name": "NavJustTabbedId", - "type": "ImGuiID" + "name": "NavActivateFlags", + "type": "ImGuiActivateFlags" }, { "name": "NavJustMovedToId", @@ -4725,25 +4841,17 @@ "type": "ImGuiID" }, { - "name": "NavInputSource", - "type": "ImGuiInputSource" - }, - { - "name": "NavScoringRect", - "type": "ImRect" + "name": "NavNextActivateFlags", + "type": "ImGuiActivateFlags" }, { - "name": "NavScoringCount", - "type": "int" + "name": "NavInputSource", + "type": "ImGuiInputSource" }, { "name": "NavLayer", "type": "ImGuiNavLayer" }, - { - "name": "NavIdTabCounter", - "type": "int" - }, { "name": "NavIdIsAlive", "type": "bool" @@ -4781,19 +4889,27 @@ "type": "ImRect" }, { - "name": "NavMoveRequest", + "name": "NavMoveSubmitted", "type": "bool" }, { - "name": "NavMoveRequestForwardToNextFrame", + "name": "NavMoveScoringItems", "type": "bool" }, { - "name": "NavMoveRequestFlags", + "name": "NavMoveForwardToNextFrame", + "type": "bool" + }, + { + "name": "NavMoveFlags", "type": "ImGuiNavMoveFlags" }, { - "name": "NavMoveRequestKeyMods", + "name": "NavMoveScrollFlags", + "type": "ImGuiScrollFlags" + }, + { + "name": "NavMoveKeyMods", "type": "ImGuiKeyModFlags" }, { @@ -4801,25 +4917,49 @@ "type": "ImGuiDir" }, { - "name": "NavMoveDirLast", + "name": "NavMoveDirForDebug", "type": "ImGuiDir" }, { "name": "NavMoveClipDir", "type": "ImGuiDir" }, + { + "name": "NavScoringRect", + "type": "ImRect" + }, + { + "name": "NavScoringNoClipRect", + "type": "ImRect" + }, + { + "name": "NavScoringDebugCount", + "type": "int" + }, + { + "name": "NavTabbingDir", + "type": "int" + }, + { + "name": "NavTabbingCounter", + "type": "int" + }, { "name": "NavMoveResultLocal", "type": "ImGuiNavItemData" }, { - "name": "NavMoveResultLocalVisibleSet", + "name": "NavMoveResultLocalVisible", "type": "ImGuiNavItemData" }, { "name": "NavMoveResultOther", "type": "ImGuiNavItemData" }, + { + "name": "NavTabbingResultFirst", + "type": "ImGuiNavItemData" + }, { "name": "NavWindowingTarget", "type": "ImGuiWindow*" @@ -4844,34 +4984,6 @@ "name": "NavWindowingToggleLayer", "type": "bool" }, - { - "name": "TabFocusRequestCurrWindow", - "type": "ImGuiWindow*" - }, - { - "name": "TabFocusRequestNextWindow", - "type": "ImGuiWindow*" - }, - { - "name": "TabFocusRequestCurrCounterRegular", - "type": "int" - }, - { - "name": "TabFocusRequestCurrCounterTabStop", - "type": "int" - }, - { - "name": "TabFocusRequestNextCounterRegular", - "type": "int" - }, - { - "name": "TabFocusRequestNextCounterTabStop", - "type": "int" - }, - { - "name": "TabFocusPressed", - "type": "bool" - }, { "name": "DimBgRatio", "type": "float" @@ -4950,24 +5062,33 @@ "size": 16, "type": "unsigned char" }, + { + "name": "ClipperTempDataStacked", + "type": "int" + }, + { + "name": "ClipperTempData", + "template_type": "ImGuiListClipperData", + "type": "ImVector_ImGuiListClipperData" + }, { "name": "CurrentTable", "type": "ImGuiTable*" }, { - "name": "CurrentTableStackIdx", + "name": "TablesTempDataStacked", "type": "int" }, + { + "name": "TablesTempData", + "template_type": "ImGuiTableTempData", + "type": "ImVector_ImGuiTableTempData" + }, { "name": "Tables", "template_type": "ImGuiTable", "type": "ImPool_ImGuiTable" }, - { - "name": "TablesTempDataStack", - "template_type": "ImGuiTableTempData", - "type": "ImVector_ImGuiTableTempData" - }, { "name": "TablesLastTimeActive", "template_type": "float", @@ -4998,7 +5119,7 @@ "type": "ImVector_ImGuiShrinkWidthItem" }, { - "name": "LastValidMousePos", + "name": "MouseLastValidPos", "type": "ImVec2" }, { @@ -5026,9 +5147,8 @@ "type": "float" }, { - "name": "ColorEditLastColor[3]", - "size": 3, - "type": "float" + "name": "ColorEditLastColor", + "type": "ImU32" }, { "name": "ColorPickerRef", @@ -5059,16 +5179,20 @@ "type": "float" }, { - "name": "DisabledAlphaBackup", + "name": "ScrollbarClickDeltaToGrabCenter", "type": "float" }, { - "name": "ScrollbarClickDeltaToGrabCenter", + "name": "DisabledAlphaBackup", "type": "float" }, + { + "name": "DisabledStackSize", + "type": "short" + }, { "name": "TooltipOverrideCount", - "type": "int" + "type": "short" }, { "name": "TooltipSlowDelay", @@ -5196,6 +5320,10 @@ "name": "DebugMetricsConfig", "type": "ImGuiMetricsConfig" }, + { + "name": "DebugStackTool", + "type": "ImGuiStackTool" + }, { "name": "FramerateSecPerFrame[120]", "size": 120, @@ -5361,6 +5489,10 @@ "name": "WindowClass", "type": "ImGuiWindowClass" }, + { + "name": "LastBgColor", + "type": "ImU32" + }, { "name": "HostWindow", "type": "ImGuiWindow*" @@ -5377,6 +5509,10 @@ "name": "OnlyNodeWithWindows", "type": "ImGuiDockNode*" }, + { + "name": "CountNodeWithWindows", + "type": "int" + }, { "name": "LastFrameAlive", "type": "int" @@ -5426,6 +5562,11 @@ "name": "IsFocused", "type": "bool" }, + { + "bitfield": "1", + "name": "IsBgDrawnThisFrame", + "type": "bool" + }, { "bitfield": "1", "name": "HasCloseButton", @@ -5436,6 +5577,11 @@ "name": "HasWindowMenuButton", "type": "bool" }, + { + "bitfield": "1", + "name": "HasCentralNodeChild", + "type": "bool" + }, { "bitfield": "1", "name": "WantCloseAll", @@ -5460,11 +5606,6 @@ "bitfield": "1", "name": "WantHiddenTabBarToggle", "type": "bool" - }, - { - "bitfield": "1", - "name": "MarkedForPosSizeWrite", - "type": "bool" } ], "ImGuiGroupData": [ @@ -5595,6 +5736,10 @@ "name": "ConfigDockingNoSplit", "type": "bool" }, + { + "name": "ConfigDockingWithShift", + "type": "bool" + }, { "name": "ConfigDockingAlwaysTabBar", "type": "bool" @@ -5819,22 +5964,27 @@ "type": "bool" }, { - "name": "MouseReleased[5]", + "name": "MouseClickedCount[5]", "size": 5, - "type": "bool" + "type": "ImU16" }, { - "name": "MouseDownOwned[5]", + "name": "MouseClickedLastCount[5]", + "size": 5, + "type": "ImU16" + }, + { + "name": "MouseReleased[5]", "size": 5, "type": "bool" }, { - "name": "MouseDownOwnedUnlessPopupClose[5]", + "name": "MouseDownOwned[5]", "size": 5, "type": "bool" }, { - "name": "MouseDownWasDoubleClick[5]", + "name": "MouseDownOwnedUnlessPopupClose[5]", "size": 5, "type": "bool" }, @@ -6009,14 +6159,6 @@ { "name": "Flags", "type": "ImGuiInputTextFlags" - }, - { - "name": "UserCallback", - "type": "ImGuiInputTextCallback" - }, - { - "name": "UserCallbackData", - "type": "void*" } ], "ImGuiLastItemData": [ @@ -6036,6 +6178,10 @@ "name": "Rect", "type": "ImRect" }, + { + "name": "NavRect", + "type": "ImRect" + }, { "name": "DisplayRect", "type": "ImRect" @@ -6054,6 +6200,28 @@ "name": "ItemsCount", "type": "int" }, + { + "name": "ItemsHeight", + "type": "float" + }, + { + "name": "StartPosY", + "type": "float" + }, + { + "name": "TempData", + "type": "void*" + } + ], + "ImGuiListClipperData": [ + { + "name": "ListClipper", + "type": "ImGuiListClipper*" + }, + { + "name": "LossynessOffset", + "type": "float" + }, { "name": "StepNo", "type": "int" @@ -6063,12 +6231,31 @@ "type": "int" }, { - "name": "ItemsHeight", - "type": "float" + "name": "Ranges", + "template_type": "ImGuiListClipperRange", + "type": "ImVector_ImGuiListClipperRange" + } + ], + "ImGuiListClipperRange": [ + { + "name": "Min", + "type": "int" }, { - "name": "StartPosY", - "type": "float" + "name": "Max", + "type": "int" + }, + { + "name": "PosToIndexConvert", + "type": "bool" + }, + { + "name": "PosToIndexOffsetMin", + "type": "ImS8" + }, + { + "name": "PosToIndexOffsetMax", + "type": "ImS8" } ], "ImGuiMenuColumns": [ @@ -6107,6 +6294,10 @@ } ], "ImGuiMetricsConfig": [ + { + "name": "ShowStackTool", + "type": "bool" + }, { "name": "ShowWindowsRects", "type": "bool" @@ -6157,6 +6348,10 @@ "name": "RectRel", "type": "ImRect" }, + { + "name": "InFlags", + "type": "ImGuiItemFlags" + }, { "name": "DistBox", "type": "float" @@ -6640,6 +6835,25 @@ "type": "ImVec2" } ], + "ImGuiStackLevelInfo": [ + { + "name": "ID", + "type": "ImGuiID" + }, + { + "name": "QueryFrameCount", + "type": "ImS8" + }, + { + "name": "QuerySuccess", + "type": "bool" + }, + { + "name": "Desc[58]", + "size": 58, + "type": "char" + } + ], "ImGuiStackSizes": [ { "name": "SizeOfIDStack", @@ -6665,9 +6879,36 @@ "name": "SizeOfGroupStack", "type": "short" }, + { + "name": "SizeOfItemFlagsStack", + "type": "short" + }, { "name": "SizeOfBeginPopupStack", "type": "short" + }, + { + "name": "SizeOfDisabledStack", + "type": "short" + } + ], + "ImGuiStackTool": [ + { + "name": "LastActiveFrame", + "type": "int" + }, + { + "name": "StackLevel", + "type": "int" + }, + { + "name": "QueryId", + "type": "ImGuiID" + }, + { + "name": "Results", + "template_type": "ImGuiStackLevelInfo", + "type": "ImVector_ImGuiStackLevelInfo" } ], "ImGuiStorage": [ @@ -8135,6 +8376,10 @@ "name": "IsFallbackWindow", "type": "bool" }, + { + "name": "IsExplicitChild", + "type": "bool" + }, { "name": "HasCloseButton", "type": "bool" @@ -8321,10 +8566,18 @@ "name": "ParentWindow", "type": "ImGuiWindow*" }, + { + "name": "ParentWindowInBeginStack", + "type": "ImGuiWindow*" + }, { "name": "RootWindow", "type": "ImGuiWindow*" }, + { + "name": "RootWindowPopupTree", + "type": "ImGuiWindow*" + }, { "name": "RootWindowDockTree", "type": "ImGuiWindow*" @@ -8503,6 +8756,10 @@ { "name": "ParentLastItemDataBackup", "type": "ImGuiLastItemData" + }, + { + "name": "StackSizesOnBegin", + "type": "ImGuiStackSizes" } ], "ImGuiWindowTempData": [ @@ -8554,6 +8811,10 @@ "name": "GroupOffset", "type": "ImVec1" }, + { + "name": "CursorStartPosLossyness", + "type": "ImVec2" + }, { "name": "NavLayerCurrent", "type": "ImGuiNavLayer" @@ -8623,14 +8884,6 @@ "name": "ParentLayoutType", "type": "ImGuiLayoutType" }, - { - "name": "FocusCounterRegular", - "type": "int" - }, - { - "name": "FocusCounterTabStop", - "type": "int" - }, { "name": "ItemWidth", "type": "float" @@ -8648,10 +8901,6 @@ "name": "TextWrapPosStack", "template_type": "float", "type": "ImVector_float" - }, - { - "name": "StackSizesOnBegin", - "type": "ImGuiStackSizes" } ], "ImRect": [ diff --git a/imgui-sys/third-party/imgui-docking/structs_and_enums.lua b/imgui-sys/third-party/imgui-docking/structs_and_enums.lua index 5c35b9188..afa4e8253 100644 --- a/imgui-sys/third-party/imgui-docking/structs_and_enums.lua +++ b/imgui-sys/third-party/imgui-docking/structs_and_enums.lua @@ -95,6 +95,23 @@ defs["enums"]["ImFontAtlasFlags_"][4] = {} defs["enums"]["ImFontAtlasFlags_"][4]["calc_value"] = 4 defs["enums"]["ImFontAtlasFlags_"][4]["name"] = "ImFontAtlasFlags_NoBakedLines" defs["enums"]["ImFontAtlasFlags_"][4]["value"] = "1 << 2" +defs["enums"]["ImGuiActivateFlags_"] = {} +defs["enums"]["ImGuiActivateFlags_"][1] = {} +defs["enums"]["ImGuiActivateFlags_"][1]["calc_value"] = 0 +defs["enums"]["ImGuiActivateFlags_"][1]["name"] = "ImGuiActivateFlags_None" +defs["enums"]["ImGuiActivateFlags_"][1]["value"] = "0" +defs["enums"]["ImGuiActivateFlags_"][2] = {} +defs["enums"]["ImGuiActivateFlags_"][2]["calc_value"] = 1 +defs["enums"]["ImGuiActivateFlags_"][2]["name"] = "ImGuiActivateFlags_PreferInput" +defs["enums"]["ImGuiActivateFlags_"][2]["value"] = "1 << 0" +defs["enums"]["ImGuiActivateFlags_"][3] = {} +defs["enums"]["ImGuiActivateFlags_"][3]["calc_value"] = 2 +defs["enums"]["ImGuiActivateFlags_"][3]["name"] = "ImGuiActivateFlags_PreferTweak" +defs["enums"]["ImGuiActivateFlags_"][3]["value"] = "1 << 1" +defs["enums"]["ImGuiActivateFlags_"][4] = {} +defs["enums"]["ImGuiActivateFlags_"][4]["calc_value"] = 4 +defs["enums"]["ImGuiActivateFlags_"][4]["name"] = "ImGuiActivateFlags_TryToPreserveState" +defs["enums"]["ImGuiActivateFlags_"][4]["value"] = "1 << 2" defs["enums"]["ImGuiAxis"] = {} defs["enums"]["ImGuiAxis"][1] = {} defs["enums"]["ImGuiAxis"][1]["calc_value"] = -1 @@ -1008,9 +1025,17 @@ defs["enums"]["ImGuiFocusedFlags_"][4]["calc_value"] = 4 defs["enums"]["ImGuiFocusedFlags_"][4]["name"] = "ImGuiFocusedFlags_AnyWindow" defs["enums"]["ImGuiFocusedFlags_"][4]["value"] = "1 << 2" defs["enums"]["ImGuiFocusedFlags_"][5] = {} -defs["enums"]["ImGuiFocusedFlags_"][5]["calc_value"] = 3 -defs["enums"]["ImGuiFocusedFlags_"][5]["name"] = "ImGuiFocusedFlags_RootAndChildWindows" -defs["enums"]["ImGuiFocusedFlags_"][5]["value"] = "ImGuiFocusedFlags_RootWindow | ImGuiFocusedFlags_ChildWindows" +defs["enums"]["ImGuiFocusedFlags_"][5]["calc_value"] = 8 +defs["enums"]["ImGuiFocusedFlags_"][5]["name"] = "ImGuiFocusedFlags_NoPopupHierarchy" +defs["enums"]["ImGuiFocusedFlags_"][5]["value"] = "1 << 3" +defs["enums"]["ImGuiFocusedFlags_"][6] = {} +defs["enums"]["ImGuiFocusedFlags_"][6]["calc_value"] = 16 +defs["enums"]["ImGuiFocusedFlags_"][6]["name"] = "ImGuiFocusedFlags_DockHierarchy" +defs["enums"]["ImGuiFocusedFlags_"][6]["value"] = "1 << 4" +defs["enums"]["ImGuiFocusedFlags_"][7] = {} +defs["enums"]["ImGuiFocusedFlags_"][7]["calc_value"] = 3 +defs["enums"]["ImGuiFocusedFlags_"][7]["name"] = "ImGuiFocusedFlags_RootAndChildWindows" +defs["enums"]["ImGuiFocusedFlags_"][7]["value"] = "ImGuiFocusedFlags_RootWindow | ImGuiFocusedFlags_ChildWindows" defs["enums"]["ImGuiHoveredFlags_"] = {} defs["enums"]["ImGuiHoveredFlags_"][1] = {} defs["enums"]["ImGuiHoveredFlags_"][1]["calc_value"] = 0 @@ -1030,28 +1055,36 @@ defs["enums"]["ImGuiHoveredFlags_"][4]["name"] = "ImGuiHoveredFlags_AnyWindow" defs["enums"]["ImGuiHoveredFlags_"][4]["value"] = "1 << 2" defs["enums"]["ImGuiHoveredFlags_"][5] = {} defs["enums"]["ImGuiHoveredFlags_"][5]["calc_value"] = 8 -defs["enums"]["ImGuiHoveredFlags_"][5]["name"] = "ImGuiHoveredFlags_AllowWhenBlockedByPopup" +defs["enums"]["ImGuiHoveredFlags_"][5]["name"] = "ImGuiHoveredFlags_NoPopupHierarchy" defs["enums"]["ImGuiHoveredFlags_"][5]["value"] = "1 << 3" defs["enums"]["ImGuiHoveredFlags_"][6] = {} -defs["enums"]["ImGuiHoveredFlags_"][6]["calc_value"] = 32 -defs["enums"]["ImGuiHoveredFlags_"][6]["name"] = "ImGuiHoveredFlags_AllowWhenBlockedByActiveItem" -defs["enums"]["ImGuiHoveredFlags_"][6]["value"] = "1 << 5" +defs["enums"]["ImGuiHoveredFlags_"][6]["calc_value"] = 16 +defs["enums"]["ImGuiHoveredFlags_"][6]["name"] = "ImGuiHoveredFlags_DockHierarchy" +defs["enums"]["ImGuiHoveredFlags_"][6]["value"] = "1 << 4" defs["enums"]["ImGuiHoveredFlags_"][7] = {} -defs["enums"]["ImGuiHoveredFlags_"][7]["calc_value"] = 64 -defs["enums"]["ImGuiHoveredFlags_"][7]["name"] = "ImGuiHoveredFlags_AllowWhenOverlapped" -defs["enums"]["ImGuiHoveredFlags_"][7]["value"] = "1 << 6" +defs["enums"]["ImGuiHoveredFlags_"][7]["calc_value"] = 32 +defs["enums"]["ImGuiHoveredFlags_"][7]["name"] = "ImGuiHoveredFlags_AllowWhenBlockedByPopup" +defs["enums"]["ImGuiHoveredFlags_"][7]["value"] = "1 << 5" defs["enums"]["ImGuiHoveredFlags_"][8] = {} defs["enums"]["ImGuiHoveredFlags_"][8]["calc_value"] = 128 -defs["enums"]["ImGuiHoveredFlags_"][8]["name"] = "ImGuiHoveredFlags_AllowWhenDisabled" +defs["enums"]["ImGuiHoveredFlags_"][8]["name"] = "ImGuiHoveredFlags_AllowWhenBlockedByActiveItem" defs["enums"]["ImGuiHoveredFlags_"][8]["value"] = "1 << 7" defs["enums"]["ImGuiHoveredFlags_"][9] = {} -defs["enums"]["ImGuiHoveredFlags_"][9]["calc_value"] = 104 -defs["enums"]["ImGuiHoveredFlags_"][9]["name"] = "ImGuiHoveredFlags_RectOnly" -defs["enums"]["ImGuiHoveredFlags_"][9]["value"] = "ImGuiHoveredFlags_AllowWhenBlockedByPopup | ImGuiHoveredFlags_AllowWhenBlockedByActiveItem | ImGuiHoveredFlags_AllowWhenOverlapped" +defs["enums"]["ImGuiHoveredFlags_"][9]["calc_value"] = 256 +defs["enums"]["ImGuiHoveredFlags_"][9]["name"] = "ImGuiHoveredFlags_AllowWhenOverlapped" +defs["enums"]["ImGuiHoveredFlags_"][9]["value"] = "1 << 8" defs["enums"]["ImGuiHoveredFlags_"][10] = {} -defs["enums"]["ImGuiHoveredFlags_"][10]["calc_value"] = 3 -defs["enums"]["ImGuiHoveredFlags_"][10]["name"] = "ImGuiHoveredFlags_RootAndChildWindows" -defs["enums"]["ImGuiHoveredFlags_"][10]["value"] = "ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_ChildWindows" +defs["enums"]["ImGuiHoveredFlags_"][10]["calc_value"] = 512 +defs["enums"]["ImGuiHoveredFlags_"][10]["name"] = "ImGuiHoveredFlags_AllowWhenDisabled" +defs["enums"]["ImGuiHoveredFlags_"][10]["value"] = "1 << 9" +defs["enums"]["ImGuiHoveredFlags_"][11] = {} +defs["enums"]["ImGuiHoveredFlags_"][11]["calc_value"] = 416 +defs["enums"]["ImGuiHoveredFlags_"][11]["name"] = "ImGuiHoveredFlags_RectOnly" +defs["enums"]["ImGuiHoveredFlags_"][11]["value"] = "ImGuiHoveredFlags_AllowWhenBlockedByPopup | ImGuiHoveredFlags_AllowWhenBlockedByActiveItem | ImGuiHoveredFlags_AllowWhenOverlapped" +defs["enums"]["ImGuiHoveredFlags_"][12] = {} +defs["enums"]["ImGuiHoveredFlags_"][12]["calc_value"] = 3 +defs["enums"]["ImGuiHoveredFlags_"][12]["name"] = "ImGuiHoveredFlags_RootAndChildWindows" +defs["enums"]["ImGuiHoveredFlags_"][12]["value"] = "ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_ChildWindows" defs["enums"]["ImGuiInputReadMode"] = {} defs["enums"]["ImGuiInputReadMode"][1] = {} defs["enums"]["ImGuiInputReadMode"][1]["calc_value"] = 0 @@ -1204,15 +1237,6 @@ defs["enums"]["ImGuiInputTextFlags_"][21] = {} defs["enums"]["ImGuiInputTextFlags_"][21]["calc_value"] = 524288 defs["enums"]["ImGuiInputTextFlags_"][21]["name"] = "ImGuiInputTextFlags_CallbackEdit" defs["enums"]["ImGuiInputTextFlags_"][21]["value"] = "1 << 19" -defs["enums"]["ImGuiItemAddFlags_"] = {} -defs["enums"]["ImGuiItemAddFlags_"][1] = {} -defs["enums"]["ImGuiItemAddFlags_"][1]["calc_value"] = 0 -defs["enums"]["ImGuiItemAddFlags_"][1]["name"] = "ImGuiItemAddFlags_None" -defs["enums"]["ImGuiItemAddFlags_"][1]["value"] = "0" -defs["enums"]["ImGuiItemAddFlags_"][2] = {} -defs["enums"]["ImGuiItemAddFlags_"][2]["calc_value"] = 1 -defs["enums"]["ImGuiItemAddFlags_"][2]["name"] = "ImGuiItemAddFlags_Focusable" -defs["enums"]["ImGuiItemAddFlags_"][2]["value"] = "1 << 0" defs["enums"]["ImGuiItemFlags_"] = {} defs["enums"]["ImGuiItemFlags_"][1] = {} defs["enums"]["ImGuiItemFlags_"][1]["calc_value"] = 0 @@ -1250,6 +1274,10 @@ defs["enums"]["ImGuiItemFlags_"][9] = {} defs["enums"]["ImGuiItemFlags_"][9]["calc_value"] = 128 defs["enums"]["ImGuiItemFlags_"][9]["name"] = "ImGuiItemFlags_ReadOnly" defs["enums"]["ImGuiItemFlags_"][9]["value"] = "1 << 7" +defs["enums"]["ImGuiItemFlags_"][10] = {} +defs["enums"]["ImGuiItemFlags_"][10]["calc_value"] = 256 +defs["enums"]["ImGuiItemFlags_"][10]["name"] = "ImGuiItemFlags_Inputable" +defs["enums"]["ImGuiItemFlags_"][10]["value"] = "1 << 8" defs["enums"]["ImGuiItemStatusFlags_"] = {} defs["enums"]["ImGuiItemStatusFlags_"][1] = {} defs["enums"]["ImGuiItemStatusFlags_"][1]["calc_value"] = 0 @@ -1289,16 +1317,8 @@ defs["enums"]["ImGuiItemStatusFlags_"][9]["name"] = "ImGuiItemStatusFlags_Hovere defs["enums"]["ImGuiItemStatusFlags_"][9]["value"] = "1 << 7" defs["enums"]["ImGuiItemStatusFlags_"][10] = {} defs["enums"]["ImGuiItemStatusFlags_"][10]["calc_value"] = 256 -defs["enums"]["ImGuiItemStatusFlags_"][10]["name"] = "ImGuiItemStatusFlags_FocusedByCode" +defs["enums"]["ImGuiItemStatusFlags_"][10]["name"] = "ImGuiItemStatusFlags_FocusedByTabbing" defs["enums"]["ImGuiItemStatusFlags_"][10]["value"] = "1 << 8" -defs["enums"]["ImGuiItemStatusFlags_"][11] = {} -defs["enums"]["ImGuiItemStatusFlags_"][11]["calc_value"] = 512 -defs["enums"]["ImGuiItemStatusFlags_"][11]["name"] = "ImGuiItemStatusFlags_FocusedByTabbing" -defs["enums"]["ImGuiItemStatusFlags_"][11]["value"] = "1 << 9" -defs["enums"]["ImGuiItemStatusFlags_"][12] = {} -defs["enums"]["ImGuiItemStatusFlags_"][12]["calc_value"] = 768 -defs["enums"]["ImGuiItemStatusFlags_"][12]["name"] = "ImGuiItemStatusFlags_Focused" -defs["enums"]["ImGuiItemStatusFlags_"][12]["value"] = "ImGuiItemStatusFlags_FocusedByCode | ImGuiItemStatusFlags_FocusedByTabbing" defs["enums"]["ImGuiKeyModFlags_"] = {} defs["enums"]["ImGuiKeyModFlags_"][1] = {} defs["enums"]["ImGuiKeyModFlags_"][1]["calc_value"] = 0 @@ -1512,16 +1532,20 @@ defs["enums"]["ImGuiNavDirSourceFlags_"][1]["name"] = "ImGuiNavDirSourceFlags_No defs["enums"]["ImGuiNavDirSourceFlags_"][1]["value"] = "0" defs["enums"]["ImGuiNavDirSourceFlags_"][2] = {} defs["enums"]["ImGuiNavDirSourceFlags_"][2]["calc_value"] = 1 -defs["enums"]["ImGuiNavDirSourceFlags_"][2]["name"] = "ImGuiNavDirSourceFlags_Keyboard" +defs["enums"]["ImGuiNavDirSourceFlags_"][2]["name"] = "ImGuiNavDirSourceFlags_RawKeyboard" defs["enums"]["ImGuiNavDirSourceFlags_"][2]["value"] = "1 << 0" defs["enums"]["ImGuiNavDirSourceFlags_"][3] = {} defs["enums"]["ImGuiNavDirSourceFlags_"][3]["calc_value"] = 2 -defs["enums"]["ImGuiNavDirSourceFlags_"][3]["name"] = "ImGuiNavDirSourceFlags_PadDPad" +defs["enums"]["ImGuiNavDirSourceFlags_"][3]["name"] = "ImGuiNavDirSourceFlags_Keyboard" defs["enums"]["ImGuiNavDirSourceFlags_"][3]["value"] = "1 << 1" defs["enums"]["ImGuiNavDirSourceFlags_"][4] = {} defs["enums"]["ImGuiNavDirSourceFlags_"][4]["calc_value"] = 4 -defs["enums"]["ImGuiNavDirSourceFlags_"][4]["name"] = "ImGuiNavDirSourceFlags_PadLStick" +defs["enums"]["ImGuiNavDirSourceFlags_"][4]["name"] = "ImGuiNavDirSourceFlags_PadDPad" defs["enums"]["ImGuiNavDirSourceFlags_"][4]["value"] = "1 << 2" +defs["enums"]["ImGuiNavDirSourceFlags_"][5] = {} +defs["enums"]["ImGuiNavDirSourceFlags_"][5]["calc_value"] = 8 +defs["enums"]["ImGuiNavDirSourceFlags_"][5]["name"] = "ImGuiNavDirSourceFlags_PadLStick" +defs["enums"]["ImGuiNavDirSourceFlags_"][5]["value"] = "1 << 3" defs["enums"]["ImGuiNavHighlightFlags_"] = {} defs["enums"]["ImGuiNavHighlightFlags_"][1] = {} defs["enums"]["ImGuiNavHighlightFlags_"][1]["calc_value"] = 0 @@ -1676,12 +1700,32 @@ defs["enums"]["ImGuiNavMoveFlags_"][7]["name"] = "ImGuiNavMoveFlags_AlsoScoreVis defs["enums"]["ImGuiNavMoveFlags_"][7]["value"] = "1 << 5" defs["enums"]["ImGuiNavMoveFlags_"][8] = {} defs["enums"]["ImGuiNavMoveFlags_"][8]["calc_value"] = 64 -defs["enums"]["ImGuiNavMoveFlags_"][8]["name"] = "ImGuiNavMoveFlags_ScrollToEdge" +defs["enums"]["ImGuiNavMoveFlags_"][8]["name"] = "ImGuiNavMoveFlags_ScrollToEdgeY" defs["enums"]["ImGuiNavMoveFlags_"][8]["value"] = "1 << 6" defs["enums"]["ImGuiNavMoveFlags_"][9] = {} defs["enums"]["ImGuiNavMoveFlags_"][9]["calc_value"] = 128 defs["enums"]["ImGuiNavMoveFlags_"][9]["name"] = "ImGuiNavMoveFlags_Forwarded" defs["enums"]["ImGuiNavMoveFlags_"][9]["value"] = "1 << 7" +defs["enums"]["ImGuiNavMoveFlags_"][10] = {} +defs["enums"]["ImGuiNavMoveFlags_"][10]["calc_value"] = 256 +defs["enums"]["ImGuiNavMoveFlags_"][10]["name"] = "ImGuiNavMoveFlags_DebugNoResult" +defs["enums"]["ImGuiNavMoveFlags_"][10]["value"] = "1 << 8" +defs["enums"]["ImGuiNavMoveFlags_"][11] = {} +defs["enums"]["ImGuiNavMoveFlags_"][11]["calc_value"] = 512 +defs["enums"]["ImGuiNavMoveFlags_"][11]["name"] = "ImGuiNavMoveFlags_FocusApi" +defs["enums"]["ImGuiNavMoveFlags_"][11]["value"] = "1 << 9" +defs["enums"]["ImGuiNavMoveFlags_"][12] = {} +defs["enums"]["ImGuiNavMoveFlags_"][12]["calc_value"] = 1024 +defs["enums"]["ImGuiNavMoveFlags_"][12]["name"] = "ImGuiNavMoveFlags_Tabbing" +defs["enums"]["ImGuiNavMoveFlags_"][12]["value"] = "1 << 10" +defs["enums"]["ImGuiNavMoveFlags_"][13] = {} +defs["enums"]["ImGuiNavMoveFlags_"][13]["calc_value"] = 2048 +defs["enums"]["ImGuiNavMoveFlags_"][13]["name"] = "ImGuiNavMoveFlags_Activate" +defs["enums"]["ImGuiNavMoveFlags_"][13]["value"] = "1 << 11" +defs["enums"]["ImGuiNavMoveFlags_"][14] = {} +defs["enums"]["ImGuiNavMoveFlags_"][14]["calc_value"] = 4096 +defs["enums"]["ImGuiNavMoveFlags_"][14]["name"] = "ImGuiNavMoveFlags_DontSetNavHighlight" +defs["enums"]["ImGuiNavMoveFlags_"][14]["value"] = "1 << 12" defs["enums"]["ImGuiNextItemDataFlags_"] = {} defs["enums"]["ImGuiNextItemDataFlags_"][1] = {} defs["enums"]["ImGuiNextItemDataFlags_"][1]["calc_value"] = 0 @@ -1836,6 +1880,47 @@ defs["enums"]["ImGuiPopupPositionPolicy"][3] = {} defs["enums"]["ImGuiPopupPositionPolicy"][3]["calc_value"] = 2 defs["enums"]["ImGuiPopupPositionPolicy"][3]["name"] = "ImGuiPopupPositionPolicy_Tooltip" defs["enums"]["ImGuiPopupPositionPolicy"][3]["value"] = "2" +defs["enums"]["ImGuiScrollFlags_"] = {} +defs["enums"]["ImGuiScrollFlags_"][1] = {} +defs["enums"]["ImGuiScrollFlags_"][1]["calc_value"] = 0 +defs["enums"]["ImGuiScrollFlags_"][1]["name"] = "ImGuiScrollFlags_None" +defs["enums"]["ImGuiScrollFlags_"][1]["value"] = "0" +defs["enums"]["ImGuiScrollFlags_"][2] = {} +defs["enums"]["ImGuiScrollFlags_"][2]["calc_value"] = 1 +defs["enums"]["ImGuiScrollFlags_"][2]["name"] = "ImGuiScrollFlags_KeepVisibleEdgeX" +defs["enums"]["ImGuiScrollFlags_"][2]["value"] = "1 << 0" +defs["enums"]["ImGuiScrollFlags_"][3] = {} +defs["enums"]["ImGuiScrollFlags_"][3]["calc_value"] = 2 +defs["enums"]["ImGuiScrollFlags_"][3]["name"] = "ImGuiScrollFlags_KeepVisibleEdgeY" +defs["enums"]["ImGuiScrollFlags_"][3]["value"] = "1 << 1" +defs["enums"]["ImGuiScrollFlags_"][4] = {} +defs["enums"]["ImGuiScrollFlags_"][4]["calc_value"] = 4 +defs["enums"]["ImGuiScrollFlags_"][4]["name"] = "ImGuiScrollFlags_KeepVisibleCenterX" +defs["enums"]["ImGuiScrollFlags_"][4]["value"] = "1 << 2" +defs["enums"]["ImGuiScrollFlags_"][5] = {} +defs["enums"]["ImGuiScrollFlags_"][5]["calc_value"] = 8 +defs["enums"]["ImGuiScrollFlags_"][5]["name"] = "ImGuiScrollFlags_KeepVisibleCenterY" +defs["enums"]["ImGuiScrollFlags_"][5]["value"] = "1 << 3" +defs["enums"]["ImGuiScrollFlags_"][6] = {} +defs["enums"]["ImGuiScrollFlags_"][6]["calc_value"] = 16 +defs["enums"]["ImGuiScrollFlags_"][6]["name"] = "ImGuiScrollFlags_AlwaysCenterX" +defs["enums"]["ImGuiScrollFlags_"][6]["value"] = "1 << 4" +defs["enums"]["ImGuiScrollFlags_"][7] = {} +defs["enums"]["ImGuiScrollFlags_"][7]["calc_value"] = 32 +defs["enums"]["ImGuiScrollFlags_"][7]["name"] = "ImGuiScrollFlags_AlwaysCenterY" +defs["enums"]["ImGuiScrollFlags_"][7]["value"] = "1 << 5" +defs["enums"]["ImGuiScrollFlags_"][8] = {} +defs["enums"]["ImGuiScrollFlags_"][8]["calc_value"] = 64 +defs["enums"]["ImGuiScrollFlags_"][8]["name"] = "ImGuiScrollFlags_NoScrollParent" +defs["enums"]["ImGuiScrollFlags_"][8]["value"] = "1 << 6" +defs["enums"]["ImGuiScrollFlags_"][9] = {} +defs["enums"]["ImGuiScrollFlags_"][9]["calc_value"] = 21 +defs["enums"]["ImGuiScrollFlags_"][9]["name"] = "ImGuiScrollFlags_MaskX_" +defs["enums"]["ImGuiScrollFlags_"][9]["value"] = "ImGuiScrollFlags_KeepVisibleEdgeX | ImGuiScrollFlags_KeepVisibleCenterX | ImGuiScrollFlags_AlwaysCenterX" +defs["enums"]["ImGuiScrollFlags_"][10] = {} +defs["enums"]["ImGuiScrollFlags_"][10]["calc_value"] = 42 +defs["enums"]["ImGuiScrollFlags_"][10]["name"] = "ImGuiScrollFlags_MaskY_" +defs["enums"]["ImGuiScrollFlags_"][10]["value"] = "ImGuiScrollFlags_KeepVisibleEdgeY | ImGuiScrollFlags_KeepVisibleCenterY | ImGuiScrollFlags_AlwaysCenterY" defs["enums"]["ImGuiSelectableFlagsPrivate_"] = {} defs["enums"]["ImGuiSelectableFlagsPrivate_"][1] = {} defs["enums"]["ImGuiSelectableFlagsPrivate_"][1]["calc_value"] = 1048576 @@ -2764,154 +2849,159 @@ defs["enums"]["ImGuiWindowFlags_"][32]["name"] = "ImGuiWindowFlags_DockNodeHost" defs["enums"]["ImGuiWindowFlags_"][32]["value"] = "1 << 29" defs["enumtypes"] = {} defs["locations"] = {} -defs["locations"]["ImBitVector"] = "imgui_internal:558" -defs["locations"]["ImColor"] = "imgui:2337" -defs["locations"]["ImDrawChannel"] = "imgui:2427" -defs["locations"]["ImDrawCmd"] = "imgui:2386" -defs["locations"]["ImDrawCmdHeader"] = "imgui:2419" -defs["locations"]["ImDrawData"] = "imgui:2617" -defs["locations"]["ImDrawDataBuilder"] = "imgui_internal:731" -defs["locations"]["ImDrawFlags_"] = "imgui:2453" -defs["locations"]["ImDrawList"] = "imgui:2491" -defs["locations"]["ImDrawListFlags_"] = "imgui:2473" -defs["locations"]["ImDrawListSharedData"] = "imgui_internal:711" -defs["locations"]["ImDrawListSplitter"] = "imgui:2436" -defs["locations"]["ImDrawVert"] = "imgui:2404" -defs["locations"]["ImFont"] = "imgui:2836" -defs["locations"]["ImFontAtlas"] = "imgui:2734" -defs["locations"]["ImFontAtlasCustomRect"] = "imgui:2696" -defs["locations"]["ImFontAtlasFlags_"] = "imgui:2709" -defs["locations"]["ImFontBuilderIO"] = "imgui_internal:2977" -defs["locations"]["ImFontConfig"] = "imgui:2640" -defs["locations"]["ImFontGlyph"] = "imgui:2669" -defs["locations"]["ImFontGlyphRangesBuilder"] = "imgui:2681" -defs["locations"]["ImGuiAxis"] = "imgui_internal:896" -defs["locations"]["ImGuiBackendFlags_"] = "imgui:1506" -defs["locations"]["ImGuiButtonFlagsPrivate_"] = "imgui_internal:803" -defs["locations"]["ImGuiButtonFlags_"] = "imgui:1620" -defs["locations"]["ImGuiCol_"] = "imgui:1521" -defs["locations"]["ImGuiColorEditFlags_"] = "imgui:1633" -defs["locations"]["ImGuiColorMod"] = "imgui_internal:961" -defs["locations"]["ImGuiComboFlagsPrivate_"] = "imgui_internal:826" -defs["locations"]["ImGuiComboFlags_"] = "imgui:1120" -defs["locations"]["ImGuiComboPreviewData"] = "imgui_internal:978" -defs["locations"]["ImGuiCond_"] = "imgui:1725" -defs["locations"]["ImGuiConfigFlags_"] = "imgui:1481" -defs["locations"]["ImGuiContext"] = "imgui_internal:1580" -defs["locations"]["ImGuiContextHook"] = "imgui_internal:1565" -defs["locations"]["ImGuiContextHookType"] = "imgui_internal:1563" -defs["locations"]["ImGuiDataAuthority_"] = "imgui_internal:1325" -defs["locations"]["ImGuiDataTypeInfo"] = "imgui_internal:944" -defs["locations"]["ImGuiDataTypePrivate_"] = "imgui_internal:953" -defs["locations"]["ImGuiDataTypeTempStorage"] = "imgui_internal:938" -defs["locations"]["ImGuiDataType_"] = "imgui:1374" -defs["locations"]["ImGuiDir_"] = "imgui:1390" -defs["locations"]["ImGuiDockContext"] = "imgui_internal:1420" -defs["locations"]["ImGuiDockNode"] = "imgui_internal:1341" -defs["locations"]["ImGuiDockNodeFlagsPrivate_"] = "imgui_internal:1300" -defs["locations"]["ImGuiDockNodeFlags_"] = "imgui:1339" -defs["locations"]["ImGuiDockNodeState"] = "imgui_internal:1332" -defs["locations"]["ImGuiDragDropFlags_"] = "imgui:1352" -defs["locations"]["ImGuiFocusedFlags_"] = "imgui:1309" -defs["locations"]["ImGuiGroupData"] = "imgui_internal:991" -defs["locations"]["ImGuiHoveredFlags_"] = "imgui:1321" -defs["locations"]["ImGuiIO"] = "imgui:1891" -defs["locations"]["ImGuiInputReadMode"] = "imgui_internal:921" -defs["locations"]["ImGuiInputSource"] = "imgui_internal:909" -defs["locations"]["ImGuiInputTextCallbackData"] = "imgui:2046" -defs["locations"]["ImGuiInputTextFlagsPrivate_"] = "imgui_internal:794" -defs["locations"]["ImGuiInputTextFlags_"] = "imgui:1033" -defs["locations"]["ImGuiInputTextState"] = "imgui_internal:1026" -defs["locations"]["ImGuiItemAddFlags_"] = "imgui_internal:762" -defs["locations"]["ImGuiItemFlags_"] = "imgui_internal:747" -defs["locations"]["ImGuiItemStatusFlags_"] = "imgui_internal:769" -defs["locations"]["ImGuiKeyModFlags_"] = "imgui:1437" -defs["locations"]["ImGuiKey_"] = "imgui:1409" -defs["locations"]["ImGuiLastItemData"] = "imgui_internal:1141" -defs["locations"]["ImGuiLayoutType_"] = "imgui_internal:880" -defs["locations"]["ImGuiListClipper"] = "imgui:2288" -defs["locations"]["ImGuiLogType"] = "imgui_internal:886" -defs["locations"]["ImGuiMenuColumns"] = "imgui_internal:1007" -defs["locations"]["ImGuiMetricsConfig"] = "imgui_internal:1519" -defs["locations"]["ImGuiMouseButton_"] = "imgui:1697" -defs["locations"]["ImGuiMouseCursor_"] = "imgui:1707" -defs["locations"]["ImGuiNavDirSourceFlags_"] = "imgui_internal:1187" -defs["locations"]["ImGuiNavHighlightFlags_"] = "imgui_internal:1178" -defs["locations"]["ImGuiNavInput_"] = "imgui:1450" -defs["locations"]["ImGuiNavItemData"] = "imgui_internal:1215" -defs["locations"]["ImGuiNavLayer"] = "imgui_internal:1208" -defs["locations"]["ImGuiNavMoveFlags_"] = "imgui_internal:1195" -defs["locations"]["ImGuiNextItemData"] = "imgui_internal:1128" -defs["locations"]["ImGuiNextItemDataFlags_"] = "imgui_internal:1121" -defs["locations"]["ImGuiNextWindowData"] = "imgui_internal:1094" -defs["locations"]["ImGuiNextWindowDataFlags_"] = "imgui_internal:1077" -defs["locations"]["ImGuiOldColumnData"] = "imgui_internal:1254" -defs["locations"]["ImGuiOldColumnFlags_"] = "imgui_internal:1234" -defs["locations"]["ImGuiOldColumns"] = "imgui_internal:1264" -defs["locations"]["ImGuiOnceUponAFrame"] = "imgui:2166" -defs["locations"]["ImGuiPayload"] = "imgui:2107" -defs["locations"]["ImGuiPlatformIO"] = "imgui:2999" -defs["locations"]["ImGuiPlatformMonitor"] = "imgui:3063" -defs["locations"]["ImGuiPlotType"] = "imgui_internal:903" -defs["locations"]["ImGuiPopupData"] = "imgui_internal:1064" -defs["locations"]["ImGuiPopupFlags_"] = "imgui:1093" -defs["locations"]["ImGuiPopupPositionPolicy"] = "imgui_internal:931" -defs["locations"]["ImGuiPtrOrIndex"] = "imgui_internal:1165" -defs["locations"]["ImGuiSelectableFlagsPrivate_"] = "imgui_internal:839" -defs["locations"]["ImGuiSelectableFlags_"] = "imgui:1109" -defs["locations"]["ImGuiSeparatorFlags_"] = "imgui_internal:858" -defs["locations"]["ImGuiSettingsHandler"] = "imgui_internal:1500" -defs["locations"]["ImGuiShrinkWidthItem"] = "imgui_internal:1159" -defs["locations"]["ImGuiSizeCallbackData"] = "imgui:2077" -defs["locations"]["ImGuiSliderFlagsPrivate_"] = "imgui_internal:832" -defs["locations"]["ImGuiSliderFlags_"] = "imgui:1680" -defs["locations"]["ImGuiSortDirection_"] = "imgui:1401" -defs["locations"]["ImGuiStackSizes"] = "imgui_internal:1543" -defs["locations"]["ImGuiStorage"] = "imgui:2228" -defs["locations"]["ImGuiStoragePair"] = "imgui:2231" -defs["locations"]["ImGuiStyle"] = "imgui:1836" -defs["locations"]["ImGuiStyleMod"] = "imgui_internal:968" -defs["locations"]["ImGuiStyleVar_"] = "imgui:1588" -defs["locations"]["ImGuiTabBar"] = "imgui_internal:2235" -defs["locations"]["ImGuiTabBarFlagsPrivate_"] = "imgui_internal:2198" -defs["locations"]["ImGuiTabBarFlags_"] = "imgui:1134" -defs["locations"]["ImGuiTabItem"] = "imgui_internal:2216" -defs["locations"]["ImGuiTabItemFlagsPrivate_"] = "imgui_internal:2206" -defs["locations"]["ImGuiTabItemFlags_"] = "imgui:1150" -defs["locations"]["ImGuiTable"] = "imgui_internal:2362" -defs["locations"]["ImGuiTableBgTarget_"] = "imgui:1300" -defs["locations"]["ImGuiTableCellData"] = "imgui_internal:2355" -defs["locations"]["ImGuiTableColumn"] = "imgui_internal:2296" -defs["locations"]["ImGuiTableColumnFlags_"] = "imgui:1243" -defs["locations"]["ImGuiTableColumnSettings"] = "imgui_internal:2496" -defs["locations"]["ImGuiTableColumnSortSpecs"] = "imgui:2129" -defs["locations"]["ImGuiTableFlags_"] = "imgui:1186" -defs["locations"]["ImGuiTableRowFlags_"] = "imgui:1285" -defs["locations"]["ImGuiTableSettings"] = "imgui_internal:2520" -defs["locations"]["ImGuiTableSortSpecs"] = "imgui:2143" -defs["locations"]["ImGuiTableTempData"] = "imgui_internal:2475" -defs["locations"]["ImGuiTextBuffer"] = "imgui:2201" -defs["locations"]["ImGuiTextFilter"] = "imgui:2174" -defs["locations"]["ImGuiTextFlags_"] = "imgui_internal:866" -defs["locations"]["ImGuiTextRange"] = "imgui:2184" -defs["locations"]["ImGuiTooltipFlags_"] = "imgui_internal:872" -defs["locations"]["ImGuiTreeNodeFlagsPrivate_"] = "imgui_internal:853" -defs["locations"]["ImGuiTreeNodeFlags_"] = "imgui:1064" -defs["locations"]["ImGuiViewport"] = "imgui:2917" -defs["locations"]["ImGuiViewportFlags_"] = "imgui:2892" -defs["locations"]["ImGuiViewportP"] = "imgui_internal:1437" -defs["locations"]["ImGuiWindow"] = "imgui_internal:2057" -defs["locations"]["ImGuiWindowClass"] = "imgui:2092" -defs["locations"]["ImGuiWindowDockStyle"] = "imgui_internal:1415" -defs["locations"]["ImGuiWindowDockStyleCol"] = "imgui_internal:1404" -defs["locations"]["ImGuiWindowFlags_"] = "imgui:990" -defs["locations"]["ImGuiWindowSettings"] = "imgui_internal:1483" -defs["locations"]["ImGuiWindowStackData"] = "imgui_internal:1153" -defs["locations"]["ImGuiWindowTempData"] = "imgui_internal:2008" -defs["locations"]["ImRect"] = "imgui_internal:487" -defs["locations"]["ImVec1"] = "imgui_internal:469" +defs["locations"]["ImBitVector"] = "imgui_internal:570" +defs["locations"]["ImColor"] = "imgui:2347" +defs["locations"]["ImDrawChannel"] = "imgui:2437" +defs["locations"]["ImDrawCmd"] = "imgui:2396" +defs["locations"]["ImDrawCmdHeader"] = "imgui:2429" +defs["locations"]["ImDrawData"] = "imgui:2627" +defs["locations"]["ImDrawDataBuilder"] = "imgui_internal:743" +defs["locations"]["ImDrawFlags_"] = "imgui:2463" +defs["locations"]["ImDrawList"] = "imgui:2501" +defs["locations"]["ImDrawListFlags_"] = "imgui:2483" +defs["locations"]["ImDrawListSharedData"] = "imgui_internal:723" +defs["locations"]["ImDrawListSplitter"] = "imgui:2446" +defs["locations"]["ImDrawVert"] = "imgui:2414" +defs["locations"]["ImFont"] = "imgui:2846" +defs["locations"]["ImFontAtlas"] = "imgui:2744" +defs["locations"]["ImFontAtlasCustomRect"] = "imgui:2706" +defs["locations"]["ImFontAtlasFlags_"] = "imgui:2719" +defs["locations"]["ImFontBuilderIO"] = "imgui_internal:3101" +defs["locations"]["ImFontConfig"] = "imgui:2650" +defs["locations"]["ImFontGlyph"] = "imgui:2679" +defs["locations"]["ImFontGlyphRangesBuilder"] = "imgui:2691" +defs["locations"]["ImGuiActivateFlags_"] = "imgui_internal:1227" +defs["locations"]["ImGuiAxis"] = "imgui_internal:899" +defs["locations"]["ImGuiBackendFlags_"] = "imgui:1512" +defs["locations"]["ImGuiButtonFlagsPrivate_"] = "imgui_internal:806" +defs["locations"]["ImGuiButtonFlags_"] = "imgui:1626" +defs["locations"]["ImGuiCol_"] = "imgui:1527" +defs["locations"]["ImGuiColorEditFlags_"] = "imgui:1639" +defs["locations"]["ImGuiColorMod"] = "imgui_internal:964" +defs["locations"]["ImGuiComboFlagsPrivate_"] = "imgui_internal:829" +defs["locations"]["ImGuiComboFlags_"] = "imgui:1122" +defs["locations"]["ImGuiComboPreviewData"] = "imgui_internal:981" +defs["locations"]["ImGuiCond_"] = "imgui:1731" +defs["locations"]["ImGuiConfigFlags_"] = "imgui:1487" +defs["locations"]["ImGuiContext"] = "imgui_internal:1670" +defs["locations"]["ImGuiContextHook"] = "imgui_internal:1655" +defs["locations"]["ImGuiContextHookType"] = "imgui_internal:1653" +defs["locations"]["ImGuiDataAuthority_"] = "imgui_internal:1404" +defs["locations"]["ImGuiDataTypeInfo"] = "imgui_internal:947" +defs["locations"]["ImGuiDataTypePrivate_"] = "imgui_internal:956" +defs["locations"]["ImGuiDataTypeTempStorage"] = "imgui_internal:941" +defs["locations"]["ImGuiDataType_"] = "imgui:1380" +defs["locations"]["ImGuiDir_"] = "imgui:1396" +defs["locations"]["ImGuiDockContext"] = "imgui_internal:1502" +defs["locations"]["ImGuiDockNode"] = "imgui_internal:1420" +defs["locations"]["ImGuiDockNodeFlagsPrivate_"] = "imgui_internal:1379" +defs["locations"]["ImGuiDockNodeFlags_"] = "imgui:1345" +defs["locations"]["ImGuiDockNodeState"] = "imgui_internal:1411" +defs["locations"]["ImGuiDragDropFlags_"] = "imgui:1358" +defs["locations"]["ImGuiFocusedFlags_"] = "imgui:1311" +defs["locations"]["ImGuiGroupData"] = "imgui_internal:994" +defs["locations"]["ImGuiHoveredFlags_"] = "imgui:1325" +defs["locations"]["ImGuiIO"] = "imgui:1897" +defs["locations"]["ImGuiInputReadMode"] = "imgui_internal:924" +defs["locations"]["ImGuiInputSource"] = "imgui_internal:912" +defs["locations"]["ImGuiInputTextCallbackData"] = "imgui:2054" +defs["locations"]["ImGuiInputTextFlagsPrivate_"] = "imgui_internal:797" +defs["locations"]["ImGuiInputTextFlags_"] = "imgui:1035" +defs["locations"]["ImGuiInputTextState"] = "imgui_internal:1029" +defs["locations"]["ImGuiItemFlags_"] = "imgui_internal:759" +defs["locations"]["ImGuiItemStatusFlags_"] = "imgui_internal:774" +defs["locations"]["ImGuiKeyModFlags_"] = "imgui:1443" +defs["locations"]["ImGuiKey_"] = "imgui:1415" +defs["locations"]["ImGuiLastItemData"] = "imgui_internal:1142" +defs["locations"]["ImGuiLayoutType_"] = "imgui_internal:883" +defs["locations"]["ImGuiListClipper"] = "imgui:2299" +defs["locations"]["ImGuiListClipperData"] = "imgui_internal:1211" +defs["locations"]["ImGuiListClipperRange"] = "imgui_internal:1198" +defs["locations"]["ImGuiLogType"] = "imgui_internal:889" +defs["locations"]["ImGuiMenuColumns"] = "imgui_internal:1010" +defs["locations"]["ImGuiMetricsConfig"] = "imgui_internal:1601" +defs["locations"]["ImGuiMouseButton_"] = "imgui:1703" +defs["locations"]["ImGuiMouseCursor_"] = "imgui:1713" +defs["locations"]["ImGuiNavDirSourceFlags_"] = "imgui_internal:1259" +defs["locations"]["ImGuiNavHighlightFlags_"] = "imgui_internal:1250" +defs["locations"]["ImGuiNavInput_"] = "imgui:1456" +defs["locations"]["ImGuiNavItemData"] = "imgui_internal:1293" +defs["locations"]["ImGuiNavLayer"] = "imgui_internal:1286" +defs["locations"]["ImGuiNavMoveFlags_"] = "imgui_internal:1268" +defs["locations"]["ImGuiNextItemData"] = "imgui_internal:1129" +defs["locations"]["ImGuiNextItemDataFlags_"] = "imgui_internal:1122" +defs["locations"]["ImGuiNextWindowData"] = "imgui_internal:1095" +defs["locations"]["ImGuiNextWindowDataFlags_"] = "imgui_internal:1078" +defs["locations"]["ImGuiOldColumnData"] = "imgui_internal:1333" +defs["locations"]["ImGuiOldColumnFlags_"] = "imgui_internal:1313" +defs["locations"]["ImGuiOldColumns"] = "imgui_internal:1343" +defs["locations"]["ImGuiOnceUponAFrame"] = "imgui:2174" +defs["locations"]["ImGuiPayload"] = "imgui:2115" +defs["locations"]["ImGuiPlatformIO"] = "imgui:3009" +defs["locations"]["ImGuiPlatformMonitor"] = "imgui:3073" +defs["locations"]["ImGuiPlotType"] = "imgui_internal:906" +defs["locations"]["ImGuiPopupData"] = "imgui_internal:1065" +defs["locations"]["ImGuiPopupFlags_"] = "imgui:1095" +defs["locations"]["ImGuiPopupPositionPolicy"] = "imgui_internal:934" +defs["locations"]["ImGuiPtrOrIndex"] = "imgui_internal:1185" +defs["locations"]["ImGuiScrollFlags_"] = "imgui_internal:1236" +defs["locations"]["ImGuiSelectableFlagsPrivate_"] = "imgui_internal:842" +defs["locations"]["ImGuiSelectableFlags_"] = "imgui:1111" +defs["locations"]["ImGuiSeparatorFlags_"] = "imgui_internal:861" +defs["locations"]["ImGuiSettingsHandler"] = "imgui_internal:1582" +defs["locations"]["ImGuiShrinkWidthItem"] = "imgui_internal:1179" +defs["locations"]["ImGuiSizeCallbackData"] = "imgui:2085" +defs["locations"]["ImGuiSliderFlagsPrivate_"] = "imgui_internal:835" +defs["locations"]["ImGuiSliderFlags_"] = "imgui:1686" +defs["locations"]["ImGuiSortDirection_"] = "imgui:1407" +defs["locations"]["ImGuiStackLevelInfo"] = "imgui_internal:1627" +defs["locations"]["ImGuiStackSizes"] = "imgui_internal:1154" +defs["locations"]["ImGuiStackTool"] = "imgui_internal:1638" +defs["locations"]["ImGuiStorage"] = "imgui:2236" +defs["locations"]["ImGuiStoragePair"] = "imgui:2239" +defs["locations"]["ImGuiStyle"] = "imgui:1842" +defs["locations"]["ImGuiStyleMod"] = "imgui_internal:971" +defs["locations"]["ImGuiStyleVar_"] = "imgui:1594" +defs["locations"]["ImGuiTabBar"] = "imgui_internal:2334" +defs["locations"]["ImGuiTabBarFlagsPrivate_"] = "imgui_internal:2297" +defs["locations"]["ImGuiTabBarFlags_"] = "imgui:1136" +defs["locations"]["ImGuiTabItem"] = "imgui_internal:2315" +defs["locations"]["ImGuiTabItemFlagsPrivate_"] = "imgui_internal:2305" +defs["locations"]["ImGuiTabItemFlags_"] = "imgui:1152" +defs["locations"]["ImGuiTable"] = "imgui_internal:2461" +defs["locations"]["ImGuiTableBgTarget_"] = "imgui:1302" +defs["locations"]["ImGuiTableCellData"] = "imgui_internal:2454" +defs["locations"]["ImGuiTableColumn"] = "imgui_internal:2395" +defs["locations"]["ImGuiTableColumnFlags_"] = "imgui:1245" +defs["locations"]["ImGuiTableColumnSettings"] = "imgui_internal:2595" +defs["locations"]["ImGuiTableColumnSortSpecs"] = "imgui:2137" +defs["locations"]["ImGuiTableFlags_"] = "imgui:1188" +defs["locations"]["ImGuiTableRowFlags_"] = "imgui:1287" +defs["locations"]["ImGuiTableSettings"] = "imgui_internal:2619" +defs["locations"]["ImGuiTableSortSpecs"] = "imgui:2151" +defs["locations"]["ImGuiTableTempData"] = "imgui_internal:2574" +defs["locations"]["ImGuiTextBuffer"] = "imgui:2209" +defs["locations"]["ImGuiTextFilter"] = "imgui:2182" +defs["locations"]["ImGuiTextFlags_"] = "imgui_internal:869" +defs["locations"]["ImGuiTextRange"] = "imgui:2192" +defs["locations"]["ImGuiTooltipFlags_"] = "imgui_internal:875" +defs["locations"]["ImGuiTreeNodeFlagsPrivate_"] = "imgui_internal:856" +defs["locations"]["ImGuiTreeNodeFlags_"] = "imgui:1066" +defs["locations"]["ImGuiViewport"] = "imgui:2927" +defs["locations"]["ImGuiViewportFlags_"] = "imgui:2902" +defs["locations"]["ImGuiViewportP"] = "imgui_internal:1519" +defs["locations"]["ImGuiWindow"] = "imgui_internal:2153" +defs["locations"]["ImGuiWindowClass"] = "imgui:2100" +defs["locations"]["ImGuiWindowDockStyle"] = "imgui_internal:1497" +defs["locations"]["ImGuiWindowDockStyleCol"] = "imgui_internal:1486" +defs["locations"]["ImGuiWindowFlags_"] = "imgui:992" +defs["locations"]["ImGuiWindowSettings"] = "imgui_internal:1565" +defs["locations"]["ImGuiWindowStackData"] = "imgui_internal:1172" +defs["locations"]["ImGuiWindowTempData"] = "imgui_internal:2106" +defs["locations"]["ImRect"] = "imgui_internal:499" +defs["locations"]["ImVec1"] = "imgui_internal:481" defs["locations"]["ImVec2"] = "imgui:266" -defs["locations"]["ImVec2ih"] = "imgui_internal:477" +defs["locations"]["ImVec2ih"] = "imgui_internal:489" defs["locations"]["ImVec4"] = "imgui:279" defs["locations"]["STB_TexteditState"] = "imstb_textedit:317" defs["locations"]["StbTexteditRow"] = "imstb_textedit:364" @@ -3462,60 +3552,60 @@ defs["structs"]["ImGuiContext"][21] = {} defs["structs"]["ImGuiContext"][21]["name"] = "TestEngineHookItems" defs["structs"]["ImGuiContext"][21]["type"] = "bool" defs["structs"]["ImGuiContext"][22] = {} -defs["structs"]["ImGuiContext"][22]["name"] = "TestEngineHookIdInfo" -defs["structs"]["ImGuiContext"][22]["type"] = "ImGuiID" +defs["structs"]["ImGuiContext"][22]["name"] = "TestEngine" +defs["structs"]["ImGuiContext"][22]["type"] = "void*" defs["structs"]["ImGuiContext"][23] = {} -defs["structs"]["ImGuiContext"][23]["name"] = "TestEngine" -defs["structs"]["ImGuiContext"][23]["type"] = "void*" +defs["structs"]["ImGuiContext"][23]["name"] = "Windows" +defs["structs"]["ImGuiContext"][23]["template_type"] = "ImGuiWindow*" +defs["structs"]["ImGuiContext"][23]["type"] = "ImVector_ImGuiWindowPtr" defs["structs"]["ImGuiContext"][24] = {} -defs["structs"]["ImGuiContext"][24]["name"] = "Windows" +defs["structs"]["ImGuiContext"][24]["name"] = "WindowsFocusOrder" defs["structs"]["ImGuiContext"][24]["template_type"] = "ImGuiWindow*" defs["structs"]["ImGuiContext"][24]["type"] = "ImVector_ImGuiWindowPtr" defs["structs"]["ImGuiContext"][25] = {} -defs["structs"]["ImGuiContext"][25]["name"] = "WindowsFocusOrder" +defs["structs"]["ImGuiContext"][25]["name"] = "WindowsTempSortBuffer" defs["structs"]["ImGuiContext"][25]["template_type"] = "ImGuiWindow*" defs["structs"]["ImGuiContext"][25]["type"] = "ImVector_ImGuiWindowPtr" defs["structs"]["ImGuiContext"][26] = {} -defs["structs"]["ImGuiContext"][26]["name"] = "WindowsTempSortBuffer" -defs["structs"]["ImGuiContext"][26]["template_type"] = "ImGuiWindow*" -defs["structs"]["ImGuiContext"][26]["type"] = "ImVector_ImGuiWindowPtr" +defs["structs"]["ImGuiContext"][26]["name"] = "CurrentWindowStack" +defs["structs"]["ImGuiContext"][26]["template_type"] = "ImGuiWindowStackData" +defs["structs"]["ImGuiContext"][26]["type"] = "ImVector_ImGuiWindowStackData" defs["structs"]["ImGuiContext"][27] = {} -defs["structs"]["ImGuiContext"][27]["name"] = "CurrentWindowStack" -defs["structs"]["ImGuiContext"][27]["template_type"] = "ImGuiWindowStackData" -defs["structs"]["ImGuiContext"][27]["type"] = "ImVector_ImGuiWindowStackData" +defs["structs"]["ImGuiContext"][27]["name"] = "WindowsById" +defs["structs"]["ImGuiContext"][27]["type"] = "ImGuiStorage" defs["structs"]["ImGuiContext"][28] = {} -defs["structs"]["ImGuiContext"][28]["name"] = "WindowsById" -defs["structs"]["ImGuiContext"][28]["type"] = "ImGuiStorage" +defs["structs"]["ImGuiContext"][28]["name"] = "WindowsActiveCount" +defs["structs"]["ImGuiContext"][28]["type"] = "int" defs["structs"]["ImGuiContext"][29] = {} -defs["structs"]["ImGuiContext"][29]["name"] = "WindowsActiveCount" -defs["structs"]["ImGuiContext"][29]["type"] = "int" +defs["structs"]["ImGuiContext"][29]["name"] = "WindowsHoverPadding" +defs["structs"]["ImGuiContext"][29]["type"] = "ImVec2" defs["structs"]["ImGuiContext"][30] = {} -defs["structs"]["ImGuiContext"][30]["name"] = "WindowsHoverPadding" -defs["structs"]["ImGuiContext"][30]["type"] = "ImVec2" +defs["structs"]["ImGuiContext"][30]["name"] = "CurrentWindow" +defs["structs"]["ImGuiContext"][30]["type"] = "ImGuiWindow*" defs["structs"]["ImGuiContext"][31] = {} -defs["structs"]["ImGuiContext"][31]["name"] = "CurrentWindow" +defs["structs"]["ImGuiContext"][31]["name"] = "HoveredWindow" defs["structs"]["ImGuiContext"][31]["type"] = "ImGuiWindow*" defs["structs"]["ImGuiContext"][32] = {} -defs["structs"]["ImGuiContext"][32]["name"] = "HoveredWindow" +defs["structs"]["ImGuiContext"][32]["name"] = "HoveredWindowUnderMovingWindow" defs["structs"]["ImGuiContext"][32]["type"] = "ImGuiWindow*" defs["structs"]["ImGuiContext"][33] = {} -defs["structs"]["ImGuiContext"][33]["name"] = "HoveredWindowUnderMovingWindow" -defs["structs"]["ImGuiContext"][33]["type"] = "ImGuiWindow*" +defs["structs"]["ImGuiContext"][33]["name"] = "HoveredDockNode" +defs["structs"]["ImGuiContext"][33]["type"] = "ImGuiDockNode*" defs["structs"]["ImGuiContext"][34] = {} -defs["structs"]["ImGuiContext"][34]["name"] = "HoveredDockNode" -defs["structs"]["ImGuiContext"][34]["type"] = "ImGuiDockNode*" +defs["structs"]["ImGuiContext"][34]["name"] = "MovingWindow" +defs["structs"]["ImGuiContext"][34]["type"] = "ImGuiWindow*" defs["structs"]["ImGuiContext"][35] = {} -defs["structs"]["ImGuiContext"][35]["name"] = "MovingWindow" +defs["structs"]["ImGuiContext"][35]["name"] = "WheelingWindow" defs["structs"]["ImGuiContext"][35]["type"] = "ImGuiWindow*" defs["structs"]["ImGuiContext"][36] = {} -defs["structs"]["ImGuiContext"][36]["name"] = "WheelingWindow" -defs["structs"]["ImGuiContext"][36]["type"] = "ImGuiWindow*" +defs["structs"]["ImGuiContext"][36]["name"] = "WheelingWindowRefMousePos" +defs["structs"]["ImGuiContext"][36]["type"] = "ImVec2" defs["structs"]["ImGuiContext"][37] = {} -defs["structs"]["ImGuiContext"][37]["name"] = "WheelingWindowRefMousePos" -defs["structs"]["ImGuiContext"][37]["type"] = "ImVec2" +defs["structs"]["ImGuiContext"][37]["name"] = "WheelingWindowTimer" +defs["structs"]["ImGuiContext"][37]["type"] = "float" defs["structs"]["ImGuiContext"][38] = {} -defs["structs"]["ImGuiContext"][38]["name"] = "WheelingWindowTimer" -defs["structs"]["ImGuiContext"][38]["type"] = "float" +defs["structs"]["ImGuiContext"][38]["name"] = "DebugHookIdInfo" +defs["structs"]["ImGuiContext"][38]["type"] = "ImGuiID" defs["structs"]["ImGuiContext"][39] = {} defs["structs"]["ImGuiContext"][39]["name"] = "HoveredId" defs["structs"]["ImGuiContext"][39]["type"] = "ImGuiID" @@ -3654,176 +3744,176 @@ defs["structs"]["ImGuiContext"][81]["name"] = "BeginPopupStack" defs["structs"]["ImGuiContext"][81]["template_type"] = "ImGuiPopupData" defs["structs"]["ImGuiContext"][81]["type"] = "ImVector_ImGuiPopupData" defs["structs"]["ImGuiContext"][82] = {} -defs["structs"]["ImGuiContext"][82]["name"] = "Viewports" -defs["structs"]["ImGuiContext"][82]["template_type"] = "ImGuiViewportP*" -defs["structs"]["ImGuiContext"][82]["type"] = "ImVector_ImGuiViewportPPtr" +defs["structs"]["ImGuiContext"][82]["name"] = "BeginMenuCount" +defs["structs"]["ImGuiContext"][82]["type"] = "int" defs["structs"]["ImGuiContext"][83] = {} -defs["structs"]["ImGuiContext"][83]["name"] = "CurrentDpiScale" -defs["structs"]["ImGuiContext"][83]["type"] = "float" +defs["structs"]["ImGuiContext"][83]["name"] = "Viewports" +defs["structs"]["ImGuiContext"][83]["template_type"] = "ImGuiViewportP*" +defs["structs"]["ImGuiContext"][83]["type"] = "ImVector_ImGuiViewportPPtr" defs["structs"]["ImGuiContext"][84] = {} -defs["structs"]["ImGuiContext"][84]["name"] = "CurrentViewport" -defs["structs"]["ImGuiContext"][84]["type"] = "ImGuiViewportP*" +defs["structs"]["ImGuiContext"][84]["name"] = "CurrentDpiScale" +defs["structs"]["ImGuiContext"][84]["type"] = "float" defs["structs"]["ImGuiContext"][85] = {} -defs["structs"]["ImGuiContext"][85]["name"] = "MouseViewport" +defs["structs"]["ImGuiContext"][85]["name"] = "CurrentViewport" defs["structs"]["ImGuiContext"][85]["type"] = "ImGuiViewportP*" defs["structs"]["ImGuiContext"][86] = {} -defs["structs"]["ImGuiContext"][86]["name"] = "MouseLastHoveredViewport" +defs["structs"]["ImGuiContext"][86]["name"] = "MouseViewport" defs["structs"]["ImGuiContext"][86]["type"] = "ImGuiViewportP*" defs["structs"]["ImGuiContext"][87] = {} -defs["structs"]["ImGuiContext"][87]["name"] = "PlatformLastFocusedViewportId" -defs["structs"]["ImGuiContext"][87]["type"] = "ImGuiID" +defs["structs"]["ImGuiContext"][87]["name"] = "MouseLastHoveredViewport" +defs["structs"]["ImGuiContext"][87]["type"] = "ImGuiViewportP*" defs["structs"]["ImGuiContext"][88] = {} -defs["structs"]["ImGuiContext"][88]["name"] = "FallbackMonitor" -defs["structs"]["ImGuiContext"][88]["type"] = "ImGuiPlatformMonitor" +defs["structs"]["ImGuiContext"][88]["name"] = "PlatformLastFocusedViewportId" +defs["structs"]["ImGuiContext"][88]["type"] = "ImGuiID" defs["structs"]["ImGuiContext"][89] = {} -defs["structs"]["ImGuiContext"][89]["name"] = "ViewportFrontMostStampCount" -defs["structs"]["ImGuiContext"][89]["type"] = "int" +defs["structs"]["ImGuiContext"][89]["name"] = "FallbackMonitor" +defs["structs"]["ImGuiContext"][89]["type"] = "ImGuiPlatformMonitor" defs["structs"]["ImGuiContext"][90] = {} -defs["structs"]["ImGuiContext"][90]["name"] = "NavWindow" -defs["structs"]["ImGuiContext"][90]["type"] = "ImGuiWindow*" +defs["structs"]["ImGuiContext"][90]["name"] = "ViewportFrontMostStampCount" +defs["structs"]["ImGuiContext"][90]["type"] = "int" defs["structs"]["ImGuiContext"][91] = {} -defs["structs"]["ImGuiContext"][91]["name"] = "NavId" -defs["structs"]["ImGuiContext"][91]["type"] = "ImGuiID" +defs["structs"]["ImGuiContext"][91]["name"] = "NavWindow" +defs["structs"]["ImGuiContext"][91]["type"] = "ImGuiWindow*" defs["structs"]["ImGuiContext"][92] = {} -defs["structs"]["ImGuiContext"][92]["name"] = "NavFocusScopeId" +defs["structs"]["ImGuiContext"][92]["name"] = "NavId" defs["structs"]["ImGuiContext"][92]["type"] = "ImGuiID" defs["structs"]["ImGuiContext"][93] = {} -defs["structs"]["ImGuiContext"][93]["name"] = "NavActivateId" +defs["structs"]["ImGuiContext"][93]["name"] = "NavFocusScopeId" defs["structs"]["ImGuiContext"][93]["type"] = "ImGuiID" defs["structs"]["ImGuiContext"][94] = {} -defs["structs"]["ImGuiContext"][94]["name"] = "NavActivateDownId" +defs["structs"]["ImGuiContext"][94]["name"] = "NavActivateId" defs["structs"]["ImGuiContext"][94]["type"] = "ImGuiID" defs["structs"]["ImGuiContext"][95] = {} -defs["structs"]["ImGuiContext"][95]["name"] = "NavActivatePressedId" +defs["structs"]["ImGuiContext"][95]["name"] = "NavActivateDownId" defs["structs"]["ImGuiContext"][95]["type"] = "ImGuiID" defs["structs"]["ImGuiContext"][96] = {} -defs["structs"]["ImGuiContext"][96]["name"] = "NavInputId" +defs["structs"]["ImGuiContext"][96]["name"] = "NavActivatePressedId" defs["structs"]["ImGuiContext"][96]["type"] = "ImGuiID" defs["structs"]["ImGuiContext"][97] = {} -defs["structs"]["ImGuiContext"][97]["name"] = "NavJustTabbedId" +defs["structs"]["ImGuiContext"][97]["name"] = "NavActivateInputId" defs["structs"]["ImGuiContext"][97]["type"] = "ImGuiID" defs["structs"]["ImGuiContext"][98] = {} -defs["structs"]["ImGuiContext"][98]["name"] = "NavJustMovedToId" -defs["structs"]["ImGuiContext"][98]["type"] = "ImGuiID" +defs["structs"]["ImGuiContext"][98]["name"] = "NavActivateFlags" +defs["structs"]["ImGuiContext"][98]["type"] = "ImGuiActivateFlags" defs["structs"]["ImGuiContext"][99] = {} -defs["structs"]["ImGuiContext"][99]["name"] = "NavJustMovedToFocusScopeId" +defs["structs"]["ImGuiContext"][99]["name"] = "NavJustMovedToId" defs["structs"]["ImGuiContext"][99]["type"] = "ImGuiID" defs["structs"]["ImGuiContext"][100] = {} -defs["structs"]["ImGuiContext"][100]["name"] = "NavJustMovedToKeyMods" -defs["structs"]["ImGuiContext"][100]["type"] = "ImGuiKeyModFlags" +defs["structs"]["ImGuiContext"][100]["name"] = "NavJustMovedToFocusScopeId" +defs["structs"]["ImGuiContext"][100]["type"] = "ImGuiID" defs["structs"]["ImGuiContext"][101] = {} -defs["structs"]["ImGuiContext"][101]["name"] = "NavNextActivateId" -defs["structs"]["ImGuiContext"][101]["type"] = "ImGuiID" +defs["structs"]["ImGuiContext"][101]["name"] = "NavJustMovedToKeyMods" +defs["structs"]["ImGuiContext"][101]["type"] = "ImGuiKeyModFlags" defs["structs"]["ImGuiContext"][102] = {} -defs["structs"]["ImGuiContext"][102]["name"] = "NavInputSource" -defs["structs"]["ImGuiContext"][102]["type"] = "ImGuiInputSource" +defs["structs"]["ImGuiContext"][102]["name"] = "NavNextActivateId" +defs["structs"]["ImGuiContext"][102]["type"] = "ImGuiID" defs["structs"]["ImGuiContext"][103] = {} -defs["structs"]["ImGuiContext"][103]["name"] = "NavScoringRect" -defs["structs"]["ImGuiContext"][103]["type"] = "ImRect" +defs["structs"]["ImGuiContext"][103]["name"] = "NavNextActivateFlags" +defs["structs"]["ImGuiContext"][103]["type"] = "ImGuiActivateFlags" defs["structs"]["ImGuiContext"][104] = {} -defs["structs"]["ImGuiContext"][104]["name"] = "NavScoringCount" -defs["structs"]["ImGuiContext"][104]["type"] = "int" +defs["structs"]["ImGuiContext"][104]["name"] = "NavInputSource" +defs["structs"]["ImGuiContext"][104]["type"] = "ImGuiInputSource" defs["structs"]["ImGuiContext"][105] = {} defs["structs"]["ImGuiContext"][105]["name"] = "NavLayer" defs["structs"]["ImGuiContext"][105]["type"] = "ImGuiNavLayer" defs["structs"]["ImGuiContext"][106] = {} -defs["structs"]["ImGuiContext"][106]["name"] = "NavIdTabCounter" -defs["structs"]["ImGuiContext"][106]["type"] = "int" +defs["structs"]["ImGuiContext"][106]["name"] = "NavIdIsAlive" +defs["structs"]["ImGuiContext"][106]["type"] = "bool" defs["structs"]["ImGuiContext"][107] = {} -defs["structs"]["ImGuiContext"][107]["name"] = "NavIdIsAlive" +defs["structs"]["ImGuiContext"][107]["name"] = "NavMousePosDirty" defs["structs"]["ImGuiContext"][107]["type"] = "bool" defs["structs"]["ImGuiContext"][108] = {} -defs["structs"]["ImGuiContext"][108]["name"] = "NavMousePosDirty" +defs["structs"]["ImGuiContext"][108]["name"] = "NavDisableHighlight" defs["structs"]["ImGuiContext"][108]["type"] = "bool" defs["structs"]["ImGuiContext"][109] = {} -defs["structs"]["ImGuiContext"][109]["name"] = "NavDisableHighlight" +defs["structs"]["ImGuiContext"][109]["name"] = "NavDisableMouseHover" defs["structs"]["ImGuiContext"][109]["type"] = "bool" defs["structs"]["ImGuiContext"][110] = {} -defs["structs"]["ImGuiContext"][110]["name"] = "NavDisableMouseHover" +defs["structs"]["ImGuiContext"][110]["name"] = "NavAnyRequest" defs["structs"]["ImGuiContext"][110]["type"] = "bool" defs["structs"]["ImGuiContext"][111] = {} -defs["structs"]["ImGuiContext"][111]["name"] = "NavAnyRequest" +defs["structs"]["ImGuiContext"][111]["name"] = "NavInitRequest" defs["structs"]["ImGuiContext"][111]["type"] = "bool" defs["structs"]["ImGuiContext"][112] = {} -defs["structs"]["ImGuiContext"][112]["name"] = "NavInitRequest" +defs["structs"]["ImGuiContext"][112]["name"] = "NavInitRequestFromMove" defs["structs"]["ImGuiContext"][112]["type"] = "bool" defs["structs"]["ImGuiContext"][113] = {} -defs["structs"]["ImGuiContext"][113]["name"] = "NavInitRequestFromMove" -defs["structs"]["ImGuiContext"][113]["type"] = "bool" +defs["structs"]["ImGuiContext"][113]["name"] = "NavInitResultId" +defs["structs"]["ImGuiContext"][113]["type"] = "ImGuiID" defs["structs"]["ImGuiContext"][114] = {} -defs["structs"]["ImGuiContext"][114]["name"] = "NavInitResultId" -defs["structs"]["ImGuiContext"][114]["type"] = "ImGuiID" +defs["structs"]["ImGuiContext"][114]["name"] = "NavInitResultRectRel" +defs["structs"]["ImGuiContext"][114]["type"] = "ImRect" defs["structs"]["ImGuiContext"][115] = {} -defs["structs"]["ImGuiContext"][115]["name"] = "NavInitResultRectRel" -defs["structs"]["ImGuiContext"][115]["type"] = "ImRect" +defs["structs"]["ImGuiContext"][115]["name"] = "NavMoveSubmitted" +defs["structs"]["ImGuiContext"][115]["type"] = "bool" defs["structs"]["ImGuiContext"][116] = {} -defs["structs"]["ImGuiContext"][116]["name"] = "NavMoveRequest" +defs["structs"]["ImGuiContext"][116]["name"] = "NavMoveScoringItems" defs["structs"]["ImGuiContext"][116]["type"] = "bool" defs["structs"]["ImGuiContext"][117] = {} -defs["structs"]["ImGuiContext"][117]["name"] = "NavMoveRequestForwardToNextFrame" +defs["structs"]["ImGuiContext"][117]["name"] = "NavMoveForwardToNextFrame" defs["structs"]["ImGuiContext"][117]["type"] = "bool" defs["structs"]["ImGuiContext"][118] = {} -defs["structs"]["ImGuiContext"][118]["name"] = "NavMoveRequestFlags" +defs["structs"]["ImGuiContext"][118]["name"] = "NavMoveFlags" defs["structs"]["ImGuiContext"][118]["type"] = "ImGuiNavMoveFlags" defs["structs"]["ImGuiContext"][119] = {} -defs["structs"]["ImGuiContext"][119]["name"] = "NavMoveRequestKeyMods" -defs["structs"]["ImGuiContext"][119]["type"] = "ImGuiKeyModFlags" +defs["structs"]["ImGuiContext"][119]["name"] = "NavMoveScrollFlags" +defs["structs"]["ImGuiContext"][119]["type"] = "ImGuiScrollFlags" defs["structs"]["ImGuiContext"][120] = {} -defs["structs"]["ImGuiContext"][120]["name"] = "NavMoveDir" -defs["structs"]["ImGuiContext"][120]["type"] = "ImGuiDir" +defs["structs"]["ImGuiContext"][120]["name"] = "NavMoveKeyMods" +defs["structs"]["ImGuiContext"][120]["type"] = "ImGuiKeyModFlags" defs["structs"]["ImGuiContext"][121] = {} -defs["structs"]["ImGuiContext"][121]["name"] = "NavMoveDirLast" +defs["structs"]["ImGuiContext"][121]["name"] = "NavMoveDir" defs["structs"]["ImGuiContext"][121]["type"] = "ImGuiDir" defs["structs"]["ImGuiContext"][122] = {} -defs["structs"]["ImGuiContext"][122]["name"] = "NavMoveClipDir" +defs["structs"]["ImGuiContext"][122]["name"] = "NavMoveDirForDebug" defs["structs"]["ImGuiContext"][122]["type"] = "ImGuiDir" defs["structs"]["ImGuiContext"][123] = {} -defs["structs"]["ImGuiContext"][123]["name"] = "NavMoveResultLocal" -defs["structs"]["ImGuiContext"][123]["type"] = "ImGuiNavItemData" +defs["structs"]["ImGuiContext"][123]["name"] = "NavMoveClipDir" +defs["structs"]["ImGuiContext"][123]["type"] = "ImGuiDir" defs["structs"]["ImGuiContext"][124] = {} -defs["structs"]["ImGuiContext"][124]["name"] = "NavMoveResultLocalVisibleSet" -defs["structs"]["ImGuiContext"][124]["type"] = "ImGuiNavItemData" +defs["structs"]["ImGuiContext"][124]["name"] = "NavScoringRect" +defs["structs"]["ImGuiContext"][124]["type"] = "ImRect" defs["structs"]["ImGuiContext"][125] = {} -defs["structs"]["ImGuiContext"][125]["name"] = "NavMoveResultOther" -defs["structs"]["ImGuiContext"][125]["type"] = "ImGuiNavItemData" +defs["structs"]["ImGuiContext"][125]["name"] = "NavScoringNoClipRect" +defs["structs"]["ImGuiContext"][125]["type"] = "ImRect" defs["structs"]["ImGuiContext"][126] = {} -defs["structs"]["ImGuiContext"][126]["name"] = "NavWindowingTarget" -defs["structs"]["ImGuiContext"][126]["type"] = "ImGuiWindow*" +defs["structs"]["ImGuiContext"][126]["name"] = "NavScoringDebugCount" +defs["structs"]["ImGuiContext"][126]["type"] = "int" defs["structs"]["ImGuiContext"][127] = {} -defs["structs"]["ImGuiContext"][127]["name"] = "NavWindowingTargetAnim" -defs["structs"]["ImGuiContext"][127]["type"] = "ImGuiWindow*" +defs["structs"]["ImGuiContext"][127]["name"] = "NavTabbingDir" +defs["structs"]["ImGuiContext"][127]["type"] = "int" defs["structs"]["ImGuiContext"][128] = {} -defs["structs"]["ImGuiContext"][128]["name"] = "NavWindowingListWindow" -defs["structs"]["ImGuiContext"][128]["type"] = "ImGuiWindow*" +defs["structs"]["ImGuiContext"][128]["name"] = "NavTabbingCounter" +defs["structs"]["ImGuiContext"][128]["type"] = "int" defs["structs"]["ImGuiContext"][129] = {} -defs["structs"]["ImGuiContext"][129]["name"] = "NavWindowingTimer" -defs["structs"]["ImGuiContext"][129]["type"] = "float" +defs["structs"]["ImGuiContext"][129]["name"] = "NavMoveResultLocal" +defs["structs"]["ImGuiContext"][129]["type"] = "ImGuiNavItemData" defs["structs"]["ImGuiContext"][130] = {} -defs["structs"]["ImGuiContext"][130]["name"] = "NavWindowingHighlightAlpha" -defs["structs"]["ImGuiContext"][130]["type"] = "float" +defs["structs"]["ImGuiContext"][130]["name"] = "NavMoveResultLocalVisible" +defs["structs"]["ImGuiContext"][130]["type"] = "ImGuiNavItemData" defs["structs"]["ImGuiContext"][131] = {} -defs["structs"]["ImGuiContext"][131]["name"] = "NavWindowingToggleLayer" -defs["structs"]["ImGuiContext"][131]["type"] = "bool" +defs["structs"]["ImGuiContext"][131]["name"] = "NavMoveResultOther" +defs["structs"]["ImGuiContext"][131]["type"] = "ImGuiNavItemData" defs["structs"]["ImGuiContext"][132] = {} -defs["structs"]["ImGuiContext"][132]["name"] = "TabFocusRequestCurrWindow" -defs["structs"]["ImGuiContext"][132]["type"] = "ImGuiWindow*" +defs["structs"]["ImGuiContext"][132]["name"] = "NavTabbingResultFirst" +defs["structs"]["ImGuiContext"][132]["type"] = "ImGuiNavItemData" defs["structs"]["ImGuiContext"][133] = {} -defs["structs"]["ImGuiContext"][133]["name"] = "TabFocusRequestNextWindow" +defs["structs"]["ImGuiContext"][133]["name"] = "NavWindowingTarget" defs["structs"]["ImGuiContext"][133]["type"] = "ImGuiWindow*" defs["structs"]["ImGuiContext"][134] = {} -defs["structs"]["ImGuiContext"][134]["name"] = "TabFocusRequestCurrCounterRegular" -defs["structs"]["ImGuiContext"][134]["type"] = "int" +defs["structs"]["ImGuiContext"][134]["name"] = "NavWindowingTargetAnim" +defs["structs"]["ImGuiContext"][134]["type"] = "ImGuiWindow*" defs["structs"]["ImGuiContext"][135] = {} -defs["structs"]["ImGuiContext"][135]["name"] = "TabFocusRequestCurrCounterTabStop" -defs["structs"]["ImGuiContext"][135]["type"] = "int" +defs["structs"]["ImGuiContext"][135]["name"] = "NavWindowingListWindow" +defs["structs"]["ImGuiContext"][135]["type"] = "ImGuiWindow*" defs["structs"]["ImGuiContext"][136] = {} -defs["structs"]["ImGuiContext"][136]["name"] = "TabFocusRequestNextCounterRegular" -defs["structs"]["ImGuiContext"][136]["type"] = "int" +defs["structs"]["ImGuiContext"][136]["name"] = "NavWindowingTimer" +defs["structs"]["ImGuiContext"][136]["type"] = "float" defs["structs"]["ImGuiContext"][137] = {} -defs["structs"]["ImGuiContext"][137]["name"] = "TabFocusRequestNextCounterTabStop" -defs["structs"]["ImGuiContext"][137]["type"] = "int" +defs["structs"]["ImGuiContext"][137]["name"] = "NavWindowingHighlightAlpha" +defs["structs"]["ImGuiContext"][137]["type"] = "float" defs["structs"]["ImGuiContext"][138] = {} -defs["structs"]["ImGuiContext"][138]["name"] = "TabFocusPressed" +defs["structs"]["ImGuiContext"][138]["name"] = "NavWindowingToggleLayer" defs["structs"]["ImGuiContext"][138]["type"] = "bool" defs["structs"]["ImGuiContext"][139] = {} defs["structs"]["ImGuiContext"][139]["name"] = "DimBgRatio" @@ -3885,219 +3975,231 @@ defs["structs"]["ImGuiContext"][157]["name"] = "DragDropPayloadBufLocal[16]" defs["structs"]["ImGuiContext"][157]["size"] = 16 defs["structs"]["ImGuiContext"][157]["type"] = "unsigned char" defs["structs"]["ImGuiContext"][158] = {} -defs["structs"]["ImGuiContext"][158]["name"] = "CurrentTable" -defs["structs"]["ImGuiContext"][158]["type"] = "ImGuiTable*" +defs["structs"]["ImGuiContext"][158]["name"] = "ClipperTempDataStacked" +defs["structs"]["ImGuiContext"][158]["type"] = "int" defs["structs"]["ImGuiContext"][159] = {} -defs["structs"]["ImGuiContext"][159]["name"] = "CurrentTableStackIdx" -defs["structs"]["ImGuiContext"][159]["type"] = "int" +defs["structs"]["ImGuiContext"][159]["name"] = "ClipperTempData" +defs["structs"]["ImGuiContext"][159]["template_type"] = "ImGuiListClipperData" +defs["structs"]["ImGuiContext"][159]["type"] = "ImVector_ImGuiListClipperData" defs["structs"]["ImGuiContext"][160] = {} -defs["structs"]["ImGuiContext"][160]["name"] = "Tables" -defs["structs"]["ImGuiContext"][160]["template_type"] = "ImGuiTable" -defs["structs"]["ImGuiContext"][160]["type"] = "ImPool_ImGuiTable" +defs["structs"]["ImGuiContext"][160]["name"] = "CurrentTable" +defs["structs"]["ImGuiContext"][160]["type"] = "ImGuiTable*" defs["structs"]["ImGuiContext"][161] = {} -defs["structs"]["ImGuiContext"][161]["name"] = "TablesTempDataStack" -defs["structs"]["ImGuiContext"][161]["template_type"] = "ImGuiTableTempData" -defs["structs"]["ImGuiContext"][161]["type"] = "ImVector_ImGuiTableTempData" +defs["structs"]["ImGuiContext"][161]["name"] = "TablesTempDataStacked" +defs["structs"]["ImGuiContext"][161]["type"] = "int" defs["structs"]["ImGuiContext"][162] = {} -defs["structs"]["ImGuiContext"][162]["name"] = "TablesLastTimeActive" -defs["structs"]["ImGuiContext"][162]["template_type"] = "float" -defs["structs"]["ImGuiContext"][162]["type"] = "ImVector_float" +defs["structs"]["ImGuiContext"][162]["name"] = "TablesTempData" +defs["structs"]["ImGuiContext"][162]["template_type"] = "ImGuiTableTempData" +defs["structs"]["ImGuiContext"][162]["type"] = "ImVector_ImGuiTableTempData" defs["structs"]["ImGuiContext"][163] = {} -defs["structs"]["ImGuiContext"][163]["name"] = "DrawChannelsTempMergeBuffer" -defs["structs"]["ImGuiContext"][163]["template_type"] = "ImDrawChannel" -defs["structs"]["ImGuiContext"][163]["type"] = "ImVector_ImDrawChannel" +defs["structs"]["ImGuiContext"][163]["name"] = "Tables" +defs["structs"]["ImGuiContext"][163]["template_type"] = "ImGuiTable" +defs["structs"]["ImGuiContext"][163]["type"] = "ImPool_ImGuiTable" defs["structs"]["ImGuiContext"][164] = {} -defs["structs"]["ImGuiContext"][164]["name"] = "CurrentTabBar" -defs["structs"]["ImGuiContext"][164]["type"] = "ImGuiTabBar*" +defs["structs"]["ImGuiContext"][164]["name"] = "TablesLastTimeActive" +defs["structs"]["ImGuiContext"][164]["template_type"] = "float" +defs["structs"]["ImGuiContext"][164]["type"] = "ImVector_float" defs["structs"]["ImGuiContext"][165] = {} -defs["structs"]["ImGuiContext"][165]["name"] = "TabBars" -defs["structs"]["ImGuiContext"][165]["template_type"] = "ImGuiTabBar" -defs["structs"]["ImGuiContext"][165]["type"] = "ImPool_ImGuiTabBar" +defs["structs"]["ImGuiContext"][165]["name"] = "DrawChannelsTempMergeBuffer" +defs["structs"]["ImGuiContext"][165]["template_type"] = "ImDrawChannel" +defs["structs"]["ImGuiContext"][165]["type"] = "ImVector_ImDrawChannel" defs["structs"]["ImGuiContext"][166] = {} -defs["structs"]["ImGuiContext"][166]["name"] = "CurrentTabBarStack" -defs["structs"]["ImGuiContext"][166]["template_type"] = "ImGuiPtrOrIndex" -defs["structs"]["ImGuiContext"][166]["type"] = "ImVector_ImGuiPtrOrIndex" +defs["structs"]["ImGuiContext"][166]["name"] = "CurrentTabBar" +defs["structs"]["ImGuiContext"][166]["type"] = "ImGuiTabBar*" defs["structs"]["ImGuiContext"][167] = {} -defs["structs"]["ImGuiContext"][167]["name"] = "ShrinkWidthBuffer" -defs["structs"]["ImGuiContext"][167]["template_type"] = "ImGuiShrinkWidthItem" -defs["structs"]["ImGuiContext"][167]["type"] = "ImVector_ImGuiShrinkWidthItem" +defs["structs"]["ImGuiContext"][167]["name"] = "TabBars" +defs["structs"]["ImGuiContext"][167]["template_type"] = "ImGuiTabBar" +defs["structs"]["ImGuiContext"][167]["type"] = "ImPool_ImGuiTabBar" defs["structs"]["ImGuiContext"][168] = {} -defs["structs"]["ImGuiContext"][168]["name"] = "LastValidMousePos" -defs["structs"]["ImGuiContext"][168]["type"] = "ImVec2" +defs["structs"]["ImGuiContext"][168]["name"] = "CurrentTabBarStack" +defs["structs"]["ImGuiContext"][168]["template_type"] = "ImGuiPtrOrIndex" +defs["structs"]["ImGuiContext"][168]["type"] = "ImVector_ImGuiPtrOrIndex" defs["structs"]["ImGuiContext"][169] = {} -defs["structs"]["ImGuiContext"][169]["name"] = "InputTextState" -defs["structs"]["ImGuiContext"][169]["type"] = "ImGuiInputTextState" +defs["structs"]["ImGuiContext"][169]["name"] = "ShrinkWidthBuffer" +defs["structs"]["ImGuiContext"][169]["template_type"] = "ImGuiShrinkWidthItem" +defs["structs"]["ImGuiContext"][169]["type"] = "ImVector_ImGuiShrinkWidthItem" defs["structs"]["ImGuiContext"][170] = {} -defs["structs"]["ImGuiContext"][170]["name"] = "InputTextPasswordFont" -defs["structs"]["ImGuiContext"][170]["type"] = "ImFont" +defs["structs"]["ImGuiContext"][170]["name"] = "MouseLastValidPos" +defs["structs"]["ImGuiContext"][170]["type"] = "ImVec2" defs["structs"]["ImGuiContext"][171] = {} -defs["structs"]["ImGuiContext"][171]["name"] = "TempInputId" -defs["structs"]["ImGuiContext"][171]["type"] = "ImGuiID" +defs["structs"]["ImGuiContext"][171]["name"] = "InputTextState" +defs["structs"]["ImGuiContext"][171]["type"] = "ImGuiInputTextState" defs["structs"]["ImGuiContext"][172] = {} -defs["structs"]["ImGuiContext"][172]["name"] = "ColorEditOptions" -defs["structs"]["ImGuiContext"][172]["type"] = "ImGuiColorEditFlags" +defs["structs"]["ImGuiContext"][172]["name"] = "InputTextPasswordFont" +defs["structs"]["ImGuiContext"][172]["type"] = "ImFont" defs["structs"]["ImGuiContext"][173] = {} -defs["structs"]["ImGuiContext"][173]["name"] = "ColorEditLastHue" -defs["structs"]["ImGuiContext"][173]["type"] = "float" +defs["structs"]["ImGuiContext"][173]["name"] = "TempInputId" +defs["structs"]["ImGuiContext"][173]["type"] = "ImGuiID" defs["structs"]["ImGuiContext"][174] = {} -defs["structs"]["ImGuiContext"][174]["name"] = "ColorEditLastSat" -defs["structs"]["ImGuiContext"][174]["type"] = "float" +defs["structs"]["ImGuiContext"][174]["name"] = "ColorEditOptions" +defs["structs"]["ImGuiContext"][174]["type"] = "ImGuiColorEditFlags" defs["structs"]["ImGuiContext"][175] = {} -defs["structs"]["ImGuiContext"][175]["name"] = "ColorEditLastColor[3]" -defs["structs"]["ImGuiContext"][175]["size"] = 3 +defs["structs"]["ImGuiContext"][175]["name"] = "ColorEditLastHue" defs["structs"]["ImGuiContext"][175]["type"] = "float" defs["structs"]["ImGuiContext"][176] = {} -defs["structs"]["ImGuiContext"][176]["name"] = "ColorPickerRef" -defs["structs"]["ImGuiContext"][176]["type"] = "ImVec4" +defs["structs"]["ImGuiContext"][176]["name"] = "ColorEditLastSat" +defs["structs"]["ImGuiContext"][176]["type"] = "float" defs["structs"]["ImGuiContext"][177] = {} -defs["structs"]["ImGuiContext"][177]["name"] = "ComboPreviewData" -defs["structs"]["ImGuiContext"][177]["type"] = "ImGuiComboPreviewData" +defs["structs"]["ImGuiContext"][177]["name"] = "ColorEditLastColor" +defs["structs"]["ImGuiContext"][177]["type"] = "ImU32" defs["structs"]["ImGuiContext"][178] = {} -defs["structs"]["ImGuiContext"][178]["name"] = "SliderCurrentAccum" -defs["structs"]["ImGuiContext"][178]["type"] = "float" +defs["structs"]["ImGuiContext"][178]["name"] = "ColorPickerRef" +defs["structs"]["ImGuiContext"][178]["type"] = "ImVec4" defs["structs"]["ImGuiContext"][179] = {} -defs["structs"]["ImGuiContext"][179]["name"] = "SliderCurrentAccumDirty" -defs["structs"]["ImGuiContext"][179]["type"] = "bool" +defs["structs"]["ImGuiContext"][179]["name"] = "ComboPreviewData" +defs["structs"]["ImGuiContext"][179]["type"] = "ImGuiComboPreviewData" defs["structs"]["ImGuiContext"][180] = {} -defs["structs"]["ImGuiContext"][180]["name"] = "DragCurrentAccumDirty" -defs["structs"]["ImGuiContext"][180]["type"] = "bool" +defs["structs"]["ImGuiContext"][180]["name"] = "SliderCurrentAccum" +defs["structs"]["ImGuiContext"][180]["type"] = "float" defs["structs"]["ImGuiContext"][181] = {} -defs["structs"]["ImGuiContext"][181]["name"] = "DragCurrentAccum" -defs["structs"]["ImGuiContext"][181]["type"] = "float" +defs["structs"]["ImGuiContext"][181]["name"] = "SliderCurrentAccumDirty" +defs["structs"]["ImGuiContext"][181]["type"] = "bool" defs["structs"]["ImGuiContext"][182] = {} -defs["structs"]["ImGuiContext"][182]["name"] = "DragSpeedDefaultRatio" -defs["structs"]["ImGuiContext"][182]["type"] = "float" +defs["structs"]["ImGuiContext"][182]["name"] = "DragCurrentAccumDirty" +defs["structs"]["ImGuiContext"][182]["type"] = "bool" defs["structs"]["ImGuiContext"][183] = {} -defs["structs"]["ImGuiContext"][183]["name"] = "DisabledAlphaBackup" +defs["structs"]["ImGuiContext"][183]["name"] = "DragCurrentAccum" defs["structs"]["ImGuiContext"][183]["type"] = "float" defs["structs"]["ImGuiContext"][184] = {} -defs["structs"]["ImGuiContext"][184]["name"] = "ScrollbarClickDeltaToGrabCenter" +defs["structs"]["ImGuiContext"][184]["name"] = "DragSpeedDefaultRatio" defs["structs"]["ImGuiContext"][184]["type"] = "float" defs["structs"]["ImGuiContext"][185] = {} -defs["structs"]["ImGuiContext"][185]["name"] = "TooltipOverrideCount" -defs["structs"]["ImGuiContext"][185]["type"] = "int" +defs["structs"]["ImGuiContext"][185]["name"] = "ScrollbarClickDeltaToGrabCenter" +defs["structs"]["ImGuiContext"][185]["type"] = "float" defs["structs"]["ImGuiContext"][186] = {} -defs["structs"]["ImGuiContext"][186]["name"] = "TooltipSlowDelay" +defs["structs"]["ImGuiContext"][186]["name"] = "DisabledAlphaBackup" defs["structs"]["ImGuiContext"][186]["type"] = "float" defs["structs"]["ImGuiContext"][187] = {} -defs["structs"]["ImGuiContext"][187]["name"] = "ClipboardHandlerData" -defs["structs"]["ImGuiContext"][187]["template_type"] = "char" -defs["structs"]["ImGuiContext"][187]["type"] = "ImVector_char" +defs["structs"]["ImGuiContext"][187]["name"] = "DisabledStackSize" +defs["structs"]["ImGuiContext"][187]["type"] = "short" defs["structs"]["ImGuiContext"][188] = {} -defs["structs"]["ImGuiContext"][188]["name"] = "MenusIdSubmittedThisFrame" -defs["structs"]["ImGuiContext"][188]["template_type"] = "ImGuiID" -defs["structs"]["ImGuiContext"][188]["type"] = "ImVector_ImGuiID" +defs["structs"]["ImGuiContext"][188]["name"] = "TooltipOverrideCount" +defs["structs"]["ImGuiContext"][188]["type"] = "short" defs["structs"]["ImGuiContext"][189] = {} -defs["structs"]["ImGuiContext"][189]["name"] = "PlatformImePos" -defs["structs"]["ImGuiContext"][189]["type"] = "ImVec2" +defs["structs"]["ImGuiContext"][189]["name"] = "TooltipSlowDelay" +defs["structs"]["ImGuiContext"][189]["type"] = "float" defs["structs"]["ImGuiContext"][190] = {} -defs["structs"]["ImGuiContext"][190]["name"] = "PlatformImeLastPos" -defs["structs"]["ImGuiContext"][190]["type"] = "ImVec2" +defs["structs"]["ImGuiContext"][190]["name"] = "ClipboardHandlerData" +defs["structs"]["ImGuiContext"][190]["template_type"] = "char" +defs["structs"]["ImGuiContext"][190]["type"] = "ImVector_char" defs["structs"]["ImGuiContext"][191] = {} -defs["structs"]["ImGuiContext"][191]["name"] = "PlatformImePosViewport" -defs["structs"]["ImGuiContext"][191]["type"] = "ImGuiViewportP*" +defs["structs"]["ImGuiContext"][191]["name"] = "MenusIdSubmittedThisFrame" +defs["structs"]["ImGuiContext"][191]["template_type"] = "ImGuiID" +defs["structs"]["ImGuiContext"][191]["type"] = "ImVector_ImGuiID" defs["structs"]["ImGuiContext"][192] = {} -defs["structs"]["ImGuiContext"][192]["name"] = "PlatformLocaleDecimalPoint" -defs["structs"]["ImGuiContext"][192]["type"] = "char" +defs["structs"]["ImGuiContext"][192]["name"] = "PlatformImePos" +defs["structs"]["ImGuiContext"][192]["type"] = "ImVec2" defs["structs"]["ImGuiContext"][193] = {} -defs["structs"]["ImGuiContext"][193]["name"] = "DockContext" -defs["structs"]["ImGuiContext"][193]["type"] = "ImGuiDockContext" +defs["structs"]["ImGuiContext"][193]["name"] = "PlatformImeLastPos" +defs["structs"]["ImGuiContext"][193]["type"] = "ImVec2" defs["structs"]["ImGuiContext"][194] = {} -defs["structs"]["ImGuiContext"][194]["name"] = "SettingsLoaded" -defs["structs"]["ImGuiContext"][194]["type"] = "bool" +defs["structs"]["ImGuiContext"][194]["name"] = "PlatformImePosViewport" +defs["structs"]["ImGuiContext"][194]["type"] = "ImGuiViewportP*" defs["structs"]["ImGuiContext"][195] = {} -defs["structs"]["ImGuiContext"][195]["name"] = "SettingsDirtyTimer" -defs["structs"]["ImGuiContext"][195]["type"] = "float" +defs["structs"]["ImGuiContext"][195]["name"] = "PlatformLocaleDecimalPoint" +defs["structs"]["ImGuiContext"][195]["type"] = "char" defs["structs"]["ImGuiContext"][196] = {} -defs["structs"]["ImGuiContext"][196]["name"] = "SettingsIniData" -defs["structs"]["ImGuiContext"][196]["type"] = "ImGuiTextBuffer" +defs["structs"]["ImGuiContext"][196]["name"] = "DockContext" +defs["structs"]["ImGuiContext"][196]["type"] = "ImGuiDockContext" defs["structs"]["ImGuiContext"][197] = {} -defs["structs"]["ImGuiContext"][197]["name"] = "SettingsHandlers" -defs["structs"]["ImGuiContext"][197]["template_type"] = "ImGuiSettingsHandler" -defs["structs"]["ImGuiContext"][197]["type"] = "ImVector_ImGuiSettingsHandler" +defs["structs"]["ImGuiContext"][197]["name"] = "SettingsLoaded" +defs["structs"]["ImGuiContext"][197]["type"] = "bool" defs["structs"]["ImGuiContext"][198] = {} -defs["structs"]["ImGuiContext"][198]["name"] = "SettingsWindows" -defs["structs"]["ImGuiContext"][198]["template_type"] = "ImGuiWindowSettings" -defs["structs"]["ImGuiContext"][198]["type"] = "ImChunkStream_ImGuiWindowSettings" +defs["structs"]["ImGuiContext"][198]["name"] = "SettingsDirtyTimer" +defs["structs"]["ImGuiContext"][198]["type"] = "float" defs["structs"]["ImGuiContext"][199] = {} -defs["structs"]["ImGuiContext"][199]["name"] = "SettingsTables" -defs["structs"]["ImGuiContext"][199]["template_type"] = "ImGuiTableSettings" -defs["structs"]["ImGuiContext"][199]["type"] = "ImChunkStream_ImGuiTableSettings" +defs["structs"]["ImGuiContext"][199]["name"] = "SettingsIniData" +defs["structs"]["ImGuiContext"][199]["type"] = "ImGuiTextBuffer" defs["structs"]["ImGuiContext"][200] = {} -defs["structs"]["ImGuiContext"][200]["name"] = "Hooks" -defs["structs"]["ImGuiContext"][200]["template_type"] = "ImGuiContextHook" -defs["structs"]["ImGuiContext"][200]["type"] = "ImVector_ImGuiContextHook" +defs["structs"]["ImGuiContext"][200]["name"] = "SettingsHandlers" +defs["structs"]["ImGuiContext"][200]["template_type"] = "ImGuiSettingsHandler" +defs["structs"]["ImGuiContext"][200]["type"] = "ImVector_ImGuiSettingsHandler" defs["structs"]["ImGuiContext"][201] = {} -defs["structs"]["ImGuiContext"][201]["name"] = "HookIdNext" -defs["structs"]["ImGuiContext"][201]["type"] = "ImGuiID" +defs["structs"]["ImGuiContext"][201]["name"] = "SettingsWindows" +defs["structs"]["ImGuiContext"][201]["template_type"] = "ImGuiWindowSettings" +defs["structs"]["ImGuiContext"][201]["type"] = "ImChunkStream_ImGuiWindowSettings" defs["structs"]["ImGuiContext"][202] = {} -defs["structs"]["ImGuiContext"][202]["name"] = "LogEnabled" -defs["structs"]["ImGuiContext"][202]["type"] = "bool" +defs["structs"]["ImGuiContext"][202]["name"] = "SettingsTables" +defs["structs"]["ImGuiContext"][202]["template_type"] = "ImGuiTableSettings" +defs["structs"]["ImGuiContext"][202]["type"] = "ImChunkStream_ImGuiTableSettings" defs["structs"]["ImGuiContext"][203] = {} -defs["structs"]["ImGuiContext"][203]["name"] = "LogType" -defs["structs"]["ImGuiContext"][203]["type"] = "ImGuiLogType" +defs["structs"]["ImGuiContext"][203]["name"] = "Hooks" +defs["structs"]["ImGuiContext"][203]["template_type"] = "ImGuiContextHook" +defs["structs"]["ImGuiContext"][203]["type"] = "ImVector_ImGuiContextHook" defs["structs"]["ImGuiContext"][204] = {} -defs["structs"]["ImGuiContext"][204]["name"] = "LogFile" -defs["structs"]["ImGuiContext"][204]["type"] = "ImFileHandle" +defs["structs"]["ImGuiContext"][204]["name"] = "HookIdNext" +defs["structs"]["ImGuiContext"][204]["type"] = "ImGuiID" defs["structs"]["ImGuiContext"][205] = {} -defs["structs"]["ImGuiContext"][205]["name"] = "LogBuffer" -defs["structs"]["ImGuiContext"][205]["type"] = "ImGuiTextBuffer" +defs["structs"]["ImGuiContext"][205]["name"] = "LogEnabled" +defs["structs"]["ImGuiContext"][205]["type"] = "bool" defs["structs"]["ImGuiContext"][206] = {} -defs["structs"]["ImGuiContext"][206]["name"] = "LogNextPrefix" -defs["structs"]["ImGuiContext"][206]["type"] = "const char*" +defs["structs"]["ImGuiContext"][206]["name"] = "LogType" +defs["structs"]["ImGuiContext"][206]["type"] = "ImGuiLogType" defs["structs"]["ImGuiContext"][207] = {} -defs["structs"]["ImGuiContext"][207]["name"] = "LogNextSuffix" -defs["structs"]["ImGuiContext"][207]["type"] = "const char*" +defs["structs"]["ImGuiContext"][207]["name"] = "LogFile" +defs["structs"]["ImGuiContext"][207]["type"] = "ImFileHandle" defs["structs"]["ImGuiContext"][208] = {} -defs["structs"]["ImGuiContext"][208]["name"] = "LogLinePosY" -defs["structs"]["ImGuiContext"][208]["type"] = "float" +defs["structs"]["ImGuiContext"][208]["name"] = "LogBuffer" +defs["structs"]["ImGuiContext"][208]["type"] = "ImGuiTextBuffer" defs["structs"]["ImGuiContext"][209] = {} -defs["structs"]["ImGuiContext"][209]["name"] = "LogLineFirstItem" -defs["structs"]["ImGuiContext"][209]["type"] = "bool" +defs["structs"]["ImGuiContext"][209]["name"] = "LogNextPrefix" +defs["structs"]["ImGuiContext"][209]["type"] = "const char*" defs["structs"]["ImGuiContext"][210] = {} -defs["structs"]["ImGuiContext"][210]["name"] = "LogDepthRef" -defs["structs"]["ImGuiContext"][210]["type"] = "int" +defs["structs"]["ImGuiContext"][210]["name"] = "LogNextSuffix" +defs["structs"]["ImGuiContext"][210]["type"] = "const char*" defs["structs"]["ImGuiContext"][211] = {} -defs["structs"]["ImGuiContext"][211]["name"] = "LogDepthToExpand" -defs["structs"]["ImGuiContext"][211]["type"] = "int" +defs["structs"]["ImGuiContext"][211]["name"] = "LogLinePosY" +defs["structs"]["ImGuiContext"][211]["type"] = "float" defs["structs"]["ImGuiContext"][212] = {} -defs["structs"]["ImGuiContext"][212]["name"] = "LogDepthToExpandDefault" -defs["structs"]["ImGuiContext"][212]["type"] = "int" +defs["structs"]["ImGuiContext"][212]["name"] = "LogLineFirstItem" +defs["structs"]["ImGuiContext"][212]["type"] = "bool" defs["structs"]["ImGuiContext"][213] = {} -defs["structs"]["ImGuiContext"][213]["name"] = "DebugItemPickerActive" -defs["structs"]["ImGuiContext"][213]["type"] = "bool" +defs["structs"]["ImGuiContext"][213]["name"] = "LogDepthRef" +defs["structs"]["ImGuiContext"][213]["type"] = "int" defs["structs"]["ImGuiContext"][214] = {} -defs["structs"]["ImGuiContext"][214]["name"] = "DebugItemPickerBreakId" -defs["structs"]["ImGuiContext"][214]["type"] = "ImGuiID" +defs["structs"]["ImGuiContext"][214]["name"] = "LogDepthToExpand" +defs["structs"]["ImGuiContext"][214]["type"] = "int" defs["structs"]["ImGuiContext"][215] = {} -defs["structs"]["ImGuiContext"][215]["name"] = "DebugMetricsConfig" -defs["structs"]["ImGuiContext"][215]["type"] = "ImGuiMetricsConfig" +defs["structs"]["ImGuiContext"][215]["name"] = "LogDepthToExpandDefault" +defs["structs"]["ImGuiContext"][215]["type"] = "int" defs["structs"]["ImGuiContext"][216] = {} -defs["structs"]["ImGuiContext"][216]["name"] = "FramerateSecPerFrame[120]" -defs["structs"]["ImGuiContext"][216]["size"] = 120 -defs["structs"]["ImGuiContext"][216]["type"] = "float" +defs["structs"]["ImGuiContext"][216]["name"] = "DebugItemPickerActive" +defs["structs"]["ImGuiContext"][216]["type"] = "bool" defs["structs"]["ImGuiContext"][217] = {} -defs["structs"]["ImGuiContext"][217]["name"] = "FramerateSecPerFrameIdx" -defs["structs"]["ImGuiContext"][217]["type"] = "int" +defs["structs"]["ImGuiContext"][217]["name"] = "DebugItemPickerBreakId" +defs["structs"]["ImGuiContext"][217]["type"] = "ImGuiID" defs["structs"]["ImGuiContext"][218] = {} -defs["structs"]["ImGuiContext"][218]["name"] = "FramerateSecPerFrameCount" -defs["structs"]["ImGuiContext"][218]["type"] = "int" +defs["structs"]["ImGuiContext"][218]["name"] = "DebugMetricsConfig" +defs["structs"]["ImGuiContext"][218]["type"] = "ImGuiMetricsConfig" defs["structs"]["ImGuiContext"][219] = {} -defs["structs"]["ImGuiContext"][219]["name"] = "FramerateSecPerFrameAccum" -defs["structs"]["ImGuiContext"][219]["type"] = "float" +defs["structs"]["ImGuiContext"][219]["name"] = "DebugStackTool" +defs["structs"]["ImGuiContext"][219]["type"] = "ImGuiStackTool" defs["structs"]["ImGuiContext"][220] = {} -defs["structs"]["ImGuiContext"][220]["name"] = "WantCaptureMouseNextFrame" -defs["structs"]["ImGuiContext"][220]["type"] = "int" +defs["structs"]["ImGuiContext"][220]["name"] = "FramerateSecPerFrame[120]" +defs["structs"]["ImGuiContext"][220]["size"] = 120 +defs["structs"]["ImGuiContext"][220]["type"] = "float" defs["structs"]["ImGuiContext"][221] = {} -defs["structs"]["ImGuiContext"][221]["name"] = "WantCaptureKeyboardNextFrame" +defs["structs"]["ImGuiContext"][221]["name"] = "FramerateSecPerFrameIdx" defs["structs"]["ImGuiContext"][221]["type"] = "int" defs["structs"]["ImGuiContext"][222] = {} -defs["structs"]["ImGuiContext"][222]["name"] = "WantTextInputNextFrame" +defs["structs"]["ImGuiContext"][222]["name"] = "FramerateSecPerFrameCount" defs["structs"]["ImGuiContext"][222]["type"] = "int" defs["structs"]["ImGuiContext"][223] = {} -defs["structs"]["ImGuiContext"][223]["name"] = "TempBuffer[1024*3+1]" -defs["structs"]["ImGuiContext"][223]["size"] = 3073 -defs["structs"]["ImGuiContext"][223]["type"] = "char" +defs["structs"]["ImGuiContext"][223]["name"] = "FramerateSecPerFrameAccum" +defs["structs"]["ImGuiContext"][223]["type"] = "float" +defs["structs"]["ImGuiContext"][224] = {} +defs["structs"]["ImGuiContext"][224]["name"] = "WantCaptureMouseNextFrame" +defs["structs"]["ImGuiContext"][224]["type"] = "int" +defs["structs"]["ImGuiContext"][225] = {} +defs["structs"]["ImGuiContext"][225]["name"] = "WantCaptureKeyboardNextFrame" +defs["structs"]["ImGuiContext"][225]["type"] = "int" +defs["structs"]["ImGuiContext"][226] = {} +defs["structs"]["ImGuiContext"][226]["name"] = "WantTextInputNextFrame" +defs["structs"]["ImGuiContext"][226]["type"] = "int" +defs["structs"]["ImGuiContext"][227] = {} +defs["structs"]["ImGuiContext"][227]["name"] = "TempBuffer[1024*3+1]" +defs["structs"]["ImGuiContext"][227]["size"] = 3073 +defs["structs"]["ImGuiContext"][227]["type"] = "char" defs["structs"]["ImGuiContextHook"] = {} defs["structs"]["ImGuiContextHook"][1] = {} defs["structs"]["ImGuiContextHook"][1]["name"] = "HookId" @@ -4196,87 +4298,97 @@ defs["structs"]["ImGuiDockNode"][15] = {} defs["structs"]["ImGuiDockNode"][15]["name"] = "WindowClass" defs["structs"]["ImGuiDockNode"][15]["type"] = "ImGuiWindowClass" defs["structs"]["ImGuiDockNode"][16] = {} -defs["structs"]["ImGuiDockNode"][16]["name"] = "HostWindow" -defs["structs"]["ImGuiDockNode"][16]["type"] = "ImGuiWindow*" +defs["structs"]["ImGuiDockNode"][16]["name"] = "LastBgColor" +defs["structs"]["ImGuiDockNode"][16]["type"] = "ImU32" defs["structs"]["ImGuiDockNode"][17] = {} -defs["structs"]["ImGuiDockNode"][17]["name"] = "VisibleWindow" +defs["structs"]["ImGuiDockNode"][17]["name"] = "HostWindow" defs["structs"]["ImGuiDockNode"][17]["type"] = "ImGuiWindow*" defs["structs"]["ImGuiDockNode"][18] = {} -defs["structs"]["ImGuiDockNode"][18]["name"] = "CentralNode" -defs["structs"]["ImGuiDockNode"][18]["type"] = "ImGuiDockNode*" +defs["structs"]["ImGuiDockNode"][18]["name"] = "VisibleWindow" +defs["structs"]["ImGuiDockNode"][18]["type"] = "ImGuiWindow*" defs["structs"]["ImGuiDockNode"][19] = {} -defs["structs"]["ImGuiDockNode"][19]["name"] = "OnlyNodeWithWindows" +defs["structs"]["ImGuiDockNode"][19]["name"] = "CentralNode" defs["structs"]["ImGuiDockNode"][19]["type"] = "ImGuiDockNode*" defs["structs"]["ImGuiDockNode"][20] = {} -defs["structs"]["ImGuiDockNode"][20]["name"] = "LastFrameAlive" -defs["structs"]["ImGuiDockNode"][20]["type"] = "int" +defs["structs"]["ImGuiDockNode"][20]["name"] = "OnlyNodeWithWindows" +defs["structs"]["ImGuiDockNode"][20]["type"] = "ImGuiDockNode*" defs["structs"]["ImGuiDockNode"][21] = {} -defs["structs"]["ImGuiDockNode"][21]["name"] = "LastFrameActive" +defs["structs"]["ImGuiDockNode"][21]["name"] = "CountNodeWithWindows" defs["structs"]["ImGuiDockNode"][21]["type"] = "int" defs["structs"]["ImGuiDockNode"][22] = {} -defs["structs"]["ImGuiDockNode"][22]["name"] = "LastFrameFocused" +defs["structs"]["ImGuiDockNode"][22]["name"] = "LastFrameAlive" defs["structs"]["ImGuiDockNode"][22]["type"] = "int" defs["structs"]["ImGuiDockNode"][23] = {} -defs["structs"]["ImGuiDockNode"][23]["name"] = "LastFocusedNodeId" -defs["structs"]["ImGuiDockNode"][23]["type"] = "ImGuiID" +defs["structs"]["ImGuiDockNode"][23]["name"] = "LastFrameActive" +defs["structs"]["ImGuiDockNode"][23]["type"] = "int" defs["structs"]["ImGuiDockNode"][24] = {} -defs["structs"]["ImGuiDockNode"][24]["name"] = "SelectedTabId" -defs["structs"]["ImGuiDockNode"][24]["type"] = "ImGuiID" +defs["structs"]["ImGuiDockNode"][24]["name"] = "LastFrameFocused" +defs["structs"]["ImGuiDockNode"][24]["type"] = "int" defs["structs"]["ImGuiDockNode"][25] = {} -defs["structs"]["ImGuiDockNode"][25]["name"] = "WantCloseTabId" +defs["structs"]["ImGuiDockNode"][25]["name"] = "LastFocusedNodeId" defs["structs"]["ImGuiDockNode"][25]["type"] = "ImGuiID" defs["structs"]["ImGuiDockNode"][26] = {} -defs["structs"]["ImGuiDockNode"][26]["bitfield"] = "3" -defs["structs"]["ImGuiDockNode"][26]["name"] = "AuthorityForPos" -defs["structs"]["ImGuiDockNode"][26]["type"] = "ImGuiDataAuthority" +defs["structs"]["ImGuiDockNode"][26]["name"] = "SelectedTabId" +defs["structs"]["ImGuiDockNode"][26]["type"] = "ImGuiID" defs["structs"]["ImGuiDockNode"][27] = {} -defs["structs"]["ImGuiDockNode"][27]["bitfield"] = "3" -defs["structs"]["ImGuiDockNode"][27]["name"] = "AuthorityForSize" -defs["structs"]["ImGuiDockNode"][27]["type"] = "ImGuiDataAuthority" +defs["structs"]["ImGuiDockNode"][27]["name"] = "WantCloseTabId" +defs["structs"]["ImGuiDockNode"][27]["type"] = "ImGuiID" defs["structs"]["ImGuiDockNode"][28] = {} defs["structs"]["ImGuiDockNode"][28]["bitfield"] = "3" -defs["structs"]["ImGuiDockNode"][28]["name"] = "AuthorityForViewport" +defs["structs"]["ImGuiDockNode"][28]["name"] = "AuthorityForPos" defs["structs"]["ImGuiDockNode"][28]["type"] = "ImGuiDataAuthority" defs["structs"]["ImGuiDockNode"][29] = {} -defs["structs"]["ImGuiDockNode"][29]["bitfield"] = "1" -defs["structs"]["ImGuiDockNode"][29]["name"] = "IsVisible" -defs["structs"]["ImGuiDockNode"][29]["type"] = "bool" +defs["structs"]["ImGuiDockNode"][29]["bitfield"] = "3" +defs["structs"]["ImGuiDockNode"][29]["name"] = "AuthorityForSize" +defs["structs"]["ImGuiDockNode"][29]["type"] = "ImGuiDataAuthority" defs["structs"]["ImGuiDockNode"][30] = {} -defs["structs"]["ImGuiDockNode"][30]["bitfield"] = "1" -defs["structs"]["ImGuiDockNode"][30]["name"] = "IsFocused" -defs["structs"]["ImGuiDockNode"][30]["type"] = "bool" +defs["structs"]["ImGuiDockNode"][30]["bitfield"] = "3" +defs["structs"]["ImGuiDockNode"][30]["name"] = "AuthorityForViewport" +defs["structs"]["ImGuiDockNode"][30]["type"] = "ImGuiDataAuthority" defs["structs"]["ImGuiDockNode"][31] = {} defs["structs"]["ImGuiDockNode"][31]["bitfield"] = "1" -defs["structs"]["ImGuiDockNode"][31]["name"] = "HasCloseButton" +defs["structs"]["ImGuiDockNode"][31]["name"] = "IsVisible" defs["structs"]["ImGuiDockNode"][31]["type"] = "bool" defs["structs"]["ImGuiDockNode"][32] = {} defs["structs"]["ImGuiDockNode"][32]["bitfield"] = "1" -defs["structs"]["ImGuiDockNode"][32]["name"] = "HasWindowMenuButton" +defs["structs"]["ImGuiDockNode"][32]["name"] = "IsFocused" defs["structs"]["ImGuiDockNode"][32]["type"] = "bool" defs["structs"]["ImGuiDockNode"][33] = {} defs["structs"]["ImGuiDockNode"][33]["bitfield"] = "1" -defs["structs"]["ImGuiDockNode"][33]["name"] = "WantCloseAll" +defs["structs"]["ImGuiDockNode"][33]["name"] = "IsBgDrawnThisFrame" defs["structs"]["ImGuiDockNode"][33]["type"] = "bool" defs["structs"]["ImGuiDockNode"][34] = {} defs["structs"]["ImGuiDockNode"][34]["bitfield"] = "1" -defs["structs"]["ImGuiDockNode"][34]["name"] = "WantLockSizeOnce" +defs["structs"]["ImGuiDockNode"][34]["name"] = "HasCloseButton" defs["structs"]["ImGuiDockNode"][34]["type"] = "bool" defs["structs"]["ImGuiDockNode"][35] = {} defs["structs"]["ImGuiDockNode"][35]["bitfield"] = "1" -defs["structs"]["ImGuiDockNode"][35]["name"] = "WantMouseMove" +defs["structs"]["ImGuiDockNode"][35]["name"] = "HasWindowMenuButton" defs["structs"]["ImGuiDockNode"][35]["type"] = "bool" defs["structs"]["ImGuiDockNode"][36] = {} defs["structs"]["ImGuiDockNode"][36]["bitfield"] = "1" -defs["structs"]["ImGuiDockNode"][36]["name"] = "WantHiddenTabBarUpdate" +defs["structs"]["ImGuiDockNode"][36]["name"] = "HasCentralNodeChild" defs["structs"]["ImGuiDockNode"][36]["type"] = "bool" defs["structs"]["ImGuiDockNode"][37] = {} defs["structs"]["ImGuiDockNode"][37]["bitfield"] = "1" -defs["structs"]["ImGuiDockNode"][37]["name"] = "WantHiddenTabBarToggle" +defs["structs"]["ImGuiDockNode"][37]["name"] = "WantCloseAll" defs["structs"]["ImGuiDockNode"][37]["type"] = "bool" defs["structs"]["ImGuiDockNode"][38] = {} defs["structs"]["ImGuiDockNode"][38]["bitfield"] = "1" -defs["structs"]["ImGuiDockNode"][38]["name"] = "MarkedForPosSizeWrite" +defs["structs"]["ImGuiDockNode"][38]["name"] = "WantLockSizeOnce" defs["structs"]["ImGuiDockNode"][38]["type"] = "bool" +defs["structs"]["ImGuiDockNode"][39] = {} +defs["structs"]["ImGuiDockNode"][39]["bitfield"] = "1" +defs["structs"]["ImGuiDockNode"][39]["name"] = "WantMouseMove" +defs["structs"]["ImGuiDockNode"][39]["type"] = "bool" +defs["structs"]["ImGuiDockNode"][40] = {} +defs["structs"]["ImGuiDockNode"][40]["bitfield"] = "1" +defs["structs"]["ImGuiDockNode"][40]["name"] = "WantHiddenTabBarUpdate" +defs["structs"]["ImGuiDockNode"][40]["type"] = "bool" +defs["structs"]["ImGuiDockNode"][41] = {} +defs["structs"]["ImGuiDockNode"][41]["bitfield"] = "1" +defs["structs"]["ImGuiDockNode"][41]["name"] = "WantHiddenTabBarToggle" +defs["structs"]["ImGuiDockNode"][41]["type"] = "bool" defs["structs"]["ImGuiGroupData"] = {} defs["structs"]["ImGuiGroupData"][1] = {} defs["structs"]["ImGuiGroupData"][1]["name"] = "WindowID" @@ -4374,235 +4486,242 @@ defs["structs"]["ImGuiIO"][20] = {} defs["structs"]["ImGuiIO"][20]["name"] = "ConfigDockingNoSplit" defs["structs"]["ImGuiIO"][20]["type"] = "bool" defs["structs"]["ImGuiIO"][21] = {} -defs["structs"]["ImGuiIO"][21]["name"] = "ConfigDockingAlwaysTabBar" +defs["structs"]["ImGuiIO"][21]["name"] = "ConfigDockingWithShift" defs["structs"]["ImGuiIO"][21]["type"] = "bool" defs["structs"]["ImGuiIO"][22] = {} -defs["structs"]["ImGuiIO"][22]["name"] = "ConfigDockingTransparentPayload" +defs["structs"]["ImGuiIO"][22]["name"] = "ConfigDockingAlwaysTabBar" defs["structs"]["ImGuiIO"][22]["type"] = "bool" defs["structs"]["ImGuiIO"][23] = {} -defs["structs"]["ImGuiIO"][23]["name"] = "ConfigViewportsNoAutoMerge" +defs["structs"]["ImGuiIO"][23]["name"] = "ConfigDockingTransparentPayload" defs["structs"]["ImGuiIO"][23]["type"] = "bool" defs["structs"]["ImGuiIO"][24] = {} -defs["structs"]["ImGuiIO"][24]["name"] = "ConfigViewportsNoTaskBarIcon" +defs["structs"]["ImGuiIO"][24]["name"] = "ConfigViewportsNoAutoMerge" defs["structs"]["ImGuiIO"][24]["type"] = "bool" defs["structs"]["ImGuiIO"][25] = {} -defs["structs"]["ImGuiIO"][25]["name"] = "ConfigViewportsNoDecoration" +defs["structs"]["ImGuiIO"][25]["name"] = "ConfigViewportsNoTaskBarIcon" defs["structs"]["ImGuiIO"][25]["type"] = "bool" defs["structs"]["ImGuiIO"][26] = {} -defs["structs"]["ImGuiIO"][26]["name"] = "ConfigViewportsNoDefaultParent" +defs["structs"]["ImGuiIO"][26]["name"] = "ConfigViewportsNoDecoration" defs["structs"]["ImGuiIO"][26]["type"] = "bool" defs["structs"]["ImGuiIO"][27] = {} -defs["structs"]["ImGuiIO"][27]["name"] = "MouseDrawCursor" +defs["structs"]["ImGuiIO"][27]["name"] = "ConfigViewportsNoDefaultParent" defs["structs"]["ImGuiIO"][27]["type"] = "bool" defs["structs"]["ImGuiIO"][28] = {} -defs["structs"]["ImGuiIO"][28]["name"] = "ConfigMacOSXBehaviors" +defs["structs"]["ImGuiIO"][28]["name"] = "MouseDrawCursor" defs["structs"]["ImGuiIO"][28]["type"] = "bool" defs["structs"]["ImGuiIO"][29] = {} -defs["structs"]["ImGuiIO"][29]["name"] = "ConfigInputTextCursorBlink" +defs["structs"]["ImGuiIO"][29]["name"] = "ConfigMacOSXBehaviors" defs["structs"]["ImGuiIO"][29]["type"] = "bool" defs["structs"]["ImGuiIO"][30] = {} -defs["structs"]["ImGuiIO"][30]["name"] = "ConfigDragClickToInputText" +defs["structs"]["ImGuiIO"][30]["name"] = "ConfigInputTextCursorBlink" defs["structs"]["ImGuiIO"][30]["type"] = "bool" defs["structs"]["ImGuiIO"][31] = {} -defs["structs"]["ImGuiIO"][31]["name"] = "ConfigWindowsResizeFromEdges" +defs["structs"]["ImGuiIO"][31]["name"] = "ConfigDragClickToInputText" defs["structs"]["ImGuiIO"][31]["type"] = "bool" defs["structs"]["ImGuiIO"][32] = {} -defs["structs"]["ImGuiIO"][32]["name"] = "ConfigWindowsMoveFromTitleBarOnly" +defs["structs"]["ImGuiIO"][32]["name"] = "ConfigWindowsResizeFromEdges" defs["structs"]["ImGuiIO"][32]["type"] = "bool" defs["structs"]["ImGuiIO"][33] = {} -defs["structs"]["ImGuiIO"][33]["name"] = "ConfigMemoryCompactTimer" -defs["structs"]["ImGuiIO"][33]["type"] = "float" +defs["structs"]["ImGuiIO"][33]["name"] = "ConfigWindowsMoveFromTitleBarOnly" +defs["structs"]["ImGuiIO"][33]["type"] = "bool" defs["structs"]["ImGuiIO"][34] = {} -defs["structs"]["ImGuiIO"][34]["name"] = "BackendPlatformName" -defs["structs"]["ImGuiIO"][34]["type"] = "const char*" +defs["structs"]["ImGuiIO"][34]["name"] = "ConfigMemoryCompactTimer" +defs["structs"]["ImGuiIO"][34]["type"] = "float" defs["structs"]["ImGuiIO"][35] = {} -defs["structs"]["ImGuiIO"][35]["name"] = "BackendRendererName" +defs["structs"]["ImGuiIO"][35]["name"] = "BackendPlatformName" defs["structs"]["ImGuiIO"][35]["type"] = "const char*" defs["structs"]["ImGuiIO"][36] = {} -defs["structs"]["ImGuiIO"][36]["name"] = "BackendPlatformUserData" -defs["structs"]["ImGuiIO"][36]["type"] = "void*" +defs["structs"]["ImGuiIO"][36]["name"] = "BackendRendererName" +defs["structs"]["ImGuiIO"][36]["type"] = "const char*" defs["structs"]["ImGuiIO"][37] = {} -defs["structs"]["ImGuiIO"][37]["name"] = "BackendRendererUserData" +defs["structs"]["ImGuiIO"][37]["name"] = "BackendPlatformUserData" defs["structs"]["ImGuiIO"][37]["type"] = "void*" defs["structs"]["ImGuiIO"][38] = {} -defs["structs"]["ImGuiIO"][38]["name"] = "BackendLanguageUserData" +defs["structs"]["ImGuiIO"][38]["name"] = "BackendRendererUserData" defs["structs"]["ImGuiIO"][38]["type"] = "void*" defs["structs"]["ImGuiIO"][39] = {} -defs["structs"]["ImGuiIO"][39]["name"] = "GetClipboardTextFn" -defs["structs"]["ImGuiIO"][39]["type"] = "const char*(*)(void* user_data)" +defs["structs"]["ImGuiIO"][39]["name"] = "BackendLanguageUserData" +defs["structs"]["ImGuiIO"][39]["type"] = "void*" defs["structs"]["ImGuiIO"][40] = {} -defs["structs"]["ImGuiIO"][40]["name"] = "SetClipboardTextFn" -defs["structs"]["ImGuiIO"][40]["type"] = "void(*)(void* user_data,const char* text)" +defs["structs"]["ImGuiIO"][40]["name"] = "GetClipboardTextFn" +defs["structs"]["ImGuiIO"][40]["type"] = "const char*(*)(void* user_data)" defs["structs"]["ImGuiIO"][41] = {} -defs["structs"]["ImGuiIO"][41]["name"] = "ClipboardUserData" -defs["structs"]["ImGuiIO"][41]["type"] = "void*" +defs["structs"]["ImGuiIO"][41]["name"] = "SetClipboardTextFn" +defs["structs"]["ImGuiIO"][41]["type"] = "void(*)(void* user_data,const char* text)" defs["structs"]["ImGuiIO"][42] = {} -defs["structs"]["ImGuiIO"][42]["name"] = "MousePos" -defs["structs"]["ImGuiIO"][42]["type"] = "ImVec2" +defs["structs"]["ImGuiIO"][42]["name"] = "ClipboardUserData" +defs["structs"]["ImGuiIO"][42]["type"] = "void*" defs["structs"]["ImGuiIO"][43] = {} -defs["structs"]["ImGuiIO"][43]["name"] = "MouseDown[5]" -defs["structs"]["ImGuiIO"][43]["size"] = 5 -defs["structs"]["ImGuiIO"][43]["type"] = "bool" +defs["structs"]["ImGuiIO"][43]["name"] = "MousePos" +defs["structs"]["ImGuiIO"][43]["type"] = "ImVec2" defs["structs"]["ImGuiIO"][44] = {} -defs["structs"]["ImGuiIO"][44]["name"] = "MouseWheel" -defs["structs"]["ImGuiIO"][44]["type"] = "float" +defs["structs"]["ImGuiIO"][44]["name"] = "MouseDown[5]" +defs["structs"]["ImGuiIO"][44]["size"] = 5 +defs["structs"]["ImGuiIO"][44]["type"] = "bool" defs["structs"]["ImGuiIO"][45] = {} -defs["structs"]["ImGuiIO"][45]["name"] = "MouseWheelH" +defs["structs"]["ImGuiIO"][45]["name"] = "MouseWheel" defs["structs"]["ImGuiIO"][45]["type"] = "float" defs["structs"]["ImGuiIO"][46] = {} -defs["structs"]["ImGuiIO"][46]["name"] = "MouseHoveredViewport" -defs["structs"]["ImGuiIO"][46]["type"] = "ImGuiID" +defs["structs"]["ImGuiIO"][46]["name"] = "MouseWheelH" +defs["structs"]["ImGuiIO"][46]["type"] = "float" defs["structs"]["ImGuiIO"][47] = {} -defs["structs"]["ImGuiIO"][47]["name"] = "KeyCtrl" -defs["structs"]["ImGuiIO"][47]["type"] = "bool" +defs["structs"]["ImGuiIO"][47]["name"] = "MouseHoveredViewport" +defs["structs"]["ImGuiIO"][47]["type"] = "ImGuiID" defs["structs"]["ImGuiIO"][48] = {} -defs["structs"]["ImGuiIO"][48]["name"] = "KeyShift" +defs["structs"]["ImGuiIO"][48]["name"] = "KeyCtrl" defs["structs"]["ImGuiIO"][48]["type"] = "bool" defs["structs"]["ImGuiIO"][49] = {} -defs["structs"]["ImGuiIO"][49]["name"] = "KeyAlt" +defs["structs"]["ImGuiIO"][49]["name"] = "KeyShift" defs["structs"]["ImGuiIO"][49]["type"] = "bool" defs["structs"]["ImGuiIO"][50] = {} -defs["structs"]["ImGuiIO"][50]["name"] = "KeySuper" +defs["structs"]["ImGuiIO"][50]["name"] = "KeyAlt" defs["structs"]["ImGuiIO"][50]["type"] = "bool" defs["structs"]["ImGuiIO"][51] = {} -defs["structs"]["ImGuiIO"][51]["name"] = "KeysDown[512]" -defs["structs"]["ImGuiIO"][51]["size"] = 512 +defs["structs"]["ImGuiIO"][51]["name"] = "KeySuper" defs["structs"]["ImGuiIO"][51]["type"] = "bool" defs["structs"]["ImGuiIO"][52] = {} -defs["structs"]["ImGuiIO"][52]["name"] = "NavInputs[ImGuiNavInput_COUNT]" -defs["structs"]["ImGuiIO"][52]["size"] = 20 -defs["structs"]["ImGuiIO"][52]["type"] = "float" +defs["structs"]["ImGuiIO"][52]["name"] = "KeysDown[512]" +defs["structs"]["ImGuiIO"][52]["size"] = 512 +defs["structs"]["ImGuiIO"][52]["type"] = "bool" defs["structs"]["ImGuiIO"][53] = {} -defs["structs"]["ImGuiIO"][53]["name"] = "WantCaptureMouse" -defs["structs"]["ImGuiIO"][53]["type"] = "bool" +defs["structs"]["ImGuiIO"][53]["name"] = "NavInputs[ImGuiNavInput_COUNT]" +defs["structs"]["ImGuiIO"][53]["size"] = 20 +defs["structs"]["ImGuiIO"][53]["type"] = "float" defs["structs"]["ImGuiIO"][54] = {} -defs["structs"]["ImGuiIO"][54]["name"] = "WantCaptureKeyboard" +defs["structs"]["ImGuiIO"][54]["name"] = "WantCaptureMouse" defs["structs"]["ImGuiIO"][54]["type"] = "bool" defs["structs"]["ImGuiIO"][55] = {} -defs["structs"]["ImGuiIO"][55]["name"] = "WantTextInput" +defs["structs"]["ImGuiIO"][55]["name"] = "WantCaptureKeyboard" defs["structs"]["ImGuiIO"][55]["type"] = "bool" defs["structs"]["ImGuiIO"][56] = {} -defs["structs"]["ImGuiIO"][56]["name"] = "WantSetMousePos" +defs["structs"]["ImGuiIO"][56]["name"] = "WantTextInput" defs["structs"]["ImGuiIO"][56]["type"] = "bool" defs["structs"]["ImGuiIO"][57] = {} -defs["structs"]["ImGuiIO"][57]["name"] = "WantSaveIniSettings" +defs["structs"]["ImGuiIO"][57]["name"] = "WantSetMousePos" defs["structs"]["ImGuiIO"][57]["type"] = "bool" defs["structs"]["ImGuiIO"][58] = {} -defs["structs"]["ImGuiIO"][58]["name"] = "NavActive" +defs["structs"]["ImGuiIO"][58]["name"] = "WantSaveIniSettings" defs["structs"]["ImGuiIO"][58]["type"] = "bool" defs["structs"]["ImGuiIO"][59] = {} -defs["structs"]["ImGuiIO"][59]["name"] = "NavVisible" +defs["structs"]["ImGuiIO"][59]["name"] = "NavActive" defs["structs"]["ImGuiIO"][59]["type"] = "bool" defs["structs"]["ImGuiIO"][60] = {} -defs["structs"]["ImGuiIO"][60]["name"] = "Framerate" -defs["structs"]["ImGuiIO"][60]["type"] = "float" +defs["structs"]["ImGuiIO"][60]["name"] = "NavVisible" +defs["structs"]["ImGuiIO"][60]["type"] = "bool" defs["structs"]["ImGuiIO"][61] = {} -defs["structs"]["ImGuiIO"][61]["name"] = "MetricsRenderVertices" -defs["structs"]["ImGuiIO"][61]["type"] = "int" +defs["structs"]["ImGuiIO"][61]["name"] = "Framerate" +defs["structs"]["ImGuiIO"][61]["type"] = "float" defs["structs"]["ImGuiIO"][62] = {} -defs["structs"]["ImGuiIO"][62]["name"] = "MetricsRenderIndices" +defs["structs"]["ImGuiIO"][62]["name"] = "MetricsRenderVertices" defs["structs"]["ImGuiIO"][62]["type"] = "int" defs["structs"]["ImGuiIO"][63] = {} -defs["structs"]["ImGuiIO"][63]["name"] = "MetricsRenderWindows" +defs["structs"]["ImGuiIO"][63]["name"] = "MetricsRenderIndices" defs["structs"]["ImGuiIO"][63]["type"] = "int" defs["structs"]["ImGuiIO"][64] = {} -defs["structs"]["ImGuiIO"][64]["name"] = "MetricsActiveWindows" +defs["structs"]["ImGuiIO"][64]["name"] = "MetricsRenderWindows" defs["structs"]["ImGuiIO"][64]["type"] = "int" defs["structs"]["ImGuiIO"][65] = {} -defs["structs"]["ImGuiIO"][65]["name"] = "MetricsActiveAllocations" +defs["structs"]["ImGuiIO"][65]["name"] = "MetricsActiveWindows" defs["structs"]["ImGuiIO"][65]["type"] = "int" defs["structs"]["ImGuiIO"][66] = {} -defs["structs"]["ImGuiIO"][66]["name"] = "MouseDelta" -defs["structs"]["ImGuiIO"][66]["type"] = "ImVec2" +defs["structs"]["ImGuiIO"][66]["name"] = "MetricsActiveAllocations" +defs["structs"]["ImGuiIO"][66]["type"] = "int" defs["structs"]["ImGuiIO"][67] = {} -defs["structs"]["ImGuiIO"][67]["name"] = "WantCaptureMouseUnlessPopupClose" -defs["structs"]["ImGuiIO"][67]["type"] = "bool" +defs["structs"]["ImGuiIO"][67]["name"] = "MouseDelta" +defs["structs"]["ImGuiIO"][67]["type"] = "ImVec2" defs["structs"]["ImGuiIO"][68] = {} -defs["structs"]["ImGuiIO"][68]["name"] = "KeyMods" -defs["structs"]["ImGuiIO"][68]["type"] = "ImGuiKeyModFlags" +defs["structs"]["ImGuiIO"][68]["name"] = "WantCaptureMouseUnlessPopupClose" +defs["structs"]["ImGuiIO"][68]["type"] = "bool" defs["structs"]["ImGuiIO"][69] = {} -defs["structs"]["ImGuiIO"][69]["name"] = "KeyModsPrev" +defs["structs"]["ImGuiIO"][69]["name"] = "KeyMods" defs["structs"]["ImGuiIO"][69]["type"] = "ImGuiKeyModFlags" defs["structs"]["ImGuiIO"][70] = {} -defs["structs"]["ImGuiIO"][70]["name"] = "MousePosPrev" -defs["structs"]["ImGuiIO"][70]["type"] = "ImVec2" +defs["structs"]["ImGuiIO"][70]["name"] = "KeyModsPrev" +defs["structs"]["ImGuiIO"][70]["type"] = "ImGuiKeyModFlags" defs["structs"]["ImGuiIO"][71] = {} -defs["structs"]["ImGuiIO"][71]["name"] = "MouseClickedPos[5]" -defs["structs"]["ImGuiIO"][71]["size"] = 5 +defs["structs"]["ImGuiIO"][71]["name"] = "MousePosPrev" defs["structs"]["ImGuiIO"][71]["type"] = "ImVec2" defs["structs"]["ImGuiIO"][72] = {} -defs["structs"]["ImGuiIO"][72]["name"] = "MouseClickedTime[5]" +defs["structs"]["ImGuiIO"][72]["name"] = "MouseClickedPos[5]" defs["structs"]["ImGuiIO"][72]["size"] = 5 -defs["structs"]["ImGuiIO"][72]["type"] = "double" +defs["structs"]["ImGuiIO"][72]["type"] = "ImVec2" defs["structs"]["ImGuiIO"][73] = {} -defs["structs"]["ImGuiIO"][73]["name"] = "MouseClicked[5]" +defs["structs"]["ImGuiIO"][73]["name"] = "MouseClickedTime[5]" defs["structs"]["ImGuiIO"][73]["size"] = 5 -defs["structs"]["ImGuiIO"][73]["type"] = "bool" +defs["structs"]["ImGuiIO"][73]["type"] = "double" defs["structs"]["ImGuiIO"][74] = {} -defs["structs"]["ImGuiIO"][74]["name"] = "MouseDoubleClicked[5]" +defs["structs"]["ImGuiIO"][74]["name"] = "MouseClicked[5]" defs["structs"]["ImGuiIO"][74]["size"] = 5 defs["structs"]["ImGuiIO"][74]["type"] = "bool" defs["structs"]["ImGuiIO"][75] = {} -defs["structs"]["ImGuiIO"][75]["name"] = "MouseReleased[5]" +defs["structs"]["ImGuiIO"][75]["name"] = "MouseDoubleClicked[5]" defs["structs"]["ImGuiIO"][75]["size"] = 5 defs["structs"]["ImGuiIO"][75]["type"] = "bool" defs["structs"]["ImGuiIO"][76] = {} -defs["structs"]["ImGuiIO"][76]["name"] = "MouseDownOwned[5]" +defs["structs"]["ImGuiIO"][76]["name"] = "MouseClickedCount[5]" defs["structs"]["ImGuiIO"][76]["size"] = 5 -defs["structs"]["ImGuiIO"][76]["type"] = "bool" +defs["structs"]["ImGuiIO"][76]["type"] = "ImU16" defs["structs"]["ImGuiIO"][77] = {} -defs["structs"]["ImGuiIO"][77]["name"] = "MouseDownOwnedUnlessPopupClose[5]" +defs["structs"]["ImGuiIO"][77]["name"] = "MouseClickedLastCount[5]" defs["structs"]["ImGuiIO"][77]["size"] = 5 -defs["structs"]["ImGuiIO"][77]["type"] = "bool" +defs["structs"]["ImGuiIO"][77]["type"] = "ImU16" defs["structs"]["ImGuiIO"][78] = {} -defs["structs"]["ImGuiIO"][78]["name"] = "MouseDownWasDoubleClick[5]" +defs["structs"]["ImGuiIO"][78]["name"] = "MouseReleased[5]" defs["structs"]["ImGuiIO"][78]["size"] = 5 defs["structs"]["ImGuiIO"][78]["type"] = "bool" defs["structs"]["ImGuiIO"][79] = {} -defs["structs"]["ImGuiIO"][79]["name"] = "MouseDownDuration[5]" +defs["structs"]["ImGuiIO"][79]["name"] = "MouseDownOwned[5]" defs["structs"]["ImGuiIO"][79]["size"] = 5 -defs["structs"]["ImGuiIO"][79]["type"] = "float" +defs["structs"]["ImGuiIO"][79]["type"] = "bool" defs["structs"]["ImGuiIO"][80] = {} -defs["structs"]["ImGuiIO"][80]["name"] = "MouseDownDurationPrev[5]" +defs["structs"]["ImGuiIO"][80]["name"] = "MouseDownOwnedUnlessPopupClose[5]" defs["structs"]["ImGuiIO"][80]["size"] = 5 -defs["structs"]["ImGuiIO"][80]["type"] = "float" +defs["structs"]["ImGuiIO"][80]["type"] = "bool" defs["structs"]["ImGuiIO"][81] = {} -defs["structs"]["ImGuiIO"][81]["name"] = "MouseDragMaxDistanceAbs[5]" +defs["structs"]["ImGuiIO"][81]["name"] = "MouseDownDuration[5]" defs["structs"]["ImGuiIO"][81]["size"] = 5 -defs["structs"]["ImGuiIO"][81]["type"] = "ImVec2" +defs["structs"]["ImGuiIO"][81]["type"] = "float" defs["structs"]["ImGuiIO"][82] = {} -defs["structs"]["ImGuiIO"][82]["name"] = "MouseDragMaxDistanceSqr[5]" +defs["structs"]["ImGuiIO"][82]["name"] = "MouseDownDurationPrev[5]" defs["structs"]["ImGuiIO"][82]["size"] = 5 defs["structs"]["ImGuiIO"][82]["type"] = "float" defs["structs"]["ImGuiIO"][83] = {} -defs["structs"]["ImGuiIO"][83]["name"] = "KeysDownDuration[512]" -defs["structs"]["ImGuiIO"][83]["size"] = 512 -defs["structs"]["ImGuiIO"][83]["type"] = "float" +defs["structs"]["ImGuiIO"][83]["name"] = "MouseDragMaxDistanceAbs[5]" +defs["structs"]["ImGuiIO"][83]["size"] = 5 +defs["structs"]["ImGuiIO"][83]["type"] = "ImVec2" defs["structs"]["ImGuiIO"][84] = {} -defs["structs"]["ImGuiIO"][84]["name"] = "KeysDownDurationPrev[512]" -defs["structs"]["ImGuiIO"][84]["size"] = 512 +defs["structs"]["ImGuiIO"][84]["name"] = "MouseDragMaxDistanceSqr[5]" +defs["structs"]["ImGuiIO"][84]["size"] = 5 defs["structs"]["ImGuiIO"][84]["type"] = "float" defs["structs"]["ImGuiIO"][85] = {} -defs["structs"]["ImGuiIO"][85]["name"] = "NavInputsDownDuration[ImGuiNavInput_COUNT]" -defs["structs"]["ImGuiIO"][85]["size"] = 20 +defs["structs"]["ImGuiIO"][85]["name"] = "KeysDownDuration[512]" +defs["structs"]["ImGuiIO"][85]["size"] = 512 defs["structs"]["ImGuiIO"][85]["type"] = "float" defs["structs"]["ImGuiIO"][86] = {} -defs["structs"]["ImGuiIO"][86]["name"] = "NavInputsDownDurationPrev[ImGuiNavInput_COUNT]" -defs["structs"]["ImGuiIO"][86]["size"] = 20 +defs["structs"]["ImGuiIO"][86]["name"] = "KeysDownDurationPrev[512]" +defs["structs"]["ImGuiIO"][86]["size"] = 512 defs["structs"]["ImGuiIO"][86]["type"] = "float" defs["structs"]["ImGuiIO"][87] = {} -defs["structs"]["ImGuiIO"][87]["name"] = "PenPressure" +defs["structs"]["ImGuiIO"][87]["name"] = "NavInputsDownDuration[ImGuiNavInput_COUNT]" +defs["structs"]["ImGuiIO"][87]["size"] = 20 defs["structs"]["ImGuiIO"][87]["type"] = "float" defs["structs"]["ImGuiIO"][88] = {} -defs["structs"]["ImGuiIO"][88]["name"] = "AppFocusLost" -defs["structs"]["ImGuiIO"][88]["type"] = "bool" +defs["structs"]["ImGuiIO"][88]["name"] = "NavInputsDownDurationPrev[ImGuiNavInput_COUNT]" +defs["structs"]["ImGuiIO"][88]["size"] = 20 +defs["structs"]["ImGuiIO"][88]["type"] = "float" defs["structs"]["ImGuiIO"][89] = {} -defs["structs"]["ImGuiIO"][89]["name"] = "InputQueueSurrogate" -defs["structs"]["ImGuiIO"][89]["type"] = "ImWchar16" +defs["structs"]["ImGuiIO"][89]["name"] = "PenPressure" +defs["structs"]["ImGuiIO"][89]["type"] = "float" defs["structs"]["ImGuiIO"][90] = {} -defs["structs"]["ImGuiIO"][90]["name"] = "InputQueueCharacters" -defs["structs"]["ImGuiIO"][90]["template_type"] = "ImWchar" -defs["structs"]["ImGuiIO"][90]["type"] = "ImVector_ImWchar" +defs["structs"]["ImGuiIO"][90]["name"] = "AppFocusLost" +defs["structs"]["ImGuiIO"][90]["type"] = "bool" +defs["structs"]["ImGuiIO"][91] = {} +defs["structs"]["ImGuiIO"][91]["name"] = "InputQueueSurrogate" +defs["structs"]["ImGuiIO"][91]["type"] = "ImWchar16" +defs["structs"]["ImGuiIO"][92] = {} +defs["structs"]["ImGuiIO"][92]["name"] = "InputQueueCharacters" +defs["structs"]["ImGuiIO"][92]["template_type"] = "ImWchar" +defs["structs"]["ImGuiIO"][92]["type"] = "ImVector_ImWchar" defs["structs"]["ImGuiInputTextCallbackData"] = {} defs["structs"]["ImGuiInputTextCallbackData"][1] = {} defs["structs"]["ImGuiInputTextCallbackData"][1]["name"] = "EventFlag" @@ -4689,12 +4808,6 @@ defs["structs"]["ImGuiInputTextState"][14]["type"] = "bool" defs["structs"]["ImGuiInputTextState"][15] = {} defs["structs"]["ImGuiInputTextState"][15]["name"] = "Flags" defs["structs"]["ImGuiInputTextState"][15]["type"] = "ImGuiInputTextFlags" -defs["structs"]["ImGuiInputTextState"][16] = {} -defs["structs"]["ImGuiInputTextState"][16]["name"] = "UserCallback" -defs["structs"]["ImGuiInputTextState"][16]["type"] = "ImGuiInputTextCallback" -defs["structs"]["ImGuiInputTextState"][17] = {} -defs["structs"]["ImGuiInputTextState"][17]["name"] = "UserCallbackData" -defs["structs"]["ImGuiInputTextState"][17]["type"] = "void*" defs["structs"]["ImGuiLastItemData"] = {} defs["structs"]["ImGuiLastItemData"][1] = {} defs["structs"]["ImGuiLastItemData"][1]["name"] = "ID" @@ -4709,8 +4822,11 @@ defs["structs"]["ImGuiLastItemData"][4] = {} defs["structs"]["ImGuiLastItemData"][4]["name"] = "Rect" defs["structs"]["ImGuiLastItemData"][4]["type"] = "ImRect" defs["structs"]["ImGuiLastItemData"][5] = {} -defs["structs"]["ImGuiLastItemData"][5]["name"] = "DisplayRect" +defs["structs"]["ImGuiLastItemData"][5]["name"] = "NavRect" defs["structs"]["ImGuiLastItemData"][5]["type"] = "ImRect" +defs["structs"]["ImGuiLastItemData"][6] = {} +defs["structs"]["ImGuiLastItemData"][6]["name"] = "DisplayRect" +defs["structs"]["ImGuiLastItemData"][6]["type"] = "ImRect" defs["structs"]["ImGuiListClipper"] = {} defs["structs"]["ImGuiListClipper"][1] = {} defs["structs"]["ImGuiListClipper"][1]["name"] = "DisplayStart" @@ -4722,17 +4838,47 @@ defs["structs"]["ImGuiListClipper"][3] = {} defs["structs"]["ImGuiListClipper"][3]["name"] = "ItemsCount" defs["structs"]["ImGuiListClipper"][3]["type"] = "int" defs["structs"]["ImGuiListClipper"][4] = {} -defs["structs"]["ImGuiListClipper"][4]["name"] = "StepNo" -defs["structs"]["ImGuiListClipper"][4]["type"] = "int" +defs["structs"]["ImGuiListClipper"][4]["name"] = "ItemsHeight" +defs["structs"]["ImGuiListClipper"][4]["type"] = "float" defs["structs"]["ImGuiListClipper"][5] = {} -defs["structs"]["ImGuiListClipper"][5]["name"] = "ItemsFrozen" -defs["structs"]["ImGuiListClipper"][5]["type"] = "int" +defs["structs"]["ImGuiListClipper"][5]["name"] = "StartPosY" +defs["structs"]["ImGuiListClipper"][5]["type"] = "float" defs["structs"]["ImGuiListClipper"][6] = {} -defs["structs"]["ImGuiListClipper"][6]["name"] = "ItemsHeight" -defs["structs"]["ImGuiListClipper"][6]["type"] = "float" -defs["structs"]["ImGuiListClipper"][7] = {} -defs["structs"]["ImGuiListClipper"][7]["name"] = "StartPosY" -defs["structs"]["ImGuiListClipper"][7]["type"] = "float" +defs["structs"]["ImGuiListClipper"][6]["name"] = "TempData" +defs["structs"]["ImGuiListClipper"][6]["type"] = "void*" +defs["structs"]["ImGuiListClipperData"] = {} +defs["structs"]["ImGuiListClipperData"][1] = {} +defs["structs"]["ImGuiListClipperData"][1]["name"] = "ListClipper" +defs["structs"]["ImGuiListClipperData"][1]["type"] = "ImGuiListClipper*" +defs["structs"]["ImGuiListClipperData"][2] = {} +defs["structs"]["ImGuiListClipperData"][2]["name"] = "LossynessOffset" +defs["structs"]["ImGuiListClipperData"][2]["type"] = "float" +defs["structs"]["ImGuiListClipperData"][3] = {} +defs["structs"]["ImGuiListClipperData"][3]["name"] = "StepNo" +defs["structs"]["ImGuiListClipperData"][3]["type"] = "int" +defs["structs"]["ImGuiListClipperData"][4] = {} +defs["structs"]["ImGuiListClipperData"][4]["name"] = "ItemsFrozen" +defs["structs"]["ImGuiListClipperData"][4]["type"] = "int" +defs["structs"]["ImGuiListClipperData"][5] = {} +defs["structs"]["ImGuiListClipperData"][5]["name"] = "Ranges" +defs["structs"]["ImGuiListClipperData"][5]["template_type"] = "ImGuiListClipperRange" +defs["structs"]["ImGuiListClipperData"][5]["type"] = "ImVector_ImGuiListClipperRange" +defs["structs"]["ImGuiListClipperRange"] = {} +defs["structs"]["ImGuiListClipperRange"][1] = {} +defs["structs"]["ImGuiListClipperRange"][1]["name"] = "Min" +defs["structs"]["ImGuiListClipperRange"][1]["type"] = "int" +defs["structs"]["ImGuiListClipperRange"][2] = {} +defs["structs"]["ImGuiListClipperRange"][2]["name"] = "Max" +defs["structs"]["ImGuiListClipperRange"][2]["type"] = "int" +defs["structs"]["ImGuiListClipperRange"][3] = {} +defs["structs"]["ImGuiListClipperRange"][3]["name"] = "PosToIndexConvert" +defs["structs"]["ImGuiListClipperRange"][3]["type"] = "bool" +defs["structs"]["ImGuiListClipperRange"][4] = {} +defs["structs"]["ImGuiListClipperRange"][4]["name"] = "PosToIndexOffsetMin" +defs["structs"]["ImGuiListClipperRange"][4]["type"] = "ImS8" +defs["structs"]["ImGuiListClipperRange"][5] = {} +defs["structs"]["ImGuiListClipperRange"][5]["name"] = "PosToIndexOffsetMax" +defs["structs"]["ImGuiListClipperRange"][5]["type"] = "ImS8" defs["structs"]["ImGuiMenuColumns"] = {} defs["structs"]["ImGuiMenuColumns"][1] = {} defs["structs"]["ImGuiMenuColumns"][1]["name"] = "TotalWidth" @@ -4761,29 +4907,32 @@ defs["structs"]["ImGuiMenuColumns"][8]["size"] = 4 defs["structs"]["ImGuiMenuColumns"][8]["type"] = "ImU16" defs["structs"]["ImGuiMetricsConfig"] = {} defs["structs"]["ImGuiMetricsConfig"][1] = {} -defs["structs"]["ImGuiMetricsConfig"][1]["name"] = "ShowWindowsRects" +defs["structs"]["ImGuiMetricsConfig"][1]["name"] = "ShowStackTool" defs["structs"]["ImGuiMetricsConfig"][1]["type"] = "bool" defs["structs"]["ImGuiMetricsConfig"][2] = {} -defs["structs"]["ImGuiMetricsConfig"][2]["name"] = "ShowWindowsBeginOrder" +defs["structs"]["ImGuiMetricsConfig"][2]["name"] = "ShowWindowsRects" defs["structs"]["ImGuiMetricsConfig"][2]["type"] = "bool" defs["structs"]["ImGuiMetricsConfig"][3] = {} -defs["structs"]["ImGuiMetricsConfig"][3]["name"] = "ShowTablesRects" +defs["structs"]["ImGuiMetricsConfig"][3]["name"] = "ShowWindowsBeginOrder" defs["structs"]["ImGuiMetricsConfig"][3]["type"] = "bool" defs["structs"]["ImGuiMetricsConfig"][4] = {} -defs["structs"]["ImGuiMetricsConfig"][4]["name"] = "ShowDrawCmdMesh" +defs["structs"]["ImGuiMetricsConfig"][4]["name"] = "ShowTablesRects" defs["structs"]["ImGuiMetricsConfig"][4]["type"] = "bool" defs["structs"]["ImGuiMetricsConfig"][5] = {} -defs["structs"]["ImGuiMetricsConfig"][5]["name"] = "ShowDrawCmdBoundingBoxes" +defs["structs"]["ImGuiMetricsConfig"][5]["name"] = "ShowDrawCmdMesh" defs["structs"]["ImGuiMetricsConfig"][5]["type"] = "bool" defs["structs"]["ImGuiMetricsConfig"][6] = {} -defs["structs"]["ImGuiMetricsConfig"][6]["name"] = "ShowDockingNodes" +defs["structs"]["ImGuiMetricsConfig"][6]["name"] = "ShowDrawCmdBoundingBoxes" defs["structs"]["ImGuiMetricsConfig"][6]["type"] = "bool" defs["structs"]["ImGuiMetricsConfig"][7] = {} -defs["structs"]["ImGuiMetricsConfig"][7]["name"] = "ShowWindowsRectsType" -defs["structs"]["ImGuiMetricsConfig"][7]["type"] = "int" +defs["structs"]["ImGuiMetricsConfig"][7]["name"] = "ShowDockingNodes" +defs["structs"]["ImGuiMetricsConfig"][7]["type"] = "bool" defs["structs"]["ImGuiMetricsConfig"][8] = {} -defs["structs"]["ImGuiMetricsConfig"][8]["name"] = "ShowTablesRectsType" +defs["structs"]["ImGuiMetricsConfig"][8]["name"] = "ShowWindowsRectsType" defs["structs"]["ImGuiMetricsConfig"][8]["type"] = "int" +defs["structs"]["ImGuiMetricsConfig"][9] = {} +defs["structs"]["ImGuiMetricsConfig"][9]["name"] = "ShowTablesRectsType" +defs["structs"]["ImGuiMetricsConfig"][9]["type"] = "int" defs["structs"]["ImGuiNavItemData"] = {} defs["structs"]["ImGuiNavItemData"][1] = {} defs["structs"]["ImGuiNavItemData"][1]["name"] = "Window" @@ -4798,14 +4947,17 @@ defs["structs"]["ImGuiNavItemData"][4] = {} defs["structs"]["ImGuiNavItemData"][4]["name"] = "RectRel" defs["structs"]["ImGuiNavItemData"][4]["type"] = "ImRect" defs["structs"]["ImGuiNavItemData"][5] = {} -defs["structs"]["ImGuiNavItemData"][5]["name"] = "DistBox" -defs["structs"]["ImGuiNavItemData"][5]["type"] = "float" +defs["structs"]["ImGuiNavItemData"][5]["name"] = "InFlags" +defs["structs"]["ImGuiNavItemData"][5]["type"] = "ImGuiItemFlags" defs["structs"]["ImGuiNavItemData"][6] = {} -defs["structs"]["ImGuiNavItemData"][6]["name"] = "DistCenter" +defs["structs"]["ImGuiNavItemData"][6]["name"] = "DistBox" defs["structs"]["ImGuiNavItemData"][6]["type"] = "float" defs["structs"]["ImGuiNavItemData"][7] = {} -defs["structs"]["ImGuiNavItemData"][7]["name"] = "DistAxial" +defs["structs"]["ImGuiNavItemData"][7]["name"] = "DistCenter" defs["structs"]["ImGuiNavItemData"][7]["type"] = "float" +defs["structs"]["ImGuiNavItemData"][8] = {} +defs["structs"]["ImGuiNavItemData"][8]["name"] = "DistAxial" +defs["structs"]["ImGuiNavItemData"][8]["type"] = "float" defs["structs"]["ImGuiNextItemData"] = {} defs["structs"]["ImGuiNextItemData"][1] = {} defs["structs"]["ImGuiNextItemData"][1]["name"] = "Flags" @@ -5153,6 +5305,20 @@ defs["structs"]["ImGuiSizeCallbackData"][3]["type"] = "ImVec2" defs["structs"]["ImGuiSizeCallbackData"][4] = {} defs["structs"]["ImGuiSizeCallbackData"][4]["name"] = "DesiredSize" defs["structs"]["ImGuiSizeCallbackData"][4]["type"] = "ImVec2" +defs["structs"]["ImGuiStackLevelInfo"] = {} +defs["structs"]["ImGuiStackLevelInfo"][1] = {} +defs["structs"]["ImGuiStackLevelInfo"][1]["name"] = "ID" +defs["structs"]["ImGuiStackLevelInfo"][1]["type"] = "ImGuiID" +defs["structs"]["ImGuiStackLevelInfo"][2] = {} +defs["structs"]["ImGuiStackLevelInfo"][2]["name"] = "QueryFrameCount" +defs["structs"]["ImGuiStackLevelInfo"][2]["type"] = "ImS8" +defs["structs"]["ImGuiStackLevelInfo"][3] = {} +defs["structs"]["ImGuiStackLevelInfo"][3]["name"] = "QuerySuccess" +defs["structs"]["ImGuiStackLevelInfo"][3]["type"] = "bool" +defs["structs"]["ImGuiStackLevelInfo"][4] = {} +defs["structs"]["ImGuiStackLevelInfo"][4]["name"] = "Desc[58]" +defs["structs"]["ImGuiStackLevelInfo"][4]["size"] = 58 +defs["structs"]["ImGuiStackLevelInfo"][4]["type"] = "char" defs["structs"]["ImGuiStackSizes"] = {} defs["structs"]["ImGuiStackSizes"][1] = {} defs["structs"]["ImGuiStackSizes"][1]["name"] = "SizeOfIDStack" @@ -5173,8 +5339,28 @@ defs["structs"]["ImGuiStackSizes"][6] = {} defs["structs"]["ImGuiStackSizes"][6]["name"] = "SizeOfGroupStack" defs["structs"]["ImGuiStackSizes"][6]["type"] = "short" defs["structs"]["ImGuiStackSizes"][7] = {} -defs["structs"]["ImGuiStackSizes"][7]["name"] = "SizeOfBeginPopupStack" +defs["structs"]["ImGuiStackSizes"][7]["name"] = "SizeOfItemFlagsStack" defs["structs"]["ImGuiStackSizes"][7]["type"] = "short" +defs["structs"]["ImGuiStackSizes"][8] = {} +defs["structs"]["ImGuiStackSizes"][8]["name"] = "SizeOfBeginPopupStack" +defs["structs"]["ImGuiStackSizes"][8]["type"] = "short" +defs["structs"]["ImGuiStackSizes"][9] = {} +defs["structs"]["ImGuiStackSizes"][9]["name"] = "SizeOfDisabledStack" +defs["structs"]["ImGuiStackSizes"][9]["type"] = "short" +defs["structs"]["ImGuiStackTool"] = {} +defs["structs"]["ImGuiStackTool"][1] = {} +defs["structs"]["ImGuiStackTool"][1]["name"] = "LastActiveFrame" +defs["structs"]["ImGuiStackTool"][1]["type"] = "int" +defs["structs"]["ImGuiStackTool"][2] = {} +defs["structs"]["ImGuiStackTool"][2]["name"] = "StackLevel" +defs["structs"]["ImGuiStackTool"][2]["type"] = "int" +defs["structs"]["ImGuiStackTool"][3] = {} +defs["structs"]["ImGuiStackTool"][3]["name"] = "QueryId" +defs["structs"]["ImGuiStackTool"][3]["type"] = "ImGuiID" +defs["structs"]["ImGuiStackTool"][4] = {} +defs["structs"]["ImGuiStackTool"][4]["name"] = "Results" +defs["structs"]["ImGuiStackTool"][4]["template_type"] = "ImGuiStackLevelInfo" +defs["structs"]["ImGuiStackTool"][4]["type"] = "ImVector_ImGuiStackLevelInfo" defs["structs"]["ImGuiStorage"] = {} defs["structs"]["ImGuiStorage"][1] = {} defs["structs"]["ImGuiStorage"][1]["name"] = "Data" @@ -6271,215 +6457,224 @@ defs["structs"]["ImGuiWindow"][39] = {} defs["structs"]["ImGuiWindow"][39]["name"] = "IsFallbackWindow" defs["structs"]["ImGuiWindow"][39]["type"] = "bool" defs["structs"]["ImGuiWindow"][40] = {} -defs["structs"]["ImGuiWindow"][40]["name"] = "HasCloseButton" +defs["structs"]["ImGuiWindow"][40]["name"] = "IsExplicitChild" defs["structs"]["ImGuiWindow"][40]["type"] = "bool" defs["structs"]["ImGuiWindow"][41] = {} -defs["structs"]["ImGuiWindow"][41]["name"] = "ResizeBorderHeld" -defs["structs"]["ImGuiWindow"][41]["type"] = "signed char" +defs["structs"]["ImGuiWindow"][41]["name"] = "HasCloseButton" +defs["structs"]["ImGuiWindow"][41]["type"] = "bool" defs["structs"]["ImGuiWindow"][42] = {} -defs["structs"]["ImGuiWindow"][42]["name"] = "BeginCount" -defs["structs"]["ImGuiWindow"][42]["type"] = "short" +defs["structs"]["ImGuiWindow"][42]["name"] = "ResizeBorderHeld" +defs["structs"]["ImGuiWindow"][42]["type"] = "signed char" defs["structs"]["ImGuiWindow"][43] = {} -defs["structs"]["ImGuiWindow"][43]["name"] = "BeginOrderWithinParent" +defs["structs"]["ImGuiWindow"][43]["name"] = "BeginCount" defs["structs"]["ImGuiWindow"][43]["type"] = "short" defs["structs"]["ImGuiWindow"][44] = {} -defs["structs"]["ImGuiWindow"][44]["name"] = "BeginOrderWithinContext" +defs["structs"]["ImGuiWindow"][44]["name"] = "BeginOrderWithinParent" defs["structs"]["ImGuiWindow"][44]["type"] = "short" defs["structs"]["ImGuiWindow"][45] = {} -defs["structs"]["ImGuiWindow"][45]["name"] = "FocusOrder" +defs["structs"]["ImGuiWindow"][45]["name"] = "BeginOrderWithinContext" defs["structs"]["ImGuiWindow"][45]["type"] = "short" defs["structs"]["ImGuiWindow"][46] = {} -defs["structs"]["ImGuiWindow"][46]["name"] = "PopupId" -defs["structs"]["ImGuiWindow"][46]["type"] = "ImGuiID" +defs["structs"]["ImGuiWindow"][46]["name"] = "FocusOrder" +defs["structs"]["ImGuiWindow"][46]["type"] = "short" defs["structs"]["ImGuiWindow"][47] = {} -defs["structs"]["ImGuiWindow"][47]["name"] = "AutoFitFramesX" -defs["structs"]["ImGuiWindow"][47]["type"] = "ImS8" +defs["structs"]["ImGuiWindow"][47]["name"] = "PopupId" +defs["structs"]["ImGuiWindow"][47]["type"] = "ImGuiID" defs["structs"]["ImGuiWindow"][48] = {} -defs["structs"]["ImGuiWindow"][48]["name"] = "AutoFitFramesY" +defs["structs"]["ImGuiWindow"][48]["name"] = "AutoFitFramesX" defs["structs"]["ImGuiWindow"][48]["type"] = "ImS8" defs["structs"]["ImGuiWindow"][49] = {} -defs["structs"]["ImGuiWindow"][49]["name"] = "AutoFitChildAxises" +defs["structs"]["ImGuiWindow"][49]["name"] = "AutoFitFramesY" defs["structs"]["ImGuiWindow"][49]["type"] = "ImS8" defs["structs"]["ImGuiWindow"][50] = {} -defs["structs"]["ImGuiWindow"][50]["name"] = "AutoFitOnlyGrows" -defs["structs"]["ImGuiWindow"][50]["type"] = "bool" +defs["structs"]["ImGuiWindow"][50]["name"] = "AutoFitChildAxises" +defs["structs"]["ImGuiWindow"][50]["type"] = "ImS8" defs["structs"]["ImGuiWindow"][51] = {} -defs["structs"]["ImGuiWindow"][51]["name"] = "AutoPosLastDirection" -defs["structs"]["ImGuiWindow"][51]["type"] = "ImGuiDir" +defs["structs"]["ImGuiWindow"][51]["name"] = "AutoFitOnlyGrows" +defs["structs"]["ImGuiWindow"][51]["type"] = "bool" defs["structs"]["ImGuiWindow"][52] = {} -defs["structs"]["ImGuiWindow"][52]["name"] = "HiddenFramesCanSkipItems" -defs["structs"]["ImGuiWindow"][52]["type"] = "ImS8" +defs["structs"]["ImGuiWindow"][52]["name"] = "AutoPosLastDirection" +defs["structs"]["ImGuiWindow"][52]["type"] = "ImGuiDir" defs["structs"]["ImGuiWindow"][53] = {} -defs["structs"]["ImGuiWindow"][53]["name"] = "HiddenFramesCannotSkipItems" +defs["structs"]["ImGuiWindow"][53]["name"] = "HiddenFramesCanSkipItems" defs["structs"]["ImGuiWindow"][53]["type"] = "ImS8" defs["structs"]["ImGuiWindow"][54] = {} -defs["structs"]["ImGuiWindow"][54]["name"] = "HiddenFramesForRenderOnly" +defs["structs"]["ImGuiWindow"][54]["name"] = "HiddenFramesCannotSkipItems" defs["structs"]["ImGuiWindow"][54]["type"] = "ImS8" defs["structs"]["ImGuiWindow"][55] = {} -defs["structs"]["ImGuiWindow"][55]["name"] = "DisableInputsFrames" +defs["structs"]["ImGuiWindow"][55]["name"] = "HiddenFramesForRenderOnly" defs["structs"]["ImGuiWindow"][55]["type"] = "ImS8" defs["structs"]["ImGuiWindow"][56] = {} -defs["structs"]["ImGuiWindow"][56]["bitfield"] = "8" -defs["structs"]["ImGuiWindow"][56]["name"] = "SetWindowPosAllowFlags" -defs["structs"]["ImGuiWindow"][56]["type"] = "ImGuiCond" +defs["structs"]["ImGuiWindow"][56]["name"] = "DisableInputsFrames" +defs["structs"]["ImGuiWindow"][56]["type"] = "ImS8" defs["structs"]["ImGuiWindow"][57] = {} defs["structs"]["ImGuiWindow"][57]["bitfield"] = "8" -defs["structs"]["ImGuiWindow"][57]["name"] = "SetWindowSizeAllowFlags" +defs["structs"]["ImGuiWindow"][57]["name"] = "SetWindowPosAllowFlags" defs["structs"]["ImGuiWindow"][57]["type"] = "ImGuiCond" defs["structs"]["ImGuiWindow"][58] = {} defs["structs"]["ImGuiWindow"][58]["bitfield"] = "8" -defs["structs"]["ImGuiWindow"][58]["name"] = "SetWindowCollapsedAllowFlags" +defs["structs"]["ImGuiWindow"][58]["name"] = "SetWindowSizeAllowFlags" defs["structs"]["ImGuiWindow"][58]["type"] = "ImGuiCond" defs["structs"]["ImGuiWindow"][59] = {} defs["structs"]["ImGuiWindow"][59]["bitfield"] = "8" -defs["structs"]["ImGuiWindow"][59]["name"] = "SetWindowDockAllowFlags" +defs["structs"]["ImGuiWindow"][59]["name"] = "SetWindowCollapsedAllowFlags" defs["structs"]["ImGuiWindow"][59]["type"] = "ImGuiCond" defs["structs"]["ImGuiWindow"][60] = {} -defs["structs"]["ImGuiWindow"][60]["name"] = "SetWindowPosVal" -defs["structs"]["ImGuiWindow"][60]["type"] = "ImVec2" +defs["structs"]["ImGuiWindow"][60]["bitfield"] = "8" +defs["structs"]["ImGuiWindow"][60]["name"] = "SetWindowDockAllowFlags" +defs["structs"]["ImGuiWindow"][60]["type"] = "ImGuiCond" defs["structs"]["ImGuiWindow"][61] = {} -defs["structs"]["ImGuiWindow"][61]["name"] = "SetWindowPosPivot" +defs["structs"]["ImGuiWindow"][61]["name"] = "SetWindowPosVal" defs["structs"]["ImGuiWindow"][61]["type"] = "ImVec2" defs["structs"]["ImGuiWindow"][62] = {} -defs["structs"]["ImGuiWindow"][62]["name"] = "IDStack" -defs["structs"]["ImGuiWindow"][62]["template_type"] = "ImGuiID" -defs["structs"]["ImGuiWindow"][62]["type"] = "ImVector_ImGuiID" +defs["structs"]["ImGuiWindow"][62]["name"] = "SetWindowPosPivot" +defs["structs"]["ImGuiWindow"][62]["type"] = "ImVec2" defs["structs"]["ImGuiWindow"][63] = {} -defs["structs"]["ImGuiWindow"][63]["name"] = "DC" -defs["structs"]["ImGuiWindow"][63]["type"] = "ImGuiWindowTempData" +defs["structs"]["ImGuiWindow"][63]["name"] = "IDStack" +defs["structs"]["ImGuiWindow"][63]["template_type"] = "ImGuiID" +defs["structs"]["ImGuiWindow"][63]["type"] = "ImVector_ImGuiID" defs["structs"]["ImGuiWindow"][64] = {} -defs["structs"]["ImGuiWindow"][64]["name"] = "OuterRectClipped" -defs["structs"]["ImGuiWindow"][64]["type"] = "ImRect" +defs["structs"]["ImGuiWindow"][64]["name"] = "DC" +defs["structs"]["ImGuiWindow"][64]["type"] = "ImGuiWindowTempData" defs["structs"]["ImGuiWindow"][65] = {} -defs["structs"]["ImGuiWindow"][65]["name"] = "InnerRect" +defs["structs"]["ImGuiWindow"][65]["name"] = "OuterRectClipped" defs["structs"]["ImGuiWindow"][65]["type"] = "ImRect" defs["structs"]["ImGuiWindow"][66] = {} -defs["structs"]["ImGuiWindow"][66]["name"] = "InnerClipRect" +defs["structs"]["ImGuiWindow"][66]["name"] = "InnerRect" defs["structs"]["ImGuiWindow"][66]["type"] = "ImRect" defs["structs"]["ImGuiWindow"][67] = {} -defs["structs"]["ImGuiWindow"][67]["name"] = "WorkRect" +defs["structs"]["ImGuiWindow"][67]["name"] = "InnerClipRect" defs["structs"]["ImGuiWindow"][67]["type"] = "ImRect" defs["structs"]["ImGuiWindow"][68] = {} -defs["structs"]["ImGuiWindow"][68]["name"] = "ParentWorkRect" +defs["structs"]["ImGuiWindow"][68]["name"] = "WorkRect" defs["structs"]["ImGuiWindow"][68]["type"] = "ImRect" defs["structs"]["ImGuiWindow"][69] = {} -defs["structs"]["ImGuiWindow"][69]["name"] = "ClipRect" +defs["structs"]["ImGuiWindow"][69]["name"] = "ParentWorkRect" defs["structs"]["ImGuiWindow"][69]["type"] = "ImRect" defs["structs"]["ImGuiWindow"][70] = {} -defs["structs"]["ImGuiWindow"][70]["name"] = "ContentRegionRect" +defs["structs"]["ImGuiWindow"][70]["name"] = "ClipRect" defs["structs"]["ImGuiWindow"][70]["type"] = "ImRect" defs["structs"]["ImGuiWindow"][71] = {} -defs["structs"]["ImGuiWindow"][71]["name"] = "HitTestHoleSize" -defs["structs"]["ImGuiWindow"][71]["type"] = "ImVec2ih" +defs["structs"]["ImGuiWindow"][71]["name"] = "ContentRegionRect" +defs["structs"]["ImGuiWindow"][71]["type"] = "ImRect" defs["structs"]["ImGuiWindow"][72] = {} -defs["structs"]["ImGuiWindow"][72]["name"] = "HitTestHoleOffset" +defs["structs"]["ImGuiWindow"][72]["name"] = "HitTestHoleSize" defs["structs"]["ImGuiWindow"][72]["type"] = "ImVec2ih" defs["structs"]["ImGuiWindow"][73] = {} -defs["structs"]["ImGuiWindow"][73]["name"] = "LastFrameActive" -defs["structs"]["ImGuiWindow"][73]["type"] = "int" +defs["structs"]["ImGuiWindow"][73]["name"] = "HitTestHoleOffset" +defs["structs"]["ImGuiWindow"][73]["type"] = "ImVec2ih" defs["structs"]["ImGuiWindow"][74] = {} -defs["structs"]["ImGuiWindow"][74]["name"] = "LastFrameJustFocused" +defs["structs"]["ImGuiWindow"][74]["name"] = "LastFrameActive" defs["structs"]["ImGuiWindow"][74]["type"] = "int" defs["structs"]["ImGuiWindow"][75] = {} -defs["structs"]["ImGuiWindow"][75]["name"] = "LastTimeActive" -defs["structs"]["ImGuiWindow"][75]["type"] = "float" +defs["structs"]["ImGuiWindow"][75]["name"] = "LastFrameJustFocused" +defs["structs"]["ImGuiWindow"][75]["type"] = "int" defs["structs"]["ImGuiWindow"][76] = {} -defs["structs"]["ImGuiWindow"][76]["name"] = "ItemWidthDefault" +defs["structs"]["ImGuiWindow"][76]["name"] = "LastTimeActive" defs["structs"]["ImGuiWindow"][76]["type"] = "float" defs["structs"]["ImGuiWindow"][77] = {} -defs["structs"]["ImGuiWindow"][77]["name"] = "StateStorage" -defs["structs"]["ImGuiWindow"][77]["type"] = "ImGuiStorage" +defs["structs"]["ImGuiWindow"][77]["name"] = "ItemWidthDefault" +defs["structs"]["ImGuiWindow"][77]["type"] = "float" defs["structs"]["ImGuiWindow"][78] = {} -defs["structs"]["ImGuiWindow"][78]["name"] = "ColumnsStorage" -defs["structs"]["ImGuiWindow"][78]["template_type"] = "ImGuiOldColumns" -defs["structs"]["ImGuiWindow"][78]["type"] = "ImVector_ImGuiOldColumns" +defs["structs"]["ImGuiWindow"][78]["name"] = "StateStorage" +defs["structs"]["ImGuiWindow"][78]["type"] = "ImGuiStorage" defs["structs"]["ImGuiWindow"][79] = {} -defs["structs"]["ImGuiWindow"][79]["name"] = "FontWindowScale" -defs["structs"]["ImGuiWindow"][79]["type"] = "float" +defs["structs"]["ImGuiWindow"][79]["name"] = "ColumnsStorage" +defs["structs"]["ImGuiWindow"][79]["template_type"] = "ImGuiOldColumns" +defs["structs"]["ImGuiWindow"][79]["type"] = "ImVector_ImGuiOldColumns" defs["structs"]["ImGuiWindow"][80] = {} -defs["structs"]["ImGuiWindow"][80]["name"] = "FontDpiScale" +defs["structs"]["ImGuiWindow"][80]["name"] = "FontWindowScale" defs["structs"]["ImGuiWindow"][80]["type"] = "float" defs["structs"]["ImGuiWindow"][81] = {} -defs["structs"]["ImGuiWindow"][81]["name"] = "SettingsOffset" -defs["structs"]["ImGuiWindow"][81]["type"] = "int" +defs["structs"]["ImGuiWindow"][81]["name"] = "FontDpiScale" +defs["structs"]["ImGuiWindow"][81]["type"] = "float" defs["structs"]["ImGuiWindow"][82] = {} -defs["structs"]["ImGuiWindow"][82]["name"] = "DrawList" -defs["structs"]["ImGuiWindow"][82]["type"] = "ImDrawList*" +defs["structs"]["ImGuiWindow"][82]["name"] = "SettingsOffset" +defs["structs"]["ImGuiWindow"][82]["type"] = "int" defs["structs"]["ImGuiWindow"][83] = {} -defs["structs"]["ImGuiWindow"][83]["name"] = "DrawListInst" -defs["structs"]["ImGuiWindow"][83]["type"] = "ImDrawList" +defs["structs"]["ImGuiWindow"][83]["name"] = "DrawList" +defs["structs"]["ImGuiWindow"][83]["type"] = "ImDrawList*" defs["structs"]["ImGuiWindow"][84] = {} -defs["structs"]["ImGuiWindow"][84]["name"] = "ParentWindow" -defs["structs"]["ImGuiWindow"][84]["type"] = "ImGuiWindow*" +defs["structs"]["ImGuiWindow"][84]["name"] = "DrawListInst" +defs["structs"]["ImGuiWindow"][84]["type"] = "ImDrawList" defs["structs"]["ImGuiWindow"][85] = {} -defs["structs"]["ImGuiWindow"][85]["name"] = "RootWindow" +defs["structs"]["ImGuiWindow"][85]["name"] = "ParentWindow" defs["structs"]["ImGuiWindow"][85]["type"] = "ImGuiWindow*" defs["structs"]["ImGuiWindow"][86] = {} -defs["structs"]["ImGuiWindow"][86]["name"] = "RootWindowDockTree" +defs["structs"]["ImGuiWindow"][86]["name"] = "ParentWindowInBeginStack" defs["structs"]["ImGuiWindow"][86]["type"] = "ImGuiWindow*" defs["structs"]["ImGuiWindow"][87] = {} -defs["structs"]["ImGuiWindow"][87]["name"] = "RootWindowForTitleBarHighlight" +defs["structs"]["ImGuiWindow"][87]["name"] = "RootWindow" defs["structs"]["ImGuiWindow"][87]["type"] = "ImGuiWindow*" defs["structs"]["ImGuiWindow"][88] = {} -defs["structs"]["ImGuiWindow"][88]["name"] = "RootWindowForNav" +defs["structs"]["ImGuiWindow"][88]["name"] = "RootWindowPopupTree" defs["structs"]["ImGuiWindow"][88]["type"] = "ImGuiWindow*" defs["structs"]["ImGuiWindow"][89] = {} -defs["structs"]["ImGuiWindow"][89]["name"] = "NavLastChildNavWindow" +defs["structs"]["ImGuiWindow"][89]["name"] = "RootWindowDockTree" defs["structs"]["ImGuiWindow"][89]["type"] = "ImGuiWindow*" defs["structs"]["ImGuiWindow"][90] = {} -defs["structs"]["ImGuiWindow"][90]["name"] = "NavLastIds[ImGuiNavLayer_COUNT]" -defs["structs"]["ImGuiWindow"][90]["size"] = 2 -defs["structs"]["ImGuiWindow"][90]["type"] = "ImGuiID" +defs["structs"]["ImGuiWindow"][90]["name"] = "RootWindowForTitleBarHighlight" +defs["structs"]["ImGuiWindow"][90]["type"] = "ImGuiWindow*" defs["structs"]["ImGuiWindow"][91] = {} -defs["structs"]["ImGuiWindow"][91]["name"] = "NavRectRel[ImGuiNavLayer_COUNT]" -defs["structs"]["ImGuiWindow"][91]["size"] = 2 -defs["structs"]["ImGuiWindow"][91]["type"] = "ImRect" +defs["structs"]["ImGuiWindow"][91]["name"] = "RootWindowForNav" +defs["structs"]["ImGuiWindow"][91]["type"] = "ImGuiWindow*" defs["structs"]["ImGuiWindow"][92] = {} -defs["structs"]["ImGuiWindow"][92]["name"] = "MemoryDrawListIdxCapacity" -defs["structs"]["ImGuiWindow"][92]["type"] = "int" +defs["structs"]["ImGuiWindow"][92]["name"] = "NavLastChildNavWindow" +defs["structs"]["ImGuiWindow"][92]["type"] = "ImGuiWindow*" defs["structs"]["ImGuiWindow"][93] = {} -defs["structs"]["ImGuiWindow"][93]["name"] = "MemoryDrawListVtxCapacity" -defs["structs"]["ImGuiWindow"][93]["type"] = "int" +defs["structs"]["ImGuiWindow"][93]["name"] = "NavLastIds[ImGuiNavLayer_COUNT]" +defs["structs"]["ImGuiWindow"][93]["size"] = 2 +defs["structs"]["ImGuiWindow"][93]["type"] = "ImGuiID" defs["structs"]["ImGuiWindow"][94] = {} -defs["structs"]["ImGuiWindow"][94]["name"] = "MemoryCompacted" -defs["structs"]["ImGuiWindow"][94]["type"] = "bool" +defs["structs"]["ImGuiWindow"][94]["name"] = "NavRectRel[ImGuiNavLayer_COUNT]" +defs["structs"]["ImGuiWindow"][94]["size"] = 2 +defs["structs"]["ImGuiWindow"][94]["type"] = "ImRect" defs["structs"]["ImGuiWindow"][95] = {} -defs["structs"]["ImGuiWindow"][95]["bitfield"] = "1" -defs["structs"]["ImGuiWindow"][95]["name"] = "DockIsActive" -defs["structs"]["ImGuiWindow"][95]["type"] = "bool" +defs["structs"]["ImGuiWindow"][95]["name"] = "MemoryDrawListIdxCapacity" +defs["structs"]["ImGuiWindow"][95]["type"] = "int" defs["structs"]["ImGuiWindow"][96] = {} -defs["structs"]["ImGuiWindow"][96]["bitfield"] = "1" -defs["structs"]["ImGuiWindow"][96]["name"] = "DockNodeIsVisible" -defs["structs"]["ImGuiWindow"][96]["type"] = "bool" +defs["structs"]["ImGuiWindow"][96]["name"] = "MemoryDrawListVtxCapacity" +defs["structs"]["ImGuiWindow"][96]["type"] = "int" defs["structs"]["ImGuiWindow"][97] = {} -defs["structs"]["ImGuiWindow"][97]["bitfield"] = "1" -defs["structs"]["ImGuiWindow"][97]["name"] = "DockTabIsVisible" +defs["structs"]["ImGuiWindow"][97]["name"] = "MemoryCompacted" defs["structs"]["ImGuiWindow"][97]["type"] = "bool" defs["structs"]["ImGuiWindow"][98] = {} defs["structs"]["ImGuiWindow"][98]["bitfield"] = "1" -defs["structs"]["ImGuiWindow"][98]["name"] = "DockTabWantClose" +defs["structs"]["ImGuiWindow"][98]["name"] = "DockIsActive" defs["structs"]["ImGuiWindow"][98]["type"] = "bool" defs["structs"]["ImGuiWindow"][99] = {} -defs["structs"]["ImGuiWindow"][99]["name"] = "DockOrder" -defs["structs"]["ImGuiWindow"][99]["type"] = "short" +defs["structs"]["ImGuiWindow"][99]["bitfield"] = "1" +defs["structs"]["ImGuiWindow"][99]["name"] = "DockNodeIsVisible" +defs["structs"]["ImGuiWindow"][99]["type"] = "bool" defs["structs"]["ImGuiWindow"][100] = {} -defs["structs"]["ImGuiWindow"][100]["name"] = "DockStyle" -defs["structs"]["ImGuiWindow"][100]["type"] = "ImGuiWindowDockStyle" +defs["structs"]["ImGuiWindow"][100]["bitfield"] = "1" +defs["structs"]["ImGuiWindow"][100]["name"] = "DockTabIsVisible" +defs["structs"]["ImGuiWindow"][100]["type"] = "bool" defs["structs"]["ImGuiWindow"][101] = {} -defs["structs"]["ImGuiWindow"][101]["name"] = "DockNode" -defs["structs"]["ImGuiWindow"][101]["type"] = "ImGuiDockNode*" +defs["structs"]["ImGuiWindow"][101]["bitfield"] = "1" +defs["structs"]["ImGuiWindow"][101]["name"] = "DockTabWantClose" +defs["structs"]["ImGuiWindow"][101]["type"] = "bool" defs["structs"]["ImGuiWindow"][102] = {} -defs["structs"]["ImGuiWindow"][102]["name"] = "DockNodeAsHost" -defs["structs"]["ImGuiWindow"][102]["type"] = "ImGuiDockNode*" +defs["structs"]["ImGuiWindow"][102]["name"] = "DockOrder" +defs["structs"]["ImGuiWindow"][102]["type"] = "short" defs["structs"]["ImGuiWindow"][103] = {} -defs["structs"]["ImGuiWindow"][103]["name"] = "DockId" -defs["structs"]["ImGuiWindow"][103]["type"] = "ImGuiID" +defs["structs"]["ImGuiWindow"][103]["name"] = "DockStyle" +defs["structs"]["ImGuiWindow"][103]["type"] = "ImGuiWindowDockStyle" defs["structs"]["ImGuiWindow"][104] = {} -defs["structs"]["ImGuiWindow"][104]["name"] = "DockTabItemStatusFlags" -defs["structs"]["ImGuiWindow"][104]["type"] = "ImGuiItemStatusFlags" +defs["structs"]["ImGuiWindow"][104]["name"] = "DockNode" +defs["structs"]["ImGuiWindow"][104]["type"] = "ImGuiDockNode*" defs["structs"]["ImGuiWindow"][105] = {} -defs["structs"]["ImGuiWindow"][105]["name"] = "DockTabItemRect" -defs["structs"]["ImGuiWindow"][105]["type"] = "ImRect" +defs["structs"]["ImGuiWindow"][105]["name"] = "DockNodeAsHost" +defs["structs"]["ImGuiWindow"][105]["type"] = "ImGuiDockNode*" +defs["structs"]["ImGuiWindow"][106] = {} +defs["structs"]["ImGuiWindow"][106]["name"] = "DockId" +defs["structs"]["ImGuiWindow"][106]["type"] = "ImGuiID" +defs["structs"]["ImGuiWindow"][107] = {} +defs["structs"]["ImGuiWindow"][107]["name"] = "DockTabItemStatusFlags" +defs["structs"]["ImGuiWindow"][107]["type"] = "ImGuiItemStatusFlags" +defs["structs"]["ImGuiWindow"][108] = {} +defs["structs"]["ImGuiWindow"][108]["name"] = "DockTabItemRect" +defs["structs"]["ImGuiWindow"][108]["type"] = "ImRect" defs["structs"]["ImGuiWindowClass"] = {} defs["structs"]["ImGuiWindowClass"][1] = {} defs["structs"]["ImGuiWindowClass"][1]["name"] = "ClassId" @@ -6548,6 +6743,9 @@ defs["structs"]["ImGuiWindowStackData"][1]["type"] = "ImGuiWindow*" defs["structs"]["ImGuiWindowStackData"][2] = {} defs["structs"]["ImGuiWindowStackData"][2]["name"] = "ParentLastItemDataBackup" defs["structs"]["ImGuiWindowStackData"][2]["type"] = "ImGuiLastItemData" +defs["structs"]["ImGuiWindowStackData"][3] = {} +defs["structs"]["ImGuiWindowStackData"][3]["name"] = "StackSizesOnBegin" +defs["structs"]["ImGuiWindowStackData"][3]["type"] = "ImGuiStackSizes" defs["structs"]["ImGuiWindowTempData"] = {} defs["structs"]["ImGuiWindowTempData"][1] = {} defs["structs"]["ImGuiWindowTempData"][1]["name"] = "CursorPos" @@ -6586,80 +6784,74 @@ defs["structs"]["ImGuiWindowTempData"][12] = {} defs["structs"]["ImGuiWindowTempData"][12]["name"] = "GroupOffset" defs["structs"]["ImGuiWindowTempData"][12]["type"] = "ImVec1" defs["structs"]["ImGuiWindowTempData"][13] = {} -defs["structs"]["ImGuiWindowTempData"][13]["name"] = "NavLayerCurrent" -defs["structs"]["ImGuiWindowTempData"][13]["type"] = "ImGuiNavLayer" +defs["structs"]["ImGuiWindowTempData"][13]["name"] = "CursorStartPosLossyness" +defs["structs"]["ImGuiWindowTempData"][13]["type"] = "ImVec2" defs["structs"]["ImGuiWindowTempData"][14] = {} -defs["structs"]["ImGuiWindowTempData"][14]["name"] = "NavLayersActiveMask" -defs["structs"]["ImGuiWindowTempData"][14]["type"] = "short" +defs["structs"]["ImGuiWindowTempData"][14]["name"] = "NavLayerCurrent" +defs["structs"]["ImGuiWindowTempData"][14]["type"] = "ImGuiNavLayer" defs["structs"]["ImGuiWindowTempData"][15] = {} -defs["structs"]["ImGuiWindowTempData"][15]["name"] = "NavLayersActiveMaskNext" +defs["structs"]["ImGuiWindowTempData"][15]["name"] = "NavLayersActiveMask" defs["structs"]["ImGuiWindowTempData"][15]["type"] = "short" defs["structs"]["ImGuiWindowTempData"][16] = {} -defs["structs"]["ImGuiWindowTempData"][16]["name"] = "NavFocusScopeIdCurrent" -defs["structs"]["ImGuiWindowTempData"][16]["type"] = "ImGuiID" +defs["structs"]["ImGuiWindowTempData"][16]["name"] = "NavLayersActiveMaskNext" +defs["structs"]["ImGuiWindowTempData"][16]["type"] = "short" defs["structs"]["ImGuiWindowTempData"][17] = {} -defs["structs"]["ImGuiWindowTempData"][17]["name"] = "NavHideHighlightOneFrame" -defs["structs"]["ImGuiWindowTempData"][17]["type"] = "bool" +defs["structs"]["ImGuiWindowTempData"][17]["name"] = "NavFocusScopeIdCurrent" +defs["structs"]["ImGuiWindowTempData"][17]["type"] = "ImGuiID" defs["structs"]["ImGuiWindowTempData"][18] = {} -defs["structs"]["ImGuiWindowTempData"][18]["name"] = "NavHasScroll" +defs["structs"]["ImGuiWindowTempData"][18]["name"] = "NavHideHighlightOneFrame" defs["structs"]["ImGuiWindowTempData"][18]["type"] = "bool" defs["structs"]["ImGuiWindowTempData"][19] = {} -defs["structs"]["ImGuiWindowTempData"][19]["name"] = "MenuBarAppending" +defs["structs"]["ImGuiWindowTempData"][19]["name"] = "NavHasScroll" defs["structs"]["ImGuiWindowTempData"][19]["type"] = "bool" defs["structs"]["ImGuiWindowTempData"][20] = {} -defs["structs"]["ImGuiWindowTempData"][20]["name"] = "MenuBarOffset" -defs["structs"]["ImGuiWindowTempData"][20]["type"] = "ImVec2" +defs["structs"]["ImGuiWindowTempData"][20]["name"] = "MenuBarAppending" +defs["structs"]["ImGuiWindowTempData"][20]["type"] = "bool" defs["structs"]["ImGuiWindowTempData"][21] = {} -defs["structs"]["ImGuiWindowTempData"][21]["name"] = "MenuColumns" -defs["structs"]["ImGuiWindowTempData"][21]["type"] = "ImGuiMenuColumns" +defs["structs"]["ImGuiWindowTempData"][21]["name"] = "MenuBarOffset" +defs["structs"]["ImGuiWindowTempData"][21]["type"] = "ImVec2" defs["structs"]["ImGuiWindowTempData"][22] = {} -defs["structs"]["ImGuiWindowTempData"][22]["name"] = "TreeDepth" -defs["structs"]["ImGuiWindowTempData"][22]["type"] = "int" +defs["structs"]["ImGuiWindowTempData"][22]["name"] = "MenuColumns" +defs["structs"]["ImGuiWindowTempData"][22]["type"] = "ImGuiMenuColumns" defs["structs"]["ImGuiWindowTempData"][23] = {} -defs["structs"]["ImGuiWindowTempData"][23]["name"] = "TreeJumpToParentOnPopMask" -defs["structs"]["ImGuiWindowTempData"][23]["type"] = "ImU32" +defs["structs"]["ImGuiWindowTempData"][23]["name"] = "TreeDepth" +defs["structs"]["ImGuiWindowTempData"][23]["type"] = "int" defs["structs"]["ImGuiWindowTempData"][24] = {} -defs["structs"]["ImGuiWindowTempData"][24]["name"] = "ChildWindows" -defs["structs"]["ImGuiWindowTempData"][24]["template_type"] = "ImGuiWindow*" -defs["structs"]["ImGuiWindowTempData"][24]["type"] = "ImVector_ImGuiWindowPtr" +defs["structs"]["ImGuiWindowTempData"][24]["name"] = "TreeJumpToParentOnPopMask" +defs["structs"]["ImGuiWindowTempData"][24]["type"] = "ImU32" defs["structs"]["ImGuiWindowTempData"][25] = {} -defs["structs"]["ImGuiWindowTempData"][25]["name"] = "StateStorage" -defs["structs"]["ImGuiWindowTempData"][25]["type"] = "ImGuiStorage*" +defs["structs"]["ImGuiWindowTempData"][25]["name"] = "ChildWindows" +defs["structs"]["ImGuiWindowTempData"][25]["template_type"] = "ImGuiWindow*" +defs["structs"]["ImGuiWindowTempData"][25]["type"] = "ImVector_ImGuiWindowPtr" defs["structs"]["ImGuiWindowTempData"][26] = {} -defs["structs"]["ImGuiWindowTempData"][26]["name"] = "CurrentColumns" -defs["structs"]["ImGuiWindowTempData"][26]["type"] = "ImGuiOldColumns*" +defs["structs"]["ImGuiWindowTempData"][26]["name"] = "StateStorage" +defs["structs"]["ImGuiWindowTempData"][26]["type"] = "ImGuiStorage*" defs["structs"]["ImGuiWindowTempData"][27] = {} -defs["structs"]["ImGuiWindowTempData"][27]["name"] = "CurrentTableIdx" -defs["structs"]["ImGuiWindowTempData"][27]["type"] = "int" +defs["structs"]["ImGuiWindowTempData"][27]["name"] = "CurrentColumns" +defs["structs"]["ImGuiWindowTempData"][27]["type"] = "ImGuiOldColumns*" defs["structs"]["ImGuiWindowTempData"][28] = {} -defs["structs"]["ImGuiWindowTempData"][28]["name"] = "LayoutType" -defs["structs"]["ImGuiWindowTempData"][28]["type"] = "ImGuiLayoutType" +defs["structs"]["ImGuiWindowTempData"][28]["name"] = "CurrentTableIdx" +defs["structs"]["ImGuiWindowTempData"][28]["type"] = "int" defs["structs"]["ImGuiWindowTempData"][29] = {} -defs["structs"]["ImGuiWindowTempData"][29]["name"] = "ParentLayoutType" +defs["structs"]["ImGuiWindowTempData"][29]["name"] = "LayoutType" defs["structs"]["ImGuiWindowTempData"][29]["type"] = "ImGuiLayoutType" defs["structs"]["ImGuiWindowTempData"][30] = {} -defs["structs"]["ImGuiWindowTempData"][30]["name"] = "FocusCounterRegular" -defs["structs"]["ImGuiWindowTempData"][30]["type"] = "int" +defs["structs"]["ImGuiWindowTempData"][30]["name"] = "ParentLayoutType" +defs["structs"]["ImGuiWindowTempData"][30]["type"] = "ImGuiLayoutType" defs["structs"]["ImGuiWindowTempData"][31] = {} -defs["structs"]["ImGuiWindowTempData"][31]["name"] = "FocusCounterTabStop" -defs["structs"]["ImGuiWindowTempData"][31]["type"] = "int" +defs["structs"]["ImGuiWindowTempData"][31]["name"] = "ItemWidth" +defs["structs"]["ImGuiWindowTempData"][31]["type"] = "float" defs["structs"]["ImGuiWindowTempData"][32] = {} -defs["structs"]["ImGuiWindowTempData"][32]["name"] = "ItemWidth" +defs["structs"]["ImGuiWindowTempData"][32]["name"] = "TextWrapPos" defs["structs"]["ImGuiWindowTempData"][32]["type"] = "float" defs["structs"]["ImGuiWindowTempData"][33] = {} -defs["structs"]["ImGuiWindowTempData"][33]["name"] = "TextWrapPos" -defs["structs"]["ImGuiWindowTempData"][33]["type"] = "float" +defs["structs"]["ImGuiWindowTempData"][33]["name"] = "ItemWidthStack" +defs["structs"]["ImGuiWindowTempData"][33]["template_type"] = "float" +defs["structs"]["ImGuiWindowTempData"][33]["type"] = "ImVector_float" defs["structs"]["ImGuiWindowTempData"][34] = {} -defs["structs"]["ImGuiWindowTempData"][34]["name"] = "ItemWidthStack" +defs["structs"]["ImGuiWindowTempData"][34]["name"] = "TextWrapPosStack" defs["structs"]["ImGuiWindowTempData"][34]["template_type"] = "float" defs["structs"]["ImGuiWindowTempData"][34]["type"] = "ImVector_float" -defs["structs"]["ImGuiWindowTempData"][35] = {} -defs["structs"]["ImGuiWindowTempData"][35]["name"] = "TextWrapPosStack" -defs["structs"]["ImGuiWindowTempData"][35]["template_type"] = "float" -defs["structs"]["ImGuiWindowTempData"][35]["type"] = "ImVector_float" -defs["structs"]["ImGuiWindowTempData"][36] = {} -defs["structs"]["ImGuiWindowTempData"][36]["name"] = "StackSizesOnBegin" -defs["structs"]["ImGuiWindowTempData"][36]["type"] = "ImGuiStackSizes" defs["structs"]["ImRect"] = {} defs["structs"]["ImRect"][1] = {} defs["structs"]["ImRect"][1]["name"] = "Min" diff --git a/imgui-sys/third-party/imgui-docking/typedefs_dict.json b/imgui-sys/third-party/imgui-docking/typedefs_dict.json index 4e961f2fd..e5acb3eb1 100644 --- a/imgui-sys/third-party/imgui-docking/typedefs_dict.json +++ b/imgui-sys/third-party/imgui-docking/typedefs_dict.json @@ -23,6 +23,7 @@ "ImFontConfig": "struct ImFontConfig", "ImFontGlyph": "struct ImFontGlyph", "ImFontGlyphRangesBuilder": "struct ImFontGlyphRangesBuilder", + "ImGuiActivateFlags": "int", "ImGuiBackendFlags": "int", "ImGuiButtonFlags": "int", "ImGuiCol": "int", @@ -56,7 +57,6 @@ "ImGuiInputTextCallbackData": "struct ImGuiInputTextCallbackData", "ImGuiInputTextFlags": "int", "ImGuiInputTextState": "struct ImGuiInputTextState", - "ImGuiItemAddFlags": "int", "ImGuiItemFlags": "int", "ImGuiItemStatusFlags": "int", "ImGuiKey": "int", @@ -64,6 +64,8 @@ "ImGuiLastItemData": "struct ImGuiLastItemData", "ImGuiLayoutType": "int", "ImGuiListClipper": "struct ImGuiListClipper", + "ImGuiListClipperData": "struct ImGuiListClipperData", + "ImGuiListClipperRange": "struct ImGuiListClipperRange", "ImGuiMemAllocFunc": "void*(*)(size_t sz,void* user_data);", "ImGuiMemFreeFunc": "void(*)(void* ptr,void* user_data);", "ImGuiMenuColumns": "struct ImGuiMenuColumns", @@ -89,6 +91,7 @@ "ImGuiPopupData": "struct ImGuiPopupData", "ImGuiPopupFlags": "int", "ImGuiPtrOrIndex": "struct ImGuiPtrOrIndex", + "ImGuiScrollFlags": "int", "ImGuiSelectableFlags": "int", "ImGuiSeparatorFlags": "int", "ImGuiSettingsHandler": "struct ImGuiSettingsHandler", @@ -97,7 +100,9 @@ "ImGuiSizeCallbackData": "struct ImGuiSizeCallbackData", "ImGuiSliderFlags": "int", "ImGuiSortDirection": "int", + "ImGuiStackLevelInfo": "struct ImGuiStackLevelInfo", "ImGuiStackSizes": "struct ImGuiStackSizes", + "ImGuiStackTool": "struct ImGuiStackTool", "ImGuiStorage": "struct ImGuiStorage", "ImGuiStoragePair": "struct ImGuiStoragePair", "ImGuiStyle": "struct ImGuiStyle", diff --git a/imgui-sys/third-party/imgui-docking/typedefs_dict.lua b/imgui-sys/third-party/imgui-docking/typedefs_dict.lua index 68ed2dc3a..4f5a92d2b 100644 --- a/imgui-sys/third-party/imgui-docking/typedefs_dict.lua +++ b/imgui-sys/third-party/imgui-docking/typedefs_dict.lua @@ -23,6 +23,7 @@ defs["ImFontBuilderIO"] = "struct ImFontBuilderIO" defs["ImFontConfig"] = "struct ImFontConfig" defs["ImFontGlyph"] = "struct ImFontGlyph" defs["ImFontGlyphRangesBuilder"] = "struct ImFontGlyphRangesBuilder" +defs["ImGuiActivateFlags"] = "int" defs["ImGuiBackendFlags"] = "int" defs["ImGuiButtonFlags"] = "int" defs["ImGuiCol"] = "int" @@ -56,7 +57,6 @@ defs["ImGuiInputTextCallback"] = "int(*)(ImGuiInputTextCallbackData* data);" defs["ImGuiInputTextCallbackData"] = "struct ImGuiInputTextCallbackData" defs["ImGuiInputTextFlags"] = "int" defs["ImGuiInputTextState"] = "struct ImGuiInputTextState" -defs["ImGuiItemAddFlags"] = "int" defs["ImGuiItemFlags"] = "int" defs["ImGuiItemStatusFlags"] = "int" defs["ImGuiKey"] = "int" @@ -64,6 +64,8 @@ defs["ImGuiKeyModFlags"] = "int" defs["ImGuiLastItemData"] = "struct ImGuiLastItemData" defs["ImGuiLayoutType"] = "int" defs["ImGuiListClipper"] = "struct ImGuiListClipper" +defs["ImGuiListClipperData"] = "struct ImGuiListClipperData" +defs["ImGuiListClipperRange"] = "struct ImGuiListClipperRange" defs["ImGuiMemAllocFunc"] = "void*(*)(size_t sz,void* user_data);" defs["ImGuiMemFreeFunc"] = "void(*)(void* ptr,void* user_data);" defs["ImGuiMenuColumns"] = "struct ImGuiMenuColumns" @@ -89,6 +91,7 @@ defs["ImGuiPlatformMonitor"] = "struct ImGuiPlatformMonitor" defs["ImGuiPopupData"] = "struct ImGuiPopupData" defs["ImGuiPopupFlags"] = "int" defs["ImGuiPtrOrIndex"] = "struct ImGuiPtrOrIndex" +defs["ImGuiScrollFlags"] = "int" defs["ImGuiSelectableFlags"] = "int" defs["ImGuiSeparatorFlags"] = "int" defs["ImGuiSettingsHandler"] = "struct ImGuiSettingsHandler" @@ -97,7 +100,9 @@ defs["ImGuiSizeCallback"] = "void(*)(ImGuiSizeCallbackData* data);" defs["ImGuiSizeCallbackData"] = "struct ImGuiSizeCallbackData" defs["ImGuiSliderFlags"] = "int" defs["ImGuiSortDirection"] = "int" +defs["ImGuiStackLevelInfo"] = "struct ImGuiStackLevelInfo" defs["ImGuiStackSizes"] = "struct ImGuiStackSizes" +defs["ImGuiStackTool"] = "struct ImGuiStackTool" defs["ImGuiStorage"] = "struct ImGuiStorage" defs["ImGuiStoragePair"] = "struct ImGuiStoragePair" defs["ImGuiStyle"] = "struct ImGuiStyle" diff --git a/imgui-sys/third-party/imgui-master/cimgui.cpp b/imgui-sys/third-party/imgui-master/cimgui.cpp index eb2f419a4..2a81cc5b1 100644 --- a/imgui-sys/third-party/imgui-master/cimgui.cpp +++ b/imgui-sys/third-party/imgui-master/cimgui.cpp @@ -1,5 +1,5 @@ //This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui -//based on imgui.h file version "1.84.2" from Dear ImGui https://github.com/ocornut/imgui +//based on imgui.h file version "1.86" from Dear ImGui https://github.com/ocornut/imgui #include "./imgui/imgui.h" #ifdef CIMGUI_FREETYPE @@ -82,6 +82,10 @@ CIMGUI_API void igShowMetricsWindow(bool* p_open) { return ImGui::ShowMetricsWindow(p_open); } +CIMGUI_API void igShowStackToolWindow(bool* p_open) +{ + return ImGui::ShowStackToolWindow(p_open); +} CIMGUI_API void igShowAboutWindow(bool* p_open) { return ImGui::ShowAboutWindow(p_open); @@ -254,10 +258,6 @@ CIMGUI_API void igGetWindowContentRegionMax(ImVec2 *pOut) { *pOut = ImGui::GetWindowContentRegionMax(); } -CIMGUI_API float igGetWindowContentRegionWidth() -{ - return ImGui::GetWindowContentRegionWidth(); -} CIMGUI_API float igGetScrollX() { return ImGui::GetScrollX(); @@ -1395,10 +1395,6 @@ CIMGUI_API ImGuiStorage* igGetStateStorage() { return ImGui::GetStateStorage(); } -CIMGUI_API void igCalcListClipping(int items_count,float items_height,int* out_items_display_start,int* out_items_display_end) -{ - return ImGui::CalcListClipping(items_count,items_height,out_items_display_start,out_items_display_end); -} CIMGUI_API bool igBeginChildFrame(ImGuiID id,const ImVec2 size,ImGuiWindowFlags flags) { return ImGui::BeginChildFrame(id,size,flags); @@ -1467,6 +1463,10 @@ CIMGUI_API bool igIsMouseDoubleClicked(ImGuiMouseButton button) { return ImGui::IsMouseDoubleClicked(button); } +CIMGUI_API int igGetMouseClickedCount(ImGuiMouseButton button) +{ + return ImGui::GetMouseClickedCount(button); +} CIMGUI_API bool igIsMouseHoveringRect(const ImVec2 r_min,const ImVec2 r_max,bool clip) { return ImGui::IsMouseHoveringRect(r_min,r_max,clip); @@ -1579,13 +1579,17 @@ CIMGUI_API void ImGuiIO_AddInputCharactersUTF8(ImGuiIO* self,const char* str) { return self->AddInputCharactersUTF8(str); } +CIMGUI_API void ImGuiIO_AddFocusEvent(ImGuiIO* self,bool focused) +{ + return self->AddFocusEvent(focused); +} CIMGUI_API void ImGuiIO_ClearInputCharacters(ImGuiIO* self) { return self->ClearInputCharacters(); } -CIMGUI_API void ImGuiIO_AddFocusEvent(ImGuiIO* self,bool focused) +CIMGUI_API void ImGuiIO_ClearInputKeys(ImGuiIO* self) { - return self->AddFocusEvent(focused); + return self->ClearInputKeys(); } CIMGUI_API ImGuiIO* ImGuiIO_ImGuiIO(void) { @@ -1859,6 +1863,10 @@ CIMGUI_API bool ImGuiListClipper_Step(ImGuiListClipper* self) { return self->Step(); } +CIMGUI_API void ImGuiListClipper_ForceDisplayRangeByIndices(ImGuiListClipper* self,int item_min,int item_max) +{ + return self->ForceDisplayRangeByIndices(item_min,item_max); +} CIMGUI_API ImColor* ImColor_ImColorNil(void) { return IM_NEW(ImColor)(); diff --git a/imgui-sys/third-party/imgui-master/cimgui.h b/imgui-sys/third-party/imgui-master/cimgui.h index 3e4491162..c65f8c2d2 100644 --- a/imgui-sys/third-party/imgui-master/cimgui.h +++ b/imgui-sys/third-party/imgui-master/cimgui.h @@ -1,5 +1,5 @@ //This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui -//based on imgui.h file version "1.84.2" from Dear ImGui https://github.com/ocornut/imgui +//based on imgui.h file version "1.86" from Dear ImGui https://github.com/ocornut/imgui #ifndef CIMGUI_INCLUDED #define CIMGUI_INCLUDED #include @@ -396,6 +396,7 @@ typedef enum { ImGuiFocusedFlags_ChildWindows = 1 << 0, ImGuiFocusedFlags_RootWindow = 1 << 1, ImGuiFocusedFlags_AnyWindow = 1 << 2, + ImGuiFocusedFlags_NoPopupHierarchy = 1 << 3, ImGuiFocusedFlags_RootAndChildWindows = ImGuiFocusedFlags_RootWindow | ImGuiFocusedFlags_ChildWindows }ImGuiFocusedFlags_; typedef enum { @@ -403,10 +404,11 @@ typedef enum { ImGuiHoveredFlags_ChildWindows = 1 << 0, ImGuiHoveredFlags_RootWindow = 1 << 1, ImGuiHoveredFlags_AnyWindow = 1 << 2, - ImGuiHoveredFlags_AllowWhenBlockedByPopup = 1 << 3, - ImGuiHoveredFlags_AllowWhenBlockedByActiveItem = 1 << 5, - ImGuiHoveredFlags_AllowWhenOverlapped = 1 << 6, - ImGuiHoveredFlags_AllowWhenDisabled = 1 << 7, + ImGuiHoveredFlags_NoPopupHierarchy = 1 << 3, + ImGuiHoveredFlags_AllowWhenBlockedByPopup = 1 << 5, + ImGuiHoveredFlags_AllowWhenBlockedByActiveItem = 1 << 7, + ImGuiHoveredFlags_AllowWhenOverlapped = 1 << 8, + ImGuiHoveredFlags_AllowWhenDisabled = 1 << 9, ImGuiHoveredFlags_RectOnly = ImGuiHoveredFlags_AllowWhenBlockedByPopup | ImGuiHoveredFlags_AllowWhenBlockedByActiveItem | ImGuiHoveredFlags_AllowWhenOverlapped, ImGuiHoveredFlags_RootAndChildWindows = ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_ChildWindows }ImGuiHoveredFlags_; @@ -786,6 +788,7 @@ struct ImGuiIO int MetricsActiveWindows; int MetricsActiveAllocations; ImVec2 MouseDelta; + bool WantCaptureMouseUnlessPopupClose; ImGuiKeyModFlags KeyMods; ImGuiKeyModFlags KeyModsPrev; ImVec2 MousePosPrev; @@ -793,9 +796,11 @@ struct ImGuiIO double MouseClickedTime[5]; bool MouseClicked[5]; bool MouseDoubleClicked[5]; + ImU16 MouseClickedCount[5]; + ImU16 MouseClickedLastCount[5]; bool MouseReleased[5]; bool MouseDownOwned[5]; - bool MouseDownWasDoubleClick[5]; + bool MouseDownOwnedUnlessPopupClose[5]; float MouseDownDuration[5]; float MouseDownDurationPrev[5]; ImVec2 MouseDragMaxDistanceAbs[5]; @@ -805,6 +810,7 @@ struct ImGuiIO float NavInputsDownDuration[ImGuiNavInput_COUNT]; float NavInputsDownDurationPrev[ImGuiNavInput_COUNT]; float PenPressure; + bool AppFocusLost; ImWchar16 InputQueueSurrogate; ImVector_ImWchar InputQueueCharacters; }; @@ -887,10 +893,9 @@ struct ImGuiListClipper int DisplayStart; int DisplayEnd; int ItemsCount; - int StepNo; - int ItemsFrozen; float ItemsHeight; float StartPosY; + void* TempData; }; struct ImColor { @@ -1134,6 +1139,7 @@ CIMGUI_API void igRender(void); CIMGUI_API ImDrawData* igGetDrawData(void); CIMGUI_API void igShowDemoWindow(bool* p_open); CIMGUI_API void igShowMetricsWindow(bool* p_open); +CIMGUI_API void igShowStackToolWindow(bool* p_open); CIMGUI_API void igShowAboutWindow(bool* p_open); CIMGUI_API void igShowStyleEditor(ImGuiStyle* ref); CIMGUI_API bool igShowStyleSelector(const char* label); @@ -1177,7 +1183,6 @@ CIMGUI_API void igGetContentRegionAvail(ImVec2 *pOut); CIMGUI_API void igGetContentRegionMax(ImVec2 *pOut); CIMGUI_API void igGetWindowContentRegionMin(ImVec2 *pOut); CIMGUI_API void igGetWindowContentRegionMax(ImVec2 *pOut); -CIMGUI_API float igGetWindowContentRegionWidth(void); CIMGUI_API float igGetScrollX(void); CIMGUI_API float igGetScrollY(void); CIMGUI_API void igSetScrollX(float scroll_x); @@ -1453,7 +1458,6 @@ CIMGUI_API ImDrawListSharedData* igGetDrawListSharedData(void); CIMGUI_API const char* igGetStyleColorName(ImGuiCol idx); CIMGUI_API void igSetStateStorage(ImGuiStorage* storage); CIMGUI_API ImGuiStorage* igGetStateStorage(void); -CIMGUI_API void igCalcListClipping(int items_count,float items_height,int* out_items_display_start,int* out_items_display_end); CIMGUI_API bool igBeginChildFrame(ImGuiID id,const ImVec2 size,ImGuiWindowFlags flags); CIMGUI_API void igEndChildFrame(void); CIMGUI_API void igCalcTextSize(ImVec2 *pOut,const char* text,const char* text_end,bool hide_text_after_double_hash,float wrap_width); @@ -1471,6 +1475,7 @@ CIMGUI_API bool igIsMouseDown(ImGuiMouseButton button); CIMGUI_API bool igIsMouseClicked(ImGuiMouseButton button,bool repeat); CIMGUI_API bool igIsMouseReleased(ImGuiMouseButton button); CIMGUI_API bool igIsMouseDoubleClicked(ImGuiMouseButton button); +CIMGUI_API int igGetMouseClickedCount(ImGuiMouseButton button); CIMGUI_API bool igIsMouseHoveringRect(const ImVec2 r_min,const ImVec2 r_max,bool clip); CIMGUI_API bool igIsMousePosValid(const ImVec2* mouse_pos); CIMGUI_API bool igIsAnyMouseDown(void); @@ -1499,8 +1504,9 @@ CIMGUI_API void ImGuiStyle_ScaleAllSizes(ImGuiStyle* self,float scale_factor); CIMGUI_API void ImGuiIO_AddInputCharacter(ImGuiIO* self,unsigned int c); CIMGUI_API void ImGuiIO_AddInputCharacterUTF16(ImGuiIO* self,ImWchar16 c); CIMGUI_API void ImGuiIO_AddInputCharactersUTF8(ImGuiIO* self,const char* str); -CIMGUI_API void ImGuiIO_ClearInputCharacters(ImGuiIO* self); CIMGUI_API void ImGuiIO_AddFocusEvent(ImGuiIO* self,bool focused); +CIMGUI_API void ImGuiIO_ClearInputCharacters(ImGuiIO* self); +CIMGUI_API void ImGuiIO_ClearInputKeys(ImGuiIO* self); CIMGUI_API ImGuiIO* ImGuiIO_ImGuiIO(void); CIMGUI_API void ImGuiIO_destroy(ImGuiIO* self); CIMGUI_API ImGuiInputTextCallbackData* ImGuiInputTextCallbackData_ImGuiInputTextCallbackData(void); @@ -1569,6 +1575,7 @@ CIMGUI_API void ImGuiListClipper_destroy(ImGuiListClipper* self); CIMGUI_API void ImGuiListClipper_Begin(ImGuiListClipper* self,int items_count,float items_height); CIMGUI_API void ImGuiListClipper_End(ImGuiListClipper* self); CIMGUI_API bool ImGuiListClipper_Step(ImGuiListClipper* self); +CIMGUI_API void ImGuiListClipper_ForceDisplayRangeByIndices(ImGuiListClipper* self,int item_min,int item_max); CIMGUI_API ImColor* ImColor_ImColorNil(void); CIMGUI_API void ImColor_destroy(ImColor* self); CIMGUI_API ImColor* ImColor_ImColorInt(int r,int g,int b,int a); diff --git a/imgui-sys/third-party/imgui-master/definitions.json b/imgui-sys/third-party/imgui-master/definitions.json index 2854188c4..7c2e3aa0b 100644 --- a/imgui-sys/third-party/imgui-master/definitions.json +++ b/imgui-sys/third-party/imgui-master/definitions.json @@ -32,7 +32,7 @@ }, "funcname": "HSV", "is_static_function": true, - "location": "imgui:2240", + "location": "imgui:2255", "nonUDT": 1, "ov_cimguiname": "ImColor_HSV", "ret": "void", @@ -50,7 +50,7 @@ "constructor": true, "defaults": {}, "funcname": "ImColor", - "location": "imgui:2230", + "location": "imgui:2245", "ov_cimguiname": "ImColor_ImColorNil", "signature": "()", "stname": "ImColor" @@ -83,7 +83,7 @@ "a": "255" }, "funcname": "ImColor", - "location": "imgui:2231", + "location": "imgui:2246", "ov_cimguiname": "ImColor_ImColorInt", "signature": "(int,int,int,int)", "stname": "ImColor" @@ -102,7 +102,7 @@ "constructor": true, "defaults": {}, "funcname": "ImColor", - "location": "imgui:2232", + "location": "imgui:2247", "ov_cimguiname": "ImColor_ImColorU32", "signature": "(ImU32)", "stname": "ImColor" @@ -135,7 +135,7 @@ "a": "1.0f" }, "funcname": "ImColor", - "location": "imgui:2233", + "location": "imgui:2248", "ov_cimguiname": "ImColor_ImColorFloat", "signature": "(float,float,float,float)", "stname": "ImColor" @@ -154,7 +154,7 @@ "constructor": true, "defaults": {}, "funcname": "ImColor", - "location": "imgui:2234", + "location": "imgui:2249", "ov_cimguiname": "ImColor_ImColorVec4", "signature": "(const ImVec4)", "stname": "ImColor" @@ -192,7 +192,7 @@ "a": "1.0f" }, "funcname": "SetHSV", - "location": "imgui:2239", + "location": "imgui:2254", "ov_cimguiname": "ImColor_SetHSV", "ret": "void", "signature": "(float,float,float,float)", @@ -232,7 +232,7 @@ "cimguiname": "ImDrawCmd_GetTexID", "defaults": {}, "funcname": "GetTexID", - "location": "imgui:2288", + "location": "imgui:2303", "ov_cimguiname": "ImDrawCmd_GetTexID", "ret": "ImTextureID", "signature": "()const", @@ -249,7 +249,7 @@ "constructor": true, "defaults": {}, "funcname": "ImDrawCmd", - "location": "imgui:2285", + "location": "imgui:2300", "ov_cimguiname": "ImDrawCmd_ImDrawCmd", "signature": "()", "stname": "ImDrawCmd" @@ -288,7 +288,7 @@ "cimguiname": "ImDrawData_Clear", "defaults": {}, "funcname": "Clear", - "location": "imgui:2519", + "location": "imgui:2534", "ov_cimguiname": "ImDrawData_Clear", "ret": "void", "signature": "()", @@ -309,7 +309,7 @@ "cimguiname": "ImDrawData_DeIndexAllBuffers", "defaults": {}, "funcname": "DeIndexAllBuffers", - "location": "imgui:2520", + "location": "imgui:2535", "ov_cimguiname": "ImDrawData_DeIndexAllBuffers", "ret": "void", "signature": "()", @@ -326,7 +326,7 @@ "constructor": true, "defaults": {}, "funcname": "ImDrawData", - "location": "imgui:2518", + "location": "imgui:2533", "ov_cimguiname": "ImDrawData_ImDrawData", "signature": "()", "stname": "ImDrawData" @@ -350,7 +350,7 @@ "cimguiname": "ImDrawData_ScaleClipRects", "defaults": {}, "funcname": "ScaleClipRects", - "location": "imgui:2521", + "location": "imgui:2536", "ov_cimguiname": "ImDrawData_ScaleClipRects", "ret": "void", "signature": "(const ImVec2)", @@ -390,7 +390,7 @@ "cimguiname": "ImDrawListSplitter_Clear", "defaults": {}, "funcname": "Clear", - "location": "imgui:2333", + "location": "imgui:2348", "ov_cimguiname": "ImDrawListSplitter_Clear", "ret": "void", "signature": "()", @@ -411,7 +411,7 @@ "cimguiname": "ImDrawListSplitter_ClearFreeMemory", "defaults": {}, "funcname": "ClearFreeMemory", - "location": "imgui:2334", + "location": "imgui:2349", "ov_cimguiname": "ImDrawListSplitter_ClearFreeMemory", "ret": "void", "signature": "()", @@ -428,7 +428,7 @@ "constructor": true, "defaults": {}, "funcname": "ImDrawListSplitter", - "location": "imgui:2331", + "location": "imgui:2346", "ov_cimguiname": "ImDrawListSplitter_ImDrawListSplitter", "signature": "()", "stname": "ImDrawListSplitter" @@ -452,7 +452,7 @@ "cimguiname": "ImDrawListSplitter_Merge", "defaults": {}, "funcname": "Merge", - "location": "imgui:2336", + "location": "imgui:2351", "ov_cimguiname": "ImDrawListSplitter_Merge", "ret": "void", "signature": "(ImDrawList*)", @@ -481,7 +481,7 @@ "cimguiname": "ImDrawListSplitter_SetCurrentChannel", "defaults": {}, "funcname": "SetCurrentChannel", - "location": "imgui:2337", + "location": "imgui:2352", "ov_cimguiname": "ImDrawListSplitter_SetCurrentChannel", "ret": "void", "signature": "(ImDrawList*,int)", @@ -510,7 +510,7 @@ "cimguiname": "ImDrawListSplitter_Split", "defaults": {}, "funcname": "Split", - "location": "imgui:2335", + "location": "imgui:2350", "ov_cimguiname": "ImDrawListSplitter_Split", "ret": "void", "signature": "(ImDrawList*,int)", @@ -530,7 +530,7 @@ "cimguiname": "ImDrawListSplitter_destroy", "defaults": {}, "destructor": true, - "location": "imgui:2332", + "location": "imgui:2347", "ov_cimguiname": "ImDrawListSplitter_destroy", "realdestructor": true, "ret": "void", @@ -582,7 +582,7 @@ "num_segments": "0" }, "funcname": "AddBezierCubic", - "location": "imgui:2435", + "location": "imgui:2450", "ov_cimguiname": "ImDrawList_AddBezierCubic", "ret": "void", "signature": "(const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32,float,int)", @@ -629,7 +629,7 @@ "num_segments": "0" }, "funcname": "AddBezierQuadratic", - "location": "imgui:2436", + "location": "imgui:2451", "ov_cimguiname": "ImDrawList_AddBezierQuadratic", "ret": "void", "signature": "(const ImVec2,const ImVec2,const ImVec2,ImU32,float,int)", @@ -658,7 +658,7 @@ "cimguiname": "ImDrawList_AddCallback", "defaults": {}, "funcname": "AddCallback", - "location": "imgui:2459", + "location": "imgui:2474", "ov_cimguiname": "ImDrawList_AddCallback", "ret": "void", "signature": "(ImDrawCallback,void*)", @@ -702,7 +702,7 @@ "thickness": "1.0f" }, "funcname": "AddCircle", - "location": "imgui:2427", + "location": "imgui:2442", "ov_cimguiname": "ImDrawList_AddCircle", "ret": "void", "signature": "(const ImVec2,float,ImU32,int,float)", @@ -741,7 +741,7 @@ "num_segments": "0" }, "funcname": "AddCircleFilled", - "location": "imgui:2428", + "location": "imgui:2443", "ov_cimguiname": "ImDrawList_AddCircleFilled", "ret": "void", "signature": "(const ImVec2,float,ImU32,int)", @@ -774,7 +774,7 @@ "cimguiname": "ImDrawList_AddConvexPolyFilled", "defaults": {}, "funcname": "AddConvexPolyFilled", - "location": "imgui:2434", + "location": "imgui:2449", "ov_cimguiname": "ImDrawList_AddConvexPolyFilled", "ret": "void", "signature": "(const ImVec2*,int,ImU32)", @@ -795,7 +795,7 @@ "cimguiname": "ImDrawList_AddDrawCmd", "defaults": {}, "funcname": "AddDrawCmd", - "location": "imgui:2460", + "location": "imgui:2475", "ov_cimguiname": "ImDrawList_AddDrawCmd", "ret": "void", "signature": "()", @@ -844,7 +844,7 @@ "uv_min": "ImVec2(0,0)" }, "funcname": "AddImage", - "location": "imgui:2442", + "location": "imgui:2457", "ov_cimguiname": "ImDrawList_AddImage", "ret": "void", "signature": "(ImTextureID,const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32)", @@ -911,7 +911,7 @@ "uv4": "ImVec2(0,1)" }, "funcname": "AddImageQuad", - "location": "imgui:2443", + "location": "imgui:2458", "ov_cimguiname": "ImDrawList_AddImageQuad", "ret": "void", "signature": "(ImTextureID,const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32)", @@ -966,7 +966,7 @@ "flags": "0" }, "funcname": "AddImageRounded", - "location": "imgui:2444", + "location": "imgui:2459", "ov_cimguiname": "ImDrawList_AddImageRounded", "ret": "void", "signature": "(ImTextureID,const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32,float,ImDrawFlags)", @@ -1005,7 +1005,7 @@ "thickness": "1.0f" }, "funcname": "AddLine", - "location": "imgui:2419", + "location": "imgui:2434", "ov_cimguiname": "ImDrawList_AddLine", "ret": "void", "signature": "(const ImVec2,const ImVec2,ImU32,float)", @@ -1048,7 +1048,7 @@ "thickness": "1.0f" }, "funcname": "AddNgon", - "location": "imgui:2429", + "location": "imgui:2444", "ov_cimguiname": "ImDrawList_AddNgon", "ret": "void", "signature": "(const ImVec2,float,ImU32,int,float)", @@ -1085,7 +1085,7 @@ "cimguiname": "ImDrawList_AddNgonFilled", "defaults": {}, "funcname": "AddNgonFilled", - "location": "imgui:2430", + "location": "imgui:2445", "ov_cimguiname": "ImDrawList_AddNgonFilled", "ret": "void", "signature": "(const ImVec2,float,ImU32,int)", @@ -1126,7 +1126,7 @@ "cimguiname": "ImDrawList_AddPolyline", "defaults": {}, "funcname": "AddPolyline", - "location": "imgui:2433", + "location": "imgui:2448", "ov_cimguiname": "ImDrawList_AddPolyline", "ret": "void", "signature": "(const ImVec2*,int,ImU32,ImDrawFlags,float)", @@ -1173,7 +1173,7 @@ "thickness": "1.0f" }, "funcname": "AddQuad", - "location": "imgui:2423", + "location": "imgui:2438", "ov_cimguiname": "ImDrawList_AddQuad", "ret": "void", "signature": "(const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32,float)", @@ -1214,7 +1214,7 @@ "cimguiname": "ImDrawList_AddQuadFilled", "defaults": {}, "funcname": "AddQuadFilled", - "location": "imgui:2424", + "location": "imgui:2439", "ov_cimguiname": "ImDrawList_AddQuadFilled", "ret": "void", "signature": "(const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32)", @@ -1263,7 +1263,7 @@ "thickness": "1.0f" }, "funcname": "AddRect", - "location": "imgui:2420", + "location": "imgui:2435", "ov_cimguiname": "ImDrawList_AddRect", "ret": "void", "signature": "(const ImVec2,const ImVec2,ImU32,float,ImDrawFlags,float)", @@ -1307,7 +1307,7 @@ "rounding": "0.0f" }, "funcname": "AddRectFilled", - "location": "imgui:2421", + "location": "imgui:2436", "ov_cimguiname": "ImDrawList_AddRectFilled", "ret": "void", "signature": "(const ImVec2,const ImVec2,ImU32,float,ImDrawFlags)", @@ -1352,7 +1352,7 @@ "cimguiname": "ImDrawList_AddRectFilledMultiColor", "defaults": {}, "funcname": "AddRectFilledMultiColor", - "location": "imgui:2422", + "location": "imgui:2437", "ov_cimguiname": "ImDrawList_AddRectFilledMultiColor", "ret": "void", "signature": "(const ImVec2,const ImVec2,ImU32,ImU32,ImU32,ImU32)", @@ -1391,7 +1391,7 @@ "text_end": "NULL" }, "funcname": "AddText", - "location": "imgui:2431", + "location": "imgui:2446", "ov_cimguiname": "ImDrawList_AddTextVec2", "ret": "void", "signature": "(const ImVec2,ImU32,const char*,const char*)", @@ -1446,7 +1446,7 @@ "wrap_width": "0.0f" }, "funcname": "AddText", - "location": "imgui:2432", + "location": "imgui:2447", "ov_cimguiname": "ImDrawList_AddTextFontPtr", "ret": "void", "signature": "(const ImFont*,float,const ImVec2,ImU32,const char*,const char*,float,const ImVec4*)", @@ -1489,7 +1489,7 @@ "thickness": "1.0f" }, "funcname": "AddTriangle", - "location": "imgui:2425", + "location": "imgui:2440", "ov_cimguiname": "ImDrawList_AddTriangle", "ret": "void", "signature": "(const ImVec2,const ImVec2,const ImVec2,ImU32,float)", @@ -1526,7 +1526,7 @@ "cimguiname": "ImDrawList_AddTriangleFilled", "defaults": {}, "funcname": "AddTriangleFilled", - "location": "imgui:2426", + "location": "imgui:2441", "ov_cimguiname": "ImDrawList_AddTriangleFilled", "ret": "void", "signature": "(const ImVec2,const ImVec2,const ImVec2,ImU32)", @@ -1547,7 +1547,7 @@ "cimguiname": "ImDrawList_ChannelsMerge", "defaults": {}, "funcname": "ChannelsMerge", - "location": "imgui:2470", + "location": "imgui:2485", "ov_cimguiname": "ImDrawList_ChannelsMerge", "ret": "void", "signature": "()", @@ -1572,7 +1572,7 @@ "cimguiname": "ImDrawList_ChannelsSetCurrent", "defaults": {}, "funcname": "ChannelsSetCurrent", - "location": "imgui:2471", + "location": "imgui:2486", "ov_cimguiname": "ImDrawList_ChannelsSetCurrent", "ret": "void", "signature": "(int)", @@ -1597,7 +1597,7 @@ "cimguiname": "ImDrawList_ChannelsSplit", "defaults": {}, "funcname": "ChannelsSplit", - "location": "imgui:2469", + "location": "imgui:2484", "ov_cimguiname": "ImDrawList_ChannelsSplit", "ret": "void", "signature": "(int)", @@ -1618,7 +1618,7 @@ "cimguiname": "ImDrawList_CloneOutput", "defaults": {}, "funcname": "CloneOutput", - "location": "imgui:2461", + "location": "imgui:2476", "ov_cimguiname": "ImDrawList_CloneOutput", "ret": "ImDrawList*", "signature": "()const", @@ -1643,7 +1643,7 @@ "cimguiname": "ImDrawList_GetClipRectMax", "defaults": {}, "funcname": "GetClipRectMax", - "location": "imgui:2411", + "location": "imgui:2426", "nonUDT": 1, "ov_cimguiname": "ImDrawList_GetClipRectMax", "ret": "void", @@ -1669,7 +1669,7 @@ "cimguiname": "ImDrawList_GetClipRectMin", "defaults": {}, "funcname": "GetClipRectMin", - "location": "imgui:2410", + "location": "imgui:2425", "nonUDT": 1, "ov_cimguiname": "ImDrawList_GetClipRectMin", "ret": "void", @@ -1692,7 +1692,7 @@ "constructor": true, "defaults": {}, "funcname": "ImDrawList", - "location": "imgui:2402", + "location": "imgui:2417", "ov_cimguiname": "ImDrawList_ImDrawList", "signature": "(const ImDrawListSharedData*)", "stname": "ImDrawList" @@ -1734,7 +1734,7 @@ "num_segments": "0" }, "funcname": "PathArcTo", - "location": "imgui:2452", + "location": "imgui:2467", "ov_cimguiname": "ImDrawList_PathArcTo", "ret": "void", "signature": "(const ImVec2,float,float,float,int)", @@ -1771,7 +1771,7 @@ "cimguiname": "ImDrawList_PathArcToFast", "defaults": {}, "funcname": "PathArcToFast", - "location": "imgui:2453", + "location": "imgui:2468", "ov_cimguiname": "ImDrawList_PathArcToFast", "ret": "void", "signature": "(const ImVec2,float,int,int)", @@ -1810,7 +1810,7 @@ "num_segments": "0" }, "funcname": "PathBezierCubicCurveTo", - "location": "imgui:2454", + "location": "imgui:2469", "ov_cimguiname": "ImDrawList_PathBezierCubicCurveTo", "ret": "void", "signature": "(const ImVec2,const ImVec2,const ImVec2,int)", @@ -1845,7 +1845,7 @@ "num_segments": "0" }, "funcname": "PathBezierQuadraticCurveTo", - "location": "imgui:2455", + "location": "imgui:2470", "ov_cimguiname": "ImDrawList_PathBezierQuadraticCurveTo", "ret": "void", "signature": "(const ImVec2,const ImVec2,int)", @@ -1866,7 +1866,7 @@ "cimguiname": "ImDrawList_PathClear", "defaults": {}, "funcname": "PathClear", - "location": "imgui:2447", + "location": "imgui:2462", "ov_cimguiname": "ImDrawList_PathClear", "ret": "void", "signature": "()", @@ -1891,7 +1891,7 @@ "cimguiname": "ImDrawList_PathFillConvex", "defaults": {}, "funcname": "PathFillConvex", - "location": "imgui:2450", + "location": "imgui:2465", "ov_cimguiname": "ImDrawList_PathFillConvex", "ret": "void", "signature": "(ImU32)", @@ -1916,7 +1916,7 @@ "cimguiname": "ImDrawList_PathLineTo", "defaults": {}, "funcname": "PathLineTo", - "location": "imgui:2448", + "location": "imgui:2463", "ov_cimguiname": "ImDrawList_PathLineTo", "ret": "void", "signature": "(const ImVec2)", @@ -1941,7 +1941,7 @@ "cimguiname": "ImDrawList_PathLineToMergeDuplicate", "defaults": {}, "funcname": "PathLineToMergeDuplicate", - "location": "imgui:2449", + "location": "imgui:2464", "ov_cimguiname": "ImDrawList_PathLineToMergeDuplicate", "ret": "void", "signature": "(const ImVec2)", @@ -1981,7 +1981,7 @@ "rounding": "0.0f" }, "funcname": "PathRect", - "location": "imgui:2456", + "location": "imgui:2471", "ov_cimguiname": "ImDrawList_PathRect", "ret": "void", "signature": "(const ImVec2,const ImVec2,float,ImDrawFlags)", @@ -2017,7 +2017,7 @@ "thickness": "1.0f" }, "funcname": "PathStroke", - "location": "imgui:2451", + "location": "imgui:2466", "ov_cimguiname": "ImDrawList_PathStroke", "ret": "void", "signature": "(ImU32,ImDrawFlags,float)", @@ -2038,7 +2038,7 @@ "cimguiname": "ImDrawList_PopClipRect", "defaults": {}, "funcname": "PopClipRect", - "location": "imgui:2407", + "location": "imgui:2422", "ov_cimguiname": "ImDrawList_PopClipRect", "ret": "void", "signature": "()", @@ -2059,7 +2059,7 @@ "cimguiname": "ImDrawList_PopTextureID", "defaults": {}, "funcname": "PopTextureID", - "location": "imgui:2409", + "location": "imgui:2424", "ov_cimguiname": "ImDrawList_PopTextureID", "ret": "void", "signature": "()", @@ -2116,7 +2116,7 @@ "cimguiname": "ImDrawList_PrimQuadUV", "defaults": {}, "funcname": "PrimQuadUV", - "location": "imgui:2480", + "location": "imgui:2495", "ov_cimguiname": "ImDrawList_PrimQuadUV", "ret": "void", "signature": "(const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32)", @@ -2149,7 +2149,7 @@ "cimguiname": "ImDrawList_PrimRect", "defaults": {}, "funcname": "PrimRect", - "location": "imgui:2478", + "location": "imgui:2493", "ov_cimguiname": "ImDrawList_PrimRect", "ret": "void", "signature": "(const ImVec2,const ImVec2,ImU32)", @@ -2190,7 +2190,7 @@ "cimguiname": "ImDrawList_PrimRectUV", "defaults": {}, "funcname": "PrimRectUV", - "location": "imgui:2479", + "location": "imgui:2494", "ov_cimguiname": "ImDrawList_PrimRectUV", "ret": "void", "signature": "(const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32)", @@ -2219,7 +2219,7 @@ "cimguiname": "ImDrawList_PrimReserve", "defaults": {}, "funcname": "PrimReserve", - "location": "imgui:2476", + "location": "imgui:2491", "ov_cimguiname": "ImDrawList_PrimReserve", "ret": "void", "signature": "(int,int)", @@ -2248,7 +2248,7 @@ "cimguiname": "ImDrawList_PrimUnreserve", "defaults": {}, "funcname": "PrimUnreserve", - "location": "imgui:2477", + "location": "imgui:2492", "ov_cimguiname": "ImDrawList_PrimUnreserve", "ret": "void", "signature": "(int,int)", @@ -2281,7 +2281,7 @@ "cimguiname": "ImDrawList_PrimVtx", "defaults": {}, "funcname": "PrimVtx", - "location": "imgui:2483", + "location": "imgui:2498", "ov_cimguiname": "ImDrawList_PrimVtx", "ret": "void", "signature": "(const ImVec2,const ImVec2,ImU32)", @@ -2306,7 +2306,7 @@ "cimguiname": "ImDrawList_PrimWriteIdx", "defaults": {}, "funcname": "PrimWriteIdx", - "location": "imgui:2482", + "location": "imgui:2497", "ov_cimguiname": "ImDrawList_PrimWriteIdx", "ret": "void", "signature": "(ImDrawIdx)", @@ -2339,7 +2339,7 @@ "cimguiname": "ImDrawList_PrimWriteVtx", "defaults": {}, "funcname": "PrimWriteVtx", - "location": "imgui:2481", + "location": "imgui:2496", "ov_cimguiname": "ImDrawList_PrimWriteVtx", "ret": "void", "signature": "(const ImVec2,const ImVec2,ImU32)", @@ -2374,7 +2374,7 @@ "intersect_with_current_clip_rect": "false" }, "funcname": "PushClipRect", - "location": "imgui:2405", + "location": "imgui:2420", "ov_cimguiname": "ImDrawList_PushClipRect", "ret": "void", "signature": "(ImVec2,ImVec2,bool)", @@ -2395,7 +2395,7 @@ "cimguiname": "ImDrawList_PushClipRectFullScreen", "defaults": {}, "funcname": "PushClipRectFullScreen", - "location": "imgui:2406", + "location": "imgui:2421", "ov_cimguiname": "ImDrawList_PushClipRectFullScreen", "ret": "void", "signature": "()", @@ -2420,7 +2420,7 @@ "cimguiname": "ImDrawList_PushTextureID", "defaults": {}, "funcname": "PushTextureID", - "location": "imgui:2408", + "location": "imgui:2423", "ov_cimguiname": "ImDrawList_PushTextureID", "ret": "void", "signature": "(ImTextureID)", @@ -2445,7 +2445,7 @@ "cimguiname": "ImDrawList__CalcCircleAutoSegmentCount", "defaults": {}, "funcname": "_CalcCircleAutoSegmentCount", - "location": "imgui:2498", + "location": "imgui:2513", "ov_cimguiname": "ImDrawList__CalcCircleAutoSegmentCount", "ret": "int", "signature": "(float)const", @@ -2466,7 +2466,7 @@ "cimguiname": "ImDrawList__ClearFreeMemory", "defaults": {}, "funcname": "_ClearFreeMemory", - "location": "imgui:2492", + "location": "imgui:2507", "ov_cimguiname": "ImDrawList__ClearFreeMemory", "ret": "void", "signature": "()", @@ -2487,7 +2487,7 @@ "cimguiname": "ImDrawList__OnChangedClipRect", "defaults": {}, "funcname": "_OnChangedClipRect", - "location": "imgui:2495", + "location": "imgui:2510", "ov_cimguiname": "ImDrawList__OnChangedClipRect", "ret": "void", "signature": "()", @@ -2508,7 +2508,7 @@ "cimguiname": "ImDrawList__OnChangedTextureID", "defaults": {}, "funcname": "_OnChangedTextureID", - "location": "imgui:2496", + "location": "imgui:2511", "ov_cimguiname": "ImDrawList__OnChangedTextureID", "ret": "void", "signature": "()", @@ -2529,7 +2529,7 @@ "cimguiname": "ImDrawList__OnChangedVtxOffset", "defaults": {}, "funcname": "_OnChangedVtxOffset", - "location": "imgui:2497", + "location": "imgui:2512", "ov_cimguiname": "ImDrawList__OnChangedVtxOffset", "ret": "void", "signature": "()", @@ -2570,7 +2570,7 @@ "cimguiname": "ImDrawList__PathArcToFastEx", "defaults": {}, "funcname": "_PathArcToFastEx", - "location": "imgui:2499", + "location": "imgui:2514", "ov_cimguiname": "ImDrawList__PathArcToFastEx", "ret": "void", "signature": "(const ImVec2,float,int,int,int)", @@ -2611,7 +2611,7 @@ "cimguiname": "ImDrawList__PathArcToN", "defaults": {}, "funcname": "_PathArcToN", - "location": "imgui:2500", + "location": "imgui:2515", "ov_cimguiname": "ImDrawList__PathArcToN", "ret": "void", "signature": "(const ImVec2,float,float,float,int)", @@ -2632,7 +2632,7 @@ "cimguiname": "ImDrawList__PopUnusedDrawCmd", "defaults": {}, "funcname": "_PopUnusedDrawCmd", - "location": "imgui:2493", + "location": "imgui:2508", "ov_cimguiname": "ImDrawList__PopUnusedDrawCmd", "ret": "void", "signature": "()", @@ -2653,7 +2653,7 @@ "cimguiname": "ImDrawList__ResetForNewFrame", "defaults": {}, "funcname": "_ResetForNewFrame", - "location": "imgui:2491", + "location": "imgui:2506", "ov_cimguiname": "ImDrawList__ResetForNewFrame", "ret": "void", "signature": "()", @@ -2674,7 +2674,7 @@ "cimguiname": "ImDrawList__TryMergeDrawCmds", "defaults": {}, "funcname": "_TryMergeDrawCmds", - "location": "imgui:2494", + "location": "imgui:2509", "ov_cimguiname": "ImDrawList__TryMergeDrawCmds", "ret": "void", "signature": "()", @@ -2694,7 +2694,7 @@ "cimguiname": "ImDrawList_destroy", "defaults": {}, "destructor": true, - "location": "imgui:2404", + "location": "imgui:2419", "ov_cimguiname": "ImDrawList_destroy", "realdestructor": true, "ret": "void", @@ -2712,7 +2712,7 @@ "constructor": true, "defaults": {}, "funcname": "ImFontAtlasCustomRect", - "location": "imgui:2592", + "location": "imgui:2607", "ov_cimguiname": "ImFontAtlasCustomRect_ImFontAtlasCustomRect", "signature": "()", "stname": "ImFontAtlasCustomRect" @@ -2732,7 +2732,7 @@ "cimguiname": "ImFontAtlasCustomRect_IsPacked", "defaults": {}, "funcname": "IsPacked", - "location": "imgui:2593", + "location": "imgui:2608", "ov_cimguiname": "ImFontAtlasCustomRect_IsPacked", "ret": "bool", "signature": "()const", @@ -2798,7 +2798,7 @@ "offset": "ImVec2(0,0)" }, "funcname": "AddCustomRectFontGlyph", - "location": "imgui:2676", + "location": "imgui:2691", "ov_cimguiname": "ImFontAtlas_AddCustomRectFontGlyph", "ret": "int", "signature": "(ImFont*,ImWchar,int,int,float,const ImVec2)", @@ -2827,7 +2827,7 @@ "cimguiname": "ImFontAtlas_AddCustomRectRegular", "defaults": {}, "funcname": "AddCustomRectRegular", - "location": "imgui:2675", + "location": "imgui:2690", "ov_cimguiname": "ImFontAtlas_AddCustomRectRegular", "ret": "int", "signature": "(int,int)", @@ -2852,7 +2852,7 @@ "cimguiname": "ImFontAtlas_AddFont", "defaults": {}, "funcname": "AddFont", - "location": "imgui:2626", + "location": "imgui:2641", "ov_cimguiname": "ImFontAtlas_AddFont", "ret": "ImFont*", "signature": "(const ImFontConfig*)", @@ -2879,7 +2879,7 @@ "font_cfg": "NULL" }, "funcname": "AddFontDefault", - "location": "imgui:2627", + "location": "imgui:2642", "ov_cimguiname": "ImFontAtlas_AddFontDefault", "ret": "ImFont*", "signature": "(const ImFontConfig*)", @@ -2919,7 +2919,7 @@ "glyph_ranges": "NULL" }, "funcname": "AddFontFromFileTTF", - "location": "imgui:2628", + "location": "imgui:2643", "ov_cimguiname": "ImFontAtlas_AddFontFromFileTTF", "ret": "ImFont*", "signature": "(const char*,float,const ImFontConfig*,const ImWchar*)", @@ -2959,7 +2959,7 @@ "glyph_ranges": "NULL" }, "funcname": "AddFontFromMemoryCompressedBase85TTF", - "location": "imgui:2631", + "location": "imgui:2646", "ov_cimguiname": "ImFontAtlas_AddFontFromMemoryCompressedBase85TTF", "ret": "ImFont*", "signature": "(const char*,float,const ImFontConfig*,const ImWchar*)", @@ -3003,7 +3003,7 @@ "glyph_ranges": "NULL" }, "funcname": "AddFontFromMemoryCompressedTTF", - "location": "imgui:2630", + "location": "imgui:2645", "ov_cimguiname": "ImFontAtlas_AddFontFromMemoryCompressedTTF", "ret": "ImFont*", "signature": "(const void*,int,float,const ImFontConfig*,const ImWchar*)", @@ -3047,7 +3047,7 @@ "glyph_ranges": "NULL" }, "funcname": "AddFontFromMemoryTTF", - "location": "imgui:2629", + "location": "imgui:2644", "ov_cimguiname": "ImFontAtlas_AddFontFromMemoryTTF", "ret": "ImFont*", "signature": "(void*,int,float,const ImFontConfig*,const ImWchar*)", @@ -3068,7 +3068,7 @@ "cimguiname": "ImFontAtlas_Build", "defaults": {}, "funcname": "Build", - "location": "imgui:2642", + "location": "imgui:2657", "ov_cimguiname": "ImFontAtlas_Build", "ret": "bool", "signature": "()", @@ -3101,7 +3101,7 @@ "cimguiname": "ImFontAtlas_CalcCustomRectUV", "defaults": {}, "funcname": "CalcCustomRectUV", - "location": "imgui:2680", + "location": "imgui:2695", "ov_cimguiname": "ImFontAtlas_CalcCustomRectUV", "ret": "void", "signature": "(const ImFontAtlasCustomRect*,ImVec2*,ImVec2*)const", @@ -3122,7 +3122,7 @@ "cimguiname": "ImFontAtlas_Clear", "defaults": {}, "funcname": "Clear", - "location": "imgui:2635", + "location": "imgui:2650", "ov_cimguiname": "ImFontAtlas_Clear", "ret": "void", "signature": "()", @@ -3143,7 +3143,7 @@ "cimguiname": "ImFontAtlas_ClearFonts", "defaults": {}, "funcname": "ClearFonts", - "location": "imgui:2634", + "location": "imgui:2649", "ov_cimguiname": "ImFontAtlas_ClearFonts", "ret": "void", "signature": "()", @@ -3164,7 +3164,7 @@ "cimguiname": "ImFontAtlas_ClearInputData", "defaults": {}, "funcname": "ClearInputData", - "location": "imgui:2632", + "location": "imgui:2647", "ov_cimguiname": "ImFontAtlas_ClearInputData", "ret": "void", "signature": "()", @@ -3185,7 +3185,7 @@ "cimguiname": "ImFontAtlas_ClearTexData", "defaults": {}, "funcname": "ClearTexData", - "location": "imgui:2633", + "location": "imgui:2648", "ov_cimguiname": "ImFontAtlas_ClearTexData", "ret": "void", "signature": "()", @@ -3210,7 +3210,7 @@ "cimguiname": "ImFontAtlas_GetCustomRectByIndex", "defaults": {}, "funcname": "GetCustomRectByIndex", - "location": "imgui:2677", + "location": "imgui:2692", "ov_cimguiname": "ImFontAtlas_GetCustomRectByIndex", "ret": "ImFontAtlasCustomRect*", "signature": "(int)", @@ -3231,7 +3231,7 @@ "cimguiname": "ImFontAtlas_GetGlyphRangesChineseFull", "defaults": {}, "funcname": "GetGlyphRangesChineseFull", - "location": "imgui:2658", + "location": "imgui:2673", "ov_cimguiname": "ImFontAtlas_GetGlyphRangesChineseFull", "ret": "const ImWchar*", "signature": "()", @@ -3252,7 +3252,7 @@ "cimguiname": "ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon", "defaults": {}, "funcname": "GetGlyphRangesChineseSimplifiedCommon", - "location": "imgui:2659", + "location": "imgui:2674", "ov_cimguiname": "ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon", "ret": "const ImWchar*", "signature": "()", @@ -3273,7 +3273,7 @@ "cimguiname": "ImFontAtlas_GetGlyphRangesCyrillic", "defaults": {}, "funcname": "GetGlyphRangesCyrillic", - "location": "imgui:2660", + "location": "imgui:2675", "ov_cimguiname": "ImFontAtlas_GetGlyphRangesCyrillic", "ret": "const ImWchar*", "signature": "()", @@ -3294,7 +3294,7 @@ "cimguiname": "ImFontAtlas_GetGlyphRangesDefault", "defaults": {}, "funcname": "GetGlyphRangesDefault", - "location": "imgui:2655", + "location": "imgui:2670", "ov_cimguiname": "ImFontAtlas_GetGlyphRangesDefault", "ret": "const ImWchar*", "signature": "()", @@ -3315,7 +3315,7 @@ "cimguiname": "ImFontAtlas_GetGlyphRangesJapanese", "defaults": {}, "funcname": "GetGlyphRangesJapanese", - "location": "imgui:2657", + "location": "imgui:2672", "ov_cimguiname": "ImFontAtlas_GetGlyphRangesJapanese", "ret": "const ImWchar*", "signature": "()", @@ -3336,7 +3336,7 @@ "cimguiname": "ImFontAtlas_GetGlyphRangesKorean", "defaults": {}, "funcname": "GetGlyphRangesKorean", - "location": "imgui:2656", + "location": "imgui:2671", "ov_cimguiname": "ImFontAtlas_GetGlyphRangesKorean", "ret": "const ImWchar*", "signature": "()", @@ -3357,7 +3357,7 @@ "cimguiname": "ImFontAtlas_GetGlyphRangesThai", "defaults": {}, "funcname": "GetGlyphRangesThai", - "location": "imgui:2661", + "location": "imgui:2676", "ov_cimguiname": "ImFontAtlas_GetGlyphRangesThai", "ret": "const ImWchar*", "signature": "()", @@ -3378,7 +3378,7 @@ "cimguiname": "ImFontAtlas_GetGlyphRangesVietnamese", "defaults": {}, "funcname": "GetGlyphRangesVietnamese", - "location": "imgui:2662", + "location": "imgui:2677", "ov_cimguiname": "ImFontAtlas_GetGlyphRangesVietnamese", "ret": "const ImWchar*", "signature": "()", @@ -3419,7 +3419,7 @@ "cimguiname": "ImFontAtlas_GetMouseCursorTexData", "defaults": {}, "funcname": "GetMouseCursorTexData", - "location": "imgui:2681", + "location": "imgui:2696", "ov_cimguiname": "ImFontAtlas_GetMouseCursorTexData", "ret": "bool", "signature": "(ImGuiMouseCursor,ImVec2*,ImVec2*,ImVec2[2],ImVec2[2])", @@ -3458,7 +3458,7 @@ "out_bytes_per_pixel": "NULL" }, "funcname": "GetTexDataAsAlpha8", - "location": "imgui:2643", + "location": "imgui:2658", "ov_cimguiname": "ImFontAtlas_GetTexDataAsAlpha8", "ret": "void", "signature": "(unsigned char**,int*,int*,int*)", @@ -3497,7 +3497,7 @@ "out_bytes_per_pixel": "NULL" }, "funcname": "GetTexDataAsRGBA32", - "location": "imgui:2644", + "location": "imgui:2659", "ov_cimguiname": "ImFontAtlas_GetTexDataAsRGBA32", "ret": "void", "signature": "(unsigned char**,int*,int*,int*)", @@ -3514,7 +3514,7 @@ "constructor": true, "defaults": {}, "funcname": "ImFontAtlas", - "location": "imgui:2624", + "location": "imgui:2639", "ov_cimguiname": "ImFontAtlas_ImFontAtlas", "signature": "()", "stname": "ImFontAtlas" @@ -3534,7 +3534,7 @@ "cimguiname": "ImFontAtlas_IsBuilt", "defaults": {}, "funcname": "IsBuilt", - "location": "imgui:2645", + "location": "imgui:2660", "ov_cimguiname": "ImFontAtlas_IsBuilt", "ret": "bool", "signature": "()const", @@ -3559,7 +3559,7 @@ "cimguiname": "ImFontAtlas_SetTexID", "defaults": {}, "funcname": "SetTexID", - "location": "imgui:2646", + "location": "imgui:2661", "ov_cimguiname": "ImFontAtlas_SetTexID", "ret": "void", "signature": "(ImTextureID)", @@ -3579,7 +3579,7 @@ "cimguiname": "ImFontAtlas_destroy", "defaults": {}, "destructor": true, - "location": "imgui:2625", + "location": "imgui:2640", "ov_cimguiname": "ImFontAtlas_destroy", "realdestructor": true, "ret": "void", @@ -3597,7 +3597,7 @@ "constructor": true, "defaults": {}, "funcname": "ImFontConfig", - "location": "imgui:2552", + "location": "imgui:2567", "ov_cimguiname": "ImFontConfig_ImFontConfig", "signature": "()", "stname": "ImFontConfig" @@ -3640,7 +3640,7 @@ "cimguiname": "ImFontGlyphRangesBuilder_AddChar", "defaults": {}, "funcname": "AddChar", - "location": "imgui:2577", + "location": "imgui:2592", "ov_cimguiname": "ImFontGlyphRangesBuilder_AddChar", "ret": "void", "signature": "(ImWchar)", @@ -3665,7 +3665,7 @@ "cimguiname": "ImFontGlyphRangesBuilder_AddRanges", "defaults": {}, "funcname": "AddRanges", - "location": "imgui:2579", + "location": "imgui:2594", "ov_cimguiname": "ImFontGlyphRangesBuilder_AddRanges", "ret": "void", "signature": "(const ImWchar*)", @@ -3696,7 +3696,7 @@ "text_end": "NULL" }, "funcname": "AddText", - "location": "imgui:2578", + "location": "imgui:2593", "ov_cimguiname": "ImFontGlyphRangesBuilder_AddText", "ret": "void", "signature": "(const char*,const char*)", @@ -3721,7 +3721,7 @@ "cimguiname": "ImFontGlyphRangesBuilder_BuildRanges", "defaults": {}, "funcname": "BuildRanges", - "location": "imgui:2580", + "location": "imgui:2595", "ov_cimguiname": "ImFontGlyphRangesBuilder_BuildRanges", "ret": "void", "signature": "(ImVector_ImWchar*)", @@ -3742,7 +3742,7 @@ "cimguiname": "ImFontGlyphRangesBuilder_Clear", "defaults": {}, "funcname": "Clear", - "location": "imgui:2574", + "location": "imgui:2589", "ov_cimguiname": "ImFontGlyphRangesBuilder_Clear", "ret": "void", "signature": "()", @@ -3767,7 +3767,7 @@ "cimguiname": "ImFontGlyphRangesBuilder_GetBit", "defaults": {}, "funcname": "GetBit", - "location": "imgui:2575", + "location": "imgui:2590", "ov_cimguiname": "ImFontGlyphRangesBuilder_GetBit", "ret": "bool", "signature": "(size_t)const", @@ -3784,7 +3784,7 @@ "constructor": true, "defaults": {}, "funcname": "ImFontGlyphRangesBuilder", - "location": "imgui:2573", + "location": "imgui:2588", "ov_cimguiname": "ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder", "signature": "()", "stname": "ImFontGlyphRangesBuilder" @@ -3808,7 +3808,7 @@ "cimguiname": "ImFontGlyphRangesBuilder_SetBit", "defaults": {}, "funcname": "SetBit", - "location": "imgui:2576", + "location": "imgui:2591", "ov_cimguiname": "ImFontGlyphRangesBuilder_SetBit", "ret": "void", "signature": "(size_t)", @@ -3892,7 +3892,7 @@ "cimguiname": "ImFont_AddGlyph", "defaults": {}, "funcname": "AddGlyph", - "location": "imgui:2769", + "location": "imgui:2784", "ov_cimguiname": "ImFont_AddGlyph", "ret": "void", "signature": "(const ImFontConfig*,ImWchar,float,float,float,float,float,float,float,float,float)", @@ -3927,7 +3927,7 @@ "overwrite_dst": "true" }, "funcname": "AddRemapChar", - "location": "imgui:2770", + "location": "imgui:2785", "ov_cimguiname": "ImFont_AddRemapChar", "ret": "void", "signature": "(ImWchar,ImWchar,bool)", @@ -3948,7 +3948,7 @@ "cimguiname": "ImFont_BuildLookupTable", "defaults": {}, "funcname": "BuildLookupTable", - "location": "imgui:2766", + "location": "imgui:2781", "ov_cimguiname": "ImFont_BuildLookupTable", "ret": "void", "signature": "()", @@ -4000,7 +4000,7 @@ "text_end": "NULL" }, "funcname": "CalcTextSizeA", - "location": "imgui:2760", + "location": "imgui:2775", "nonUDT": 1, "ov_cimguiname": "ImFont_CalcTextSizeA", "ret": "void", @@ -4038,7 +4038,7 @@ "cimguiname": "ImFont_CalcWordWrapPositionA", "defaults": {}, "funcname": "CalcWordWrapPositionA", - "location": "imgui:2761", + "location": "imgui:2776", "ov_cimguiname": "ImFont_CalcWordWrapPositionA", "ret": "const char*", "signature": "(float,const char*,const char*,float)const", @@ -4059,7 +4059,7 @@ "cimguiname": "ImFont_ClearOutputData", "defaults": {}, "funcname": "ClearOutputData", - "location": "imgui:2767", + "location": "imgui:2782", "ov_cimguiname": "ImFont_ClearOutputData", "ret": "void", "signature": "()", @@ -4084,7 +4084,7 @@ "cimguiname": "ImFont_FindGlyph", "defaults": {}, "funcname": "FindGlyph", - "location": "imgui:2752", + "location": "imgui:2767", "ov_cimguiname": "ImFont_FindGlyph", "ret": "const ImFontGlyph*", "signature": "(ImWchar)const", @@ -4109,7 +4109,7 @@ "cimguiname": "ImFont_FindGlyphNoFallback", "defaults": {}, "funcname": "FindGlyphNoFallback", - "location": "imgui:2753", + "location": "imgui:2768", "ov_cimguiname": "ImFont_FindGlyphNoFallback", "ret": "const ImFontGlyph*", "signature": "(ImWchar)const", @@ -4134,7 +4134,7 @@ "cimguiname": "ImFont_GetCharAdvance", "defaults": {}, "funcname": "GetCharAdvance", - "location": "imgui:2754", + "location": "imgui:2769", "ov_cimguiname": "ImFont_GetCharAdvance", "ret": "float", "signature": "(ImWchar)const", @@ -4155,7 +4155,7 @@ "cimguiname": "ImFont_GetDebugName", "defaults": {}, "funcname": "GetDebugName", - "location": "imgui:2756", + "location": "imgui:2771", "ov_cimguiname": "ImFont_GetDebugName", "ret": "const char*", "signature": "()const", @@ -4180,7 +4180,7 @@ "cimguiname": "ImFont_GrowIndex", "defaults": {}, "funcname": "GrowIndex", - "location": "imgui:2768", + "location": "imgui:2783", "ov_cimguiname": "ImFont_GrowIndex", "ret": "void", "signature": "(int)", @@ -4197,7 +4197,7 @@ "constructor": true, "defaults": {}, "funcname": "ImFont", - "location": "imgui:2750", + "location": "imgui:2765", "ov_cimguiname": "ImFont_ImFont", "signature": "()", "stname": "ImFont" @@ -4225,7 +4225,7 @@ "cimguiname": "ImFont_IsGlyphRangeUnused", "defaults": {}, "funcname": "IsGlyphRangeUnused", - "location": "imgui:2772", + "location": "imgui:2787", "ov_cimguiname": "ImFont_IsGlyphRangeUnused", "ret": "bool", "signature": "(unsigned int,unsigned int)", @@ -4246,7 +4246,7 @@ "cimguiname": "ImFont_IsLoaded", "defaults": {}, "funcname": "IsLoaded", - "location": "imgui:2755", + "location": "imgui:2770", "ov_cimguiname": "ImFont_IsLoaded", "ret": "bool", "signature": "()const", @@ -4287,7 +4287,7 @@ "cimguiname": "ImFont_RenderChar", "defaults": {}, "funcname": "RenderChar", - "location": "imgui:2762", + "location": "imgui:2777", "ov_cimguiname": "ImFont_RenderChar", "ret": "void", "signature": "(ImDrawList*,float,ImVec2,ImU32,ImWchar)const", @@ -4347,7 +4347,7 @@ "wrap_width": "0.0f" }, "funcname": "RenderText", - "location": "imgui:2763", + "location": "imgui:2778", "ov_cimguiname": "ImFont_RenderText", "ret": "void", "signature": "(ImDrawList*,float,ImVec2,ImU32,const ImVec4,const char*,const char*,float,bool)const", @@ -4376,7 +4376,7 @@ "cimguiname": "ImFont_SetGlyphVisible", "defaults": {}, "funcname": "SetGlyphVisible", - "location": "imgui:2771", + "location": "imgui:2786", "ov_cimguiname": "ImFont_SetGlyphVisible", "ret": "void", "signature": "(ImWchar,bool)", @@ -4396,7 +4396,7 @@ "cimguiname": "ImFont_destroy", "defaults": {}, "destructor": true, - "location": "imgui:2751", + "location": "imgui:2766", "ov_cimguiname": "ImFont_destroy", "realdestructor": true, "ret": "void", @@ -4422,7 +4422,7 @@ "cimguiname": "ImGuiIO_AddFocusEvent", "defaults": {}, "funcname": "AddFocusEvent", - "location": "imgui:1891", + "location": "imgui:1898", "ov_cimguiname": "ImGuiIO_AddFocusEvent", "ret": "void", "signature": "(bool)", @@ -4447,7 +4447,7 @@ "cimguiname": "ImGuiIO_AddInputCharacter", "defaults": {}, "funcname": "AddInputCharacter", - "location": "imgui:1887", + "location": "imgui:1895", "ov_cimguiname": "ImGuiIO_AddInputCharacter", "ret": "void", "signature": "(unsigned int)", @@ -4472,7 +4472,7 @@ "cimguiname": "ImGuiIO_AddInputCharacterUTF16", "defaults": {}, "funcname": "AddInputCharacterUTF16", - "location": "imgui:1888", + "location": "imgui:1896", "ov_cimguiname": "ImGuiIO_AddInputCharacterUTF16", "ret": "void", "signature": "(ImWchar16)", @@ -4497,7 +4497,7 @@ "cimguiname": "ImGuiIO_AddInputCharactersUTF8", "defaults": {}, "funcname": "AddInputCharactersUTF8", - "location": "imgui:1889", + "location": "imgui:1897", "ov_cimguiname": "ImGuiIO_AddInputCharactersUTF8", "ret": "void", "signature": "(const char*)", @@ -4518,13 +4518,34 @@ "cimguiname": "ImGuiIO_ClearInputCharacters", "defaults": {}, "funcname": "ClearInputCharacters", - "location": "imgui:1890", + "location": "imgui:1899", "ov_cimguiname": "ImGuiIO_ClearInputCharacters", "ret": "void", "signature": "()", "stname": "ImGuiIO" } ], + "ImGuiIO_ClearInputKeys": [ + { + "args": "(ImGuiIO* self)", + "argsT": [ + { + "name": "self", + "type": "ImGuiIO*" + } + ], + "argsoriginal": "()", + "call_args": "()", + "cimguiname": "ImGuiIO_ClearInputKeys", + "defaults": {}, + "funcname": "ClearInputKeys", + "location": "imgui:1900", + "ov_cimguiname": "ImGuiIO_ClearInputKeys", + "ret": "void", + "signature": "()", + "stname": "ImGuiIO" + } + ], "ImGuiIO_ImGuiIO": [ { "args": "()", @@ -4535,7 +4556,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiIO", - "location": "imgui:1940", + "location": "imgui:1953", "ov_cimguiname": "ImGuiIO_ImGuiIO", "signature": "()", "stname": "ImGuiIO" @@ -4574,7 +4595,7 @@ "cimguiname": "ImGuiInputTextCallbackData_ClearSelection", "defaults": {}, "funcname": "ClearSelection", - "location": "imgui:1981", + "location": "imgui:1994", "ov_cimguiname": "ImGuiInputTextCallbackData_ClearSelection", "ret": "void", "signature": "()", @@ -4603,7 +4624,7 @@ "cimguiname": "ImGuiInputTextCallbackData_DeleteChars", "defaults": {}, "funcname": "DeleteChars", - "location": "imgui:1978", + "location": "imgui:1991", "ov_cimguiname": "ImGuiInputTextCallbackData_DeleteChars", "ret": "void", "signature": "(int,int)", @@ -4624,7 +4645,7 @@ "cimguiname": "ImGuiInputTextCallbackData_HasSelection", "defaults": {}, "funcname": "HasSelection", - "location": "imgui:1982", + "location": "imgui:1995", "ov_cimguiname": "ImGuiInputTextCallbackData_HasSelection", "ret": "bool", "signature": "()const", @@ -4641,7 +4662,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiInputTextCallbackData", - "location": "imgui:1977", + "location": "imgui:1990", "ov_cimguiname": "ImGuiInputTextCallbackData_ImGuiInputTextCallbackData", "signature": "()", "stname": "ImGuiInputTextCallbackData" @@ -4675,7 +4696,7 @@ "text_end": "NULL" }, "funcname": "InsertChars", - "location": "imgui:1979", + "location": "imgui:1992", "ov_cimguiname": "ImGuiInputTextCallbackData_InsertChars", "ret": "void", "signature": "(int,const char*,const char*)", @@ -4696,7 +4717,7 @@ "cimguiname": "ImGuiInputTextCallbackData_SelectAll", "defaults": {}, "funcname": "SelectAll", - "location": "imgui:1980", + "location": "imgui:1993", "ov_cimguiname": "ImGuiInputTextCallbackData_SelectAll", "ret": "void", "signature": "()", @@ -4746,7 +4767,7 @@ "items_height": "-1.0f" }, "funcname": "Begin", - "location": "imgui:2194", + "location": "imgui:2206", "ov_cimguiname": "ImGuiListClipper_Begin", "ret": "void", "signature": "(int,float)", @@ -4767,13 +4788,42 @@ "cimguiname": "ImGuiListClipper_End", "defaults": {}, "funcname": "End", - "location": "imgui:2195", + "location": "imgui:2207", "ov_cimguiname": "ImGuiListClipper_End", "ret": "void", "signature": "()", "stname": "ImGuiListClipper" } ], + "ImGuiListClipper_ForceDisplayRangeByIndices": [ + { + "args": "(ImGuiListClipper* self,int item_min,int item_max)", + "argsT": [ + { + "name": "self", + "type": "ImGuiListClipper*" + }, + { + "name": "item_min", + "type": "int" + }, + { + "name": "item_max", + "type": "int" + } + ], + "argsoriginal": "(int item_min,int item_max)", + "call_args": "(item_min,item_max)", + "cimguiname": "ImGuiListClipper_ForceDisplayRangeByIndices", + "defaults": {}, + "funcname": "ForceDisplayRangeByIndices", + "location": "imgui:2211", + "ov_cimguiname": "ImGuiListClipper_ForceDisplayRangeByIndices", + "ret": "void", + "signature": "(int,int)", + "stname": "ImGuiListClipper" + } + ], "ImGuiListClipper_ImGuiListClipper": [ { "args": "()", @@ -4784,7 +4834,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiListClipper", - "location": "imgui:2189", + "location": "imgui:2204", "ov_cimguiname": "ImGuiListClipper_ImGuiListClipper", "signature": "()", "stname": "ImGuiListClipper" @@ -4804,7 +4854,7 @@ "cimguiname": "ImGuiListClipper_Step", "defaults": {}, "funcname": "Step", - "location": "imgui:2196", + "location": "imgui:2208", "ov_cimguiname": "ImGuiListClipper_Step", "ret": "bool", "signature": "()", @@ -4824,7 +4874,7 @@ "cimguiname": "ImGuiListClipper_destroy", "defaults": {}, "destructor": true, - "location": "imgui:2190", + "location": "imgui:2205", "ov_cimguiname": "ImGuiListClipper_destroy", "realdestructor": true, "ret": "void", @@ -4842,7 +4892,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiOnceUponAFrame", - "location": "imgui:2057", + "location": "imgui:2070", "ov_cimguiname": "ImGuiOnceUponAFrame_ImGuiOnceUponAFrame", "signature": "()", "stname": "ImGuiOnceUponAFrame" @@ -4881,7 +4931,7 @@ "cimguiname": "ImGuiPayload_Clear", "defaults": {}, "funcname": "Clear", - "location": "imgui:2011", + "location": "imgui:2024", "ov_cimguiname": "ImGuiPayload_Clear", "ret": "void", "signature": "()", @@ -4898,7 +4948,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiPayload", - "location": "imgui:2010", + "location": "imgui:2023", "ov_cimguiname": "ImGuiPayload_ImGuiPayload", "signature": "()", "stname": "ImGuiPayload" @@ -4922,7 +4972,7 @@ "cimguiname": "ImGuiPayload_IsDataType", "defaults": {}, "funcname": "IsDataType", - "location": "imgui:2012", + "location": "imgui:2025", "ov_cimguiname": "ImGuiPayload_IsDataType", "ret": "bool", "signature": "(const char*)const", @@ -4943,7 +4993,7 @@ "cimguiname": "ImGuiPayload_IsDelivery", "defaults": {}, "funcname": "IsDelivery", - "location": "imgui:2014", + "location": "imgui:2027", "ov_cimguiname": "ImGuiPayload_IsDelivery", "ret": "bool", "signature": "()const", @@ -4964,7 +5014,7 @@ "cimguiname": "ImGuiPayload_IsPreview", "defaults": {}, "funcname": "IsPreview", - "location": "imgui:2013", + "location": "imgui:2026", "ov_cimguiname": "ImGuiPayload_IsPreview", "ret": "bool", "signature": "()const", @@ -5009,7 +5059,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiStoragePair", - "location": "imgui:2124", + "location": "imgui:2137", "ov_cimguiname": "ImGuiStoragePair_ImGuiStoragePairInt", "signature": "(ImGuiID,int)", "stname": "ImGuiStoragePair" @@ -5032,7 +5082,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiStoragePair", - "location": "imgui:2125", + "location": "imgui:2138", "ov_cimguiname": "ImGuiStoragePair_ImGuiStoragePairFloat", "signature": "(ImGuiID,float)", "stname": "ImGuiStoragePair" @@ -5055,7 +5105,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiStoragePair", - "location": "imgui:2126", + "location": "imgui:2139", "ov_cimguiname": "ImGuiStoragePair_ImGuiStoragePairPtr", "signature": "(ImGuiID,void*)", "stname": "ImGuiStoragePair" @@ -5094,7 +5144,7 @@ "cimguiname": "ImGuiStorage_BuildSortByKey", "defaults": {}, "funcname": "BuildSortByKey", - "location": "imgui:2157", + "location": "imgui:2170", "ov_cimguiname": "ImGuiStorage_BuildSortByKey", "ret": "void", "signature": "()", @@ -5115,7 +5165,7 @@ "cimguiname": "ImGuiStorage_Clear", "defaults": {}, "funcname": "Clear", - "location": "imgui:2134", + "location": "imgui:2147", "ov_cimguiname": "ImGuiStorage_Clear", "ret": "void", "signature": "()", @@ -5146,7 +5196,7 @@ "default_val": "false" }, "funcname": "GetBool", - "location": "imgui:2137", + "location": "imgui:2150", "ov_cimguiname": "ImGuiStorage_GetBool", "ret": "bool", "signature": "(ImGuiID,bool)const", @@ -5177,7 +5227,7 @@ "default_val": "false" }, "funcname": "GetBoolRef", - "location": "imgui:2149", + "location": "imgui:2162", "ov_cimguiname": "ImGuiStorage_GetBoolRef", "ret": "bool*", "signature": "(ImGuiID,bool)", @@ -5208,7 +5258,7 @@ "default_val": "0.0f" }, "funcname": "GetFloat", - "location": "imgui:2139", + "location": "imgui:2152", "ov_cimguiname": "ImGuiStorage_GetFloat", "ret": "float", "signature": "(ImGuiID,float)const", @@ -5239,7 +5289,7 @@ "default_val": "0.0f" }, "funcname": "GetFloatRef", - "location": "imgui:2150", + "location": "imgui:2163", "ov_cimguiname": "ImGuiStorage_GetFloatRef", "ret": "float*", "signature": "(ImGuiID,float)", @@ -5270,7 +5320,7 @@ "default_val": "0" }, "funcname": "GetInt", - "location": "imgui:2135", + "location": "imgui:2148", "ov_cimguiname": "ImGuiStorage_GetInt", "ret": "int", "signature": "(ImGuiID,int)const", @@ -5301,7 +5351,7 @@ "default_val": "0" }, "funcname": "GetIntRef", - "location": "imgui:2148", + "location": "imgui:2161", "ov_cimguiname": "ImGuiStorage_GetIntRef", "ret": "int*", "signature": "(ImGuiID,int)", @@ -5326,7 +5376,7 @@ "cimguiname": "ImGuiStorage_GetVoidPtr", "defaults": {}, "funcname": "GetVoidPtr", - "location": "imgui:2141", + "location": "imgui:2154", "ov_cimguiname": "ImGuiStorage_GetVoidPtr", "ret": "void*", "signature": "(ImGuiID)const", @@ -5357,7 +5407,7 @@ "default_val": "NULL" }, "funcname": "GetVoidPtrRef", - "location": "imgui:2151", + "location": "imgui:2164", "ov_cimguiname": "ImGuiStorage_GetVoidPtrRef", "ret": "void**", "signature": "(ImGuiID,void*)", @@ -5382,7 +5432,7 @@ "cimguiname": "ImGuiStorage_SetAllInt", "defaults": {}, "funcname": "SetAllInt", - "location": "imgui:2154", + "location": "imgui:2167", "ov_cimguiname": "ImGuiStorage_SetAllInt", "ret": "void", "signature": "(int)", @@ -5411,7 +5461,7 @@ "cimguiname": "ImGuiStorage_SetBool", "defaults": {}, "funcname": "SetBool", - "location": "imgui:2138", + "location": "imgui:2151", "ov_cimguiname": "ImGuiStorage_SetBool", "ret": "void", "signature": "(ImGuiID,bool)", @@ -5440,7 +5490,7 @@ "cimguiname": "ImGuiStorage_SetFloat", "defaults": {}, "funcname": "SetFloat", - "location": "imgui:2140", + "location": "imgui:2153", "ov_cimguiname": "ImGuiStorage_SetFloat", "ret": "void", "signature": "(ImGuiID,float)", @@ -5469,7 +5519,7 @@ "cimguiname": "ImGuiStorage_SetInt", "defaults": {}, "funcname": "SetInt", - "location": "imgui:2136", + "location": "imgui:2149", "ov_cimguiname": "ImGuiStorage_SetInt", "ret": "void", "signature": "(ImGuiID,int)", @@ -5498,7 +5548,7 @@ "cimguiname": "ImGuiStorage_SetVoidPtr", "defaults": {}, "funcname": "SetVoidPtr", - "location": "imgui:2142", + "location": "imgui:2155", "ov_cimguiname": "ImGuiStorage_SetVoidPtr", "ret": "void", "signature": "(ImGuiID,void*)", @@ -5515,7 +5565,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiStyle", - "location": "imgui:1801", + "location": "imgui:1809", "ov_cimguiname": "ImGuiStyle_ImGuiStyle", "signature": "()", "stname": "ImGuiStyle" @@ -5539,7 +5589,7 @@ "cimguiname": "ImGuiStyle_ScaleAllSizes", "defaults": {}, "funcname": "ScaleAllSizes", - "location": "imgui:1802", + "location": "imgui:1810", "ov_cimguiname": "ImGuiStyle_ScaleAllSizes", "ret": "void", "signature": "(float)", @@ -5575,7 +5625,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiTableColumnSortSpecs", - "location": "imgui:2025", + "location": "imgui:2038", "ov_cimguiname": "ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs", "signature": "()", "stname": "ImGuiTableColumnSortSpecs" @@ -5610,7 +5660,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiTableSortSpecs", - "location": "imgui:2038", + "location": "imgui:2051", "ov_cimguiname": "ImGuiTableSortSpecs_ImGuiTableSortSpecs", "signature": "()", "stname": "ImGuiTableSortSpecs" @@ -5645,7 +5695,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiTextBuffer", - "location": "imgui:2095", + "location": "imgui:2108", "ov_cimguiname": "ImGuiTextBuffer_ImGuiTextBuffer", "signature": "()", "stname": "ImGuiTextBuffer" @@ -5675,7 +5725,7 @@ "str_end": "NULL" }, "funcname": "append", - "location": "imgui:2104", + "location": "imgui:2117", "ov_cimguiname": "ImGuiTextBuffer_append", "ret": "void", "signature": "(const char*,const char*)", @@ -5705,7 +5755,7 @@ "defaults": {}, "funcname": "appendf", "isvararg": "...)", - "location": "imgui:2105", + "location": "imgui:2118", "manual": true, "ov_cimguiname": "ImGuiTextBuffer_appendf", "ret": "void", @@ -5735,7 +5785,7 @@ "cimguiname": "ImGuiTextBuffer_appendfv", "defaults": {}, "funcname": "appendfv", - "location": "imgui:2106", + "location": "imgui:2119", "ov_cimguiname": "ImGuiTextBuffer_appendfv", "ret": "void", "signature": "(const char*,va_list)", @@ -5756,7 +5806,7 @@ "cimguiname": "ImGuiTextBuffer_begin", "defaults": {}, "funcname": "begin", - "location": "imgui:2097", + "location": "imgui:2110", "ov_cimguiname": "ImGuiTextBuffer_begin", "ret": "const char*", "signature": "()const", @@ -5777,7 +5827,7 @@ "cimguiname": "ImGuiTextBuffer_c_str", "defaults": {}, "funcname": "c_str", - "location": "imgui:2103", + "location": "imgui:2116", "ov_cimguiname": "ImGuiTextBuffer_c_str", "ret": "const char*", "signature": "()const", @@ -5798,7 +5848,7 @@ "cimguiname": "ImGuiTextBuffer_clear", "defaults": {}, "funcname": "clear", - "location": "imgui:2101", + "location": "imgui:2114", "ov_cimguiname": "ImGuiTextBuffer_clear", "ret": "void", "signature": "()", @@ -5838,7 +5888,7 @@ "cimguiname": "ImGuiTextBuffer_empty", "defaults": {}, "funcname": "empty", - "location": "imgui:2100", + "location": "imgui:2113", "ov_cimguiname": "ImGuiTextBuffer_empty", "ret": "bool", "signature": "()const", @@ -5859,7 +5909,7 @@ "cimguiname": "ImGuiTextBuffer_end", "defaults": {}, "funcname": "end", - "location": "imgui:2098", + "location": "imgui:2111", "ov_cimguiname": "ImGuiTextBuffer_end", "ret": "const char*", "signature": "()const", @@ -5884,7 +5934,7 @@ "cimguiname": "ImGuiTextBuffer_reserve", "defaults": {}, "funcname": "reserve", - "location": "imgui:2102", + "location": "imgui:2115", "ov_cimguiname": "ImGuiTextBuffer_reserve", "ret": "void", "signature": "(int)", @@ -5905,7 +5955,7 @@ "cimguiname": "ImGuiTextBuffer_size", "defaults": {}, "funcname": "size", - "location": "imgui:2099", + "location": "imgui:2112", "ov_cimguiname": "ImGuiTextBuffer_size", "ret": "int", "signature": "()const", @@ -5926,7 +5976,7 @@ "cimguiname": "ImGuiTextFilter_Build", "defaults": {}, "funcname": "Build", - "location": "imgui:2068", + "location": "imgui:2081", "ov_cimguiname": "ImGuiTextFilter_Build", "ret": "void", "signature": "()", @@ -5947,7 +5997,7 @@ "cimguiname": "ImGuiTextFilter_Clear", "defaults": {}, "funcname": "Clear", - "location": "imgui:2069", + "location": "imgui:2082", "ov_cimguiname": "ImGuiTextFilter_Clear", "ret": "void", "signature": "()", @@ -5979,7 +6029,7 @@ "width": "0.0f" }, "funcname": "Draw", - "location": "imgui:2066", + "location": "imgui:2079", "ov_cimguiname": "ImGuiTextFilter_Draw", "ret": "bool", "signature": "(const char*,float)", @@ -6003,7 +6053,7 @@ "default_filter": "\"\"" }, "funcname": "ImGuiTextFilter", - "location": "imgui:2065", + "location": "imgui:2078", "ov_cimguiname": "ImGuiTextFilter_ImGuiTextFilter", "signature": "(const char*)", "stname": "ImGuiTextFilter" @@ -6023,7 +6073,7 @@ "cimguiname": "ImGuiTextFilter_IsActive", "defaults": {}, "funcname": "IsActive", - "location": "imgui:2070", + "location": "imgui:2083", "ov_cimguiname": "ImGuiTextFilter_IsActive", "ret": "bool", "signature": "()const", @@ -6054,7 +6104,7 @@ "text_end": "NULL" }, "funcname": "PassFilter", - "location": "imgui:2067", + "location": "imgui:2080", "ov_cimguiname": "ImGuiTextFilter_PassFilter", "ret": "bool", "signature": "(const char*,const char*)const", @@ -6090,7 +6140,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiTextRange", - "location": "imgui:2078", + "location": "imgui:2091", "ov_cimguiname": "ImGuiTextRange_ImGuiTextRangeNil", "signature": "()", "stname": "ImGuiTextRange" @@ -6113,7 +6163,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiTextRange", - "location": "imgui:2079", + "location": "imgui:2092", "ov_cimguiname": "ImGuiTextRange_ImGuiTextRangeStr", "signature": "(const char*,const char*)", "stname": "ImGuiTextRange" @@ -6152,7 +6202,7 @@ "cimguiname": "ImGuiTextRange_empty", "defaults": {}, "funcname": "empty", - "location": "imgui:2080", + "location": "imgui:2093", "ov_cimguiname": "ImGuiTextRange_empty", "ret": "bool", "signature": "()const", @@ -6181,7 +6231,7 @@ "cimguiname": "ImGuiTextRange_split", "defaults": {}, "funcname": "split", - "location": "imgui:2081", + "location": "imgui:2094", "ov_cimguiname": "ImGuiTextRange_split", "ret": "void", "signature": "(char,ImVector_ImGuiTextRange*)const", @@ -6206,7 +6256,7 @@ "cimguiname": "ImGuiViewport_GetCenter", "defaults": {}, "funcname": "GetCenter", - "location": "imgui:2806", + "location": "imgui:2821", "nonUDT": 1, "ov_cimguiname": "ImGuiViewport_GetCenter", "ret": "void", @@ -6232,7 +6282,7 @@ "cimguiname": "ImGuiViewport_GetWorkCenter", "defaults": {}, "funcname": "GetWorkCenter", - "location": "imgui:2807", + "location": "imgui:2822", "nonUDT": 1, "ov_cimguiname": "ImGuiViewport_GetWorkCenter", "ret": "void", @@ -6250,7 +6300,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiViewport", - "location": "imgui:2803", + "location": "imgui:2818", "ov_cimguiname": "ImGuiViewport_ImGuiViewport", "signature": "()", "stname": "ImGuiViewport" @@ -6285,7 +6335,7 @@ "constructor": true, "defaults": {}, "funcname": "ImVec2", - "location": "imgui:259", + "location": "imgui:262", "ov_cimguiname": "ImVec2_ImVec2Nil", "signature": "()", "stname": "ImVec2" @@ -6308,7 +6358,7 @@ "constructor": true, "defaults": {}, "funcname": "ImVec2", - "location": "imgui:260", + "location": "imgui:263", "ov_cimguiname": "ImVec2_ImVec2Float", "signature": "(float,float)", "stname": "ImVec2" @@ -6343,7 +6393,7 @@ "constructor": true, "defaults": {}, "funcname": "ImVec4", - "location": "imgui:272", + "location": "imgui:275", "ov_cimguiname": "ImVec4_ImVec4Nil", "signature": "()", "stname": "ImVec4" @@ -6374,7 +6424,7 @@ "constructor": true, "defaults": {}, "funcname": "ImVec4", - "location": "imgui:273", + "location": "imgui:276", "ov_cimguiname": "ImVec4_ImVec4Float", "signature": "(float,float,float,float)", "stname": "ImVec4" @@ -6409,7 +6459,7 @@ "constructor": true, "defaults": {}, "funcname": "ImVector", - "location": "imgui:1699", + "location": "imgui:1707", "ov_cimguiname": "ImVector_ImVectorNil", "signature": "()", "stname": "ImVector", @@ -6429,7 +6479,7 @@ "constructor": true, "defaults": {}, "funcname": "ImVector", - "location": "imgui:1700", + "location": "imgui:1708", "ov_cimguiname": "ImVector_ImVectorVector", "signature": "(const ImVector)", "stname": "ImVector", @@ -6454,7 +6504,7 @@ "cimguiname": "ImVector__grow_capacity", "defaults": {}, "funcname": "_grow_capacity", - "location": "imgui:1726", + "location": "imgui:1734", "ov_cimguiname": "ImVector__grow_capacity", "ret": "int", "signature": "(int)const", @@ -6476,7 +6526,7 @@ "cimguiname": "ImVector_back", "defaults": {}, "funcname": "back", - "location": "imgui:1722", + "location": "imgui:1730", "ov_cimguiname": "ImVector_backNil", "ret": "T*", "retref": "&", @@ -6497,7 +6547,7 @@ "cimguiname": "ImVector_back", "defaults": {}, "funcname": "back", - "location": "imgui:1723", + "location": "imgui:1731", "ov_cimguiname": "ImVector_back_const", "ret": "const T*", "retref": "&", @@ -6520,7 +6570,7 @@ "cimguiname": "ImVector_begin", "defaults": {}, "funcname": "begin", - "location": "imgui:1716", + "location": "imgui:1724", "ov_cimguiname": "ImVector_beginNil", "ret": "T*", "signature": "()", @@ -6540,7 +6590,7 @@ "cimguiname": "ImVector_begin", "defaults": {}, "funcname": "begin", - "location": "imgui:1717", + "location": "imgui:1725", "ov_cimguiname": "ImVector_begin_const", "ret": "const T*", "signature": "()const", @@ -6562,7 +6612,7 @@ "cimguiname": "ImVector_capacity", "defaults": {}, "funcname": "capacity", - "location": "imgui:1712", + "location": "imgui:1720", "ov_cimguiname": "ImVector_capacity", "ret": "int", "signature": "()const", @@ -6584,7 +6634,7 @@ "cimguiname": "ImVector_clear", "defaults": {}, "funcname": "clear", - "location": "imgui:1704", + "location": "imgui:1712", "ov_cimguiname": "ImVector_clear", "ret": "void", "signature": "()", @@ -6606,7 +6656,7 @@ "cimguiname": "ImVector_clear_delete", "defaults": {}, "funcname": "clear_delete", - "location": "imgui:1705", + "location": "imgui:1713", "ov_cimguiname": "ImVector_clear_delete", "ret": "void", "signature": "()", @@ -6628,7 +6678,7 @@ "cimguiname": "ImVector_clear_destruct", "defaults": {}, "funcname": "clear_destruct", - "location": "imgui:1706", + "location": "imgui:1714", "ov_cimguiname": "ImVector_clear_destruct", "ret": "void", "signature": "()", @@ -6654,7 +6704,7 @@ "cimguiname": "ImVector_contains", "defaults": {}, "funcname": "contains", - "location": "imgui:1740", + "location": "imgui:1748", "ov_cimguiname": "ImVector_contains", "ret": "bool", "signature": "(const T)const", @@ -6675,7 +6725,7 @@ "cimguiname": "ImVector_destroy", "defaults": {}, "destructor": true, - "location": "imgui:1702", + "location": "imgui:1710", "ov_cimguiname": "ImVector_destroy", "realdestructor": true, "ret": "void", @@ -6698,7 +6748,7 @@ "cimguiname": "ImVector_empty", "defaults": {}, "funcname": "empty", - "location": "imgui:1708", + "location": "imgui:1716", "ov_cimguiname": "ImVector_empty", "ret": "bool", "signature": "()const", @@ -6720,7 +6770,7 @@ "cimguiname": "ImVector_end", "defaults": {}, "funcname": "end", - "location": "imgui:1718", + "location": "imgui:1726", "ov_cimguiname": "ImVector_endNil", "ret": "T*", "signature": "()", @@ -6740,7 +6790,7 @@ "cimguiname": "ImVector_end", "defaults": {}, "funcname": "end", - "location": "imgui:1719", + "location": "imgui:1727", "ov_cimguiname": "ImVector_end_const", "ret": "const T*", "signature": "()const", @@ -6766,7 +6816,7 @@ "cimguiname": "ImVector_erase", "defaults": {}, "funcname": "erase", - "location": "imgui:1736", + "location": "imgui:1744", "ov_cimguiname": "ImVector_eraseNil", "ret": "T*", "signature": "(const T*)", @@ -6794,7 +6844,7 @@ "cimguiname": "ImVector_erase", "defaults": {}, "funcname": "erase", - "location": "imgui:1737", + "location": "imgui:1745", "ov_cimguiname": "ImVector_eraseTPtr", "ret": "T*", "signature": "(const T*,const T*)", @@ -6820,7 +6870,7 @@ "cimguiname": "ImVector_erase_unsorted", "defaults": {}, "funcname": "erase_unsorted", - "location": "imgui:1738", + "location": "imgui:1746", "ov_cimguiname": "ImVector_erase_unsorted", "ret": "T*", "signature": "(const T*)", @@ -6846,7 +6896,7 @@ "cimguiname": "ImVector_find", "defaults": {}, "funcname": "find", - "location": "imgui:1741", + "location": "imgui:1749", "ov_cimguiname": "ImVector_findNil", "ret": "T*", "signature": "(const T)", @@ -6870,7 +6920,7 @@ "cimguiname": "ImVector_find", "defaults": {}, "funcname": "find", - "location": "imgui:1742", + "location": "imgui:1750", "ov_cimguiname": "ImVector_find_const", "ret": "const T*", "signature": "(const T)const", @@ -6896,7 +6946,7 @@ "cimguiname": "ImVector_find_erase", "defaults": {}, "funcname": "find_erase", - "location": "imgui:1743", + "location": "imgui:1751", "ov_cimguiname": "ImVector_find_erase", "ret": "bool", "signature": "(const T)", @@ -6922,7 +6972,7 @@ "cimguiname": "ImVector_find_erase_unsorted", "defaults": {}, "funcname": "find_erase_unsorted", - "location": "imgui:1744", + "location": "imgui:1752", "ov_cimguiname": "ImVector_find_erase_unsorted", "ret": "bool", "signature": "(const T)", @@ -6944,7 +6994,7 @@ "cimguiname": "ImVector_front", "defaults": {}, "funcname": "front", - "location": "imgui:1720", + "location": "imgui:1728", "ov_cimguiname": "ImVector_frontNil", "ret": "T*", "retref": "&", @@ -6965,7 +7015,7 @@ "cimguiname": "ImVector_front", "defaults": {}, "funcname": "front", - "location": "imgui:1721", + "location": "imgui:1729", "ov_cimguiname": "ImVector_front_const", "ret": "const T*", "retref": "&", @@ -6992,7 +7042,7 @@ "cimguiname": "ImVector_index_from_ptr", "defaults": {}, "funcname": "index_from_ptr", - "location": "imgui:1745", + "location": "imgui:1753", "ov_cimguiname": "ImVector_index_from_ptr", "ret": "int", "signature": "(const T*)const", @@ -7022,7 +7072,7 @@ "cimguiname": "ImVector_insert", "defaults": {}, "funcname": "insert", - "location": "imgui:1739", + "location": "imgui:1747", "ov_cimguiname": "ImVector_insert", "ret": "T*", "signature": "(const T*,const T)", @@ -7044,7 +7094,7 @@ "cimguiname": "ImVector_max_size", "defaults": {}, "funcname": "max_size", - "location": "imgui:1711", + "location": "imgui:1719", "ov_cimguiname": "ImVector_max_size", "ret": "int", "signature": "()const", @@ -7066,7 +7116,7 @@ "cimguiname": "ImVector_pop_back", "defaults": {}, "funcname": "pop_back", - "location": "imgui:1734", + "location": "imgui:1742", "ov_cimguiname": "ImVector_pop_back", "ret": "void", "signature": "()", @@ -7092,7 +7142,7 @@ "cimguiname": "ImVector_push_back", "defaults": {}, "funcname": "push_back", - "location": "imgui:1733", + "location": "imgui:1741", "ov_cimguiname": "ImVector_push_back", "ret": "void", "signature": "(const T)", @@ -7118,7 +7168,7 @@ "cimguiname": "ImVector_push_front", "defaults": {}, "funcname": "push_front", - "location": "imgui:1735", + "location": "imgui:1743", "ov_cimguiname": "ImVector_push_front", "ret": "void", "signature": "(const T)", @@ -7144,7 +7194,7 @@ "cimguiname": "ImVector_reserve", "defaults": {}, "funcname": "reserve", - "location": "imgui:1730", + "location": "imgui:1738", "ov_cimguiname": "ImVector_reserve", "ret": "void", "signature": "(int)", @@ -7170,7 +7220,7 @@ "cimguiname": "ImVector_resize", "defaults": {}, "funcname": "resize", - "location": "imgui:1727", + "location": "imgui:1735", "ov_cimguiname": "ImVector_resizeNil", "ret": "void", "signature": "(int)", @@ -7198,7 +7248,7 @@ "cimguiname": "ImVector_resize", "defaults": {}, "funcname": "resize", - "location": "imgui:1728", + "location": "imgui:1736", "ov_cimguiname": "ImVector_resizeT", "ret": "void", "signature": "(int,const T)", @@ -7224,7 +7274,7 @@ "cimguiname": "ImVector_shrink", "defaults": {}, "funcname": "shrink", - "location": "imgui:1729", + "location": "imgui:1737", "ov_cimguiname": "ImVector_shrink", "ret": "void", "signature": "(int)", @@ -7246,7 +7296,7 @@ "cimguiname": "ImVector_size", "defaults": {}, "funcname": "size", - "location": "imgui:1709", + "location": "imgui:1717", "ov_cimguiname": "ImVector_size", "ret": "int", "signature": "()const", @@ -7268,7 +7318,7 @@ "cimguiname": "ImVector_size_in_bytes", "defaults": {}, "funcname": "size_in_bytes", - "location": "imgui:1710", + "location": "imgui:1718", "ov_cimguiname": "ImVector_size_in_bytes", "ret": "int", "signature": "()const", @@ -7295,7 +7345,7 @@ "cimguiname": "ImVector_swap", "defaults": {}, "funcname": "swap", - "location": "imgui:1724", + "location": "imgui:1732", "ov_cimguiname": "ImVector_swap", "ret": "void", "signature": "(ImVector*)", @@ -7323,7 +7373,7 @@ "flags": "0" }, "funcname": "AcceptDragDropPayload", - "location": "imgui:810", + "location": "imgui:813", "namespace": "ImGui", "ov_cimguiname": "igAcceptDragDropPayload", "ret": "const ImGuiPayload*", @@ -7340,7 +7390,7 @@ "cimguiname": "igAlignTextToFramePadding", "defaults": {}, "funcname": "AlignTextToFramePadding", - "location": "imgui:455", + "location": "imgui:458", "namespace": "ImGui", "ov_cimguiname": "igAlignTextToFramePadding", "ret": "void", @@ -7366,7 +7416,7 @@ "cimguiname": "igArrowButton", "defaults": {}, "funcname": "ArrowButton", - "location": "imgui:502", + "location": "imgui:505", "namespace": "ImGui", "ov_cimguiname": "igArrowButton", "ret": "bool", @@ -7399,7 +7449,7 @@ "p_open": "NULL" }, "funcname": "Begin", - "location": "imgui:331", + "location": "imgui:335", "namespace": "ImGui", "ov_cimguiname": "igBegin", "ret": "bool", @@ -7437,7 +7487,7 @@ "size": "ImVec2(0,0)" }, "funcname": "BeginChild", - "location": "imgui:342", + "location": "imgui:346", "namespace": "ImGui", "ov_cimguiname": "igBeginChildStr", "ret": "bool", @@ -7473,7 +7523,7 @@ "size": "ImVec2(0,0)" }, "funcname": "BeginChild", - "location": "imgui:343", + "location": "imgui:347", "namespace": "ImGui", "ov_cimguiname": "igBeginChildID", "ret": "bool", @@ -7505,7 +7555,7 @@ "flags": "0" }, "funcname": "BeginChildFrame", - "location": "imgui:869", + "location": "imgui:872", "namespace": "ImGui", "ov_cimguiname": "igBeginChildFrame", "ret": "bool", @@ -7537,7 +7587,7 @@ "flags": "0" }, "funcname": "BeginCombo", - "location": "imgui:516", + "location": "imgui:519", "namespace": "ImGui", "ov_cimguiname": "igBeginCombo", "ret": "bool", @@ -7561,7 +7611,7 @@ "disabled": "true" }, "funcname": "BeginDisabled", - "location": "imgui:817", + "location": "imgui:821", "namespace": "ImGui", "ov_cimguiname": "igBeginDisabled", "ret": "void", @@ -7585,7 +7635,7 @@ "flags": "0" }, "funcname": "BeginDragDropSource", - "location": "imgui:806", + "location": "imgui:809", "namespace": "ImGui", "ov_cimguiname": "igBeginDragDropSource", "ret": "bool", @@ -7602,7 +7652,7 @@ "cimguiname": "igBeginDragDropTarget", "defaults": {}, "funcname": "BeginDragDropTarget", - "location": "imgui:809", + "location": "imgui:812", "namespace": "ImGui", "ov_cimguiname": "igBeginDragDropTarget", "ret": "bool", @@ -7619,7 +7669,7 @@ "cimguiname": "igBeginGroup", "defaults": {}, "funcname": "BeginGroup", - "location": "imgui:444", + "location": "imgui:447", "namespace": "ImGui", "ov_cimguiname": "igBeginGroup", "ret": "void", @@ -7647,7 +7697,7 @@ "size": "ImVec2(0,0)" }, "funcname": "BeginListBox", - "location": "imgui:627", + "location": "imgui:630", "namespace": "ImGui", "ov_cimguiname": "igBeginListBox", "ret": "bool", @@ -7664,7 +7714,7 @@ "cimguiname": "igBeginMainMenuBar", "defaults": {}, "funcname": "BeginMainMenuBar", - "location": "imgui:653", + "location": "imgui:656", "namespace": "ImGui", "ov_cimguiname": "igBeginMainMenuBar", "ret": "bool", @@ -7692,7 +7742,7 @@ "enabled": "true" }, "funcname": "BeginMenu", - "location": "imgui:655", + "location": "imgui:658", "namespace": "ImGui", "ov_cimguiname": "igBeginMenu", "ret": "bool", @@ -7709,7 +7759,7 @@ "cimguiname": "igBeginMenuBar", "defaults": {}, "funcname": "BeginMenuBar", - "location": "imgui:651", + "location": "imgui:654", "namespace": "ImGui", "ov_cimguiname": "igBeginMenuBar", "ret": "bool", @@ -7737,7 +7787,7 @@ "flags": "0" }, "funcname": "BeginPopup", - "location": "imgui:679", + "location": "imgui:682", "namespace": "ImGui", "ov_cimguiname": "igBeginPopup", "ret": "bool", @@ -7766,7 +7816,7 @@ "str_id": "NULL" }, "funcname": "BeginPopupContextItem", - "location": "imgui:700", + "location": "imgui:703", "namespace": "ImGui", "ov_cimguiname": "igBeginPopupContextItem", "ret": "bool", @@ -7795,7 +7845,7 @@ "str_id": "NULL" }, "funcname": "BeginPopupContextVoid", - "location": "imgui:702", + "location": "imgui:705", "namespace": "ImGui", "ov_cimguiname": "igBeginPopupContextVoid", "ret": "bool", @@ -7824,7 +7874,7 @@ "str_id": "NULL" }, "funcname": "BeginPopupContextWindow", - "location": "imgui:701", + "location": "imgui:704", "namespace": "ImGui", "ov_cimguiname": "igBeginPopupContextWindow", "ret": "bool", @@ -7857,7 +7907,7 @@ "p_open": "NULL" }, "funcname": "BeginPopupModal", - "location": "imgui:680", + "location": "imgui:683", "namespace": "ImGui", "ov_cimguiname": "igBeginPopupModal", "ret": "bool", @@ -7885,7 +7935,7 @@ "flags": "0" }, "funcname": "BeginTabBar", - "location": "imgui:784", + "location": "imgui:787", "namespace": "ImGui", "ov_cimguiname": "igBeginTabBar", "ret": "bool", @@ -7918,7 +7968,7 @@ "p_open": "NULL" }, "funcname": "BeginTabItem", - "location": "imgui:786", + "location": "imgui:789", "namespace": "ImGui", "ov_cimguiname": "igBeginTabItem", "ret": "bool", @@ -7960,7 +8010,7 @@ "outer_size": "ImVec2(0.0f,0.0f)" }, "funcname": "BeginTable", - "location": "imgui:735", + "location": "imgui:738", "namespace": "ImGui", "ov_cimguiname": "igBeginTable", "ret": "bool", @@ -7977,7 +8027,7 @@ "cimguiname": "igBeginTooltip", "defaults": {}, "funcname": "BeginTooltip", - "location": "imgui:662", + "location": "imgui:665", "namespace": "ImGui", "ov_cimguiname": "igBeginTooltip", "ret": "void", @@ -7994,7 +8044,7 @@ "cimguiname": "igBullet", "defaults": {}, "funcname": "Bullet", - "location": "imgui:511", + "location": "imgui:514", "namespace": "ImGui", "ov_cimguiname": "igBullet", "ret": "void", @@ -8021,7 +8071,7 @@ "defaults": {}, "funcname": "BulletText", "isvararg": "...)", - "location": "imgui:493", + "location": "imgui:496", "namespace": "ImGui", "ov_cimguiname": "igBulletText", "ret": "void", @@ -8047,7 +8097,7 @@ "cimguiname": "igBulletTextV", "defaults": {}, "funcname": "BulletTextV", - "location": "imgui:494", + "location": "imgui:497", "namespace": "ImGui", "ov_cimguiname": "igBulletTextV", "ret": "void", @@ -8075,7 +8125,7 @@ "size": "ImVec2(0,0)" }, "funcname": "Button", - "location": "imgui:499", + "location": "imgui:502", "namespace": "ImGui", "ov_cimguiname": "igButton", "ret": "bool", @@ -8092,7 +8142,7 @@ "cimguiname": "igCalcItemWidth", "defaults": {}, "funcname": "CalcItemWidth", - "location": "imgui:416", + "location": "imgui:419", "namespace": "ImGui", "ov_cimguiname": "igCalcItemWidth", "ret": "float", @@ -8100,51 +8150,17 @@ "stname": "" } ], - "igCalcListClipping": [ + "igCalcTextSize": [ { - "args": "(int items_count,float items_height,int* out_items_display_start,int* out_items_display_end)", + "args": "(ImVec2 *pOut,const char* text,const char* text_end,bool hide_text_after_double_hash,float wrap_width)", "argsT": [ { - "name": "items_count", - "type": "int" + "name": "pOut", + "type": "ImVec2*" }, { - "name": "items_height", - "type": "float" - }, - { - "name": "out_items_display_start", - "type": "int*" - }, - { - "name": "out_items_display_end", - "type": "int*" - } - ], - "argsoriginal": "(int items_count,float items_height,int* out_items_display_start,int* out_items_display_end)", - "call_args": "(items_count,items_height,out_items_display_start,out_items_display_end)", - "cimguiname": "igCalcListClipping", - "defaults": {}, - "funcname": "CalcListClipping", - "location": "imgui:868", - "namespace": "ImGui", - "ov_cimguiname": "igCalcListClipping", - "ret": "void", - "signature": "(int,float,int*,int*)", - "stname": "" - } - ], - "igCalcTextSize": [ - { - "args": "(ImVec2 *pOut,const char* text,const char* text_end,bool hide_text_after_double_hash,float wrap_width)", - "argsT": [ - { - "name": "pOut", - "type": "ImVec2*" - }, - { - "name": "text", - "type": "const char*" + "name": "text", + "type": "const char*" }, { "name": "text_end", @@ -8168,7 +8184,7 @@ "wrap_width": "-1.0f" }, "funcname": "CalcTextSize", - "location": "imgui:873", + "location": "imgui:876", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igCalcTextSize", @@ -8193,7 +8209,7 @@ "want_capture_keyboard_value": "true" }, "funcname": "CaptureKeyboardFromApp", - "location": "imgui:889", + "location": "imgui:892", "namespace": "ImGui", "ov_cimguiname": "igCaptureKeyboardFromApp", "ret": "void", @@ -8217,7 +8233,7 @@ "want_capture_mouse_value": "true" }, "funcname": "CaptureMouseFromApp", - "location": "imgui:909", + "location": "imgui:913", "namespace": "ImGui", "ov_cimguiname": "igCaptureMouseFromApp", "ret": "void", @@ -8243,7 +8259,7 @@ "cimguiname": "igCheckbox", "defaults": {}, "funcname": "Checkbox", - "location": "imgui:505", + "location": "imgui:508", "namespace": "ImGui", "ov_cimguiname": "igCheckbox", "ret": "bool", @@ -8273,7 +8289,7 @@ "cimguiname": "igCheckboxFlags", "defaults": {}, "funcname": "CheckboxFlags", - "location": "imgui:506", + "location": "imgui:509", "namespace": "ImGui", "ov_cimguiname": "igCheckboxFlagsIntPtr", "ret": "bool", @@ -8301,7 +8317,7 @@ "cimguiname": "igCheckboxFlags", "defaults": {}, "funcname": "CheckboxFlags", - "location": "imgui:507", + "location": "imgui:510", "namespace": "ImGui", "ov_cimguiname": "igCheckboxFlagsUintPtr", "ret": "bool", @@ -8318,7 +8334,7 @@ "cimguiname": "igCloseCurrentPopup", "defaults": {}, "funcname": "CloseCurrentPopup", - "location": "imgui:693", + "location": "imgui:696", "namespace": "ImGui", "ov_cimguiname": "igCloseCurrentPopup", "ret": "void", @@ -8346,7 +8362,7 @@ "flags": "0" }, "funcname": "CollapsingHeader", - "location": "imgui:611", + "location": "imgui:614", "namespace": "ImGui", "ov_cimguiname": "igCollapsingHeaderTreeNodeFlags", "ret": "bool", @@ -8376,7 +8392,7 @@ "flags": "0" }, "funcname": "CollapsingHeader", - "location": "imgui:612", + "location": "imgui:615", "namespace": "ImGui", "ov_cimguiname": "igCollapsingHeaderBoolPtr", "ret": "bool", @@ -8413,7 +8429,7 @@ "size": "ImVec2(0,0)" }, "funcname": "ColorButton", - "location": "imgui:592", + "location": "imgui:595", "namespace": "ImGui", "ov_cimguiname": "igColorButton", "ret": "bool", @@ -8435,7 +8451,7 @@ "cimguiname": "igColorConvertFloat4ToU32", "defaults": {}, "funcname": "ColorConvertFloat4ToU32", - "location": "imgui:877", + "location": "imgui:880", "namespace": "ImGui", "ov_cimguiname": "igColorConvertFloat4ToU32", "ret": "ImU32", @@ -8480,7 +8496,7 @@ "cimguiname": "igColorConvertHSVtoRGB", "defaults": {}, "funcname": "ColorConvertHSVtoRGB", - "location": "imgui:879", + "location": "imgui:882", "namespace": "ImGui", "ov_cimguiname": "igColorConvertHSVtoRGB", "ret": "void", @@ -8525,7 +8541,7 @@ "cimguiname": "igColorConvertRGBtoHSV", "defaults": {}, "funcname": "ColorConvertRGBtoHSV", - "location": "imgui:878", + "location": "imgui:881", "namespace": "ImGui", "ov_cimguiname": "igColorConvertRGBtoHSV", "ret": "void", @@ -8551,7 +8567,7 @@ "cimguiname": "igColorConvertU32ToFloat4", "defaults": {}, "funcname": "ColorConvertU32ToFloat4", - "location": "imgui:876", + "location": "imgui:879", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igColorConvertU32ToFloat4", @@ -8584,7 +8600,7 @@ "flags": "0" }, "funcname": "ColorEdit3", - "location": "imgui:588", + "location": "imgui:591", "namespace": "ImGui", "ov_cimguiname": "igColorEdit3", "ret": "bool", @@ -8616,7 +8632,7 @@ "flags": "0" }, "funcname": "ColorEdit4", - "location": "imgui:589", + "location": "imgui:592", "namespace": "ImGui", "ov_cimguiname": "igColorEdit4", "ret": "bool", @@ -8648,7 +8664,7 @@ "flags": "0" }, "funcname": "ColorPicker3", - "location": "imgui:590", + "location": "imgui:593", "namespace": "ImGui", "ov_cimguiname": "igColorPicker3", "ret": "bool", @@ -8685,7 +8701,7 @@ "ref_col": "NULL" }, "funcname": "ColorPicker4", - "location": "imgui:591", + "location": "imgui:594", "namespace": "ImGui", "ov_cimguiname": "igColorPicker4", "ret": "bool", @@ -8719,7 +8735,7 @@ "id": "NULL" }, "funcname": "Columns", - "location": "imgui:774", + "location": "imgui:777", "namespace": "ImGui", "ov_cimguiname": "igColumns", "ret": "void", @@ -8759,7 +8775,7 @@ "popup_max_height_in_items": "-1" }, "funcname": "Combo", - "location": "imgui:518", + "location": "imgui:521", "namespace": "ImGui", "ov_cimguiname": "igComboStr_arr", "ret": "bool", @@ -8793,7 +8809,7 @@ "popup_max_height_in_items": "-1" }, "funcname": "Combo", - "location": "imgui:519", + "location": "imgui:522", "namespace": "ImGui", "ov_cimguiname": "igComboStr", "ret": "bool", @@ -8837,7 +8853,7 @@ "popup_max_height_in_items": "-1" }, "funcname": "Combo", - "location": "imgui:520", + "location": "imgui:523", "namespace": "ImGui", "ov_cimguiname": "igComboFnBoolPtr", "ret": "bool", @@ -8861,7 +8877,7 @@ "shared_font_atlas": "NULL" }, "funcname": "CreateContext", - "location": "imgui:291", + "location": "imgui:294", "namespace": "ImGui", "ov_cimguiname": "igCreateContext", "ret": "ImGuiContext*", @@ -8907,7 +8923,7 @@ "cimguiname": "igDebugCheckVersionAndDataLayout", "defaults": {}, "funcname": "DebugCheckVersionAndDataLayout", - "location": "imgui:927", + "location": "imgui:931", "namespace": "ImGui", "ov_cimguiname": "igDebugCheckVersionAndDataLayout", "ret": "bool", @@ -8931,7 +8947,7 @@ "ctx": "NULL" }, "funcname": "DestroyContext", - "location": "imgui:292", + "location": "imgui:295", "namespace": "ImGui", "ov_cimguiname": "igDestroyContext", "ret": "void", @@ -8983,7 +8999,7 @@ "v_speed": "1.0f" }, "funcname": "DragFloat", - "location": "imgui:533", + "location": "imgui:536", "namespace": "ImGui", "ov_cimguiname": "igDragFloat", "ret": "bool", @@ -9035,7 +9051,7 @@ "v_speed": "1.0f" }, "funcname": "DragFloat2", - "location": "imgui:534", + "location": "imgui:537", "namespace": "ImGui", "ov_cimguiname": "igDragFloat2", "ret": "bool", @@ -9087,7 +9103,7 @@ "v_speed": "1.0f" }, "funcname": "DragFloat3", - "location": "imgui:535", + "location": "imgui:538", "namespace": "ImGui", "ov_cimguiname": "igDragFloat3", "ret": "bool", @@ -9139,7 +9155,7 @@ "v_speed": "1.0f" }, "funcname": "DragFloat4", - "location": "imgui:536", + "location": "imgui:539", "namespace": "ImGui", "ov_cimguiname": "igDragFloat4", "ret": "bool", @@ -9200,7 +9216,7 @@ "v_speed": "1.0f" }, "funcname": "DragFloatRange2", - "location": "imgui:537", + "location": "imgui:540", "namespace": "ImGui", "ov_cimguiname": "igDragFloatRange2", "ret": "bool", @@ -9252,7 +9268,7 @@ "v_speed": "1.0f" }, "funcname": "DragInt", - "location": "imgui:538", + "location": "imgui:541", "namespace": "ImGui", "ov_cimguiname": "igDragInt", "ret": "bool", @@ -9304,7 +9320,7 @@ "v_speed": "1.0f" }, "funcname": "DragInt2", - "location": "imgui:539", + "location": "imgui:542", "namespace": "ImGui", "ov_cimguiname": "igDragInt2", "ret": "bool", @@ -9356,7 +9372,7 @@ "v_speed": "1.0f" }, "funcname": "DragInt3", - "location": "imgui:540", + "location": "imgui:543", "namespace": "ImGui", "ov_cimguiname": "igDragInt3", "ret": "bool", @@ -9408,7 +9424,7 @@ "v_speed": "1.0f" }, "funcname": "DragInt4", - "location": "imgui:541", + "location": "imgui:544", "namespace": "ImGui", "ov_cimguiname": "igDragInt4", "ret": "bool", @@ -9469,7 +9485,7 @@ "v_speed": "1.0f" }, "funcname": "DragIntRange2", - "location": "imgui:542", + "location": "imgui:545", "namespace": "ImGui", "ov_cimguiname": "igDragIntRange2", "ret": "bool", @@ -9525,7 +9541,7 @@ "v_speed": "1.0f" }, "funcname": "DragScalar", - "location": "imgui:543", + "location": "imgui:546", "namespace": "ImGui", "ov_cimguiname": "igDragScalar", "ret": "bool", @@ -9585,7 +9601,7 @@ "v_speed": "1.0f" }, "funcname": "DragScalarN", - "location": "imgui:544", + "location": "imgui:547", "namespace": "ImGui", "ov_cimguiname": "igDragScalarN", "ret": "bool", @@ -9607,7 +9623,7 @@ "cimguiname": "igDummy", "defaults": {}, "funcname": "Dummy", - "location": "imgui:441", + "location": "imgui:444", "namespace": "ImGui", "ov_cimguiname": "igDummy", "ret": "void", @@ -9624,7 +9640,7 @@ "cimguiname": "igEnd", "defaults": {}, "funcname": "End", - "location": "imgui:332", + "location": "imgui:336", "namespace": "ImGui", "ov_cimguiname": "igEnd", "ret": "void", @@ -9641,7 +9657,7 @@ "cimguiname": "igEndChild", "defaults": {}, "funcname": "EndChild", - "location": "imgui:344", + "location": "imgui:348", "namespace": "ImGui", "ov_cimguiname": "igEndChild", "ret": "void", @@ -9658,7 +9674,7 @@ "cimguiname": "igEndChildFrame", "defaults": {}, "funcname": "EndChildFrame", - "location": "imgui:870", + "location": "imgui:873", "namespace": "ImGui", "ov_cimguiname": "igEndChildFrame", "ret": "void", @@ -9675,7 +9691,7 @@ "cimguiname": "igEndCombo", "defaults": {}, "funcname": "EndCombo", - "location": "imgui:517", + "location": "imgui:520", "namespace": "ImGui", "ov_cimguiname": "igEndCombo", "ret": "void", @@ -9692,7 +9708,7 @@ "cimguiname": "igEndDisabled", "defaults": {}, "funcname": "EndDisabled", - "location": "imgui:818", + "location": "imgui:822", "namespace": "ImGui", "ov_cimguiname": "igEndDisabled", "ret": "void", @@ -9709,7 +9725,7 @@ "cimguiname": "igEndDragDropSource", "defaults": {}, "funcname": "EndDragDropSource", - "location": "imgui:808", + "location": "imgui:811", "namespace": "ImGui", "ov_cimguiname": "igEndDragDropSource", "ret": "void", @@ -9726,7 +9742,7 @@ "cimguiname": "igEndDragDropTarget", "defaults": {}, "funcname": "EndDragDropTarget", - "location": "imgui:811", + "location": "imgui:814", "namespace": "ImGui", "ov_cimguiname": "igEndDragDropTarget", "ret": "void", @@ -9743,7 +9759,7 @@ "cimguiname": "igEndFrame", "defaults": {}, "funcname": "EndFrame", - "location": "imgui:300", + "location": "imgui:303", "namespace": "ImGui", "ov_cimguiname": "igEndFrame", "ret": "void", @@ -9760,7 +9776,7 @@ "cimguiname": "igEndGroup", "defaults": {}, "funcname": "EndGroup", - "location": "imgui:445", + "location": "imgui:448", "namespace": "ImGui", "ov_cimguiname": "igEndGroup", "ret": "void", @@ -9777,7 +9793,7 @@ "cimguiname": "igEndListBox", "defaults": {}, "funcname": "EndListBox", - "location": "imgui:628", + "location": "imgui:631", "namespace": "ImGui", "ov_cimguiname": "igEndListBox", "ret": "void", @@ -9794,7 +9810,7 @@ "cimguiname": "igEndMainMenuBar", "defaults": {}, "funcname": "EndMainMenuBar", - "location": "imgui:654", + "location": "imgui:657", "namespace": "ImGui", "ov_cimguiname": "igEndMainMenuBar", "ret": "void", @@ -9811,7 +9827,7 @@ "cimguiname": "igEndMenu", "defaults": {}, "funcname": "EndMenu", - "location": "imgui:656", + "location": "imgui:659", "namespace": "ImGui", "ov_cimguiname": "igEndMenu", "ret": "void", @@ -9828,7 +9844,7 @@ "cimguiname": "igEndMenuBar", "defaults": {}, "funcname": "EndMenuBar", - "location": "imgui:652", + "location": "imgui:655", "namespace": "ImGui", "ov_cimguiname": "igEndMenuBar", "ret": "void", @@ -9845,7 +9861,7 @@ "cimguiname": "igEndPopup", "defaults": {}, "funcname": "EndPopup", - "location": "imgui:681", + "location": "imgui:684", "namespace": "ImGui", "ov_cimguiname": "igEndPopup", "ret": "void", @@ -9862,7 +9878,7 @@ "cimguiname": "igEndTabBar", "defaults": {}, "funcname": "EndTabBar", - "location": "imgui:785", + "location": "imgui:788", "namespace": "ImGui", "ov_cimguiname": "igEndTabBar", "ret": "void", @@ -9879,7 +9895,7 @@ "cimguiname": "igEndTabItem", "defaults": {}, "funcname": "EndTabItem", - "location": "imgui:787", + "location": "imgui:790", "namespace": "ImGui", "ov_cimguiname": "igEndTabItem", "ret": "void", @@ -9896,7 +9912,7 @@ "cimguiname": "igEndTable", "defaults": {}, "funcname": "EndTable", - "location": "imgui:736", + "location": "imgui:739", "namespace": "ImGui", "ov_cimguiname": "igEndTable", "ret": "void", @@ -9913,7 +9929,7 @@ "cimguiname": "igEndTooltip", "defaults": {}, "funcname": "EndTooltip", - "location": "imgui:663", + "location": "imgui:666", "namespace": "ImGui", "ov_cimguiname": "igEndTooltip", "ret": "void", @@ -9943,7 +9959,7 @@ "cimguiname": "igGetAllocatorFunctions", "defaults": {}, "funcname": "GetAllocatorFunctions", - "location": "imgui:934", + "location": "imgui:938", "namespace": "ImGui", "ov_cimguiname": "igGetAllocatorFunctions", "ret": "void", @@ -9960,7 +9976,7 @@ "cimguiname": "igGetBackgroundDrawList", "defaults": {}, "funcname": "GetBackgroundDrawList", - "location": "imgui:862", + "location": "imgui:866", "namespace": "ImGui", "ov_cimguiname": "igGetBackgroundDrawList", "ret": "ImDrawList*", @@ -9977,7 +9993,7 @@ "cimguiname": "igGetClipboardText", "defaults": {}, "funcname": "GetClipboardText", - "location": "imgui:913", + "location": "imgui:917", "namespace": "ImGui", "ov_cimguiname": "igGetClipboardText", "ret": "const char*", @@ -10005,7 +10021,7 @@ "alpha_mul": "1.0f" }, "funcname": "GetColorU32", - "location": "imgui:425", + "location": "imgui:428", "namespace": "ImGui", "ov_cimguiname": "igGetColorU32Col", "ret": "ImU32", @@ -10025,7 +10041,7 @@ "cimguiname": "igGetColorU32", "defaults": {}, "funcname": "GetColorU32", - "location": "imgui:426", + "location": "imgui:429", "namespace": "ImGui", "ov_cimguiname": "igGetColorU32Vec4", "ret": "ImU32", @@ -10045,7 +10061,7 @@ "cimguiname": "igGetColorU32", "defaults": {}, "funcname": "GetColorU32", - "location": "imgui:427", + "location": "imgui:430", "namespace": "ImGui", "ov_cimguiname": "igGetColorU32U32", "ret": "ImU32", @@ -10062,7 +10078,7 @@ "cimguiname": "igGetColumnIndex", "defaults": {}, "funcname": "GetColumnIndex", - "location": "imgui:776", + "location": "imgui:779", "namespace": "ImGui", "ov_cimguiname": "igGetColumnIndex", "ret": "int", @@ -10086,7 +10102,7 @@ "column_index": "-1" }, "funcname": "GetColumnOffset", - "location": "imgui:779", + "location": "imgui:782", "namespace": "ImGui", "ov_cimguiname": "igGetColumnOffset", "ret": "float", @@ -10110,7 +10126,7 @@ "column_index": "-1" }, "funcname": "GetColumnWidth", - "location": "imgui:777", + "location": "imgui:780", "namespace": "ImGui", "ov_cimguiname": "igGetColumnWidth", "ret": "float", @@ -10127,7 +10143,7 @@ "cimguiname": "igGetColumnsCount", "defaults": {}, "funcname": "GetColumnsCount", - "location": "imgui:781", + "location": "imgui:784", "namespace": "ImGui", "ov_cimguiname": "igGetColumnsCount", "ret": "int", @@ -10149,7 +10165,7 @@ "cimguiname": "igGetContentRegionAvail", "defaults": {}, "funcname": "GetContentRegionAvail", - "location": "imgui:380", + "location": "imgui:384", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetContentRegionAvail", @@ -10172,7 +10188,7 @@ "cimguiname": "igGetContentRegionMax", "defaults": {}, "funcname": "GetContentRegionMax", - "location": "imgui:381", + "location": "imgui:385", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetContentRegionMax", @@ -10190,7 +10206,7 @@ "cimguiname": "igGetCurrentContext", "defaults": {}, "funcname": "GetCurrentContext", - "location": "imgui:293", + "location": "imgui:296", "namespace": "ImGui", "ov_cimguiname": "igGetCurrentContext", "ret": "ImGuiContext*", @@ -10212,7 +10228,7 @@ "cimguiname": "igGetCursorPos", "defaults": {}, "funcname": "GetCursorPos", - "location": "imgui:446", + "location": "imgui:449", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetCursorPos", @@ -10230,7 +10246,7 @@ "cimguiname": "igGetCursorPosX", "defaults": {}, "funcname": "GetCursorPosX", - "location": "imgui:447", + "location": "imgui:450", "namespace": "ImGui", "ov_cimguiname": "igGetCursorPosX", "ret": "float", @@ -10247,7 +10263,7 @@ "cimguiname": "igGetCursorPosY", "defaults": {}, "funcname": "GetCursorPosY", - "location": "imgui:448", + "location": "imgui:451", "namespace": "ImGui", "ov_cimguiname": "igGetCursorPosY", "ret": "float", @@ -10269,7 +10285,7 @@ "cimguiname": "igGetCursorScreenPos", "defaults": {}, "funcname": "GetCursorScreenPos", - "location": "imgui:453", + "location": "imgui:456", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetCursorScreenPos", @@ -10292,7 +10308,7 @@ "cimguiname": "igGetCursorStartPos", "defaults": {}, "funcname": "GetCursorStartPos", - "location": "imgui:452", + "location": "imgui:455", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetCursorStartPos", @@ -10310,7 +10326,7 @@ "cimguiname": "igGetDragDropPayload", "defaults": {}, "funcname": "GetDragDropPayload", - "location": "imgui:812", + "location": "imgui:815", "namespace": "ImGui", "ov_cimguiname": "igGetDragDropPayload", "ret": "const ImGuiPayload*", @@ -10327,7 +10343,7 @@ "cimguiname": "igGetDrawData", "defaults": {}, "funcname": "GetDrawData", - "location": "imgui:302", + "location": "imgui:305", "namespace": "ImGui", "ov_cimguiname": "igGetDrawData", "ret": "ImDrawData*", @@ -10344,7 +10360,7 @@ "cimguiname": "igGetDrawListSharedData", "defaults": {}, "funcname": "GetDrawListSharedData", - "location": "imgui:864", + "location": "imgui:868", "namespace": "ImGui", "ov_cimguiname": "igGetDrawListSharedData", "ret": "ImDrawListSharedData*", @@ -10361,7 +10377,7 @@ "cimguiname": "igGetFont", "defaults": {}, "funcname": "GetFont", - "location": "imgui:422", + "location": "imgui:425", "namespace": "ImGui", "ov_cimguiname": "igGetFont", "ret": "ImFont*", @@ -10378,7 +10394,7 @@ "cimguiname": "igGetFontSize", "defaults": {}, "funcname": "GetFontSize", - "location": "imgui:423", + "location": "imgui:426", "namespace": "ImGui", "ov_cimguiname": "igGetFontSize", "ret": "float", @@ -10400,7 +10416,7 @@ "cimguiname": "igGetFontTexUvWhitePixel", "defaults": {}, "funcname": "GetFontTexUvWhitePixel", - "location": "imgui:424", + "location": "imgui:427", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetFontTexUvWhitePixel", @@ -10418,7 +10434,7 @@ "cimguiname": "igGetForegroundDrawList", "defaults": {}, "funcname": "GetForegroundDrawList", - "location": "imgui:863", + "location": "imgui:867", "namespace": "ImGui", "ov_cimguiname": "igGetForegroundDrawList", "ret": "ImDrawList*", @@ -10435,7 +10451,7 @@ "cimguiname": "igGetFrameCount", "defaults": {}, "funcname": "GetFrameCount", - "location": "imgui:861", + "location": "imgui:865", "namespace": "ImGui", "ov_cimguiname": "igGetFrameCount", "ret": "int", @@ -10452,7 +10468,7 @@ "cimguiname": "igGetFrameHeight", "defaults": {}, "funcname": "GetFrameHeight", - "location": "imgui:458", + "location": "imgui:461", "namespace": "ImGui", "ov_cimguiname": "igGetFrameHeight", "ret": "float", @@ -10469,7 +10485,7 @@ "cimguiname": "igGetFrameHeightWithSpacing", "defaults": {}, "funcname": "GetFrameHeightWithSpacing", - "location": "imgui:459", + "location": "imgui:462", "namespace": "ImGui", "ov_cimguiname": "igGetFrameHeightWithSpacing", "ret": "float", @@ -10491,7 +10507,7 @@ "cimguiname": "igGetID", "defaults": {}, "funcname": "GetID", - "location": "imgui:477", + "location": "imgui:480", "namespace": "ImGui", "ov_cimguiname": "igGetIDStr", "ret": "ImGuiID", @@ -10515,7 +10531,7 @@ "cimguiname": "igGetID", "defaults": {}, "funcname": "GetID", - "location": "imgui:478", + "location": "imgui:481", "namespace": "ImGui", "ov_cimguiname": "igGetIDStrStr", "ret": "ImGuiID", @@ -10535,7 +10551,7 @@ "cimguiname": "igGetID", "defaults": {}, "funcname": "GetID", - "location": "imgui:479", + "location": "imgui:482", "namespace": "ImGui", "ov_cimguiname": "igGetIDPtr", "ret": "ImGuiID", @@ -10552,7 +10568,7 @@ "cimguiname": "igGetIO", "defaults": {}, "funcname": "GetIO", - "location": "imgui:297", + "location": "imgui:300", "namespace": "ImGui", "ov_cimguiname": "igGetIO", "ret": "ImGuiIO*", @@ -10575,7 +10591,7 @@ "cimguiname": "igGetItemRectMax", "defaults": {}, "funcname": "GetItemRectMax", - "location": "imgui:847", + "location": "imgui:851", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetItemRectMax", @@ -10598,7 +10614,7 @@ "cimguiname": "igGetItemRectMin", "defaults": {}, "funcname": "GetItemRectMin", - "location": "imgui:846", + "location": "imgui:850", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetItemRectMin", @@ -10621,7 +10637,7 @@ "cimguiname": "igGetItemRectSize", "defaults": {}, "funcname": "GetItemRectSize", - "location": "imgui:848", + "location": "imgui:852", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetItemRectSize", @@ -10644,7 +10660,7 @@ "cimguiname": "igGetKeyIndex", "defaults": {}, "funcname": "GetKeyIndex", - "location": "imgui:884", + "location": "imgui:887", "namespace": "ImGui", "ov_cimguiname": "igGetKeyIndex", "ret": "int", @@ -10674,7 +10690,7 @@ "cimguiname": "igGetKeyPressedAmount", "defaults": {}, "funcname": "GetKeyPressedAmount", - "location": "imgui:888", + "location": "imgui:891", "namespace": "ImGui", "ov_cimguiname": "igGetKeyPressedAmount", "ret": "int", @@ -10691,7 +10707,7 @@ "cimguiname": "igGetMainViewport", "defaults": {}, "funcname": "GetMainViewport", - "location": "imgui:855", + "location": "imgui:859", "namespace": "ImGui", "ov_cimguiname": "igGetMainViewport", "ret": "ImGuiViewport*", @@ -10699,6 +10715,28 @@ "stname": "" } ], + "igGetMouseClickedCount": [ + { + "args": "(ImGuiMouseButton button)", + "argsT": [ + { + "name": "button", + "type": "ImGuiMouseButton" + } + ], + "argsoriginal": "(ImGuiMouseButton button)", + "call_args": "(button)", + "cimguiname": "igGetMouseClickedCount", + "defaults": {}, + "funcname": "GetMouseClickedCount", + "location": "imgui:902", + "namespace": "ImGui", + "ov_cimguiname": "igGetMouseClickedCount", + "ret": "int", + "signature": "(ImGuiMouseButton)", + "stname": "" + } + ], "igGetMouseCursor": [ { "args": "()", @@ -10708,7 +10746,7 @@ "cimguiname": "igGetMouseCursor", "defaults": {}, "funcname": "GetMouseCursor", - "location": "imgui:907", + "location": "imgui:911", "namespace": "ImGui", "ov_cimguiname": "igGetMouseCursor", "ret": "ImGuiMouseCursor", @@ -10741,7 +10779,7 @@ "lock_threshold": "-1.0f" }, "funcname": "GetMouseDragDelta", - "location": "imgui:905", + "location": "imgui:909", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetMouseDragDelta", @@ -10764,7 +10802,7 @@ "cimguiname": "igGetMousePos", "defaults": {}, "funcname": "GetMousePos", - "location": "imgui:902", + "location": "imgui:906", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetMousePos", @@ -10787,7 +10825,7 @@ "cimguiname": "igGetMousePosOnOpeningCurrentPopup", "defaults": {}, "funcname": "GetMousePosOnOpeningCurrentPopup", - "location": "imgui:903", + "location": "imgui:907", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetMousePosOnOpeningCurrentPopup", @@ -10805,7 +10843,7 @@ "cimguiname": "igGetScrollMaxX", "defaults": {}, "funcname": "GetScrollMaxX", - "location": "imgui:391", + "location": "imgui:394", "namespace": "ImGui", "ov_cimguiname": "igGetScrollMaxX", "ret": "float", @@ -10822,7 +10860,7 @@ "cimguiname": "igGetScrollMaxY", "defaults": {}, "funcname": "GetScrollMaxY", - "location": "imgui:392", + "location": "imgui:395", "namespace": "ImGui", "ov_cimguiname": "igGetScrollMaxY", "ret": "float", @@ -10839,7 +10877,7 @@ "cimguiname": "igGetScrollX", "defaults": {}, "funcname": "GetScrollX", - "location": "imgui:387", + "location": "imgui:390", "namespace": "ImGui", "ov_cimguiname": "igGetScrollX", "ret": "float", @@ -10856,7 +10894,7 @@ "cimguiname": "igGetScrollY", "defaults": {}, "funcname": "GetScrollY", - "location": "imgui:388", + "location": "imgui:391", "namespace": "ImGui", "ov_cimguiname": "igGetScrollY", "ret": "float", @@ -10873,7 +10911,7 @@ "cimguiname": "igGetStateStorage", "defaults": {}, "funcname": "GetStateStorage", - "location": "imgui:867", + "location": "imgui:871", "namespace": "ImGui", "ov_cimguiname": "igGetStateStorage", "ret": "ImGuiStorage*", @@ -10890,7 +10928,7 @@ "cimguiname": "igGetStyle", "defaults": {}, "funcname": "GetStyle", - "location": "imgui:298", + "location": "imgui:301", "namespace": "ImGui", "ov_cimguiname": "igGetStyle", "ret": "ImGuiStyle*", @@ -10913,7 +10951,7 @@ "cimguiname": "igGetStyleColorName", "defaults": {}, "funcname": "GetStyleColorName", - "location": "imgui:865", + "location": "imgui:869", "namespace": "ImGui", "ov_cimguiname": "igGetStyleColorName", "ret": "const char*", @@ -10935,7 +10973,7 @@ "cimguiname": "igGetStyleColorVec4", "defaults": {}, "funcname": "GetStyleColorVec4", - "location": "imgui:428", + "location": "imgui:431", "namespace": "ImGui", "ov_cimguiname": "igGetStyleColorVec4", "ret": "const ImVec4*", @@ -10953,7 +10991,7 @@ "cimguiname": "igGetTextLineHeight", "defaults": {}, "funcname": "GetTextLineHeight", - "location": "imgui:456", + "location": "imgui:459", "namespace": "ImGui", "ov_cimguiname": "igGetTextLineHeight", "ret": "float", @@ -10970,7 +11008,7 @@ "cimguiname": "igGetTextLineHeightWithSpacing", "defaults": {}, "funcname": "GetTextLineHeightWithSpacing", - "location": "imgui:457", + "location": "imgui:460", "namespace": "ImGui", "ov_cimguiname": "igGetTextLineHeightWithSpacing", "ret": "float", @@ -10987,7 +11025,7 @@ "cimguiname": "igGetTime", "defaults": {}, "funcname": "GetTime", - "location": "imgui:860", + "location": "imgui:864", "namespace": "ImGui", "ov_cimguiname": "igGetTime", "ret": "double", @@ -11004,7 +11042,7 @@ "cimguiname": "igGetTreeNodeToLabelSpacing", "defaults": {}, "funcname": "GetTreeNodeToLabelSpacing", - "location": "imgui:610", + "location": "imgui:613", "namespace": "ImGui", "ov_cimguiname": "igGetTreeNodeToLabelSpacing", "ret": "float", @@ -11021,7 +11059,7 @@ "cimguiname": "igGetVersion", "defaults": {}, "funcname": "GetVersion", - "location": "imgui:312", + "location": "imgui:316", "namespace": "ImGui", "ov_cimguiname": "igGetVersion", "ret": "const char*", @@ -11043,7 +11081,7 @@ "cimguiname": "igGetWindowContentRegionMax", "defaults": {}, "funcname": "GetWindowContentRegionMax", - "location": "imgui:383", + "location": "imgui:387", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetWindowContentRegionMax", @@ -11066,7 +11104,7 @@ "cimguiname": "igGetWindowContentRegionMin", "defaults": {}, "funcname": "GetWindowContentRegionMin", - "location": "imgui:382", + "location": "imgui:386", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetWindowContentRegionMin", @@ -11075,23 +11113,6 @@ "stname": "" } ], - "igGetWindowContentRegionWidth": [ - { - "args": "()", - "argsT": [], - "argsoriginal": "()", - "call_args": "()", - "cimguiname": "igGetWindowContentRegionWidth", - "defaults": {}, - "funcname": "GetWindowContentRegionWidth", - "location": "imgui:384", - "namespace": "ImGui", - "ov_cimguiname": "igGetWindowContentRegionWidth", - "ret": "float", - "signature": "()", - "stname": "" - } - ], "igGetWindowDrawList": [ { "args": "()", @@ -11101,7 +11122,7 @@ "cimguiname": "igGetWindowDrawList", "defaults": {}, "funcname": "GetWindowDrawList", - "location": "imgui:352", + "location": "imgui:356", "namespace": "ImGui", "ov_cimguiname": "igGetWindowDrawList", "ret": "ImDrawList*", @@ -11118,7 +11139,7 @@ "cimguiname": "igGetWindowHeight", "defaults": {}, "funcname": "GetWindowHeight", - "location": "imgui:356", + "location": "imgui:360", "namespace": "ImGui", "ov_cimguiname": "igGetWindowHeight", "ret": "float", @@ -11140,7 +11161,7 @@ "cimguiname": "igGetWindowPos", "defaults": {}, "funcname": "GetWindowPos", - "location": "imgui:353", + "location": "imgui:357", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetWindowPos", @@ -11163,7 +11184,7 @@ "cimguiname": "igGetWindowSize", "defaults": {}, "funcname": "GetWindowSize", - "location": "imgui:354", + "location": "imgui:358", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetWindowSize", @@ -11181,7 +11202,7 @@ "cimguiname": "igGetWindowWidth", "defaults": {}, "funcname": "GetWindowWidth", - "location": "imgui:355", + "location": "imgui:359", "namespace": "ImGui", "ov_cimguiname": "igGetWindowWidth", "ret": "float", @@ -11228,7 +11249,7 @@ "uv1": "ImVec2(1,1)" }, "funcname": "Image", - "location": "imgui:503", + "location": "imgui:506", "namespace": "ImGui", "ov_cimguiname": "igImage", "ret": "void", @@ -11280,7 +11301,7 @@ "uv1": "ImVec2(1,1)" }, "funcname": "ImageButton", - "location": "imgui:504", + "location": "imgui:507", "namespace": "ImGui", "ov_cimguiname": "igImageButton", "ret": "bool", @@ -11304,7 +11325,7 @@ "indent_w": "0.0f" }, "funcname": "Indent", - "location": "imgui:442", + "location": "imgui:445", "namespace": "ImGui", "ov_cimguiname": "igIndent", "ret": "void", @@ -11351,7 +11372,7 @@ "step_fast": "0.0" }, "funcname": "InputDouble", - "location": "imgui:581", + "location": "imgui:584", "namespace": "ImGui", "ov_cimguiname": "igInputDouble", "ret": "bool", @@ -11398,7 +11419,7 @@ "step_fast": "0.0f" }, "funcname": "InputFloat", - "location": "imgui:573", + "location": "imgui:576", "namespace": "ImGui", "ov_cimguiname": "igInputFloat", "ret": "bool", @@ -11435,7 +11456,7 @@ "format": "\"%.3f\"" }, "funcname": "InputFloat2", - "location": "imgui:574", + "location": "imgui:577", "namespace": "ImGui", "ov_cimguiname": "igInputFloat2", "ret": "bool", @@ -11472,7 +11493,7 @@ "format": "\"%.3f\"" }, "funcname": "InputFloat3", - "location": "imgui:575", + "location": "imgui:578", "namespace": "ImGui", "ov_cimguiname": "igInputFloat3", "ret": "bool", @@ -11509,7 +11530,7 @@ "format": "\"%.3f\"" }, "funcname": "InputFloat4", - "location": "imgui:576", + "location": "imgui:579", "namespace": "ImGui", "ov_cimguiname": "igInputFloat4", "ret": "bool", @@ -11551,7 +11572,7 @@ "step_fast": "100" }, "funcname": "InputInt", - "location": "imgui:577", + "location": "imgui:580", "namespace": "ImGui", "ov_cimguiname": "igInputInt", "ret": "bool", @@ -11583,7 +11604,7 @@ "flags": "0" }, "funcname": "InputInt2", - "location": "imgui:578", + "location": "imgui:581", "namespace": "ImGui", "ov_cimguiname": "igInputInt2", "ret": "bool", @@ -11615,7 +11636,7 @@ "flags": "0" }, "funcname": "InputInt3", - "location": "imgui:579", + "location": "imgui:582", "namespace": "ImGui", "ov_cimguiname": "igInputInt3", "ret": "bool", @@ -11647,7 +11668,7 @@ "flags": "0" }, "funcname": "InputInt4", - "location": "imgui:580", + "location": "imgui:583", "namespace": "ImGui", "ov_cimguiname": "igInputInt4", "ret": "bool", @@ -11698,7 +11719,7 @@ "p_step_fast": "NULL" }, "funcname": "InputScalar", - "location": "imgui:582", + "location": "imgui:585", "namespace": "ImGui", "ov_cimguiname": "igInputScalar", "ret": "bool", @@ -11753,7 +11774,7 @@ "p_step_fast": "NULL" }, "funcname": "InputScalarN", - "location": "imgui:583", + "location": "imgui:586", "namespace": "ImGui", "ov_cimguiname": "igInputScalarN", "ret": "bool", @@ -11799,7 +11820,7 @@ "user_data": "NULL" }, "funcname": "InputText", - "location": "imgui:570", + "location": "imgui:573", "namespace": "ImGui", "ov_cimguiname": "igInputText", "ret": "bool", @@ -11850,7 +11871,7 @@ "user_data": "NULL" }, "funcname": "InputTextMultiline", - "location": "imgui:571", + "location": "imgui:574", "namespace": "ImGui", "ov_cimguiname": "igInputTextMultiline", "ret": "bool", @@ -11900,7 +11921,7 @@ "user_data": "NULL" }, "funcname": "InputTextWithHint", - "location": "imgui:572", + "location": "imgui:575", "namespace": "ImGui", "ov_cimguiname": "igInputTextWithHint", "ret": "bool", @@ -11932,7 +11953,7 @@ "flags": "0" }, "funcname": "InvisibleButton", - "location": "imgui:501", + "location": "imgui:504", "namespace": "ImGui", "ov_cimguiname": "igInvisibleButton", "ret": "bool", @@ -11949,7 +11970,7 @@ "cimguiname": "igIsAnyItemActive", "defaults": {}, "funcname": "IsAnyItemActive", - "location": "imgui:844", + "location": "imgui:848", "namespace": "ImGui", "ov_cimguiname": "igIsAnyItemActive", "ret": "bool", @@ -11966,7 +11987,7 @@ "cimguiname": "igIsAnyItemFocused", "defaults": {}, "funcname": "IsAnyItemFocused", - "location": "imgui:845", + "location": "imgui:849", "namespace": "ImGui", "ov_cimguiname": "igIsAnyItemFocused", "ret": "bool", @@ -11983,7 +12004,7 @@ "cimguiname": "igIsAnyItemHovered", "defaults": {}, "funcname": "IsAnyItemHovered", - "location": "imgui:843", + "location": "imgui:847", "namespace": "ImGui", "ov_cimguiname": "igIsAnyItemHovered", "ret": "bool", @@ -12000,7 +12021,7 @@ "cimguiname": "igIsAnyMouseDown", "defaults": {}, "funcname": "IsAnyMouseDown", - "location": "imgui:901", + "location": "imgui:905", "namespace": "ImGui", "ov_cimguiname": "igIsAnyMouseDown", "ret": "bool", @@ -12017,7 +12038,7 @@ "cimguiname": "igIsItemActivated", "defaults": {}, "funcname": "IsItemActivated", - "location": "imgui:839", + "location": "imgui:843", "namespace": "ImGui", "ov_cimguiname": "igIsItemActivated", "ret": "bool", @@ -12034,7 +12055,7 @@ "cimguiname": "igIsItemActive", "defaults": {}, "funcname": "IsItemActive", - "location": "imgui:834", + "location": "imgui:838", "namespace": "ImGui", "ov_cimguiname": "igIsItemActive", "ret": "bool", @@ -12058,7 +12079,7 @@ "mouse_button": "0" }, "funcname": "IsItemClicked", - "location": "imgui:836", + "location": "imgui:840", "namespace": "ImGui", "ov_cimguiname": "igIsItemClicked", "ret": "bool", @@ -12075,7 +12096,7 @@ "cimguiname": "igIsItemDeactivated", "defaults": {}, "funcname": "IsItemDeactivated", - "location": "imgui:840", + "location": "imgui:844", "namespace": "ImGui", "ov_cimguiname": "igIsItemDeactivated", "ret": "bool", @@ -12092,7 +12113,7 @@ "cimguiname": "igIsItemDeactivatedAfterEdit", "defaults": {}, "funcname": "IsItemDeactivatedAfterEdit", - "location": "imgui:841", + "location": "imgui:845", "namespace": "ImGui", "ov_cimguiname": "igIsItemDeactivatedAfterEdit", "ret": "bool", @@ -12109,7 +12130,7 @@ "cimguiname": "igIsItemEdited", "defaults": {}, "funcname": "IsItemEdited", - "location": "imgui:838", + "location": "imgui:842", "namespace": "ImGui", "ov_cimguiname": "igIsItemEdited", "ret": "bool", @@ -12126,7 +12147,7 @@ "cimguiname": "igIsItemFocused", "defaults": {}, "funcname": "IsItemFocused", - "location": "imgui:835", + "location": "imgui:839", "namespace": "ImGui", "ov_cimguiname": "igIsItemFocused", "ret": "bool", @@ -12150,7 +12171,7 @@ "flags": "0" }, "funcname": "IsItemHovered", - "location": "imgui:833", + "location": "imgui:837", "namespace": "ImGui", "ov_cimguiname": "igIsItemHovered", "ret": "bool", @@ -12167,7 +12188,7 @@ "cimguiname": "igIsItemToggledOpen", "defaults": {}, "funcname": "IsItemToggledOpen", - "location": "imgui:842", + "location": "imgui:846", "namespace": "ImGui", "ov_cimguiname": "igIsItemToggledOpen", "ret": "bool", @@ -12184,7 +12205,7 @@ "cimguiname": "igIsItemVisible", "defaults": {}, "funcname": "IsItemVisible", - "location": "imgui:837", + "location": "imgui:841", "namespace": "ImGui", "ov_cimguiname": "igIsItemVisible", "ret": "bool", @@ -12206,7 +12227,7 @@ "cimguiname": "igIsKeyDown", "defaults": {}, "funcname": "IsKeyDown", - "location": "imgui:885", + "location": "imgui:888", "namespace": "ImGui", "ov_cimguiname": "igIsKeyDown", "ret": "bool", @@ -12234,7 +12255,7 @@ "repeat": "true" }, "funcname": "IsKeyPressed", - "location": "imgui:886", + "location": "imgui:889", "namespace": "ImGui", "ov_cimguiname": "igIsKeyPressed", "ret": "bool", @@ -12256,7 +12277,7 @@ "cimguiname": "igIsKeyReleased", "defaults": {}, "funcname": "IsKeyReleased", - "location": "imgui:887", + "location": "imgui:890", "namespace": "ImGui", "ov_cimguiname": "igIsKeyReleased", "ret": "bool", @@ -12284,7 +12305,7 @@ "repeat": "false" }, "funcname": "IsMouseClicked", - "location": "imgui:896", + "location": "imgui:899", "namespace": "ImGui", "ov_cimguiname": "igIsMouseClicked", "ret": "bool", @@ -12306,7 +12327,7 @@ "cimguiname": "igIsMouseDoubleClicked", "defaults": {}, "funcname": "IsMouseDoubleClicked", - "location": "imgui:898", + "location": "imgui:901", "namespace": "ImGui", "ov_cimguiname": "igIsMouseDoubleClicked", "ret": "bool", @@ -12328,7 +12349,7 @@ "cimguiname": "igIsMouseDown", "defaults": {}, "funcname": "IsMouseDown", - "location": "imgui:895", + "location": "imgui:898", "namespace": "ImGui", "ov_cimguiname": "igIsMouseDown", "ret": "bool", @@ -12356,7 +12377,7 @@ "lock_threshold": "-1.0f" }, "funcname": "IsMouseDragging", - "location": "imgui:904", + "location": "imgui:908", "namespace": "ImGui", "ov_cimguiname": "igIsMouseDragging", "ret": "bool", @@ -12388,7 +12409,7 @@ "clip": "true" }, "funcname": "IsMouseHoveringRect", - "location": "imgui:899", + "location": "imgui:903", "namespace": "ImGui", "ov_cimguiname": "igIsMouseHoveringRect", "ret": "bool", @@ -12412,7 +12433,7 @@ "mouse_pos": "NULL" }, "funcname": "IsMousePosValid", - "location": "imgui:900", + "location": "imgui:904", "namespace": "ImGui", "ov_cimguiname": "igIsMousePosValid", "ret": "bool", @@ -12434,7 +12455,7 @@ "cimguiname": "igIsMouseReleased", "defaults": {}, "funcname": "IsMouseReleased", - "location": "imgui:897", + "location": "imgui:900", "namespace": "ImGui", "ov_cimguiname": "igIsMouseReleased", "ret": "bool", @@ -12462,7 +12483,7 @@ "flags": "0" }, "funcname": "IsPopupOpen", - "location": "imgui:708", + "location": "imgui:711", "namespace": "ImGui", "ov_cimguiname": "igIsPopupOpen", "ret": "bool", @@ -12484,7 +12505,7 @@ "cimguiname": "igIsRectVisible", "defaults": {}, "funcname": "IsRectVisible", - "location": "imgui:858", + "location": "imgui:862", "namespace": "ImGui", "ov_cimguiname": "igIsRectVisibleNil", "ret": "bool", @@ -12508,7 +12529,7 @@ "cimguiname": "igIsRectVisible", "defaults": {}, "funcname": "IsRectVisible", - "location": "imgui:859", + "location": "imgui:863", "namespace": "ImGui", "ov_cimguiname": "igIsRectVisibleVec2", "ret": "bool", @@ -12525,7 +12546,7 @@ "cimguiname": "igIsWindowAppearing", "defaults": {}, "funcname": "IsWindowAppearing", - "location": "imgui:348", + "location": "imgui:352", "namespace": "ImGui", "ov_cimguiname": "igIsWindowAppearing", "ret": "bool", @@ -12542,7 +12563,7 @@ "cimguiname": "igIsWindowCollapsed", "defaults": {}, "funcname": "IsWindowCollapsed", - "location": "imgui:349", + "location": "imgui:353", "namespace": "ImGui", "ov_cimguiname": "igIsWindowCollapsed", "ret": "bool", @@ -12566,7 +12587,7 @@ "flags": "0" }, "funcname": "IsWindowFocused", - "location": "imgui:350", + "location": "imgui:354", "namespace": "ImGui", "ov_cimguiname": "igIsWindowFocused", "ret": "bool", @@ -12590,7 +12611,7 @@ "flags": "0" }, "funcname": "IsWindowHovered", - "location": "imgui:351", + "location": "imgui:355", "namespace": "ImGui", "ov_cimguiname": "igIsWindowHovered", "ret": "bool", @@ -12621,7 +12642,7 @@ "defaults": {}, "funcname": "LabelText", "isvararg": "...)", - "location": "imgui:491", + "location": "imgui:494", "namespace": "ImGui", "ov_cimguiname": "igLabelText", "ret": "void", @@ -12651,7 +12672,7 @@ "cimguiname": "igLabelTextV", "defaults": {}, "funcname": "LabelTextV", - "location": "imgui:492", + "location": "imgui:495", "namespace": "ImGui", "ov_cimguiname": "igLabelTextV", "ret": "void", @@ -12691,7 +12712,7 @@ "height_in_items": "-1" }, "funcname": "ListBox", - "location": "imgui:629", + "location": "imgui:632", "namespace": "ImGui", "ov_cimguiname": "igListBoxStr_arr", "ret": "bool", @@ -12735,7 +12756,7 @@ "height_in_items": "-1" }, "funcname": "ListBox", - "location": "imgui:630", + "location": "imgui:633", "namespace": "ImGui", "ov_cimguiname": "igListBoxFnBoolPtr", "ret": "bool", @@ -12757,7 +12778,7 @@ "cimguiname": "igLoadIniSettingsFromDisk", "defaults": {}, "funcname": "LoadIniSettingsFromDisk", - "location": "imgui:920", + "location": "imgui:924", "namespace": "ImGui", "ov_cimguiname": "igLoadIniSettingsFromDisk", "ret": "void", @@ -12785,7 +12806,7 @@ "ini_size": "0" }, "funcname": "LoadIniSettingsFromMemory", - "location": "imgui:921", + "location": "imgui:925", "namespace": "ImGui", "ov_cimguiname": "igLoadIniSettingsFromMemory", "ret": "void", @@ -12802,7 +12823,7 @@ "cimguiname": "igLogButtons", "defaults": {}, "funcname": "LogButtons", - "location": "imgui:797", + "location": "imgui:800", "namespace": "ImGui", "ov_cimguiname": "igLogButtons", "ret": "void", @@ -12819,7 +12840,7 @@ "cimguiname": "igLogFinish", "defaults": {}, "funcname": "LogFinish", - "location": "imgui:796", + "location": "imgui:799", "namespace": "ImGui", "ov_cimguiname": "igLogFinish", "ret": "void", @@ -12846,7 +12867,7 @@ "defaults": {}, "funcname": "LogText", "isvararg": "...)", - "location": "imgui:798", + "location": "imgui:801", "manual": true, "namespace": "ImGui", "ov_cimguiname": "igLogText", @@ -12873,7 +12894,7 @@ "cimguiname": "igLogTextV", "defaults": {}, "funcname": "LogTextV", - "location": "imgui:799", + "location": "imgui:802", "namespace": "ImGui", "ov_cimguiname": "igLogTextV", "ret": "void", @@ -12897,7 +12918,7 @@ "auto_open_depth": "-1" }, "funcname": "LogToClipboard", - "location": "imgui:795", + "location": "imgui:798", "namespace": "ImGui", "ov_cimguiname": "igLogToClipboard", "ret": "void", @@ -12926,7 +12947,7 @@ "filename": "NULL" }, "funcname": "LogToFile", - "location": "imgui:794", + "location": "imgui:797", "namespace": "ImGui", "ov_cimguiname": "igLogToFile", "ret": "void", @@ -12950,7 +12971,7 @@ "auto_open_depth": "-1" }, "funcname": "LogToTTY", - "location": "imgui:793", + "location": "imgui:796", "namespace": "ImGui", "ov_cimguiname": "igLogToTTY", "ret": "void", @@ -12972,7 +12993,7 @@ "cimguiname": "igMemAlloc", "defaults": {}, "funcname": "MemAlloc", - "location": "imgui:935", + "location": "imgui:939", "namespace": "ImGui", "ov_cimguiname": "igMemAlloc", "ret": "void*", @@ -12994,7 +13015,7 @@ "cimguiname": "igMemFree", "defaults": {}, "funcname": "MemFree", - "location": "imgui:936", + "location": "imgui:940", "namespace": "ImGui", "ov_cimguiname": "igMemFree", "ret": "void", @@ -13032,7 +13053,7 @@ "shortcut": "NULL" }, "funcname": "MenuItem", - "location": "imgui:657", + "location": "imgui:660", "namespace": "ImGui", "ov_cimguiname": "igMenuItemBool", "ret": "bool", @@ -13066,7 +13087,7 @@ "enabled": "true" }, "funcname": "MenuItem", - "location": "imgui:658", + "location": "imgui:661", "namespace": "ImGui", "ov_cimguiname": "igMenuItemBoolPtr", "ret": "bool", @@ -13083,7 +13104,7 @@ "cimguiname": "igNewFrame", "defaults": {}, "funcname": "NewFrame", - "location": "imgui:299", + "location": "imgui:302", "namespace": "ImGui", "ov_cimguiname": "igNewFrame", "ret": "void", @@ -13100,7 +13121,7 @@ "cimguiname": "igNewLine", "defaults": {}, "funcname": "NewLine", - "location": "imgui:439", + "location": "imgui:442", "namespace": "ImGui", "ov_cimguiname": "igNewLine", "ret": "void", @@ -13117,7 +13138,7 @@ "cimguiname": "igNextColumn", "defaults": {}, "funcname": "NextColumn", - "location": "imgui:775", + "location": "imgui:778", "namespace": "ImGui", "ov_cimguiname": "igNextColumn", "ret": "void", @@ -13145,7 +13166,7 @@ "popup_flags": "0" }, "funcname": "OpenPopup", - "location": "imgui:690", + "location": "imgui:693", "namespace": "ImGui", "ov_cimguiname": "igOpenPopupStr", "ret": "void", @@ -13171,7 +13192,7 @@ "popup_flags": "0" }, "funcname": "OpenPopup", - "location": "imgui:691", + "location": "imgui:694", "namespace": "ImGui", "ov_cimguiname": "igOpenPopupID", "ret": "void", @@ -13200,7 +13221,7 @@ "str_id": "NULL" }, "funcname": "OpenPopupOnItemClick", - "location": "imgui:692", + "location": "imgui:695", "namespace": "ImGui", "ov_cimguiname": "igOpenPopupOnItemClick", "ret": "void", @@ -13261,7 +13282,7 @@ "values_offset": "0" }, "funcname": "PlotHistogram", - "location": "imgui:636", + "location": "imgui:639", "namespace": "ImGui", "ov_cimguiname": "igPlotHistogramFloatPtr", "ret": "void", @@ -13321,7 +13342,7 @@ "values_offset": "0" }, "funcname": "PlotHistogram", - "location": "imgui:637", + "location": "imgui:640", "namespace": "ImGui", "ov_cimguiname": "igPlotHistogramFnFloatPtr", "ret": "void", @@ -13382,7 +13403,7 @@ "values_offset": "0" }, "funcname": "PlotLines", - "location": "imgui:634", + "location": "imgui:637", "namespace": "ImGui", "ov_cimguiname": "igPlotLinesFloatPtr", "ret": "void", @@ -13442,7 +13463,7 @@ "values_offset": "0" }, "funcname": "PlotLines", - "location": "imgui:635", + "location": "imgui:638", "namespace": "ImGui", "ov_cimguiname": "igPlotLinesFnFloatPtr", "ret": "void", @@ -13459,7 +13480,7 @@ "cimguiname": "igPopAllowKeyboardFocus", "defaults": {}, "funcname": "PopAllowKeyboardFocus", - "location": "imgui:408", + "location": "imgui:411", "namespace": "ImGui", "ov_cimguiname": "igPopAllowKeyboardFocus", "ret": "void", @@ -13476,7 +13497,7 @@ "cimguiname": "igPopButtonRepeat", "defaults": {}, "funcname": "PopButtonRepeat", - "location": "imgui:410", + "location": "imgui:413", "namespace": "ImGui", "ov_cimguiname": "igPopButtonRepeat", "ret": "void", @@ -13493,7 +13514,7 @@ "cimguiname": "igPopClipRect", "defaults": {}, "funcname": "PopClipRect", - "location": "imgui:823", + "location": "imgui:827", "namespace": "ImGui", "ov_cimguiname": "igPopClipRect", "ret": "void", @@ -13510,7 +13531,7 @@ "cimguiname": "igPopFont", "defaults": {}, "funcname": "PopFont", - "location": "imgui:400", + "location": "imgui:403", "namespace": "ImGui", "ov_cimguiname": "igPopFont", "ret": "void", @@ -13527,7 +13548,7 @@ "cimguiname": "igPopID", "defaults": {}, "funcname": "PopID", - "location": "imgui:476", + "location": "imgui:479", "namespace": "ImGui", "ov_cimguiname": "igPopID", "ret": "void", @@ -13544,7 +13565,7 @@ "cimguiname": "igPopItemWidth", "defaults": {}, "funcname": "PopItemWidth", - "location": "imgui:414", + "location": "imgui:417", "namespace": "ImGui", "ov_cimguiname": "igPopItemWidth", "ret": "void", @@ -13568,7 +13589,7 @@ "count": "1" }, "funcname": "PopStyleColor", - "location": "imgui:403", + "location": "imgui:406", "namespace": "ImGui", "ov_cimguiname": "igPopStyleColor", "ret": "void", @@ -13592,7 +13613,7 @@ "count": "1" }, "funcname": "PopStyleVar", - "location": "imgui:406", + "location": "imgui:409", "namespace": "ImGui", "ov_cimguiname": "igPopStyleVar", "ret": "void", @@ -13609,7 +13630,7 @@ "cimguiname": "igPopTextWrapPos", "defaults": {}, "funcname": "PopTextWrapPos", - "location": "imgui:418", + "location": "imgui:421", "namespace": "ImGui", "ov_cimguiname": "igPopTextWrapPos", "ret": "void", @@ -13642,7 +13663,7 @@ "size_arg": "ImVec2(-FLT_MIN,0)" }, "funcname": "ProgressBar", - "location": "imgui:510", + "location": "imgui:513", "namespace": "ImGui", "ov_cimguiname": "igProgressBar", "ret": "void", @@ -13664,7 +13685,7 @@ "cimguiname": "igPushAllowKeyboardFocus", "defaults": {}, "funcname": "PushAllowKeyboardFocus", - "location": "imgui:407", + "location": "imgui:410", "namespace": "ImGui", "ov_cimguiname": "igPushAllowKeyboardFocus", "ret": "void", @@ -13686,7 +13707,7 @@ "cimguiname": "igPushButtonRepeat", "defaults": {}, "funcname": "PushButtonRepeat", - "location": "imgui:409", + "location": "imgui:412", "namespace": "ImGui", "ov_cimguiname": "igPushButtonRepeat", "ret": "void", @@ -13716,7 +13737,7 @@ "cimguiname": "igPushClipRect", "defaults": {}, "funcname": "PushClipRect", - "location": "imgui:822", + "location": "imgui:826", "namespace": "ImGui", "ov_cimguiname": "igPushClipRect", "ret": "void", @@ -13738,7 +13759,7 @@ "cimguiname": "igPushFont", "defaults": {}, "funcname": "PushFont", - "location": "imgui:399", + "location": "imgui:402", "namespace": "ImGui", "ov_cimguiname": "igPushFont", "ret": "void", @@ -13760,7 +13781,7 @@ "cimguiname": "igPushID", "defaults": {}, "funcname": "PushID", - "location": "imgui:472", + "location": "imgui:475", "namespace": "ImGui", "ov_cimguiname": "igPushIDStr", "ret": "void", @@ -13784,7 +13805,7 @@ "cimguiname": "igPushID", "defaults": {}, "funcname": "PushID", - "location": "imgui:473", + "location": "imgui:476", "namespace": "ImGui", "ov_cimguiname": "igPushIDStrStr", "ret": "void", @@ -13804,7 +13825,7 @@ "cimguiname": "igPushID", "defaults": {}, "funcname": "PushID", - "location": "imgui:474", + "location": "imgui:477", "namespace": "ImGui", "ov_cimguiname": "igPushIDPtr", "ret": "void", @@ -13824,7 +13845,7 @@ "cimguiname": "igPushID", "defaults": {}, "funcname": "PushID", - "location": "imgui:475", + "location": "imgui:478", "namespace": "ImGui", "ov_cimguiname": "igPushIDInt", "ret": "void", @@ -13846,7 +13867,7 @@ "cimguiname": "igPushItemWidth", "defaults": {}, "funcname": "PushItemWidth", - "location": "imgui:413", + "location": "imgui:416", "namespace": "ImGui", "ov_cimguiname": "igPushItemWidth", "ret": "void", @@ -13872,7 +13893,7 @@ "cimguiname": "igPushStyleColor", "defaults": {}, "funcname": "PushStyleColor", - "location": "imgui:401", + "location": "imgui:404", "namespace": "ImGui", "ov_cimguiname": "igPushStyleColorU32", "ret": "void", @@ -13896,7 +13917,7 @@ "cimguiname": "igPushStyleColor", "defaults": {}, "funcname": "PushStyleColor", - "location": "imgui:402", + "location": "imgui:405", "namespace": "ImGui", "ov_cimguiname": "igPushStyleColorVec4", "ret": "void", @@ -13922,7 +13943,7 @@ "cimguiname": "igPushStyleVar", "defaults": {}, "funcname": "PushStyleVar", - "location": "imgui:404", + "location": "imgui:407", "namespace": "ImGui", "ov_cimguiname": "igPushStyleVarFloat", "ret": "void", @@ -13946,7 +13967,7 @@ "cimguiname": "igPushStyleVar", "defaults": {}, "funcname": "PushStyleVar", - "location": "imgui:405", + "location": "imgui:408", "namespace": "ImGui", "ov_cimguiname": "igPushStyleVarVec2", "ret": "void", @@ -13970,7 +13991,7 @@ "wrap_local_pos_x": "0.0f" }, "funcname": "PushTextWrapPos", - "location": "imgui:417", + "location": "imgui:420", "namespace": "ImGui", "ov_cimguiname": "igPushTextWrapPos", "ret": "void", @@ -13996,7 +14017,7 @@ "cimguiname": "igRadioButton", "defaults": {}, "funcname": "RadioButton", - "location": "imgui:508", + "location": "imgui:511", "namespace": "ImGui", "ov_cimguiname": "igRadioButtonBool", "ret": "bool", @@ -14024,7 +14045,7 @@ "cimguiname": "igRadioButton", "defaults": {}, "funcname": "RadioButton", - "location": "imgui:509", + "location": "imgui:512", "namespace": "ImGui", "ov_cimguiname": "igRadioButtonIntPtr", "ret": "bool", @@ -14041,7 +14062,7 @@ "cimguiname": "igRender", "defaults": {}, "funcname": "Render", - "location": "imgui:301", + "location": "imgui:304", "namespace": "ImGui", "ov_cimguiname": "igRender", "ret": "void", @@ -14065,7 +14086,7 @@ "button": "0" }, "funcname": "ResetMouseDragDelta", - "location": "imgui:906", + "location": "imgui:910", "namespace": "ImGui", "ov_cimguiname": "igResetMouseDragDelta", "ret": "void", @@ -14094,7 +14115,7 @@ "spacing": "-1.0f" }, "funcname": "SameLine", - "location": "imgui:438", + "location": "imgui:441", "namespace": "ImGui", "ov_cimguiname": "igSameLine", "ret": "void", @@ -14116,7 +14137,7 @@ "cimguiname": "igSaveIniSettingsToDisk", "defaults": {}, "funcname": "SaveIniSettingsToDisk", - "location": "imgui:922", + "location": "imgui:926", "namespace": "ImGui", "ov_cimguiname": "igSaveIniSettingsToDisk", "ret": "void", @@ -14140,7 +14161,7 @@ "out_ini_size": "NULL" }, "funcname": "SaveIniSettingsToMemory", - "location": "imgui:923", + "location": "imgui:927", "namespace": "ImGui", "ov_cimguiname": "igSaveIniSettingsToMemory", "ret": "const char*", @@ -14178,7 +14199,7 @@ "size": "ImVec2(0,0)" }, "funcname": "Selectable", - "location": "imgui:618", + "location": "imgui:621", "namespace": "ImGui", "ov_cimguiname": "igSelectableBool", "ret": "bool", @@ -14213,7 +14234,7 @@ "size": "ImVec2(0,0)" }, "funcname": "Selectable", - "location": "imgui:619", + "location": "imgui:622", "namespace": "ImGui", "ov_cimguiname": "igSelectableBoolPtr", "ret": "bool", @@ -14230,7 +14251,7 @@ "cimguiname": "igSeparator", "defaults": {}, "funcname": "Separator", - "location": "imgui:437", + "location": "imgui:440", "namespace": "ImGui", "ov_cimguiname": "igSeparator", "ret": "void", @@ -14262,7 +14283,7 @@ "user_data": "NULL" }, "funcname": "SetAllocatorFunctions", - "location": "imgui:933", + "location": "imgui:937", "namespace": "ImGui", "ov_cimguiname": "igSetAllocatorFunctions", "ret": "void", @@ -14284,7 +14305,7 @@ "cimguiname": "igSetClipboardText", "defaults": {}, "funcname": "SetClipboardText", - "location": "imgui:914", + "location": "imgui:918", "namespace": "ImGui", "ov_cimguiname": "igSetClipboardText", "ret": "void", @@ -14306,7 +14327,7 @@ "cimguiname": "igSetColorEditOptions", "defaults": {}, "funcname": "SetColorEditOptions", - "location": "imgui:593", + "location": "imgui:596", "namespace": "ImGui", "ov_cimguiname": "igSetColorEditOptions", "ret": "void", @@ -14332,7 +14353,7 @@ "cimguiname": "igSetColumnOffset", "defaults": {}, "funcname": "SetColumnOffset", - "location": "imgui:780", + "location": "imgui:783", "namespace": "ImGui", "ov_cimguiname": "igSetColumnOffset", "ret": "void", @@ -14358,7 +14379,7 @@ "cimguiname": "igSetColumnWidth", "defaults": {}, "funcname": "SetColumnWidth", - "location": "imgui:778", + "location": "imgui:781", "namespace": "ImGui", "ov_cimguiname": "igSetColumnWidth", "ret": "void", @@ -14380,7 +14401,7 @@ "cimguiname": "igSetCurrentContext", "defaults": {}, "funcname": "SetCurrentContext", - "location": "imgui:294", + "location": "imgui:297", "namespace": "ImGui", "ov_cimguiname": "igSetCurrentContext", "ret": "void", @@ -14402,7 +14423,7 @@ "cimguiname": "igSetCursorPos", "defaults": {}, "funcname": "SetCursorPos", - "location": "imgui:449", + "location": "imgui:452", "namespace": "ImGui", "ov_cimguiname": "igSetCursorPos", "ret": "void", @@ -14424,7 +14445,7 @@ "cimguiname": "igSetCursorPosX", "defaults": {}, "funcname": "SetCursorPosX", - "location": "imgui:450", + "location": "imgui:453", "namespace": "ImGui", "ov_cimguiname": "igSetCursorPosX", "ret": "void", @@ -14446,7 +14467,7 @@ "cimguiname": "igSetCursorPosY", "defaults": {}, "funcname": "SetCursorPosY", - "location": "imgui:451", + "location": "imgui:454", "namespace": "ImGui", "ov_cimguiname": "igSetCursorPosY", "ret": "void", @@ -14468,7 +14489,7 @@ "cimguiname": "igSetCursorScreenPos", "defaults": {}, "funcname": "SetCursorScreenPos", - "location": "imgui:454", + "location": "imgui:457", "namespace": "ImGui", "ov_cimguiname": "igSetCursorScreenPos", "ret": "void", @@ -14504,7 +14525,7 @@ "cond": "0" }, "funcname": "SetDragDropPayload", - "location": "imgui:807", + "location": "imgui:810", "namespace": "ImGui", "ov_cimguiname": "igSetDragDropPayload", "ret": "bool", @@ -14521,7 +14542,7 @@ "cimguiname": "igSetItemAllowOverlap", "defaults": {}, "funcname": "SetItemAllowOverlap", - "location": "imgui:849", + "location": "imgui:853", "namespace": "ImGui", "ov_cimguiname": "igSetItemAllowOverlap", "ret": "void", @@ -14538,7 +14559,7 @@ "cimguiname": "igSetItemDefaultFocus", "defaults": {}, "funcname": "SetItemDefaultFocus", - "location": "imgui:827", + "location": "imgui:831", "namespace": "ImGui", "ov_cimguiname": "igSetItemDefaultFocus", "ret": "void", @@ -14562,7 +14583,7 @@ "offset": "0" }, "funcname": "SetKeyboardFocusHere", - "location": "imgui:828", + "location": "imgui:832", "namespace": "ImGui", "ov_cimguiname": "igSetKeyboardFocusHere", "ret": "void", @@ -14584,7 +14605,7 @@ "cimguiname": "igSetMouseCursor", "defaults": {}, "funcname": "SetMouseCursor", - "location": "imgui:908", + "location": "imgui:912", "namespace": "ImGui", "ov_cimguiname": "igSetMouseCursor", "ret": "void", @@ -14612,7 +14633,7 @@ "cond": "0" }, "funcname": "SetNextItemOpen", - "location": "imgui:613", + "location": "imgui:616", "namespace": "ImGui", "ov_cimguiname": "igSetNextItemOpen", "ret": "void", @@ -14634,7 +14655,7 @@ "cimguiname": "igSetNextItemWidth", "defaults": {}, "funcname": "SetNextItemWidth", - "location": "imgui:415", + "location": "imgui:418", "namespace": "ImGui", "ov_cimguiname": "igSetNextItemWidth", "ret": "void", @@ -14656,7 +14677,7 @@ "cimguiname": "igSetNextWindowBgAlpha", "defaults": {}, "funcname": "SetNextWindowBgAlpha", - "location": "imgui:366", + "location": "imgui:370", "namespace": "ImGui", "ov_cimguiname": "igSetNextWindowBgAlpha", "ret": "void", @@ -14684,7 +14705,7 @@ "cond": "0" }, "funcname": "SetNextWindowCollapsed", - "location": "imgui:364", + "location": "imgui:368", "namespace": "ImGui", "ov_cimguiname": "igSetNextWindowCollapsed", "ret": "void", @@ -14706,7 +14727,7 @@ "cimguiname": "igSetNextWindowContentSize", "defaults": {}, "funcname": "SetNextWindowContentSize", - "location": "imgui:363", + "location": "imgui:367", "namespace": "ImGui", "ov_cimguiname": "igSetNextWindowContentSize", "ret": "void", @@ -14723,7 +14744,7 @@ "cimguiname": "igSetNextWindowFocus", "defaults": {}, "funcname": "SetNextWindowFocus", - "location": "imgui:365", + "location": "imgui:369", "namespace": "ImGui", "ov_cimguiname": "igSetNextWindowFocus", "ret": "void", @@ -14756,7 +14777,7 @@ "pivot": "ImVec2(0,0)" }, "funcname": "SetNextWindowPos", - "location": "imgui:360", + "location": "imgui:364", "namespace": "ImGui", "ov_cimguiname": "igSetNextWindowPos", "ret": "void", @@ -14784,7 +14805,7 @@ "cond": "0" }, "funcname": "SetNextWindowSize", - "location": "imgui:361", + "location": "imgui:365", "namespace": "ImGui", "ov_cimguiname": "igSetNextWindowSize", "ret": "void", @@ -14821,7 +14842,7 @@ "custom_callback_data": "NULL" }, "funcname": "SetNextWindowSizeConstraints", - "location": "imgui:362", + "location": "imgui:366", "namespace": "ImGui", "ov_cimguiname": "igSetNextWindowSizeConstraints", "ret": "void", @@ -14849,7 +14870,7 @@ "center_x_ratio": "0.5f" }, "funcname": "SetScrollFromPosX", - "location": "imgui:395", + "location": "imgui:398", "namespace": "ImGui", "ov_cimguiname": "igSetScrollFromPosX", "ret": "void", @@ -14877,7 +14898,7 @@ "center_y_ratio": "0.5f" }, "funcname": "SetScrollFromPosY", - "location": "imgui:396", + "location": "imgui:399", "namespace": "ImGui", "ov_cimguiname": "igSetScrollFromPosY", "ret": "void", @@ -14901,7 +14922,7 @@ "center_x_ratio": "0.5f" }, "funcname": "SetScrollHereX", - "location": "imgui:393", + "location": "imgui:396", "namespace": "ImGui", "ov_cimguiname": "igSetScrollHereX", "ret": "void", @@ -14925,7 +14946,7 @@ "center_y_ratio": "0.5f" }, "funcname": "SetScrollHereY", - "location": "imgui:394", + "location": "imgui:397", "namespace": "ImGui", "ov_cimguiname": "igSetScrollHereY", "ret": "void", @@ -14947,7 +14968,7 @@ "cimguiname": "igSetScrollX", "defaults": {}, "funcname": "SetScrollX", - "location": "imgui:389", + "location": "imgui:392", "namespace": "ImGui", "ov_cimguiname": "igSetScrollX", "ret": "void", @@ -14969,7 +14990,7 @@ "cimguiname": "igSetScrollY", "defaults": {}, "funcname": "SetScrollY", - "location": "imgui:390", + "location": "imgui:393", "namespace": "ImGui", "ov_cimguiname": "igSetScrollY", "ret": "void", @@ -14991,7 +15012,7 @@ "cimguiname": "igSetStateStorage", "defaults": {}, "funcname": "SetStateStorage", - "location": "imgui:866", + "location": "imgui:870", "namespace": "ImGui", "ov_cimguiname": "igSetStateStorage", "ret": "void", @@ -15013,7 +15034,7 @@ "cimguiname": "igSetTabItemClosed", "defaults": {}, "funcname": "SetTabItemClosed", - "location": "imgui:789", + "location": "imgui:792", "namespace": "ImGui", "ov_cimguiname": "igSetTabItemClosed", "ret": "void", @@ -15040,7 +15061,7 @@ "defaults": {}, "funcname": "SetTooltip", "isvararg": "...)", - "location": "imgui:664", + "location": "imgui:667", "namespace": "ImGui", "ov_cimguiname": "igSetTooltip", "ret": "void", @@ -15066,7 +15087,7 @@ "cimguiname": "igSetTooltipV", "defaults": {}, "funcname": "SetTooltipV", - "location": "imgui:665", + "location": "imgui:668", "namespace": "ImGui", "ov_cimguiname": "igSetTooltipV", "ret": "void", @@ -15094,7 +15115,7 @@ "cond": "0" }, "funcname": "SetWindowCollapsed", - "location": "imgui:369", + "location": "imgui:373", "namespace": "ImGui", "ov_cimguiname": "igSetWindowCollapsedBool", "ret": "void", @@ -15124,7 +15145,7 @@ "cond": "0" }, "funcname": "SetWindowCollapsed", - "location": "imgui:374", + "location": "imgui:378", "namespace": "ImGui", "ov_cimguiname": "igSetWindowCollapsedStr", "ret": "void", @@ -15141,7 +15162,7 @@ "cimguiname": "igSetWindowFocus", "defaults": {}, "funcname": "SetWindowFocus", - "location": "imgui:370", + "location": "imgui:374", "namespace": "ImGui", "ov_cimguiname": "igSetWindowFocusNil", "ret": "void", @@ -15161,7 +15182,7 @@ "cimguiname": "igSetWindowFocus", "defaults": {}, "funcname": "SetWindowFocus", - "location": "imgui:375", + "location": "imgui:379", "namespace": "ImGui", "ov_cimguiname": "igSetWindowFocusStr", "ret": "void", @@ -15183,7 +15204,7 @@ "cimguiname": "igSetWindowFontScale", "defaults": {}, "funcname": "SetWindowFontScale", - "location": "imgui:371", + "location": "imgui:375", "namespace": "ImGui", "ov_cimguiname": "igSetWindowFontScale", "ret": "void", @@ -15211,7 +15232,7 @@ "cond": "0" }, "funcname": "SetWindowPos", - "location": "imgui:367", + "location": "imgui:371", "namespace": "ImGui", "ov_cimguiname": "igSetWindowPosVec2", "ret": "void", @@ -15241,7 +15262,7 @@ "cond": "0" }, "funcname": "SetWindowPos", - "location": "imgui:372", + "location": "imgui:376", "namespace": "ImGui", "ov_cimguiname": "igSetWindowPosStr", "ret": "void", @@ -15269,7 +15290,7 @@ "cond": "0" }, "funcname": "SetWindowSize", - "location": "imgui:368", + "location": "imgui:372", "namespace": "ImGui", "ov_cimguiname": "igSetWindowSizeVec2", "ret": "void", @@ -15299,7 +15320,7 @@ "cond": "0" }, "funcname": "SetWindowSize", - "location": "imgui:373", + "location": "imgui:377", "namespace": "ImGui", "ov_cimguiname": "igSetWindowSizeStr", "ret": "void", @@ -15323,7 +15344,7 @@ "p_open": "NULL" }, "funcname": "ShowAboutWindow", - "location": "imgui:307", + "location": "imgui:311", "namespace": "ImGui", "ov_cimguiname": "igShowAboutWindow", "ret": "void", @@ -15347,7 +15368,7 @@ "p_open": "NULL" }, "funcname": "ShowDemoWindow", - "location": "imgui:305", + "location": "imgui:308", "namespace": "ImGui", "ov_cimguiname": "igShowDemoWindow", "ret": "void", @@ -15369,7 +15390,7 @@ "cimguiname": "igShowFontSelector", "defaults": {}, "funcname": "ShowFontSelector", - "location": "imgui:310", + "location": "imgui:314", "namespace": "ImGui", "ov_cimguiname": "igShowFontSelector", "ret": "void", @@ -15393,7 +15414,7 @@ "p_open": "NULL" }, "funcname": "ShowMetricsWindow", - "location": "imgui:306", + "location": "imgui:309", "namespace": "ImGui", "ov_cimguiname": "igShowMetricsWindow", "ret": "void", @@ -15401,6 +15422,30 @@ "stname": "" } ], + "igShowStackToolWindow": [ + { + "args": "(bool* p_open)", + "argsT": [ + { + "name": "p_open", + "type": "bool*" + } + ], + "argsoriginal": "(bool* p_open=((void*)0))", + "call_args": "(p_open)", + "cimguiname": "igShowStackToolWindow", + "defaults": { + "p_open": "NULL" + }, + "funcname": "ShowStackToolWindow", + "location": "imgui:310", + "namespace": "ImGui", + "ov_cimguiname": "igShowStackToolWindow", + "ret": "void", + "signature": "(bool*)", + "stname": "" + } + ], "igShowStyleEditor": [ { "args": "(ImGuiStyle* ref)", @@ -15417,7 +15462,7 @@ "ref": "NULL" }, "funcname": "ShowStyleEditor", - "location": "imgui:308", + "location": "imgui:312", "namespace": "ImGui", "ov_cimguiname": "igShowStyleEditor", "ret": "void", @@ -15439,7 +15484,7 @@ "cimguiname": "igShowStyleSelector", "defaults": {}, "funcname": "ShowStyleSelector", - "location": "imgui:309", + "location": "imgui:313", "namespace": "ImGui", "ov_cimguiname": "igShowStyleSelector", "ret": "bool", @@ -15456,7 +15501,7 @@ "cimguiname": "igShowUserGuide", "defaults": {}, "funcname": "ShowUserGuide", - "location": "imgui:311", + "location": "imgui:315", "namespace": "ImGui", "ov_cimguiname": "igShowUserGuide", "ret": "void", @@ -15503,7 +15548,7 @@ "v_degrees_min": "-360.0f" }, "funcname": "SliderAngle", - "location": "imgui:556", + "location": "imgui:559", "namespace": "ImGui", "ov_cimguiname": "igSliderAngle", "ret": "bool", @@ -15548,7 +15593,7 @@ "format": "\"%.3f\"" }, "funcname": "SliderFloat", - "location": "imgui:552", + "location": "imgui:555", "namespace": "ImGui", "ov_cimguiname": "igSliderFloat", "ret": "bool", @@ -15593,7 +15638,7 @@ "format": "\"%.3f\"" }, "funcname": "SliderFloat2", - "location": "imgui:553", + "location": "imgui:556", "namespace": "ImGui", "ov_cimguiname": "igSliderFloat2", "ret": "bool", @@ -15638,7 +15683,7 @@ "format": "\"%.3f\"" }, "funcname": "SliderFloat3", - "location": "imgui:554", + "location": "imgui:557", "namespace": "ImGui", "ov_cimguiname": "igSliderFloat3", "ret": "bool", @@ -15683,7 +15728,7 @@ "format": "\"%.3f\"" }, "funcname": "SliderFloat4", - "location": "imgui:555", + "location": "imgui:558", "namespace": "ImGui", "ov_cimguiname": "igSliderFloat4", "ret": "bool", @@ -15728,7 +15773,7 @@ "format": "\"%d\"" }, "funcname": "SliderInt", - "location": "imgui:557", + "location": "imgui:560", "namespace": "ImGui", "ov_cimguiname": "igSliderInt", "ret": "bool", @@ -15773,7 +15818,7 @@ "format": "\"%d\"" }, "funcname": "SliderInt2", - "location": "imgui:558", + "location": "imgui:561", "namespace": "ImGui", "ov_cimguiname": "igSliderInt2", "ret": "bool", @@ -15818,7 +15863,7 @@ "format": "\"%d\"" }, "funcname": "SliderInt3", - "location": "imgui:559", + "location": "imgui:562", "namespace": "ImGui", "ov_cimguiname": "igSliderInt3", "ret": "bool", @@ -15863,7 +15908,7 @@ "format": "\"%d\"" }, "funcname": "SliderInt4", - "location": "imgui:560", + "location": "imgui:563", "namespace": "ImGui", "ov_cimguiname": "igSliderInt4", "ret": "bool", @@ -15912,7 +15957,7 @@ "format": "NULL" }, "funcname": "SliderScalar", - "location": "imgui:561", + "location": "imgui:564", "namespace": "ImGui", "ov_cimguiname": "igSliderScalar", "ret": "bool", @@ -15965,7 +16010,7 @@ "format": "NULL" }, "funcname": "SliderScalarN", - "location": "imgui:562", + "location": "imgui:565", "namespace": "ImGui", "ov_cimguiname": "igSliderScalarN", "ret": "bool", @@ -15987,7 +16032,7 @@ "cimguiname": "igSmallButton", "defaults": {}, "funcname": "SmallButton", - "location": "imgui:500", + "location": "imgui:503", "namespace": "ImGui", "ov_cimguiname": "igSmallButton", "ret": "bool", @@ -16004,7 +16049,7 @@ "cimguiname": "igSpacing", "defaults": {}, "funcname": "Spacing", - "location": "imgui:440", + "location": "imgui:443", "namespace": "ImGui", "ov_cimguiname": "igSpacing", "ret": "void", @@ -16028,7 +16073,7 @@ "dst": "NULL" }, "funcname": "StyleColorsClassic", - "location": "imgui:317", + "location": "imgui:321", "namespace": "ImGui", "ov_cimguiname": "igStyleColorsClassic", "ret": "void", @@ -16052,7 +16097,7 @@ "dst": "NULL" }, "funcname": "StyleColorsDark", - "location": "imgui:315", + "location": "imgui:319", "namespace": "ImGui", "ov_cimguiname": "igStyleColorsDark", "ret": "void", @@ -16076,7 +16121,7 @@ "dst": "NULL" }, "funcname": "StyleColorsLight", - "location": "imgui:316", + "location": "imgui:320", "namespace": "ImGui", "ov_cimguiname": "igStyleColorsLight", "ret": "void", @@ -16104,7 +16149,7 @@ "flags": "0" }, "funcname": "TabItemButton", - "location": "imgui:788", + "location": "imgui:791", "namespace": "ImGui", "ov_cimguiname": "igTabItemButton", "ret": "bool", @@ -16121,7 +16166,7 @@ "cimguiname": "igTableGetColumnCount", "defaults": {}, "funcname": "TableGetColumnCount", - "location": "imgui:764", + "location": "imgui:767", "namespace": "ImGui", "ov_cimguiname": "igTableGetColumnCount", "ret": "int", @@ -16145,7 +16190,7 @@ "column_n": "-1" }, "funcname": "TableGetColumnFlags", - "location": "imgui:768", + "location": "imgui:771", "namespace": "ImGui", "ov_cimguiname": "igTableGetColumnFlags", "ret": "ImGuiTableColumnFlags", @@ -16162,7 +16207,7 @@ "cimguiname": "igTableGetColumnIndex", "defaults": {}, "funcname": "TableGetColumnIndex", - "location": "imgui:765", + "location": "imgui:768", "namespace": "ImGui", "ov_cimguiname": "igTableGetColumnIndex", "ret": "int", @@ -16186,7 +16231,7 @@ "column_n": "-1" }, "funcname": "TableGetColumnName", - "location": "imgui:767", + "location": "imgui:770", "namespace": "ImGui", "ov_cimguiname": "igTableGetColumnName", "ret": "const char*", @@ -16203,7 +16248,7 @@ "cimguiname": "igTableGetRowIndex", "defaults": {}, "funcname": "TableGetRowIndex", - "location": "imgui:766", + "location": "imgui:769", "namespace": "ImGui", "ov_cimguiname": "igTableGetRowIndex", "ret": "int", @@ -16220,7 +16265,7 @@ "cimguiname": "igTableGetSortSpecs", "defaults": {}, "funcname": "TableGetSortSpecs", - "location": "imgui:760", + "location": "imgui:763", "namespace": "ImGui", "ov_cimguiname": "igTableGetSortSpecs", "ret": "ImGuiTableSortSpecs*", @@ -16242,7 +16287,7 @@ "cimguiname": "igTableHeader", "defaults": {}, "funcname": "TableHeader", - "location": "imgui:752", + "location": "imgui:755", "namespace": "ImGui", "ov_cimguiname": "igTableHeader", "ret": "void", @@ -16259,7 +16304,7 @@ "cimguiname": "igTableHeadersRow", "defaults": {}, "funcname": "TableHeadersRow", - "location": "imgui:751", + "location": "imgui:754", "namespace": "ImGui", "ov_cimguiname": "igTableHeadersRow", "ret": "void", @@ -16276,7 +16321,7 @@ "cimguiname": "igTableNextColumn", "defaults": {}, "funcname": "TableNextColumn", - "location": "imgui:738", + "location": "imgui:741", "namespace": "ImGui", "ov_cimguiname": "igTableNextColumn", "ret": "bool", @@ -16305,7 +16350,7 @@ "row_flags": "0" }, "funcname": "TableNextRow", - "location": "imgui:737", + "location": "imgui:740", "namespace": "ImGui", "ov_cimguiname": "igTableNextRow", "ret": "void", @@ -16337,7 +16382,7 @@ "column_n": "-1" }, "funcname": "TableSetBgColor", - "location": "imgui:770", + "location": "imgui:773", "namespace": "ImGui", "ov_cimguiname": "igTableSetBgColor", "ret": "void", @@ -16363,7 +16408,7 @@ "cimguiname": "igTableSetColumnEnabled", "defaults": {}, "funcname": "TableSetColumnEnabled", - "location": "imgui:769", + "location": "imgui:772", "namespace": "ImGui", "ov_cimguiname": "igTableSetColumnEnabled", "ret": "void", @@ -16385,7 +16430,7 @@ "cimguiname": "igTableSetColumnIndex", "defaults": {}, "funcname": "TableSetColumnIndex", - "location": "imgui:739", + "location": "imgui:742", "namespace": "ImGui", "ov_cimguiname": "igTableSetColumnIndex", "ret": "bool", @@ -16423,7 +16468,7 @@ "user_id": "0" }, "funcname": "TableSetupColumn", - "location": "imgui:749", + "location": "imgui:752", "namespace": "ImGui", "ov_cimguiname": "igTableSetupColumn", "ret": "void", @@ -16449,7 +16494,7 @@ "cimguiname": "igTableSetupScrollFreeze", "defaults": {}, "funcname": "TableSetupScrollFreeze", - "location": "imgui:750", + "location": "imgui:753", "namespace": "ImGui", "ov_cimguiname": "igTableSetupScrollFreeze", "ret": "void", @@ -16476,7 +16521,7 @@ "defaults": {}, "funcname": "Text", "isvararg": "...)", - "location": "imgui:483", + "location": "imgui:486", "namespace": "ImGui", "ov_cimguiname": "igText", "ret": "void", @@ -16507,7 +16552,7 @@ "defaults": {}, "funcname": "TextColored", "isvararg": "...)", - "location": "imgui:485", + "location": "imgui:488", "namespace": "ImGui", "ov_cimguiname": "igTextColored", "ret": "void", @@ -16537,7 +16582,7 @@ "cimguiname": "igTextColoredV", "defaults": {}, "funcname": "TextColoredV", - "location": "imgui:486", + "location": "imgui:489", "namespace": "ImGui", "ov_cimguiname": "igTextColoredV", "ret": "void", @@ -16564,7 +16609,7 @@ "defaults": {}, "funcname": "TextDisabled", "isvararg": "...)", - "location": "imgui:487", + "location": "imgui:490", "namespace": "ImGui", "ov_cimguiname": "igTextDisabled", "ret": "void", @@ -16590,7 +16635,7 @@ "cimguiname": "igTextDisabledV", "defaults": {}, "funcname": "TextDisabledV", - "location": "imgui:488", + "location": "imgui:491", "namespace": "ImGui", "ov_cimguiname": "igTextDisabledV", "ret": "void", @@ -16618,7 +16663,7 @@ "text_end": "NULL" }, "funcname": "TextUnformatted", - "location": "imgui:482", + "location": "imgui:485", "namespace": "ImGui", "ov_cimguiname": "igTextUnformatted", "ret": "void", @@ -16644,7 +16689,7 @@ "cimguiname": "igTextV", "defaults": {}, "funcname": "TextV", - "location": "imgui:484", + "location": "imgui:487", "namespace": "ImGui", "ov_cimguiname": "igTextV", "ret": "void", @@ -16671,7 +16716,7 @@ "defaults": {}, "funcname": "TextWrapped", "isvararg": "...)", - "location": "imgui:489", + "location": "imgui:492", "namespace": "ImGui", "ov_cimguiname": "igTextWrapped", "ret": "void", @@ -16697,7 +16742,7 @@ "cimguiname": "igTextWrappedV", "defaults": {}, "funcname": "TextWrappedV", - "location": "imgui:490", + "location": "imgui:493", "namespace": "ImGui", "ov_cimguiname": "igTextWrappedV", "ret": "void", @@ -16719,7 +16764,7 @@ "cimguiname": "igTreeNode", "defaults": {}, "funcname": "TreeNode", - "location": "imgui:597", + "location": "imgui:600", "namespace": "ImGui", "ov_cimguiname": "igTreeNodeStr", "ret": "bool", @@ -16748,7 +16793,7 @@ "defaults": {}, "funcname": "TreeNode", "isvararg": "...)", - "location": "imgui:598", + "location": "imgui:601", "namespace": "ImGui", "ov_cimguiname": "igTreeNodeStrStr", "ret": "bool", @@ -16777,7 +16822,7 @@ "defaults": {}, "funcname": "TreeNode", "isvararg": "...)", - "location": "imgui:599", + "location": "imgui:602", "namespace": "ImGui", "ov_cimguiname": "igTreeNodePtr", "ret": "bool", @@ -16805,7 +16850,7 @@ "flags": "0" }, "funcname": "TreeNodeEx", - "location": "imgui:602", + "location": "imgui:605", "namespace": "ImGui", "ov_cimguiname": "igTreeNodeExStr", "ret": "bool", @@ -16838,7 +16883,7 @@ "defaults": {}, "funcname": "TreeNodeEx", "isvararg": "...)", - "location": "imgui:603", + "location": "imgui:606", "namespace": "ImGui", "ov_cimguiname": "igTreeNodeExStrStr", "ret": "bool", @@ -16871,7 +16916,7 @@ "defaults": {}, "funcname": "TreeNodeEx", "isvararg": "...)", - "location": "imgui:604", + "location": "imgui:607", "namespace": "ImGui", "ov_cimguiname": "igTreeNodeExPtr", "ret": "bool", @@ -16905,7 +16950,7 @@ "cimguiname": "igTreeNodeExV", "defaults": {}, "funcname": "TreeNodeExV", - "location": "imgui:605", + "location": "imgui:608", "namespace": "ImGui", "ov_cimguiname": "igTreeNodeExVStr", "ret": "bool", @@ -16937,7 +16982,7 @@ "cimguiname": "igTreeNodeExV", "defaults": {}, "funcname": "TreeNodeExV", - "location": "imgui:606", + "location": "imgui:609", "namespace": "ImGui", "ov_cimguiname": "igTreeNodeExVPtr", "ret": "bool", @@ -16967,7 +17012,7 @@ "cimguiname": "igTreeNodeV", "defaults": {}, "funcname": "TreeNodeV", - "location": "imgui:600", + "location": "imgui:603", "namespace": "ImGui", "ov_cimguiname": "igTreeNodeVStr", "ret": "bool", @@ -16995,7 +17040,7 @@ "cimguiname": "igTreeNodeV", "defaults": {}, "funcname": "TreeNodeV", - "location": "imgui:601", + "location": "imgui:604", "namespace": "ImGui", "ov_cimguiname": "igTreeNodeVPtr", "ret": "bool", @@ -17012,7 +17057,7 @@ "cimguiname": "igTreePop", "defaults": {}, "funcname": "TreePop", - "location": "imgui:609", + "location": "imgui:612", "namespace": "ImGui", "ov_cimguiname": "igTreePop", "ret": "void", @@ -17034,7 +17079,7 @@ "cimguiname": "igTreePush", "defaults": {}, "funcname": "TreePush", - "location": "imgui:607", + "location": "imgui:610", "namespace": "ImGui", "ov_cimguiname": "igTreePushStr", "ret": "void", @@ -17056,7 +17101,7 @@ "ptr_id": "NULL" }, "funcname": "TreePush", - "location": "imgui:608", + "location": "imgui:611", "namespace": "ImGui", "ov_cimguiname": "igTreePushPtr", "ret": "void", @@ -17080,7 +17125,7 @@ "indent_w": "0.0f" }, "funcname": "Unindent", - "location": "imgui:443", + "location": "imgui:446", "namespace": "ImGui", "ov_cimguiname": "igUnindent", "ret": "void", @@ -17129,7 +17174,7 @@ "format": "\"%.3f\"" }, "funcname": "VSliderFloat", - "location": "imgui:563", + "location": "imgui:566", "namespace": "ImGui", "ov_cimguiname": "igVSliderFloat", "ret": "bool", @@ -17178,7 +17223,7 @@ "format": "\"%d\"" }, "funcname": "VSliderInt", - "location": "imgui:564", + "location": "imgui:567", "namespace": "ImGui", "ov_cimguiname": "igVSliderInt", "ret": "bool", @@ -17231,7 +17276,7 @@ "format": "NULL" }, "funcname": "VSliderScalar", - "location": "imgui:565", + "location": "imgui:568", "namespace": "ImGui", "ov_cimguiname": "igVSliderScalar", "ret": "bool", @@ -17257,7 +17302,7 @@ "cimguiname": "igValue", "defaults": {}, "funcname": "Value", - "location": "imgui:641", + "location": "imgui:644", "namespace": "ImGui", "ov_cimguiname": "igValueBool", "ret": "void", @@ -17281,7 +17326,7 @@ "cimguiname": "igValue", "defaults": {}, "funcname": "Value", - "location": "imgui:642", + "location": "imgui:645", "namespace": "ImGui", "ov_cimguiname": "igValueInt", "ret": "void", @@ -17305,7 +17350,7 @@ "cimguiname": "igValue", "defaults": {}, "funcname": "Value", - "location": "imgui:643", + "location": "imgui:646", "namespace": "ImGui", "ov_cimguiname": "igValueUint", "ret": "void", @@ -17335,7 +17380,7 @@ "float_format": "NULL" }, "funcname": "Value", - "location": "imgui:644", + "location": "imgui:647", "namespace": "ImGui", "ov_cimguiname": "igValueFloat", "ret": "void", diff --git a/imgui-sys/third-party/imgui-master/definitions.lua b/imgui-sys/third-party/imgui-master/definitions.lua index c2fa40cf0..156c9b218 100644 --- a/imgui-sys/third-party/imgui-master/definitions.lua +++ b/imgui-sys/third-party/imgui-master/definitions.lua @@ -25,7 +25,7 @@ defs["ImColor_HSV"][1]["defaults"] = {} defs["ImColor_HSV"][1]["defaults"]["a"] = "1.0f" defs["ImColor_HSV"][1]["funcname"] = "HSV" defs["ImColor_HSV"][1]["is_static_function"] = true -defs["ImColor_HSV"][1]["location"] = "imgui:2240" +defs["ImColor_HSV"][1]["location"] = "imgui:2255" defs["ImColor_HSV"][1]["nonUDT"] = 1 defs["ImColor_HSV"][1]["ov_cimguiname"] = "ImColor_HSV" defs["ImColor_HSV"][1]["ret"] = "void" @@ -42,7 +42,7 @@ defs["ImColor_ImColor"][1]["cimguiname"] = "ImColor_ImColor" defs["ImColor_ImColor"][1]["constructor"] = true defs["ImColor_ImColor"][1]["defaults"] = {} defs["ImColor_ImColor"][1]["funcname"] = "ImColor" -defs["ImColor_ImColor"][1]["location"] = "imgui:2230" +defs["ImColor_ImColor"][1]["location"] = "imgui:2245" defs["ImColor_ImColor"][1]["ov_cimguiname"] = "ImColor_ImColorNil" defs["ImColor_ImColor"][1]["signature"] = "()" defs["ImColor_ImColor"][1]["stname"] = "ImColor" @@ -68,7 +68,7 @@ defs["ImColor_ImColor"][2]["constructor"] = true defs["ImColor_ImColor"][2]["defaults"] = {} defs["ImColor_ImColor"][2]["defaults"]["a"] = "255" defs["ImColor_ImColor"][2]["funcname"] = "ImColor" -defs["ImColor_ImColor"][2]["location"] = "imgui:2231" +defs["ImColor_ImColor"][2]["location"] = "imgui:2246" defs["ImColor_ImColor"][2]["ov_cimguiname"] = "ImColor_ImColorInt" defs["ImColor_ImColor"][2]["signature"] = "(int,int,int,int)" defs["ImColor_ImColor"][2]["stname"] = "ImColor" @@ -84,7 +84,7 @@ defs["ImColor_ImColor"][3]["cimguiname"] = "ImColor_ImColor" defs["ImColor_ImColor"][3]["constructor"] = true defs["ImColor_ImColor"][3]["defaults"] = {} defs["ImColor_ImColor"][3]["funcname"] = "ImColor" -defs["ImColor_ImColor"][3]["location"] = "imgui:2232" +defs["ImColor_ImColor"][3]["location"] = "imgui:2247" defs["ImColor_ImColor"][3]["ov_cimguiname"] = "ImColor_ImColorU32" defs["ImColor_ImColor"][3]["signature"] = "(ImU32)" defs["ImColor_ImColor"][3]["stname"] = "ImColor" @@ -110,7 +110,7 @@ defs["ImColor_ImColor"][4]["constructor"] = true defs["ImColor_ImColor"][4]["defaults"] = {} defs["ImColor_ImColor"][4]["defaults"]["a"] = "1.0f" defs["ImColor_ImColor"][4]["funcname"] = "ImColor" -defs["ImColor_ImColor"][4]["location"] = "imgui:2233" +defs["ImColor_ImColor"][4]["location"] = "imgui:2248" defs["ImColor_ImColor"][4]["ov_cimguiname"] = "ImColor_ImColorFloat" defs["ImColor_ImColor"][4]["signature"] = "(float,float,float,float)" defs["ImColor_ImColor"][4]["stname"] = "ImColor" @@ -126,7 +126,7 @@ defs["ImColor_ImColor"][5]["cimguiname"] = "ImColor_ImColor" defs["ImColor_ImColor"][5]["constructor"] = true defs["ImColor_ImColor"][5]["defaults"] = {} defs["ImColor_ImColor"][5]["funcname"] = "ImColor" -defs["ImColor_ImColor"][5]["location"] = "imgui:2234" +defs["ImColor_ImColor"][5]["location"] = "imgui:2249" defs["ImColor_ImColor"][5]["ov_cimguiname"] = "ImColor_ImColorVec4" defs["ImColor_ImColor"][5]["signature"] = "(const ImVec4)" defs["ImColor_ImColor"][5]["stname"] = "ImColor" @@ -160,7 +160,7 @@ defs["ImColor_SetHSV"][1]["cimguiname"] = "ImColor_SetHSV" defs["ImColor_SetHSV"][1]["defaults"] = {} defs["ImColor_SetHSV"][1]["defaults"]["a"] = "1.0f" defs["ImColor_SetHSV"][1]["funcname"] = "SetHSV" -defs["ImColor_SetHSV"][1]["location"] = "imgui:2239" +defs["ImColor_SetHSV"][1]["location"] = "imgui:2254" defs["ImColor_SetHSV"][1]["ov_cimguiname"] = "ImColor_SetHSV" defs["ImColor_SetHSV"][1]["ret"] = "void" defs["ImColor_SetHSV"][1]["signature"] = "(float,float,float,float)" @@ -194,7 +194,7 @@ defs["ImDrawCmd_GetTexID"][1]["call_args"] = "()" defs["ImDrawCmd_GetTexID"][1]["cimguiname"] = "ImDrawCmd_GetTexID" defs["ImDrawCmd_GetTexID"][1]["defaults"] = {} defs["ImDrawCmd_GetTexID"][1]["funcname"] = "GetTexID" -defs["ImDrawCmd_GetTexID"][1]["location"] = "imgui:2288" +defs["ImDrawCmd_GetTexID"][1]["location"] = "imgui:2303" defs["ImDrawCmd_GetTexID"][1]["ov_cimguiname"] = "ImDrawCmd_GetTexID" defs["ImDrawCmd_GetTexID"][1]["ret"] = "ImTextureID" defs["ImDrawCmd_GetTexID"][1]["signature"] = "()const" @@ -210,7 +210,7 @@ defs["ImDrawCmd_ImDrawCmd"][1]["cimguiname"] = "ImDrawCmd_ImDrawCmd" defs["ImDrawCmd_ImDrawCmd"][1]["constructor"] = true defs["ImDrawCmd_ImDrawCmd"][1]["defaults"] = {} defs["ImDrawCmd_ImDrawCmd"][1]["funcname"] = "ImDrawCmd" -defs["ImDrawCmd_ImDrawCmd"][1]["location"] = "imgui:2285" +defs["ImDrawCmd_ImDrawCmd"][1]["location"] = "imgui:2300" defs["ImDrawCmd_ImDrawCmd"][1]["ov_cimguiname"] = "ImDrawCmd_ImDrawCmd" defs["ImDrawCmd_ImDrawCmd"][1]["signature"] = "()" defs["ImDrawCmd_ImDrawCmd"][1]["stname"] = "ImDrawCmd" @@ -243,7 +243,7 @@ defs["ImDrawData_Clear"][1]["call_args"] = "()" defs["ImDrawData_Clear"][1]["cimguiname"] = "ImDrawData_Clear" defs["ImDrawData_Clear"][1]["defaults"] = {} defs["ImDrawData_Clear"][1]["funcname"] = "Clear" -defs["ImDrawData_Clear"][1]["location"] = "imgui:2519" +defs["ImDrawData_Clear"][1]["location"] = "imgui:2534" defs["ImDrawData_Clear"][1]["ov_cimguiname"] = "ImDrawData_Clear" defs["ImDrawData_Clear"][1]["ret"] = "void" defs["ImDrawData_Clear"][1]["signature"] = "()" @@ -261,7 +261,7 @@ defs["ImDrawData_DeIndexAllBuffers"][1]["call_args"] = "()" defs["ImDrawData_DeIndexAllBuffers"][1]["cimguiname"] = "ImDrawData_DeIndexAllBuffers" defs["ImDrawData_DeIndexAllBuffers"][1]["defaults"] = {} defs["ImDrawData_DeIndexAllBuffers"][1]["funcname"] = "DeIndexAllBuffers" -defs["ImDrawData_DeIndexAllBuffers"][1]["location"] = "imgui:2520" +defs["ImDrawData_DeIndexAllBuffers"][1]["location"] = "imgui:2535" defs["ImDrawData_DeIndexAllBuffers"][1]["ov_cimguiname"] = "ImDrawData_DeIndexAllBuffers" defs["ImDrawData_DeIndexAllBuffers"][1]["ret"] = "void" defs["ImDrawData_DeIndexAllBuffers"][1]["signature"] = "()" @@ -277,7 +277,7 @@ defs["ImDrawData_ImDrawData"][1]["cimguiname"] = "ImDrawData_ImDrawData" defs["ImDrawData_ImDrawData"][1]["constructor"] = true defs["ImDrawData_ImDrawData"][1]["defaults"] = {} defs["ImDrawData_ImDrawData"][1]["funcname"] = "ImDrawData" -defs["ImDrawData_ImDrawData"][1]["location"] = "imgui:2518" +defs["ImDrawData_ImDrawData"][1]["location"] = "imgui:2533" defs["ImDrawData_ImDrawData"][1]["ov_cimguiname"] = "ImDrawData_ImDrawData" defs["ImDrawData_ImDrawData"][1]["signature"] = "()" defs["ImDrawData_ImDrawData"][1]["stname"] = "ImDrawData" @@ -297,7 +297,7 @@ defs["ImDrawData_ScaleClipRects"][1]["call_args"] = "(fb_scale)" defs["ImDrawData_ScaleClipRects"][1]["cimguiname"] = "ImDrawData_ScaleClipRects" defs["ImDrawData_ScaleClipRects"][1]["defaults"] = {} defs["ImDrawData_ScaleClipRects"][1]["funcname"] = "ScaleClipRects" -defs["ImDrawData_ScaleClipRects"][1]["location"] = "imgui:2521" +defs["ImDrawData_ScaleClipRects"][1]["location"] = "imgui:2536" defs["ImDrawData_ScaleClipRects"][1]["ov_cimguiname"] = "ImDrawData_ScaleClipRects" defs["ImDrawData_ScaleClipRects"][1]["ret"] = "void" defs["ImDrawData_ScaleClipRects"][1]["signature"] = "(const ImVec2)" @@ -331,7 +331,7 @@ defs["ImDrawListSplitter_Clear"][1]["call_args"] = "()" defs["ImDrawListSplitter_Clear"][1]["cimguiname"] = "ImDrawListSplitter_Clear" defs["ImDrawListSplitter_Clear"][1]["defaults"] = {} defs["ImDrawListSplitter_Clear"][1]["funcname"] = "Clear" -defs["ImDrawListSplitter_Clear"][1]["location"] = "imgui:2333" +defs["ImDrawListSplitter_Clear"][1]["location"] = "imgui:2348" defs["ImDrawListSplitter_Clear"][1]["ov_cimguiname"] = "ImDrawListSplitter_Clear" defs["ImDrawListSplitter_Clear"][1]["ret"] = "void" defs["ImDrawListSplitter_Clear"][1]["signature"] = "()" @@ -349,7 +349,7 @@ defs["ImDrawListSplitter_ClearFreeMemory"][1]["call_args"] = "()" defs["ImDrawListSplitter_ClearFreeMemory"][1]["cimguiname"] = "ImDrawListSplitter_ClearFreeMemory" defs["ImDrawListSplitter_ClearFreeMemory"][1]["defaults"] = {} defs["ImDrawListSplitter_ClearFreeMemory"][1]["funcname"] = "ClearFreeMemory" -defs["ImDrawListSplitter_ClearFreeMemory"][1]["location"] = "imgui:2334" +defs["ImDrawListSplitter_ClearFreeMemory"][1]["location"] = "imgui:2349" defs["ImDrawListSplitter_ClearFreeMemory"][1]["ov_cimguiname"] = "ImDrawListSplitter_ClearFreeMemory" defs["ImDrawListSplitter_ClearFreeMemory"][1]["ret"] = "void" defs["ImDrawListSplitter_ClearFreeMemory"][1]["signature"] = "()" @@ -365,7 +365,7 @@ defs["ImDrawListSplitter_ImDrawListSplitter"][1]["cimguiname"] = "ImDrawListSpli defs["ImDrawListSplitter_ImDrawListSplitter"][1]["constructor"] = true defs["ImDrawListSplitter_ImDrawListSplitter"][1]["defaults"] = {} defs["ImDrawListSplitter_ImDrawListSplitter"][1]["funcname"] = "ImDrawListSplitter" -defs["ImDrawListSplitter_ImDrawListSplitter"][1]["location"] = "imgui:2331" +defs["ImDrawListSplitter_ImDrawListSplitter"][1]["location"] = "imgui:2346" defs["ImDrawListSplitter_ImDrawListSplitter"][1]["ov_cimguiname"] = "ImDrawListSplitter_ImDrawListSplitter" defs["ImDrawListSplitter_ImDrawListSplitter"][1]["signature"] = "()" defs["ImDrawListSplitter_ImDrawListSplitter"][1]["stname"] = "ImDrawListSplitter" @@ -385,7 +385,7 @@ defs["ImDrawListSplitter_Merge"][1]["call_args"] = "(draw_list)" defs["ImDrawListSplitter_Merge"][1]["cimguiname"] = "ImDrawListSplitter_Merge" defs["ImDrawListSplitter_Merge"][1]["defaults"] = {} defs["ImDrawListSplitter_Merge"][1]["funcname"] = "Merge" -defs["ImDrawListSplitter_Merge"][1]["location"] = "imgui:2336" +defs["ImDrawListSplitter_Merge"][1]["location"] = "imgui:2351" defs["ImDrawListSplitter_Merge"][1]["ov_cimguiname"] = "ImDrawListSplitter_Merge" defs["ImDrawListSplitter_Merge"][1]["ret"] = "void" defs["ImDrawListSplitter_Merge"][1]["signature"] = "(ImDrawList*)" @@ -409,7 +409,7 @@ defs["ImDrawListSplitter_SetCurrentChannel"][1]["call_args"] = "(draw_list,chann defs["ImDrawListSplitter_SetCurrentChannel"][1]["cimguiname"] = "ImDrawListSplitter_SetCurrentChannel" defs["ImDrawListSplitter_SetCurrentChannel"][1]["defaults"] = {} defs["ImDrawListSplitter_SetCurrentChannel"][1]["funcname"] = "SetCurrentChannel" -defs["ImDrawListSplitter_SetCurrentChannel"][1]["location"] = "imgui:2337" +defs["ImDrawListSplitter_SetCurrentChannel"][1]["location"] = "imgui:2352" defs["ImDrawListSplitter_SetCurrentChannel"][1]["ov_cimguiname"] = "ImDrawListSplitter_SetCurrentChannel" defs["ImDrawListSplitter_SetCurrentChannel"][1]["ret"] = "void" defs["ImDrawListSplitter_SetCurrentChannel"][1]["signature"] = "(ImDrawList*,int)" @@ -433,7 +433,7 @@ defs["ImDrawListSplitter_Split"][1]["call_args"] = "(draw_list,count)" defs["ImDrawListSplitter_Split"][1]["cimguiname"] = "ImDrawListSplitter_Split" defs["ImDrawListSplitter_Split"][1]["defaults"] = {} defs["ImDrawListSplitter_Split"][1]["funcname"] = "Split" -defs["ImDrawListSplitter_Split"][1]["location"] = "imgui:2335" +defs["ImDrawListSplitter_Split"][1]["location"] = "imgui:2350" defs["ImDrawListSplitter_Split"][1]["ov_cimguiname"] = "ImDrawListSplitter_Split" defs["ImDrawListSplitter_Split"][1]["ret"] = "void" defs["ImDrawListSplitter_Split"][1]["signature"] = "(ImDrawList*,int)" @@ -450,7 +450,7 @@ defs["ImDrawListSplitter_destroy"][1]["call_args"] = "(self)" defs["ImDrawListSplitter_destroy"][1]["cimguiname"] = "ImDrawListSplitter_destroy" defs["ImDrawListSplitter_destroy"][1]["defaults"] = {} defs["ImDrawListSplitter_destroy"][1]["destructor"] = true -defs["ImDrawListSplitter_destroy"][1]["location"] = "imgui:2332" +defs["ImDrawListSplitter_destroy"][1]["location"] = "imgui:2347" defs["ImDrawListSplitter_destroy"][1]["ov_cimguiname"] = "ImDrawListSplitter_destroy" defs["ImDrawListSplitter_destroy"][1]["realdestructor"] = true defs["ImDrawListSplitter_destroy"][1]["ret"] = "void" @@ -491,7 +491,7 @@ defs["ImDrawList_AddBezierCubic"][1]["cimguiname"] = "ImDrawList_AddBezierCubic" defs["ImDrawList_AddBezierCubic"][1]["defaults"] = {} defs["ImDrawList_AddBezierCubic"][1]["defaults"]["num_segments"] = "0" defs["ImDrawList_AddBezierCubic"][1]["funcname"] = "AddBezierCubic" -defs["ImDrawList_AddBezierCubic"][1]["location"] = "imgui:2435" +defs["ImDrawList_AddBezierCubic"][1]["location"] = "imgui:2450" defs["ImDrawList_AddBezierCubic"][1]["ov_cimguiname"] = "ImDrawList_AddBezierCubic" defs["ImDrawList_AddBezierCubic"][1]["ret"] = "void" defs["ImDrawList_AddBezierCubic"][1]["signature"] = "(const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32,float,int)" @@ -528,7 +528,7 @@ defs["ImDrawList_AddBezierQuadratic"][1]["cimguiname"] = "ImDrawList_AddBezierQu defs["ImDrawList_AddBezierQuadratic"][1]["defaults"] = {} defs["ImDrawList_AddBezierQuadratic"][1]["defaults"]["num_segments"] = "0" defs["ImDrawList_AddBezierQuadratic"][1]["funcname"] = "AddBezierQuadratic" -defs["ImDrawList_AddBezierQuadratic"][1]["location"] = "imgui:2436" +defs["ImDrawList_AddBezierQuadratic"][1]["location"] = "imgui:2451" defs["ImDrawList_AddBezierQuadratic"][1]["ov_cimguiname"] = "ImDrawList_AddBezierQuadratic" defs["ImDrawList_AddBezierQuadratic"][1]["ret"] = "void" defs["ImDrawList_AddBezierQuadratic"][1]["signature"] = "(const ImVec2,const ImVec2,const ImVec2,ImU32,float,int)" @@ -552,7 +552,7 @@ defs["ImDrawList_AddCallback"][1]["call_args"] = "(callback,callback_data)" defs["ImDrawList_AddCallback"][1]["cimguiname"] = "ImDrawList_AddCallback" defs["ImDrawList_AddCallback"][1]["defaults"] = {} defs["ImDrawList_AddCallback"][1]["funcname"] = "AddCallback" -defs["ImDrawList_AddCallback"][1]["location"] = "imgui:2459" +defs["ImDrawList_AddCallback"][1]["location"] = "imgui:2474" defs["ImDrawList_AddCallback"][1]["ov_cimguiname"] = "ImDrawList_AddCallback" defs["ImDrawList_AddCallback"][1]["ret"] = "void" defs["ImDrawList_AddCallback"][1]["signature"] = "(ImDrawCallback,void*)" @@ -587,7 +587,7 @@ defs["ImDrawList_AddCircle"][1]["defaults"] = {} defs["ImDrawList_AddCircle"][1]["defaults"]["num_segments"] = "0" defs["ImDrawList_AddCircle"][1]["defaults"]["thickness"] = "1.0f" defs["ImDrawList_AddCircle"][1]["funcname"] = "AddCircle" -defs["ImDrawList_AddCircle"][1]["location"] = "imgui:2427" +defs["ImDrawList_AddCircle"][1]["location"] = "imgui:2442" defs["ImDrawList_AddCircle"][1]["ov_cimguiname"] = "ImDrawList_AddCircle" defs["ImDrawList_AddCircle"][1]["ret"] = "void" defs["ImDrawList_AddCircle"][1]["signature"] = "(const ImVec2,float,ImU32,int,float)" @@ -618,7 +618,7 @@ defs["ImDrawList_AddCircleFilled"][1]["cimguiname"] = "ImDrawList_AddCircleFille defs["ImDrawList_AddCircleFilled"][1]["defaults"] = {} defs["ImDrawList_AddCircleFilled"][1]["defaults"]["num_segments"] = "0" defs["ImDrawList_AddCircleFilled"][1]["funcname"] = "AddCircleFilled" -defs["ImDrawList_AddCircleFilled"][1]["location"] = "imgui:2428" +defs["ImDrawList_AddCircleFilled"][1]["location"] = "imgui:2443" defs["ImDrawList_AddCircleFilled"][1]["ov_cimguiname"] = "ImDrawList_AddCircleFilled" defs["ImDrawList_AddCircleFilled"][1]["ret"] = "void" defs["ImDrawList_AddCircleFilled"][1]["signature"] = "(const ImVec2,float,ImU32,int)" @@ -645,7 +645,7 @@ defs["ImDrawList_AddConvexPolyFilled"][1]["call_args"] = "(points,num_points,col defs["ImDrawList_AddConvexPolyFilled"][1]["cimguiname"] = "ImDrawList_AddConvexPolyFilled" defs["ImDrawList_AddConvexPolyFilled"][1]["defaults"] = {} defs["ImDrawList_AddConvexPolyFilled"][1]["funcname"] = "AddConvexPolyFilled" -defs["ImDrawList_AddConvexPolyFilled"][1]["location"] = "imgui:2434" +defs["ImDrawList_AddConvexPolyFilled"][1]["location"] = "imgui:2449" defs["ImDrawList_AddConvexPolyFilled"][1]["ov_cimguiname"] = "ImDrawList_AddConvexPolyFilled" defs["ImDrawList_AddConvexPolyFilled"][1]["ret"] = "void" defs["ImDrawList_AddConvexPolyFilled"][1]["signature"] = "(const ImVec2*,int,ImU32)" @@ -663,7 +663,7 @@ defs["ImDrawList_AddDrawCmd"][1]["call_args"] = "()" defs["ImDrawList_AddDrawCmd"][1]["cimguiname"] = "ImDrawList_AddDrawCmd" defs["ImDrawList_AddDrawCmd"][1]["defaults"] = {} defs["ImDrawList_AddDrawCmd"][1]["funcname"] = "AddDrawCmd" -defs["ImDrawList_AddDrawCmd"][1]["location"] = "imgui:2460" +defs["ImDrawList_AddDrawCmd"][1]["location"] = "imgui:2475" defs["ImDrawList_AddDrawCmd"][1]["ov_cimguiname"] = "ImDrawList_AddDrawCmd" defs["ImDrawList_AddDrawCmd"][1]["ret"] = "void" defs["ImDrawList_AddDrawCmd"][1]["signature"] = "()" @@ -702,7 +702,7 @@ defs["ImDrawList_AddImage"][1]["defaults"]["col"] = "4294967295" defs["ImDrawList_AddImage"][1]["defaults"]["uv_max"] = "ImVec2(1,1)" defs["ImDrawList_AddImage"][1]["defaults"]["uv_min"] = "ImVec2(0,0)" defs["ImDrawList_AddImage"][1]["funcname"] = "AddImage" -defs["ImDrawList_AddImage"][1]["location"] = "imgui:2442" +defs["ImDrawList_AddImage"][1]["location"] = "imgui:2457" defs["ImDrawList_AddImage"][1]["ov_cimguiname"] = "ImDrawList_AddImage" defs["ImDrawList_AddImage"][1]["ret"] = "void" defs["ImDrawList_AddImage"][1]["signature"] = "(ImTextureID,const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32)" @@ -755,7 +755,7 @@ defs["ImDrawList_AddImageQuad"][1]["defaults"]["uv2"] = "ImVec2(1,0)" defs["ImDrawList_AddImageQuad"][1]["defaults"]["uv3"] = "ImVec2(1,1)" defs["ImDrawList_AddImageQuad"][1]["defaults"]["uv4"] = "ImVec2(0,1)" defs["ImDrawList_AddImageQuad"][1]["funcname"] = "AddImageQuad" -defs["ImDrawList_AddImageQuad"][1]["location"] = "imgui:2443" +defs["ImDrawList_AddImageQuad"][1]["location"] = "imgui:2458" defs["ImDrawList_AddImageQuad"][1]["ov_cimguiname"] = "ImDrawList_AddImageQuad" defs["ImDrawList_AddImageQuad"][1]["ret"] = "void" defs["ImDrawList_AddImageQuad"][1]["signature"] = "(ImTextureID,const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32)" @@ -798,7 +798,7 @@ defs["ImDrawList_AddImageRounded"][1]["cimguiname"] = "ImDrawList_AddImageRounde defs["ImDrawList_AddImageRounded"][1]["defaults"] = {} defs["ImDrawList_AddImageRounded"][1]["defaults"]["flags"] = "0" defs["ImDrawList_AddImageRounded"][1]["funcname"] = "AddImageRounded" -defs["ImDrawList_AddImageRounded"][1]["location"] = "imgui:2444" +defs["ImDrawList_AddImageRounded"][1]["location"] = "imgui:2459" defs["ImDrawList_AddImageRounded"][1]["ov_cimguiname"] = "ImDrawList_AddImageRounded" defs["ImDrawList_AddImageRounded"][1]["ret"] = "void" defs["ImDrawList_AddImageRounded"][1]["signature"] = "(ImTextureID,const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32,float,ImDrawFlags)" @@ -829,7 +829,7 @@ defs["ImDrawList_AddLine"][1]["cimguiname"] = "ImDrawList_AddLine" defs["ImDrawList_AddLine"][1]["defaults"] = {} defs["ImDrawList_AddLine"][1]["defaults"]["thickness"] = "1.0f" defs["ImDrawList_AddLine"][1]["funcname"] = "AddLine" -defs["ImDrawList_AddLine"][1]["location"] = "imgui:2419" +defs["ImDrawList_AddLine"][1]["location"] = "imgui:2434" defs["ImDrawList_AddLine"][1]["ov_cimguiname"] = "ImDrawList_AddLine" defs["ImDrawList_AddLine"][1]["ret"] = "void" defs["ImDrawList_AddLine"][1]["signature"] = "(const ImVec2,const ImVec2,ImU32,float)" @@ -863,7 +863,7 @@ defs["ImDrawList_AddNgon"][1]["cimguiname"] = "ImDrawList_AddNgon" defs["ImDrawList_AddNgon"][1]["defaults"] = {} defs["ImDrawList_AddNgon"][1]["defaults"]["thickness"] = "1.0f" defs["ImDrawList_AddNgon"][1]["funcname"] = "AddNgon" -defs["ImDrawList_AddNgon"][1]["location"] = "imgui:2429" +defs["ImDrawList_AddNgon"][1]["location"] = "imgui:2444" defs["ImDrawList_AddNgon"][1]["ov_cimguiname"] = "ImDrawList_AddNgon" defs["ImDrawList_AddNgon"][1]["ret"] = "void" defs["ImDrawList_AddNgon"][1]["signature"] = "(const ImVec2,float,ImU32,int,float)" @@ -893,7 +893,7 @@ defs["ImDrawList_AddNgonFilled"][1]["call_args"] = "(center,radius,col,num_segme defs["ImDrawList_AddNgonFilled"][1]["cimguiname"] = "ImDrawList_AddNgonFilled" defs["ImDrawList_AddNgonFilled"][1]["defaults"] = {} defs["ImDrawList_AddNgonFilled"][1]["funcname"] = "AddNgonFilled" -defs["ImDrawList_AddNgonFilled"][1]["location"] = "imgui:2430" +defs["ImDrawList_AddNgonFilled"][1]["location"] = "imgui:2445" defs["ImDrawList_AddNgonFilled"][1]["ov_cimguiname"] = "ImDrawList_AddNgonFilled" defs["ImDrawList_AddNgonFilled"][1]["ret"] = "void" defs["ImDrawList_AddNgonFilled"][1]["signature"] = "(const ImVec2,float,ImU32,int)" @@ -926,7 +926,7 @@ defs["ImDrawList_AddPolyline"][1]["call_args"] = "(points,num_points,col,flags,t defs["ImDrawList_AddPolyline"][1]["cimguiname"] = "ImDrawList_AddPolyline" defs["ImDrawList_AddPolyline"][1]["defaults"] = {} defs["ImDrawList_AddPolyline"][1]["funcname"] = "AddPolyline" -defs["ImDrawList_AddPolyline"][1]["location"] = "imgui:2433" +defs["ImDrawList_AddPolyline"][1]["location"] = "imgui:2448" defs["ImDrawList_AddPolyline"][1]["ov_cimguiname"] = "ImDrawList_AddPolyline" defs["ImDrawList_AddPolyline"][1]["ret"] = "void" defs["ImDrawList_AddPolyline"][1]["signature"] = "(const ImVec2*,int,ImU32,ImDrawFlags,float)" @@ -963,7 +963,7 @@ defs["ImDrawList_AddQuad"][1]["cimguiname"] = "ImDrawList_AddQuad" defs["ImDrawList_AddQuad"][1]["defaults"] = {} defs["ImDrawList_AddQuad"][1]["defaults"]["thickness"] = "1.0f" defs["ImDrawList_AddQuad"][1]["funcname"] = "AddQuad" -defs["ImDrawList_AddQuad"][1]["location"] = "imgui:2423" +defs["ImDrawList_AddQuad"][1]["location"] = "imgui:2438" defs["ImDrawList_AddQuad"][1]["ov_cimguiname"] = "ImDrawList_AddQuad" defs["ImDrawList_AddQuad"][1]["ret"] = "void" defs["ImDrawList_AddQuad"][1]["signature"] = "(const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32,float)" @@ -996,7 +996,7 @@ defs["ImDrawList_AddQuadFilled"][1]["call_args"] = "(p1,p2,p3,p4,col)" defs["ImDrawList_AddQuadFilled"][1]["cimguiname"] = "ImDrawList_AddQuadFilled" defs["ImDrawList_AddQuadFilled"][1]["defaults"] = {} defs["ImDrawList_AddQuadFilled"][1]["funcname"] = "AddQuadFilled" -defs["ImDrawList_AddQuadFilled"][1]["location"] = "imgui:2424" +defs["ImDrawList_AddQuadFilled"][1]["location"] = "imgui:2439" defs["ImDrawList_AddQuadFilled"][1]["ov_cimguiname"] = "ImDrawList_AddQuadFilled" defs["ImDrawList_AddQuadFilled"][1]["ret"] = "void" defs["ImDrawList_AddQuadFilled"][1]["signature"] = "(const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32)" @@ -1035,7 +1035,7 @@ defs["ImDrawList_AddRect"][1]["defaults"]["flags"] = "0" defs["ImDrawList_AddRect"][1]["defaults"]["rounding"] = "0.0f" defs["ImDrawList_AddRect"][1]["defaults"]["thickness"] = "1.0f" defs["ImDrawList_AddRect"][1]["funcname"] = "AddRect" -defs["ImDrawList_AddRect"][1]["location"] = "imgui:2420" +defs["ImDrawList_AddRect"][1]["location"] = "imgui:2435" defs["ImDrawList_AddRect"][1]["ov_cimguiname"] = "ImDrawList_AddRect" defs["ImDrawList_AddRect"][1]["ret"] = "void" defs["ImDrawList_AddRect"][1]["signature"] = "(const ImVec2,const ImVec2,ImU32,float,ImDrawFlags,float)" @@ -1070,7 +1070,7 @@ defs["ImDrawList_AddRectFilled"][1]["defaults"] = {} defs["ImDrawList_AddRectFilled"][1]["defaults"]["flags"] = "0" defs["ImDrawList_AddRectFilled"][1]["defaults"]["rounding"] = "0.0f" defs["ImDrawList_AddRectFilled"][1]["funcname"] = "AddRectFilled" -defs["ImDrawList_AddRectFilled"][1]["location"] = "imgui:2421" +defs["ImDrawList_AddRectFilled"][1]["location"] = "imgui:2436" defs["ImDrawList_AddRectFilled"][1]["ov_cimguiname"] = "ImDrawList_AddRectFilled" defs["ImDrawList_AddRectFilled"][1]["ret"] = "void" defs["ImDrawList_AddRectFilled"][1]["signature"] = "(const ImVec2,const ImVec2,ImU32,float,ImDrawFlags)" @@ -1106,7 +1106,7 @@ defs["ImDrawList_AddRectFilledMultiColor"][1]["call_args"] = "(p_min,p_max,col_u defs["ImDrawList_AddRectFilledMultiColor"][1]["cimguiname"] = "ImDrawList_AddRectFilledMultiColor" defs["ImDrawList_AddRectFilledMultiColor"][1]["defaults"] = {} defs["ImDrawList_AddRectFilledMultiColor"][1]["funcname"] = "AddRectFilledMultiColor" -defs["ImDrawList_AddRectFilledMultiColor"][1]["location"] = "imgui:2422" +defs["ImDrawList_AddRectFilledMultiColor"][1]["location"] = "imgui:2437" defs["ImDrawList_AddRectFilledMultiColor"][1]["ov_cimguiname"] = "ImDrawList_AddRectFilledMultiColor" defs["ImDrawList_AddRectFilledMultiColor"][1]["ret"] = "void" defs["ImDrawList_AddRectFilledMultiColor"][1]["signature"] = "(const ImVec2,const ImVec2,ImU32,ImU32,ImU32,ImU32)" @@ -1137,7 +1137,7 @@ defs["ImDrawList_AddText"][1]["cimguiname"] = "ImDrawList_AddText" defs["ImDrawList_AddText"][1]["defaults"] = {} defs["ImDrawList_AddText"][1]["defaults"]["text_end"] = "NULL" defs["ImDrawList_AddText"][1]["funcname"] = "AddText" -defs["ImDrawList_AddText"][1]["location"] = "imgui:2431" +defs["ImDrawList_AddText"][1]["location"] = "imgui:2446" defs["ImDrawList_AddText"][1]["ov_cimguiname"] = "ImDrawList_AddTextVec2" defs["ImDrawList_AddText"][1]["ret"] = "void" defs["ImDrawList_AddText"][1]["signature"] = "(const ImVec2,ImU32,const char*,const char*)" @@ -1180,7 +1180,7 @@ defs["ImDrawList_AddText"][2]["defaults"]["cpu_fine_clip_rect"] = "NULL" defs["ImDrawList_AddText"][2]["defaults"]["text_end"] = "NULL" defs["ImDrawList_AddText"][2]["defaults"]["wrap_width"] = "0.0f" defs["ImDrawList_AddText"][2]["funcname"] = "AddText" -defs["ImDrawList_AddText"][2]["location"] = "imgui:2432" +defs["ImDrawList_AddText"][2]["location"] = "imgui:2447" defs["ImDrawList_AddText"][2]["ov_cimguiname"] = "ImDrawList_AddTextFontPtr" defs["ImDrawList_AddText"][2]["ret"] = "void" defs["ImDrawList_AddText"][2]["signature"] = "(const ImFont*,float,const ImVec2,ImU32,const char*,const char*,float,const ImVec4*)" @@ -1215,7 +1215,7 @@ defs["ImDrawList_AddTriangle"][1]["cimguiname"] = "ImDrawList_AddTriangle" defs["ImDrawList_AddTriangle"][1]["defaults"] = {} defs["ImDrawList_AddTriangle"][1]["defaults"]["thickness"] = "1.0f" defs["ImDrawList_AddTriangle"][1]["funcname"] = "AddTriangle" -defs["ImDrawList_AddTriangle"][1]["location"] = "imgui:2425" +defs["ImDrawList_AddTriangle"][1]["location"] = "imgui:2440" defs["ImDrawList_AddTriangle"][1]["ov_cimguiname"] = "ImDrawList_AddTriangle" defs["ImDrawList_AddTriangle"][1]["ret"] = "void" defs["ImDrawList_AddTriangle"][1]["signature"] = "(const ImVec2,const ImVec2,const ImVec2,ImU32,float)" @@ -1245,7 +1245,7 @@ defs["ImDrawList_AddTriangleFilled"][1]["call_args"] = "(p1,p2,p3,col)" defs["ImDrawList_AddTriangleFilled"][1]["cimguiname"] = "ImDrawList_AddTriangleFilled" defs["ImDrawList_AddTriangleFilled"][1]["defaults"] = {} defs["ImDrawList_AddTriangleFilled"][1]["funcname"] = "AddTriangleFilled" -defs["ImDrawList_AddTriangleFilled"][1]["location"] = "imgui:2426" +defs["ImDrawList_AddTriangleFilled"][1]["location"] = "imgui:2441" defs["ImDrawList_AddTriangleFilled"][1]["ov_cimguiname"] = "ImDrawList_AddTriangleFilled" defs["ImDrawList_AddTriangleFilled"][1]["ret"] = "void" defs["ImDrawList_AddTriangleFilled"][1]["signature"] = "(const ImVec2,const ImVec2,const ImVec2,ImU32)" @@ -1263,7 +1263,7 @@ defs["ImDrawList_ChannelsMerge"][1]["call_args"] = "()" defs["ImDrawList_ChannelsMerge"][1]["cimguiname"] = "ImDrawList_ChannelsMerge" defs["ImDrawList_ChannelsMerge"][1]["defaults"] = {} defs["ImDrawList_ChannelsMerge"][1]["funcname"] = "ChannelsMerge" -defs["ImDrawList_ChannelsMerge"][1]["location"] = "imgui:2470" +defs["ImDrawList_ChannelsMerge"][1]["location"] = "imgui:2485" defs["ImDrawList_ChannelsMerge"][1]["ov_cimguiname"] = "ImDrawList_ChannelsMerge" defs["ImDrawList_ChannelsMerge"][1]["ret"] = "void" defs["ImDrawList_ChannelsMerge"][1]["signature"] = "()" @@ -1284,7 +1284,7 @@ defs["ImDrawList_ChannelsSetCurrent"][1]["call_args"] = "(n)" defs["ImDrawList_ChannelsSetCurrent"][1]["cimguiname"] = "ImDrawList_ChannelsSetCurrent" defs["ImDrawList_ChannelsSetCurrent"][1]["defaults"] = {} defs["ImDrawList_ChannelsSetCurrent"][1]["funcname"] = "ChannelsSetCurrent" -defs["ImDrawList_ChannelsSetCurrent"][1]["location"] = "imgui:2471" +defs["ImDrawList_ChannelsSetCurrent"][1]["location"] = "imgui:2486" defs["ImDrawList_ChannelsSetCurrent"][1]["ov_cimguiname"] = "ImDrawList_ChannelsSetCurrent" defs["ImDrawList_ChannelsSetCurrent"][1]["ret"] = "void" defs["ImDrawList_ChannelsSetCurrent"][1]["signature"] = "(int)" @@ -1305,7 +1305,7 @@ defs["ImDrawList_ChannelsSplit"][1]["call_args"] = "(count)" defs["ImDrawList_ChannelsSplit"][1]["cimguiname"] = "ImDrawList_ChannelsSplit" defs["ImDrawList_ChannelsSplit"][1]["defaults"] = {} defs["ImDrawList_ChannelsSplit"][1]["funcname"] = "ChannelsSplit" -defs["ImDrawList_ChannelsSplit"][1]["location"] = "imgui:2469" +defs["ImDrawList_ChannelsSplit"][1]["location"] = "imgui:2484" defs["ImDrawList_ChannelsSplit"][1]["ov_cimguiname"] = "ImDrawList_ChannelsSplit" defs["ImDrawList_ChannelsSplit"][1]["ret"] = "void" defs["ImDrawList_ChannelsSplit"][1]["signature"] = "(int)" @@ -1323,7 +1323,7 @@ defs["ImDrawList_CloneOutput"][1]["call_args"] = "()" defs["ImDrawList_CloneOutput"][1]["cimguiname"] = "ImDrawList_CloneOutput" defs["ImDrawList_CloneOutput"][1]["defaults"] = {} defs["ImDrawList_CloneOutput"][1]["funcname"] = "CloneOutput" -defs["ImDrawList_CloneOutput"][1]["location"] = "imgui:2461" +defs["ImDrawList_CloneOutput"][1]["location"] = "imgui:2476" defs["ImDrawList_CloneOutput"][1]["ov_cimguiname"] = "ImDrawList_CloneOutput" defs["ImDrawList_CloneOutput"][1]["ret"] = "ImDrawList*" defs["ImDrawList_CloneOutput"][1]["signature"] = "()const" @@ -1344,7 +1344,7 @@ defs["ImDrawList_GetClipRectMax"][1]["call_args"] = "()" defs["ImDrawList_GetClipRectMax"][1]["cimguiname"] = "ImDrawList_GetClipRectMax" defs["ImDrawList_GetClipRectMax"][1]["defaults"] = {} defs["ImDrawList_GetClipRectMax"][1]["funcname"] = "GetClipRectMax" -defs["ImDrawList_GetClipRectMax"][1]["location"] = "imgui:2411" +defs["ImDrawList_GetClipRectMax"][1]["location"] = "imgui:2426" defs["ImDrawList_GetClipRectMax"][1]["nonUDT"] = 1 defs["ImDrawList_GetClipRectMax"][1]["ov_cimguiname"] = "ImDrawList_GetClipRectMax" defs["ImDrawList_GetClipRectMax"][1]["ret"] = "void" @@ -1366,7 +1366,7 @@ defs["ImDrawList_GetClipRectMin"][1]["call_args"] = "()" defs["ImDrawList_GetClipRectMin"][1]["cimguiname"] = "ImDrawList_GetClipRectMin" defs["ImDrawList_GetClipRectMin"][1]["defaults"] = {} defs["ImDrawList_GetClipRectMin"][1]["funcname"] = "GetClipRectMin" -defs["ImDrawList_GetClipRectMin"][1]["location"] = "imgui:2410" +defs["ImDrawList_GetClipRectMin"][1]["location"] = "imgui:2425" defs["ImDrawList_GetClipRectMin"][1]["nonUDT"] = 1 defs["ImDrawList_GetClipRectMin"][1]["ov_cimguiname"] = "ImDrawList_GetClipRectMin" defs["ImDrawList_GetClipRectMin"][1]["ret"] = "void" @@ -1386,7 +1386,7 @@ defs["ImDrawList_ImDrawList"][1]["cimguiname"] = "ImDrawList_ImDrawList" defs["ImDrawList_ImDrawList"][1]["constructor"] = true defs["ImDrawList_ImDrawList"][1]["defaults"] = {} defs["ImDrawList_ImDrawList"][1]["funcname"] = "ImDrawList" -defs["ImDrawList_ImDrawList"][1]["location"] = "imgui:2402" +defs["ImDrawList_ImDrawList"][1]["location"] = "imgui:2417" defs["ImDrawList_ImDrawList"][1]["ov_cimguiname"] = "ImDrawList_ImDrawList" defs["ImDrawList_ImDrawList"][1]["signature"] = "(const ImDrawListSharedData*)" defs["ImDrawList_ImDrawList"][1]["stname"] = "ImDrawList" @@ -1419,7 +1419,7 @@ defs["ImDrawList_PathArcTo"][1]["cimguiname"] = "ImDrawList_PathArcTo" defs["ImDrawList_PathArcTo"][1]["defaults"] = {} defs["ImDrawList_PathArcTo"][1]["defaults"]["num_segments"] = "0" defs["ImDrawList_PathArcTo"][1]["funcname"] = "PathArcTo" -defs["ImDrawList_PathArcTo"][1]["location"] = "imgui:2452" +defs["ImDrawList_PathArcTo"][1]["location"] = "imgui:2467" defs["ImDrawList_PathArcTo"][1]["ov_cimguiname"] = "ImDrawList_PathArcTo" defs["ImDrawList_PathArcTo"][1]["ret"] = "void" defs["ImDrawList_PathArcTo"][1]["signature"] = "(const ImVec2,float,float,float,int)" @@ -1449,7 +1449,7 @@ defs["ImDrawList_PathArcToFast"][1]["call_args"] = "(center,radius,a_min_of_12,a defs["ImDrawList_PathArcToFast"][1]["cimguiname"] = "ImDrawList_PathArcToFast" defs["ImDrawList_PathArcToFast"][1]["defaults"] = {} defs["ImDrawList_PathArcToFast"][1]["funcname"] = "PathArcToFast" -defs["ImDrawList_PathArcToFast"][1]["location"] = "imgui:2453" +defs["ImDrawList_PathArcToFast"][1]["location"] = "imgui:2468" defs["ImDrawList_PathArcToFast"][1]["ov_cimguiname"] = "ImDrawList_PathArcToFast" defs["ImDrawList_PathArcToFast"][1]["ret"] = "void" defs["ImDrawList_PathArcToFast"][1]["signature"] = "(const ImVec2,float,int,int)" @@ -1480,7 +1480,7 @@ defs["ImDrawList_PathBezierCubicCurveTo"][1]["cimguiname"] = "ImDrawList_PathBez defs["ImDrawList_PathBezierCubicCurveTo"][1]["defaults"] = {} defs["ImDrawList_PathBezierCubicCurveTo"][1]["defaults"]["num_segments"] = "0" defs["ImDrawList_PathBezierCubicCurveTo"][1]["funcname"] = "PathBezierCubicCurveTo" -defs["ImDrawList_PathBezierCubicCurveTo"][1]["location"] = "imgui:2454" +defs["ImDrawList_PathBezierCubicCurveTo"][1]["location"] = "imgui:2469" defs["ImDrawList_PathBezierCubicCurveTo"][1]["ov_cimguiname"] = "ImDrawList_PathBezierCubicCurveTo" defs["ImDrawList_PathBezierCubicCurveTo"][1]["ret"] = "void" defs["ImDrawList_PathBezierCubicCurveTo"][1]["signature"] = "(const ImVec2,const ImVec2,const ImVec2,int)" @@ -1508,7 +1508,7 @@ defs["ImDrawList_PathBezierQuadraticCurveTo"][1]["cimguiname"] = "ImDrawList_Pat defs["ImDrawList_PathBezierQuadraticCurveTo"][1]["defaults"] = {} defs["ImDrawList_PathBezierQuadraticCurveTo"][1]["defaults"]["num_segments"] = "0" defs["ImDrawList_PathBezierQuadraticCurveTo"][1]["funcname"] = "PathBezierQuadraticCurveTo" -defs["ImDrawList_PathBezierQuadraticCurveTo"][1]["location"] = "imgui:2455" +defs["ImDrawList_PathBezierQuadraticCurveTo"][1]["location"] = "imgui:2470" defs["ImDrawList_PathBezierQuadraticCurveTo"][1]["ov_cimguiname"] = "ImDrawList_PathBezierQuadraticCurveTo" defs["ImDrawList_PathBezierQuadraticCurveTo"][1]["ret"] = "void" defs["ImDrawList_PathBezierQuadraticCurveTo"][1]["signature"] = "(const ImVec2,const ImVec2,int)" @@ -1526,7 +1526,7 @@ defs["ImDrawList_PathClear"][1]["call_args"] = "()" defs["ImDrawList_PathClear"][1]["cimguiname"] = "ImDrawList_PathClear" defs["ImDrawList_PathClear"][1]["defaults"] = {} defs["ImDrawList_PathClear"][1]["funcname"] = "PathClear" -defs["ImDrawList_PathClear"][1]["location"] = "imgui:2447" +defs["ImDrawList_PathClear"][1]["location"] = "imgui:2462" defs["ImDrawList_PathClear"][1]["ov_cimguiname"] = "ImDrawList_PathClear" defs["ImDrawList_PathClear"][1]["ret"] = "void" defs["ImDrawList_PathClear"][1]["signature"] = "()" @@ -1547,7 +1547,7 @@ defs["ImDrawList_PathFillConvex"][1]["call_args"] = "(col)" defs["ImDrawList_PathFillConvex"][1]["cimguiname"] = "ImDrawList_PathFillConvex" defs["ImDrawList_PathFillConvex"][1]["defaults"] = {} defs["ImDrawList_PathFillConvex"][1]["funcname"] = "PathFillConvex" -defs["ImDrawList_PathFillConvex"][1]["location"] = "imgui:2450" +defs["ImDrawList_PathFillConvex"][1]["location"] = "imgui:2465" defs["ImDrawList_PathFillConvex"][1]["ov_cimguiname"] = "ImDrawList_PathFillConvex" defs["ImDrawList_PathFillConvex"][1]["ret"] = "void" defs["ImDrawList_PathFillConvex"][1]["signature"] = "(ImU32)" @@ -1568,7 +1568,7 @@ defs["ImDrawList_PathLineTo"][1]["call_args"] = "(pos)" defs["ImDrawList_PathLineTo"][1]["cimguiname"] = "ImDrawList_PathLineTo" defs["ImDrawList_PathLineTo"][1]["defaults"] = {} defs["ImDrawList_PathLineTo"][1]["funcname"] = "PathLineTo" -defs["ImDrawList_PathLineTo"][1]["location"] = "imgui:2448" +defs["ImDrawList_PathLineTo"][1]["location"] = "imgui:2463" defs["ImDrawList_PathLineTo"][1]["ov_cimguiname"] = "ImDrawList_PathLineTo" defs["ImDrawList_PathLineTo"][1]["ret"] = "void" defs["ImDrawList_PathLineTo"][1]["signature"] = "(const ImVec2)" @@ -1589,7 +1589,7 @@ defs["ImDrawList_PathLineToMergeDuplicate"][1]["call_args"] = "(pos)" defs["ImDrawList_PathLineToMergeDuplicate"][1]["cimguiname"] = "ImDrawList_PathLineToMergeDuplicate" defs["ImDrawList_PathLineToMergeDuplicate"][1]["defaults"] = {} defs["ImDrawList_PathLineToMergeDuplicate"][1]["funcname"] = "PathLineToMergeDuplicate" -defs["ImDrawList_PathLineToMergeDuplicate"][1]["location"] = "imgui:2449" +defs["ImDrawList_PathLineToMergeDuplicate"][1]["location"] = "imgui:2464" defs["ImDrawList_PathLineToMergeDuplicate"][1]["ov_cimguiname"] = "ImDrawList_PathLineToMergeDuplicate" defs["ImDrawList_PathLineToMergeDuplicate"][1]["ret"] = "void" defs["ImDrawList_PathLineToMergeDuplicate"][1]["signature"] = "(const ImVec2)" @@ -1621,7 +1621,7 @@ defs["ImDrawList_PathRect"][1]["defaults"] = {} defs["ImDrawList_PathRect"][1]["defaults"]["flags"] = "0" defs["ImDrawList_PathRect"][1]["defaults"]["rounding"] = "0.0f" defs["ImDrawList_PathRect"][1]["funcname"] = "PathRect" -defs["ImDrawList_PathRect"][1]["location"] = "imgui:2456" +defs["ImDrawList_PathRect"][1]["location"] = "imgui:2471" defs["ImDrawList_PathRect"][1]["ov_cimguiname"] = "ImDrawList_PathRect" defs["ImDrawList_PathRect"][1]["ret"] = "void" defs["ImDrawList_PathRect"][1]["signature"] = "(const ImVec2,const ImVec2,float,ImDrawFlags)" @@ -1650,7 +1650,7 @@ defs["ImDrawList_PathStroke"][1]["defaults"] = {} defs["ImDrawList_PathStroke"][1]["defaults"]["flags"] = "0" defs["ImDrawList_PathStroke"][1]["defaults"]["thickness"] = "1.0f" defs["ImDrawList_PathStroke"][1]["funcname"] = "PathStroke" -defs["ImDrawList_PathStroke"][1]["location"] = "imgui:2451" +defs["ImDrawList_PathStroke"][1]["location"] = "imgui:2466" defs["ImDrawList_PathStroke"][1]["ov_cimguiname"] = "ImDrawList_PathStroke" defs["ImDrawList_PathStroke"][1]["ret"] = "void" defs["ImDrawList_PathStroke"][1]["signature"] = "(ImU32,ImDrawFlags,float)" @@ -1668,7 +1668,7 @@ defs["ImDrawList_PopClipRect"][1]["call_args"] = "()" defs["ImDrawList_PopClipRect"][1]["cimguiname"] = "ImDrawList_PopClipRect" defs["ImDrawList_PopClipRect"][1]["defaults"] = {} defs["ImDrawList_PopClipRect"][1]["funcname"] = "PopClipRect" -defs["ImDrawList_PopClipRect"][1]["location"] = "imgui:2407" +defs["ImDrawList_PopClipRect"][1]["location"] = "imgui:2422" defs["ImDrawList_PopClipRect"][1]["ov_cimguiname"] = "ImDrawList_PopClipRect" defs["ImDrawList_PopClipRect"][1]["ret"] = "void" defs["ImDrawList_PopClipRect"][1]["signature"] = "()" @@ -1686,7 +1686,7 @@ defs["ImDrawList_PopTextureID"][1]["call_args"] = "()" defs["ImDrawList_PopTextureID"][1]["cimguiname"] = "ImDrawList_PopTextureID" defs["ImDrawList_PopTextureID"][1]["defaults"] = {} defs["ImDrawList_PopTextureID"][1]["funcname"] = "PopTextureID" -defs["ImDrawList_PopTextureID"][1]["location"] = "imgui:2409" +defs["ImDrawList_PopTextureID"][1]["location"] = "imgui:2424" defs["ImDrawList_PopTextureID"][1]["ov_cimguiname"] = "ImDrawList_PopTextureID" defs["ImDrawList_PopTextureID"][1]["ret"] = "void" defs["ImDrawList_PopTextureID"][1]["signature"] = "()" @@ -1731,7 +1731,7 @@ defs["ImDrawList_PrimQuadUV"][1]["call_args"] = "(a,b,c,d,uv_a,uv_b,uv_c,uv_d,co defs["ImDrawList_PrimQuadUV"][1]["cimguiname"] = "ImDrawList_PrimQuadUV" defs["ImDrawList_PrimQuadUV"][1]["defaults"] = {} defs["ImDrawList_PrimQuadUV"][1]["funcname"] = "PrimQuadUV" -defs["ImDrawList_PrimQuadUV"][1]["location"] = "imgui:2480" +defs["ImDrawList_PrimQuadUV"][1]["location"] = "imgui:2495" defs["ImDrawList_PrimQuadUV"][1]["ov_cimguiname"] = "ImDrawList_PrimQuadUV" defs["ImDrawList_PrimQuadUV"][1]["ret"] = "void" defs["ImDrawList_PrimQuadUV"][1]["signature"] = "(const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32)" @@ -1758,7 +1758,7 @@ defs["ImDrawList_PrimRect"][1]["call_args"] = "(a,b,col)" defs["ImDrawList_PrimRect"][1]["cimguiname"] = "ImDrawList_PrimRect" defs["ImDrawList_PrimRect"][1]["defaults"] = {} defs["ImDrawList_PrimRect"][1]["funcname"] = "PrimRect" -defs["ImDrawList_PrimRect"][1]["location"] = "imgui:2478" +defs["ImDrawList_PrimRect"][1]["location"] = "imgui:2493" defs["ImDrawList_PrimRect"][1]["ov_cimguiname"] = "ImDrawList_PrimRect" defs["ImDrawList_PrimRect"][1]["ret"] = "void" defs["ImDrawList_PrimRect"][1]["signature"] = "(const ImVec2,const ImVec2,ImU32)" @@ -1791,7 +1791,7 @@ defs["ImDrawList_PrimRectUV"][1]["call_args"] = "(a,b,uv_a,uv_b,col)" defs["ImDrawList_PrimRectUV"][1]["cimguiname"] = "ImDrawList_PrimRectUV" defs["ImDrawList_PrimRectUV"][1]["defaults"] = {} defs["ImDrawList_PrimRectUV"][1]["funcname"] = "PrimRectUV" -defs["ImDrawList_PrimRectUV"][1]["location"] = "imgui:2479" +defs["ImDrawList_PrimRectUV"][1]["location"] = "imgui:2494" defs["ImDrawList_PrimRectUV"][1]["ov_cimguiname"] = "ImDrawList_PrimRectUV" defs["ImDrawList_PrimRectUV"][1]["ret"] = "void" defs["ImDrawList_PrimRectUV"][1]["signature"] = "(const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32)" @@ -1815,7 +1815,7 @@ defs["ImDrawList_PrimReserve"][1]["call_args"] = "(idx_count,vtx_count)" defs["ImDrawList_PrimReserve"][1]["cimguiname"] = "ImDrawList_PrimReserve" defs["ImDrawList_PrimReserve"][1]["defaults"] = {} defs["ImDrawList_PrimReserve"][1]["funcname"] = "PrimReserve" -defs["ImDrawList_PrimReserve"][1]["location"] = "imgui:2476" +defs["ImDrawList_PrimReserve"][1]["location"] = "imgui:2491" defs["ImDrawList_PrimReserve"][1]["ov_cimguiname"] = "ImDrawList_PrimReserve" defs["ImDrawList_PrimReserve"][1]["ret"] = "void" defs["ImDrawList_PrimReserve"][1]["signature"] = "(int,int)" @@ -1839,7 +1839,7 @@ defs["ImDrawList_PrimUnreserve"][1]["call_args"] = "(idx_count,vtx_count)" defs["ImDrawList_PrimUnreserve"][1]["cimguiname"] = "ImDrawList_PrimUnreserve" defs["ImDrawList_PrimUnreserve"][1]["defaults"] = {} defs["ImDrawList_PrimUnreserve"][1]["funcname"] = "PrimUnreserve" -defs["ImDrawList_PrimUnreserve"][1]["location"] = "imgui:2477" +defs["ImDrawList_PrimUnreserve"][1]["location"] = "imgui:2492" defs["ImDrawList_PrimUnreserve"][1]["ov_cimguiname"] = "ImDrawList_PrimUnreserve" defs["ImDrawList_PrimUnreserve"][1]["ret"] = "void" defs["ImDrawList_PrimUnreserve"][1]["signature"] = "(int,int)" @@ -1866,7 +1866,7 @@ defs["ImDrawList_PrimVtx"][1]["call_args"] = "(pos,uv,col)" defs["ImDrawList_PrimVtx"][1]["cimguiname"] = "ImDrawList_PrimVtx" defs["ImDrawList_PrimVtx"][1]["defaults"] = {} defs["ImDrawList_PrimVtx"][1]["funcname"] = "PrimVtx" -defs["ImDrawList_PrimVtx"][1]["location"] = "imgui:2483" +defs["ImDrawList_PrimVtx"][1]["location"] = "imgui:2498" defs["ImDrawList_PrimVtx"][1]["ov_cimguiname"] = "ImDrawList_PrimVtx" defs["ImDrawList_PrimVtx"][1]["ret"] = "void" defs["ImDrawList_PrimVtx"][1]["signature"] = "(const ImVec2,const ImVec2,ImU32)" @@ -1887,7 +1887,7 @@ defs["ImDrawList_PrimWriteIdx"][1]["call_args"] = "(idx)" defs["ImDrawList_PrimWriteIdx"][1]["cimguiname"] = "ImDrawList_PrimWriteIdx" defs["ImDrawList_PrimWriteIdx"][1]["defaults"] = {} defs["ImDrawList_PrimWriteIdx"][1]["funcname"] = "PrimWriteIdx" -defs["ImDrawList_PrimWriteIdx"][1]["location"] = "imgui:2482" +defs["ImDrawList_PrimWriteIdx"][1]["location"] = "imgui:2497" defs["ImDrawList_PrimWriteIdx"][1]["ov_cimguiname"] = "ImDrawList_PrimWriteIdx" defs["ImDrawList_PrimWriteIdx"][1]["ret"] = "void" defs["ImDrawList_PrimWriteIdx"][1]["signature"] = "(ImDrawIdx)" @@ -1914,7 +1914,7 @@ defs["ImDrawList_PrimWriteVtx"][1]["call_args"] = "(pos,uv,col)" defs["ImDrawList_PrimWriteVtx"][1]["cimguiname"] = "ImDrawList_PrimWriteVtx" defs["ImDrawList_PrimWriteVtx"][1]["defaults"] = {} defs["ImDrawList_PrimWriteVtx"][1]["funcname"] = "PrimWriteVtx" -defs["ImDrawList_PrimWriteVtx"][1]["location"] = "imgui:2481" +defs["ImDrawList_PrimWriteVtx"][1]["location"] = "imgui:2496" defs["ImDrawList_PrimWriteVtx"][1]["ov_cimguiname"] = "ImDrawList_PrimWriteVtx" defs["ImDrawList_PrimWriteVtx"][1]["ret"] = "void" defs["ImDrawList_PrimWriteVtx"][1]["signature"] = "(const ImVec2,const ImVec2,ImU32)" @@ -1942,7 +1942,7 @@ defs["ImDrawList_PushClipRect"][1]["cimguiname"] = "ImDrawList_PushClipRect" defs["ImDrawList_PushClipRect"][1]["defaults"] = {} defs["ImDrawList_PushClipRect"][1]["defaults"]["intersect_with_current_clip_rect"] = "false" defs["ImDrawList_PushClipRect"][1]["funcname"] = "PushClipRect" -defs["ImDrawList_PushClipRect"][1]["location"] = "imgui:2405" +defs["ImDrawList_PushClipRect"][1]["location"] = "imgui:2420" defs["ImDrawList_PushClipRect"][1]["ov_cimguiname"] = "ImDrawList_PushClipRect" defs["ImDrawList_PushClipRect"][1]["ret"] = "void" defs["ImDrawList_PushClipRect"][1]["signature"] = "(ImVec2,ImVec2,bool)" @@ -1960,7 +1960,7 @@ defs["ImDrawList_PushClipRectFullScreen"][1]["call_args"] = "()" defs["ImDrawList_PushClipRectFullScreen"][1]["cimguiname"] = "ImDrawList_PushClipRectFullScreen" defs["ImDrawList_PushClipRectFullScreen"][1]["defaults"] = {} defs["ImDrawList_PushClipRectFullScreen"][1]["funcname"] = "PushClipRectFullScreen" -defs["ImDrawList_PushClipRectFullScreen"][1]["location"] = "imgui:2406" +defs["ImDrawList_PushClipRectFullScreen"][1]["location"] = "imgui:2421" defs["ImDrawList_PushClipRectFullScreen"][1]["ov_cimguiname"] = "ImDrawList_PushClipRectFullScreen" defs["ImDrawList_PushClipRectFullScreen"][1]["ret"] = "void" defs["ImDrawList_PushClipRectFullScreen"][1]["signature"] = "()" @@ -1981,7 +1981,7 @@ defs["ImDrawList_PushTextureID"][1]["call_args"] = "(texture_id)" defs["ImDrawList_PushTextureID"][1]["cimguiname"] = "ImDrawList_PushTextureID" defs["ImDrawList_PushTextureID"][1]["defaults"] = {} defs["ImDrawList_PushTextureID"][1]["funcname"] = "PushTextureID" -defs["ImDrawList_PushTextureID"][1]["location"] = "imgui:2408" +defs["ImDrawList_PushTextureID"][1]["location"] = "imgui:2423" defs["ImDrawList_PushTextureID"][1]["ov_cimguiname"] = "ImDrawList_PushTextureID" defs["ImDrawList_PushTextureID"][1]["ret"] = "void" defs["ImDrawList_PushTextureID"][1]["signature"] = "(ImTextureID)" @@ -2002,7 +2002,7 @@ defs["ImDrawList__CalcCircleAutoSegmentCount"][1]["call_args"] = "(radius)" defs["ImDrawList__CalcCircleAutoSegmentCount"][1]["cimguiname"] = "ImDrawList__CalcCircleAutoSegmentCount" defs["ImDrawList__CalcCircleAutoSegmentCount"][1]["defaults"] = {} defs["ImDrawList__CalcCircleAutoSegmentCount"][1]["funcname"] = "_CalcCircleAutoSegmentCount" -defs["ImDrawList__CalcCircleAutoSegmentCount"][1]["location"] = "imgui:2498" +defs["ImDrawList__CalcCircleAutoSegmentCount"][1]["location"] = "imgui:2513" defs["ImDrawList__CalcCircleAutoSegmentCount"][1]["ov_cimguiname"] = "ImDrawList__CalcCircleAutoSegmentCount" defs["ImDrawList__CalcCircleAutoSegmentCount"][1]["ret"] = "int" defs["ImDrawList__CalcCircleAutoSegmentCount"][1]["signature"] = "(float)const" @@ -2020,7 +2020,7 @@ defs["ImDrawList__ClearFreeMemory"][1]["call_args"] = "()" defs["ImDrawList__ClearFreeMemory"][1]["cimguiname"] = "ImDrawList__ClearFreeMemory" defs["ImDrawList__ClearFreeMemory"][1]["defaults"] = {} defs["ImDrawList__ClearFreeMemory"][1]["funcname"] = "_ClearFreeMemory" -defs["ImDrawList__ClearFreeMemory"][1]["location"] = "imgui:2492" +defs["ImDrawList__ClearFreeMemory"][1]["location"] = "imgui:2507" defs["ImDrawList__ClearFreeMemory"][1]["ov_cimguiname"] = "ImDrawList__ClearFreeMemory" defs["ImDrawList__ClearFreeMemory"][1]["ret"] = "void" defs["ImDrawList__ClearFreeMemory"][1]["signature"] = "()" @@ -2038,7 +2038,7 @@ defs["ImDrawList__OnChangedClipRect"][1]["call_args"] = "()" defs["ImDrawList__OnChangedClipRect"][1]["cimguiname"] = "ImDrawList__OnChangedClipRect" defs["ImDrawList__OnChangedClipRect"][1]["defaults"] = {} defs["ImDrawList__OnChangedClipRect"][1]["funcname"] = "_OnChangedClipRect" -defs["ImDrawList__OnChangedClipRect"][1]["location"] = "imgui:2495" +defs["ImDrawList__OnChangedClipRect"][1]["location"] = "imgui:2510" defs["ImDrawList__OnChangedClipRect"][1]["ov_cimguiname"] = "ImDrawList__OnChangedClipRect" defs["ImDrawList__OnChangedClipRect"][1]["ret"] = "void" defs["ImDrawList__OnChangedClipRect"][1]["signature"] = "()" @@ -2056,7 +2056,7 @@ defs["ImDrawList__OnChangedTextureID"][1]["call_args"] = "()" defs["ImDrawList__OnChangedTextureID"][1]["cimguiname"] = "ImDrawList__OnChangedTextureID" defs["ImDrawList__OnChangedTextureID"][1]["defaults"] = {} defs["ImDrawList__OnChangedTextureID"][1]["funcname"] = "_OnChangedTextureID" -defs["ImDrawList__OnChangedTextureID"][1]["location"] = "imgui:2496" +defs["ImDrawList__OnChangedTextureID"][1]["location"] = "imgui:2511" defs["ImDrawList__OnChangedTextureID"][1]["ov_cimguiname"] = "ImDrawList__OnChangedTextureID" defs["ImDrawList__OnChangedTextureID"][1]["ret"] = "void" defs["ImDrawList__OnChangedTextureID"][1]["signature"] = "()" @@ -2074,7 +2074,7 @@ defs["ImDrawList__OnChangedVtxOffset"][1]["call_args"] = "()" defs["ImDrawList__OnChangedVtxOffset"][1]["cimguiname"] = "ImDrawList__OnChangedVtxOffset" defs["ImDrawList__OnChangedVtxOffset"][1]["defaults"] = {} defs["ImDrawList__OnChangedVtxOffset"][1]["funcname"] = "_OnChangedVtxOffset" -defs["ImDrawList__OnChangedVtxOffset"][1]["location"] = "imgui:2497" +defs["ImDrawList__OnChangedVtxOffset"][1]["location"] = "imgui:2512" defs["ImDrawList__OnChangedVtxOffset"][1]["ov_cimguiname"] = "ImDrawList__OnChangedVtxOffset" defs["ImDrawList__OnChangedVtxOffset"][1]["ret"] = "void" defs["ImDrawList__OnChangedVtxOffset"][1]["signature"] = "()" @@ -2107,7 +2107,7 @@ defs["ImDrawList__PathArcToFastEx"][1]["call_args"] = "(center,radius,a_min_samp defs["ImDrawList__PathArcToFastEx"][1]["cimguiname"] = "ImDrawList__PathArcToFastEx" defs["ImDrawList__PathArcToFastEx"][1]["defaults"] = {} defs["ImDrawList__PathArcToFastEx"][1]["funcname"] = "_PathArcToFastEx" -defs["ImDrawList__PathArcToFastEx"][1]["location"] = "imgui:2499" +defs["ImDrawList__PathArcToFastEx"][1]["location"] = "imgui:2514" defs["ImDrawList__PathArcToFastEx"][1]["ov_cimguiname"] = "ImDrawList__PathArcToFastEx" defs["ImDrawList__PathArcToFastEx"][1]["ret"] = "void" defs["ImDrawList__PathArcToFastEx"][1]["signature"] = "(const ImVec2,float,int,int,int)" @@ -2140,7 +2140,7 @@ defs["ImDrawList__PathArcToN"][1]["call_args"] = "(center,radius,a_min,a_max,num defs["ImDrawList__PathArcToN"][1]["cimguiname"] = "ImDrawList__PathArcToN" defs["ImDrawList__PathArcToN"][1]["defaults"] = {} defs["ImDrawList__PathArcToN"][1]["funcname"] = "_PathArcToN" -defs["ImDrawList__PathArcToN"][1]["location"] = "imgui:2500" +defs["ImDrawList__PathArcToN"][1]["location"] = "imgui:2515" defs["ImDrawList__PathArcToN"][1]["ov_cimguiname"] = "ImDrawList__PathArcToN" defs["ImDrawList__PathArcToN"][1]["ret"] = "void" defs["ImDrawList__PathArcToN"][1]["signature"] = "(const ImVec2,float,float,float,int)" @@ -2158,7 +2158,7 @@ defs["ImDrawList__PopUnusedDrawCmd"][1]["call_args"] = "()" defs["ImDrawList__PopUnusedDrawCmd"][1]["cimguiname"] = "ImDrawList__PopUnusedDrawCmd" defs["ImDrawList__PopUnusedDrawCmd"][1]["defaults"] = {} defs["ImDrawList__PopUnusedDrawCmd"][1]["funcname"] = "_PopUnusedDrawCmd" -defs["ImDrawList__PopUnusedDrawCmd"][1]["location"] = "imgui:2493" +defs["ImDrawList__PopUnusedDrawCmd"][1]["location"] = "imgui:2508" defs["ImDrawList__PopUnusedDrawCmd"][1]["ov_cimguiname"] = "ImDrawList__PopUnusedDrawCmd" defs["ImDrawList__PopUnusedDrawCmd"][1]["ret"] = "void" defs["ImDrawList__PopUnusedDrawCmd"][1]["signature"] = "()" @@ -2176,7 +2176,7 @@ defs["ImDrawList__ResetForNewFrame"][1]["call_args"] = "()" defs["ImDrawList__ResetForNewFrame"][1]["cimguiname"] = "ImDrawList__ResetForNewFrame" defs["ImDrawList__ResetForNewFrame"][1]["defaults"] = {} defs["ImDrawList__ResetForNewFrame"][1]["funcname"] = "_ResetForNewFrame" -defs["ImDrawList__ResetForNewFrame"][1]["location"] = "imgui:2491" +defs["ImDrawList__ResetForNewFrame"][1]["location"] = "imgui:2506" defs["ImDrawList__ResetForNewFrame"][1]["ov_cimguiname"] = "ImDrawList__ResetForNewFrame" defs["ImDrawList__ResetForNewFrame"][1]["ret"] = "void" defs["ImDrawList__ResetForNewFrame"][1]["signature"] = "()" @@ -2194,7 +2194,7 @@ defs["ImDrawList__TryMergeDrawCmds"][1]["call_args"] = "()" defs["ImDrawList__TryMergeDrawCmds"][1]["cimguiname"] = "ImDrawList__TryMergeDrawCmds" defs["ImDrawList__TryMergeDrawCmds"][1]["defaults"] = {} defs["ImDrawList__TryMergeDrawCmds"][1]["funcname"] = "_TryMergeDrawCmds" -defs["ImDrawList__TryMergeDrawCmds"][1]["location"] = "imgui:2494" +defs["ImDrawList__TryMergeDrawCmds"][1]["location"] = "imgui:2509" defs["ImDrawList__TryMergeDrawCmds"][1]["ov_cimguiname"] = "ImDrawList__TryMergeDrawCmds" defs["ImDrawList__TryMergeDrawCmds"][1]["ret"] = "void" defs["ImDrawList__TryMergeDrawCmds"][1]["signature"] = "()" @@ -2211,7 +2211,7 @@ defs["ImDrawList_destroy"][1]["call_args"] = "(self)" defs["ImDrawList_destroy"][1]["cimguiname"] = "ImDrawList_destroy" defs["ImDrawList_destroy"][1]["defaults"] = {} defs["ImDrawList_destroy"][1]["destructor"] = true -defs["ImDrawList_destroy"][1]["location"] = "imgui:2404" +defs["ImDrawList_destroy"][1]["location"] = "imgui:2419" defs["ImDrawList_destroy"][1]["ov_cimguiname"] = "ImDrawList_destroy" defs["ImDrawList_destroy"][1]["realdestructor"] = true defs["ImDrawList_destroy"][1]["ret"] = "void" @@ -2228,7 +2228,7 @@ defs["ImFontAtlasCustomRect_ImFontAtlasCustomRect"][1]["cimguiname"] = "ImFontAt defs["ImFontAtlasCustomRect_ImFontAtlasCustomRect"][1]["constructor"] = true defs["ImFontAtlasCustomRect_ImFontAtlasCustomRect"][1]["defaults"] = {} defs["ImFontAtlasCustomRect_ImFontAtlasCustomRect"][1]["funcname"] = "ImFontAtlasCustomRect" -defs["ImFontAtlasCustomRect_ImFontAtlasCustomRect"][1]["location"] = "imgui:2592" +defs["ImFontAtlasCustomRect_ImFontAtlasCustomRect"][1]["location"] = "imgui:2607" defs["ImFontAtlasCustomRect_ImFontAtlasCustomRect"][1]["ov_cimguiname"] = "ImFontAtlasCustomRect_ImFontAtlasCustomRect" defs["ImFontAtlasCustomRect_ImFontAtlasCustomRect"][1]["signature"] = "()" defs["ImFontAtlasCustomRect_ImFontAtlasCustomRect"][1]["stname"] = "ImFontAtlasCustomRect" @@ -2245,7 +2245,7 @@ defs["ImFontAtlasCustomRect_IsPacked"][1]["call_args"] = "()" defs["ImFontAtlasCustomRect_IsPacked"][1]["cimguiname"] = "ImFontAtlasCustomRect_IsPacked" defs["ImFontAtlasCustomRect_IsPacked"][1]["defaults"] = {} defs["ImFontAtlasCustomRect_IsPacked"][1]["funcname"] = "IsPacked" -defs["ImFontAtlasCustomRect_IsPacked"][1]["location"] = "imgui:2593" +defs["ImFontAtlasCustomRect_IsPacked"][1]["location"] = "imgui:2608" defs["ImFontAtlasCustomRect_IsPacked"][1]["ov_cimguiname"] = "ImFontAtlasCustomRect_IsPacked" defs["ImFontAtlasCustomRect_IsPacked"][1]["ret"] = "bool" defs["ImFontAtlasCustomRect_IsPacked"][1]["signature"] = "()const" @@ -2298,7 +2298,7 @@ defs["ImFontAtlas_AddCustomRectFontGlyph"][1]["cimguiname"] = "ImFontAtlas_AddCu defs["ImFontAtlas_AddCustomRectFontGlyph"][1]["defaults"] = {} defs["ImFontAtlas_AddCustomRectFontGlyph"][1]["defaults"]["offset"] = "ImVec2(0,0)" defs["ImFontAtlas_AddCustomRectFontGlyph"][1]["funcname"] = "AddCustomRectFontGlyph" -defs["ImFontAtlas_AddCustomRectFontGlyph"][1]["location"] = "imgui:2676" +defs["ImFontAtlas_AddCustomRectFontGlyph"][1]["location"] = "imgui:2691" defs["ImFontAtlas_AddCustomRectFontGlyph"][1]["ov_cimguiname"] = "ImFontAtlas_AddCustomRectFontGlyph" defs["ImFontAtlas_AddCustomRectFontGlyph"][1]["ret"] = "int" defs["ImFontAtlas_AddCustomRectFontGlyph"][1]["signature"] = "(ImFont*,ImWchar,int,int,float,const ImVec2)" @@ -2322,7 +2322,7 @@ defs["ImFontAtlas_AddCustomRectRegular"][1]["call_args"] = "(width,height)" defs["ImFontAtlas_AddCustomRectRegular"][1]["cimguiname"] = "ImFontAtlas_AddCustomRectRegular" defs["ImFontAtlas_AddCustomRectRegular"][1]["defaults"] = {} defs["ImFontAtlas_AddCustomRectRegular"][1]["funcname"] = "AddCustomRectRegular" -defs["ImFontAtlas_AddCustomRectRegular"][1]["location"] = "imgui:2675" +defs["ImFontAtlas_AddCustomRectRegular"][1]["location"] = "imgui:2690" defs["ImFontAtlas_AddCustomRectRegular"][1]["ov_cimguiname"] = "ImFontAtlas_AddCustomRectRegular" defs["ImFontAtlas_AddCustomRectRegular"][1]["ret"] = "int" defs["ImFontAtlas_AddCustomRectRegular"][1]["signature"] = "(int,int)" @@ -2343,7 +2343,7 @@ defs["ImFontAtlas_AddFont"][1]["call_args"] = "(font_cfg)" defs["ImFontAtlas_AddFont"][1]["cimguiname"] = "ImFontAtlas_AddFont" defs["ImFontAtlas_AddFont"][1]["defaults"] = {} defs["ImFontAtlas_AddFont"][1]["funcname"] = "AddFont" -defs["ImFontAtlas_AddFont"][1]["location"] = "imgui:2626" +defs["ImFontAtlas_AddFont"][1]["location"] = "imgui:2641" defs["ImFontAtlas_AddFont"][1]["ov_cimguiname"] = "ImFontAtlas_AddFont" defs["ImFontAtlas_AddFont"][1]["ret"] = "ImFont*" defs["ImFontAtlas_AddFont"][1]["signature"] = "(const ImFontConfig*)" @@ -2365,7 +2365,7 @@ defs["ImFontAtlas_AddFontDefault"][1]["cimguiname"] = "ImFontAtlas_AddFontDefaul defs["ImFontAtlas_AddFontDefault"][1]["defaults"] = {} defs["ImFontAtlas_AddFontDefault"][1]["defaults"]["font_cfg"] = "NULL" defs["ImFontAtlas_AddFontDefault"][1]["funcname"] = "AddFontDefault" -defs["ImFontAtlas_AddFontDefault"][1]["location"] = "imgui:2627" +defs["ImFontAtlas_AddFontDefault"][1]["location"] = "imgui:2642" defs["ImFontAtlas_AddFontDefault"][1]["ov_cimguiname"] = "ImFontAtlas_AddFontDefault" defs["ImFontAtlas_AddFontDefault"][1]["ret"] = "ImFont*" defs["ImFontAtlas_AddFontDefault"][1]["signature"] = "(const ImFontConfig*)" @@ -2397,7 +2397,7 @@ defs["ImFontAtlas_AddFontFromFileTTF"][1]["defaults"] = {} defs["ImFontAtlas_AddFontFromFileTTF"][1]["defaults"]["font_cfg"] = "NULL" defs["ImFontAtlas_AddFontFromFileTTF"][1]["defaults"]["glyph_ranges"] = "NULL" defs["ImFontAtlas_AddFontFromFileTTF"][1]["funcname"] = "AddFontFromFileTTF" -defs["ImFontAtlas_AddFontFromFileTTF"][1]["location"] = "imgui:2628" +defs["ImFontAtlas_AddFontFromFileTTF"][1]["location"] = "imgui:2643" defs["ImFontAtlas_AddFontFromFileTTF"][1]["ov_cimguiname"] = "ImFontAtlas_AddFontFromFileTTF" defs["ImFontAtlas_AddFontFromFileTTF"][1]["ret"] = "ImFont*" defs["ImFontAtlas_AddFontFromFileTTF"][1]["signature"] = "(const char*,float,const ImFontConfig*,const ImWchar*)" @@ -2429,7 +2429,7 @@ defs["ImFontAtlas_AddFontFromMemoryCompressedBase85TTF"][1]["defaults"] = {} defs["ImFontAtlas_AddFontFromMemoryCompressedBase85TTF"][1]["defaults"]["font_cfg"] = "NULL" defs["ImFontAtlas_AddFontFromMemoryCompressedBase85TTF"][1]["defaults"]["glyph_ranges"] = "NULL" defs["ImFontAtlas_AddFontFromMemoryCompressedBase85TTF"][1]["funcname"] = "AddFontFromMemoryCompressedBase85TTF" -defs["ImFontAtlas_AddFontFromMemoryCompressedBase85TTF"][1]["location"] = "imgui:2631" +defs["ImFontAtlas_AddFontFromMemoryCompressedBase85TTF"][1]["location"] = "imgui:2646" defs["ImFontAtlas_AddFontFromMemoryCompressedBase85TTF"][1]["ov_cimguiname"] = "ImFontAtlas_AddFontFromMemoryCompressedBase85TTF" defs["ImFontAtlas_AddFontFromMemoryCompressedBase85TTF"][1]["ret"] = "ImFont*" defs["ImFontAtlas_AddFontFromMemoryCompressedBase85TTF"][1]["signature"] = "(const char*,float,const ImFontConfig*,const ImWchar*)" @@ -2464,7 +2464,7 @@ defs["ImFontAtlas_AddFontFromMemoryCompressedTTF"][1]["defaults"] = {} defs["ImFontAtlas_AddFontFromMemoryCompressedTTF"][1]["defaults"]["font_cfg"] = "NULL" defs["ImFontAtlas_AddFontFromMemoryCompressedTTF"][1]["defaults"]["glyph_ranges"] = "NULL" defs["ImFontAtlas_AddFontFromMemoryCompressedTTF"][1]["funcname"] = "AddFontFromMemoryCompressedTTF" -defs["ImFontAtlas_AddFontFromMemoryCompressedTTF"][1]["location"] = "imgui:2630" +defs["ImFontAtlas_AddFontFromMemoryCompressedTTF"][1]["location"] = "imgui:2645" defs["ImFontAtlas_AddFontFromMemoryCompressedTTF"][1]["ov_cimguiname"] = "ImFontAtlas_AddFontFromMemoryCompressedTTF" defs["ImFontAtlas_AddFontFromMemoryCompressedTTF"][1]["ret"] = "ImFont*" defs["ImFontAtlas_AddFontFromMemoryCompressedTTF"][1]["signature"] = "(const void*,int,float,const ImFontConfig*,const ImWchar*)" @@ -2499,7 +2499,7 @@ defs["ImFontAtlas_AddFontFromMemoryTTF"][1]["defaults"] = {} defs["ImFontAtlas_AddFontFromMemoryTTF"][1]["defaults"]["font_cfg"] = "NULL" defs["ImFontAtlas_AddFontFromMemoryTTF"][1]["defaults"]["glyph_ranges"] = "NULL" defs["ImFontAtlas_AddFontFromMemoryTTF"][1]["funcname"] = "AddFontFromMemoryTTF" -defs["ImFontAtlas_AddFontFromMemoryTTF"][1]["location"] = "imgui:2629" +defs["ImFontAtlas_AddFontFromMemoryTTF"][1]["location"] = "imgui:2644" defs["ImFontAtlas_AddFontFromMemoryTTF"][1]["ov_cimguiname"] = "ImFontAtlas_AddFontFromMemoryTTF" defs["ImFontAtlas_AddFontFromMemoryTTF"][1]["ret"] = "ImFont*" defs["ImFontAtlas_AddFontFromMemoryTTF"][1]["signature"] = "(void*,int,float,const ImFontConfig*,const ImWchar*)" @@ -2517,7 +2517,7 @@ defs["ImFontAtlas_Build"][1]["call_args"] = "()" defs["ImFontAtlas_Build"][1]["cimguiname"] = "ImFontAtlas_Build" defs["ImFontAtlas_Build"][1]["defaults"] = {} defs["ImFontAtlas_Build"][1]["funcname"] = "Build" -defs["ImFontAtlas_Build"][1]["location"] = "imgui:2642" +defs["ImFontAtlas_Build"][1]["location"] = "imgui:2657" defs["ImFontAtlas_Build"][1]["ov_cimguiname"] = "ImFontAtlas_Build" defs["ImFontAtlas_Build"][1]["ret"] = "bool" defs["ImFontAtlas_Build"][1]["signature"] = "()" @@ -2544,7 +2544,7 @@ defs["ImFontAtlas_CalcCustomRectUV"][1]["call_args"] = "(rect,out_uv_min,out_uv_ defs["ImFontAtlas_CalcCustomRectUV"][1]["cimguiname"] = "ImFontAtlas_CalcCustomRectUV" defs["ImFontAtlas_CalcCustomRectUV"][1]["defaults"] = {} defs["ImFontAtlas_CalcCustomRectUV"][1]["funcname"] = "CalcCustomRectUV" -defs["ImFontAtlas_CalcCustomRectUV"][1]["location"] = "imgui:2680" +defs["ImFontAtlas_CalcCustomRectUV"][1]["location"] = "imgui:2695" defs["ImFontAtlas_CalcCustomRectUV"][1]["ov_cimguiname"] = "ImFontAtlas_CalcCustomRectUV" defs["ImFontAtlas_CalcCustomRectUV"][1]["ret"] = "void" defs["ImFontAtlas_CalcCustomRectUV"][1]["signature"] = "(const ImFontAtlasCustomRect*,ImVec2*,ImVec2*)const" @@ -2562,7 +2562,7 @@ defs["ImFontAtlas_Clear"][1]["call_args"] = "()" defs["ImFontAtlas_Clear"][1]["cimguiname"] = "ImFontAtlas_Clear" defs["ImFontAtlas_Clear"][1]["defaults"] = {} defs["ImFontAtlas_Clear"][1]["funcname"] = "Clear" -defs["ImFontAtlas_Clear"][1]["location"] = "imgui:2635" +defs["ImFontAtlas_Clear"][1]["location"] = "imgui:2650" defs["ImFontAtlas_Clear"][1]["ov_cimguiname"] = "ImFontAtlas_Clear" defs["ImFontAtlas_Clear"][1]["ret"] = "void" defs["ImFontAtlas_Clear"][1]["signature"] = "()" @@ -2580,7 +2580,7 @@ defs["ImFontAtlas_ClearFonts"][1]["call_args"] = "()" defs["ImFontAtlas_ClearFonts"][1]["cimguiname"] = "ImFontAtlas_ClearFonts" defs["ImFontAtlas_ClearFonts"][1]["defaults"] = {} defs["ImFontAtlas_ClearFonts"][1]["funcname"] = "ClearFonts" -defs["ImFontAtlas_ClearFonts"][1]["location"] = "imgui:2634" +defs["ImFontAtlas_ClearFonts"][1]["location"] = "imgui:2649" defs["ImFontAtlas_ClearFonts"][1]["ov_cimguiname"] = "ImFontAtlas_ClearFonts" defs["ImFontAtlas_ClearFonts"][1]["ret"] = "void" defs["ImFontAtlas_ClearFonts"][1]["signature"] = "()" @@ -2598,7 +2598,7 @@ defs["ImFontAtlas_ClearInputData"][1]["call_args"] = "()" defs["ImFontAtlas_ClearInputData"][1]["cimguiname"] = "ImFontAtlas_ClearInputData" defs["ImFontAtlas_ClearInputData"][1]["defaults"] = {} defs["ImFontAtlas_ClearInputData"][1]["funcname"] = "ClearInputData" -defs["ImFontAtlas_ClearInputData"][1]["location"] = "imgui:2632" +defs["ImFontAtlas_ClearInputData"][1]["location"] = "imgui:2647" defs["ImFontAtlas_ClearInputData"][1]["ov_cimguiname"] = "ImFontAtlas_ClearInputData" defs["ImFontAtlas_ClearInputData"][1]["ret"] = "void" defs["ImFontAtlas_ClearInputData"][1]["signature"] = "()" @@ -2616,7 +2616,7 @@ defs["ImFontAtlas_ClearTexData"][1]["call_args"] = "()" defs["ImFontAtlas_ClearTexData"][1]["cimguiname"] = "ImFontAtlas_ClearTexData" defs["ImFontAtlas_ClearTexData"][1]["defaults"] = {} defs["ImFontAtlas_ClearTexData"][1]["funcname"] = "ClearTexData" -defs["ImFontAtlas_ClearTexData"][1]["location"] = "imgui:2633" +defs["ImFontAtlas_ClearTexData"][1]["location"] = "imgui:2648" defs["ImFontAtlas_ClearTexData"][1]["ov_cimguiname"] = "ImFontAtlas_ClearTexData" defs["ImFontAtlas_ClearTexData"][1]["ret"] = "void" defs["ImFontAtlas_ClearTexData"][1]["signature"] = "()" @@ -2637,7 +2637,7 @@ defs["ImFontAtlas_GetCustomRectByIndex"][1]["call_args"] = "(index)" defs["ImFontAtlas_GetCustomRectByIndex"][1]["cimguiname"] = "ImFontAtlas_GetCustomRectByIndex" defs["ImFontAtlas_GetCustomRectByIndex"][1]["defaults"] = {} defs["ImFontAtlas_GetCustomRectByIndex"][1]["funcname"] = "GetCustomRectByIndex" -defs["ImFontAtlas_GetCustomRectByIndex"][1]["location"] = "imgui:2677" +defs["ImFontAtlas_GetCustomRectByIndex"][1]["location"] = "imgui:2692" defs["ImFontAtlas_GetCustomRectByIndex"][1]["ov_cimguiname"] = "ImFontAtlas_GetCustomRectByIndex" defs["ImFontAtlas_GetCustomRectByIndex"][1]["ret"] = "ImFontAtlasCustomRect*" defs["ImFontAtlas_GetCustomRectByIndex"][1]["signature"] = "(int)" @@ -2655,7 +2655,7 @@ defs["ImFontAtlas_GetGlyphRangesChineseFull"][1]["call_args"] = "()" defs["ImFontAtlas_GetGlyphRangesChineseFull"][1]["cimguiname"] = "ImFontAtlas_GetGlyphRangesChineseFull" defs["ImFontAtlas_GetGlyphRangesChineseFull"][1]["defaults"] = {} defs["ImFontAtlas_GetGlyphRangesChineseFull"][1]["funcname"] = "GetGlyphRangesChineseFull" -defs["ImFontAtlas_GetGlyphRangesChineseFull"][1]["location"] = "imgui:2658" +defs["ImFontAtlas_GetGlyphRangesChineseFull"][1]["location"] = "imgui:2673" defs["ImFontAtlas_GetGlyphRangesChineseFull"][1]["ov_cimguiname"] = "ImFontAtlas_GetGlyphRangesChineseFull" defs["ImFontAtlas_GetGlyphRangesChineseFull"][1]["ret"] = "const ImWchar*" defs["ImFontAtlas_GetGlyphRangesChineseFull"][1]["signature"] = "()" @@ -2673,7 +2673,7 @@ defs["ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon"][1]["call_args"] = "()" defs["ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon"][1]["cimguiname"] = "ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon" defs["ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon"][1]["defaults"] = {} defs["ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon"][1]["funcname"] = "GetGlyphRangesChineseSimplifiedCommon" -defs["ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon"][1]["location"] = "imgui:2659" +defs["ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon"][1]["location"] = "imgui:2674" defs["ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon"][1]["ov_cimguiname"] = "ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon" defs["ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon"][1]["ret"] = "const ImWchar*" defs["ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon"][1]["signature"] = "()" @@ -2691,7 +2691,7 @@ defs["ImFontAtlas_GetGlyphRangesCyrillic"][1]["call_args"] = "()" defs["ImFontAtlas_GetGlyphRangesCyrillic"][1]["cimguiname"] = "ImFontAtlas_GetGlyphRangesCyrillic" defs["ImFontAtlas_GetGlyphRangesCyrillic"][1]["defaults"] = {} defs["ImFontAtlas_GetGlyphRangesCyrillic"][1]["funcname"] = "GetGlyphRangesCyrillic" -defs["ImFontAtlas_GetGlyphRangesCyrillic"][1]["location"] = "imgui:2660" +defs["ImFontAtlas_GetGlyphRangesCyrillic"][1]["location"] = "imgui:2675" defs["ImFontAtlas_GetGlyphRangesCyrillic"][1]["ov_cimguiname"] = "ImFontAtlas_GetGlyphRangesCyrillic" defs["ImFontAtlas_GetGlyphRangesCyrillic"][1]["ret"] = "const ImWchar*" defs["ImFontAtlas_GetGlyphRangesCyrillic"][1]["signature"] = "()" @@ -2709,7 +2709,7 @@ defs["ImFontAtlas_GetGlyphRangesDefault"][1]["call_args"] = "()" defs["ImFontAtlas_GetGlyphRangesDefault"][1]["cimguiname"] = "ImFontAtlas_GetGlyphRangesDefault" defs["ImFontAtlas_GetGlyphRangesDefault"][1]["defaults"] = {} defs["ImFontAtlas_GetGlyphRangesDefault"][1]["funcname"] = "GetGlyphRangesDefault" -defs["ImFontAtlas_GetGlyphRangesDefault"][1]["location"] = "imgui:2655" +defs["ImFontAtlas_GetGlyphRangesDefault"][1]["location"] = "imgui:2670" defs["ImFontAtlas_GetGlyphRangesDefault"][1]["ov_cimguiname"] = "ImFontAtlas_GetGlyphRangesDefault" defs["ImFontAtlas_GetGlyphRangesDefault"][1]["ret"] = "const ImWchar*" defs["ImFontAtlas_GetGlyphRangesDefault"][1]["signature"] = "()" @@ -2727,7 +2727,7 @@ defs["ImFontAtlas_GetGlyphRangesJapanese"][1]["call_args"] = "()" defs["ImFontAtlas_GetGlyphRangesJapanese"][1]["cimguiname"] = "ImFontAtlas_GetGlyphRangesJapanese" defs["ImFontAtlas_GetGlyphRangesJapanese"][1]["defaults"] = {} defs["ImFontAtlas_GetGlyphRangesJapanese"][1]["funcname"] = "GetGlyphRangesJapanese" -defs["ImFontAtlas_GetGlyphRangesJapanese"][1]["location"] = "imgui:2657" +defs["ImFontAtlas_GetGlyphRangesJapanese"][1]["location"] = "imgui:2672" defs["ImFontAtlas_GetGlyphRangesJapanese"][1]["ov_cimguiname"] = "ImFontAtlas_GetGlyphRangesJapanese" defs["ImFontAtlas_GetGlyphRangesJapanese"][1]["ret"] = "const ImWchar*" defs["ImFontAtlas_GetGlyphRangesJapanese"][1]["signature"] = "()" @@ -2745,7 +2745,7 @@ defs["ImFontAtlas_GetGlyphRangesKorean"][1]["call_args"] = "()" defs["ImFontAtlas_GetGlyphRangesKorean"][1]["cimguiname"] = "ImFontAtlas_GetGlyphRangesKorean" defs["ImFontAtlas_GetGlyphRangesKorean"][1]["defaults"] = {} defs["ImFontAtlas_GetGlyphRangesKorean"][1]["funcname"] = "GetGlyphRangesKorean" -defs["ImFontAtlas_GetGlyphRangesKorean"][1]["location"] = "imgui:2656" +defs["ImFontAtlas_GetGlyphRangesKorean"][1]["location"] = "imgui:2671" defs["ImFontAtlas_GetGlyphRangesKorean"][1]["ov_cimguiname"] = "ImFontAtlas_GetGlyphRangesKorean" defs["ImFontAtlas_GetGlyphRangesKorean"][1]["ret"] = "const ImWchar*" defs["ImFontAtlas_GetGlyphRangesKorean"][1]["signature"] = "()" @@ -2763,7 +2763,7 @@ defs["ImFontAtlas_GetGlyphRangesThai"][1]["call_args"] = "()" defs["ImFontAtlas_GetGlyphRangesThai"][1]["cimguiname"] = "ImFontAtlas_GetGlyphRangesThai" defs["ImFontAtlas_GetGlyphRangesThai"][1]["defaults"] = {} defs["ImFontAtlas_GetGlyphRangesThai"][1]["funcname"] = "GetGlyphRangesThai" -defs["ImFontAtlas_GetGlyphRangesThai"][1]["location"] = "imgui:2661" +defs["ImFontAtlas_GetGlyphRangesThai"][1]["location"] = "imgui:2676" defs["ImFontAtlas_GetGlyphRangesThai"][1]["ov_cimguiname"] = "ImFontAtlas_GetGlyphRangesThai" defs["ImFontAtlas_GetGlyphRangesThai"][1]["ret"] = "const ImWchar*" defs["ImFontAtlas_GetGlyphRangesThai"][1]["signature"] = "()" @@ -2781,7 +2781,7 @@ defs["ImFontAtlas_GetGlyphRangesVietnamese"][1]["call_args"] = "()" defs["ImFontAtlas_GetGlyphRangesVietnamese"][1]["cimguiname"] = "ImFontAtlas_GetGlyphRangesVietnamese" defs["ImFontAtlas_GetGlyphRangesVietnamese"][1]["defaults"] = {} defs["ImFontAtlas_GetGlyphRangesVietnamese"][1]["funcname"] = "GetGlyphRangesVietnamese" -defs["ImFontAtlas_GetGlyphRangesVietnamese"][1]["location"] = "imgui:2662" +defs["ImFontAtlas_GetGlyphRangesVietnamese"][1]["location"] = "imgui:2677" defs["ImFontAtlas_GetGlyphRangesVietnamese"][1]["ov_cimguiname"] = "ImFontAtlas_GetGlyphRangesVietnamese" defs["ImFontAtlas_GetGlyphRangesVietnamese"][1]["ret"] = "const ImWchar*" defs["ImFontAtlas_GetGlyphRangesVietnamese"][1]["signature"] = "()" @@ -2814,7 +2814,7 @@ defs["ImFontAtlas_GetMouseCursorTexData"][1]["call_args"] = "(cursor,out_offset, defs["ImFontAtlas_GetMouseCursorTexData"][1]["cimguiname"] = "ImFontAtlas_GetMouseCursorTexData" defs["ImFontAtlas_GetMouseCursorTexData"][1]["defaults"] = {} defs["ImFontAtlas_GetMouseCursorTexData"][1]["funcname"] = "GetMouseCursorTexData" -defs["ImFontAtlas_GetMouseCursorTexData"][1]["location"] = "imgui:2681" +defs["ImFontAtlas_GetMouseCursorTexData"][1]["location"] = "imgui:2696" defs["ImFontAtlas_GetMouseCursorTexData"][1]["ov_cimguiname"] = "ImFontAtlas_GetMouseCursorTexData" defs["ImFontAtlas_GetMouseCursorTexData"][1]["ret"] = "bool" defs["ImFontAtlas_GetMouseCursorTexData"][1]["signature"] = "(ImGuiMouseCursor,ImVec2*,ImVec2*,ImVec2[2],ImVec2[2])" @@ -2845,7 +2845,7 @@ defs["ImFontAtlas_GetTexDataAsAlpha8"][1]["cimguiname"] = "ImFontAtlas_GetTexDat defs["ImFontAtlas_GetTexDataAsAlpha8"][1]["defaults"] = {} defs["ImFontAtlas_GetTexDataAsAlpha8"][1]["defaults"]["out_bytes_per_pixel"] = "NULL" defs["ImFontAtlas_GetTexDataAsAlpha8"][1]["funcname"] = "GetTexDataAsAlpha8" -defs["ImFontAtlas_GetTexDataAsAlpha8"][1]["location"] = "imgui:2643" +defs["ImFontAtlas_GetTexDataAsAlpha8"][1]["location"] = "imgui:2658" defs["ImFontAtlas_GetTexDataAsAlpha8"][1]["ov_cimguiname"] = "ImFontAtlas_GetTexDataAsAlpha8" defs["ImFontAtlas_GetTexDataAsAlpha8"][1]["ret"] = "void" defs["ImFontAtlas_GetTexDataAsAlpha8"][1]["signature"] = "(unsigned char**,int*,int*,int*)" @@ -2876,7 +2876,7 @@ defs["ImFontAtlas_GetTexDataAsRGBA32"][1]["cimguiname"] = "ImFontAtlas_GetTexDat defs["ImFontAtlas_GetTexDataAsRGBA32"][1]["defaults"] = {} defs["ImFontAtlas_GetTexDataAsRGBA32"][1]["defaults"]["out_bytes_per_pixel"] = "NULL" defs["ImFontAtlas_GetTexDataAsRGBA32"][1]["funcname"] = "GetTexDataAsRGBA32" -defs["ImFontAtlas_GetTexDataAsRGBA32"][1]["location"] = "imgui:2644" +defs["ImFontAtlas_GetTexDataAsRGBA32"][1]["location"] = "imgui:2659" defs["ImFontAtlas_GetTexDataAsRGBA32"][1]["ov_cimguiname"] = "ImFontAtlas_GetTexDataAsRGBA32" defs["ImFontAtlas_GetTexDataAsRGBA32"][1]["ret"] = "void" defs["ImFontAtlas_GetTexDataAsRGBA32"][1]["signature"] = "(unsigned char**,int*,int*,int*)" @@ -2892,7 +2892,7 @@ defs["ImFontAtlas_ImFontAtlas"][1]["cimguiname"] = "ImFontAtlas_ImFontAtlas" defs["ImFontAtlas_ImFontAtlas"][1]["constructor"] = true defs["ImFontAtlas_ImFontAtlas"][1]["defaults"] = {} defs["ImFontAtlas_ImFontAtlas"][1]["funcname"] = "ImFontAtlas" -defs["ImFontAtlas_ImFontAtlas"][1]["location"] = "imgui:2624" +defs["ImFontAtlas_ImFontAtlas"][1]["location"] = "imgui:2639" defs["ImFontAtlas_ImFontAtlas"][1]["ov_cimguiname"] = "ImFontAtlas_ImFontAtlas" defs["ImFontAtlas_ImFontAtlas"][1]["signature"] = "()" defs["ImFontAtlas_ImFontAtlas"][1]["stname"] = "ImFontAtlas" @@ -2909,7 +2909,7 @@ defs["ImFontAtlas_IsBuilt"][1]["call_args"] = "()" defs["ImFontAtlas_IsBuilt"][1]["cimguiname"] = "ImFontAtlas_IsBuilt" defs["ImFontAtlas_IsBuilt"][1]["defaults"] = {} defs["ImFontAtlas_IsBuilt"][1]["funcname"] = "IsBuilt" -defs["ImFontAtlas_IsBuilt"][1]["location"] = "imgui:2645" +defs["ImFontAtlas_IsBuilt"][1]["location"] = "imgui:2660" defs["ImFontAtlas_IsBuilt"][1]["ov_cimguiname"] = "ImFontAtlas_IsBuilt" defs["ImFontAtlas_IsBuilt"][1]["ret"] = "bool" defs["ImFontAtlas_IsBuilt"][1]["signature"] = "()const" @@ -2930,7 +2930,7 @@ defs["ImFontAtlas_SetTexID"][1]["call_args"] = "(id)" defs["ImFontAtlas_SetTexID"][1]["cimguiname"] = "ImFontAtlas_SetTexID" defs["ImFontAtlas_SetTexID"][1]["defaults"] = {} defs["ImFontAtlas_SetTexID"][1]["funcname"] = "SetTexID" -defs["ImFontAtlas_SetTexID"][1]["location"] = "imgui:2646" +defs["ImFontAtlas_SetTexID"][1]["location"] = "imgui:2661" defs["ImFontAtlas_SetTexID"][1]["ov_cimguiname"] = "ImFontAtlas_SetTexID" defs["ImFontAtlas_SetTexID"][1]["ret"] = "void" defs["ImFontAtlas_SetTexID"][1]["signature"] = "(ImTextureID)" @@ -2947,7 +2947,7 @@ defs["ImFontAtlas_destroy"][1]["call_args"] = "(self)" defs["ImFontAtlas_destroy"][1]["cimguiname"] = "ImFontAtlas_destroy" defs["ImFontAtlas_destroy"][1]["defaults"] = {} defs["ImFontAtlas_destroy"][1]["destructor"] = true -defs["ImFontAtlas_destroy"][1]["location"] = "imgui:2625" +defs["ImFontAtlas_destroy"][1]["location"] = "imgui:2640" defs["ImFontAtlas_destroy"][1]["ov_cimguiname"] = "ImFontAtlas_destroy" defs["ImFontAtlas_destroy"][1]["realdestructor"] = true defs["ImFontAtlas_destroy"][1]["ret"] = "void" @@ -2964,7 +2964,7 @@ defs["ImFontConfig_ImFontConfig"][1]["cimguiname"] = "ImFontConfig_ImFontConfig" defs["ImFontConfig_ImFontConfig"][1]["constructor"] = true defs["ImFontConfig_ImFontConfig"][1]["defaults"] = {} defs["ImFontConfig_ImFontConfig"][1]["funcname"] = "ImFontConfig" -defs["ImFontConfig_ImFontConfig"][1]["location"] = "imgui:2552" +defs["ImFontConfig_ImFontConfig"][1]["location"] = "imgui:2567" defs["ImFontConfig_ImFontConfig"][1]["ov_cimguiname"] = "ImFontConfig_ImFontConfig" defs["ImFontConfig_ImFontConfig"][1]["signature"] = "()" defs["ImFontConfig_ImFontConfig"][1]["stname"] = "ImFontConfig" @@ -3000,7 +3000,7 @@ defs["ImFontGlyphRangesBuilder_AddChar"][1]["call_args"] = "(c)" defs["ImFontGlyphRangesBuilder_AddChar"][1]["cimguiname"] = "ImFontGlyphRangesBuilder_AddChar" defs["ImFontGlyphRangesBuilder_AddChar"][1]["defaults"] = {} defs["ImFontGlyphRangesBuilder_AddChar"][1]["funcname"] = "AddChar" -defs["ImFontGlyphRangesBuilder_AddChar"][1]["location"] = "imgui:2577" +defs["ImFontGlyphRangesBuilder_AddChar"][1]["location"] = "imgui:2592" defs["ImFontGlyphRangesBuilder_AddChar"][1]["ov_cimguiname"] = "ImFontGlyphRangesBuilder_AddChar" defs["ImFontGlyphRangesBuilder_AddChar"][1]["ret"] = "void" defs["ImFontGlyphRangesBuilder_AddChar"][1]["signature"] = "(ImWchar)" @@ -3021,7 +3021,7 @@ defs["ImFontGlyphRangesBuilder_AddRanges"][1]["call_args"] = "(ranges)" defs["ImFontGlyphRangesBuilder_AddRanges"][1]["cimguiname"] = "ImFontGlyphRangesBuilder_AddRanges" defs["ImFontGlyphRangesBuilder_AddRanges"][1]["defaults"] = {} defs["ImFontGlyphRangesBuilder_AddRanges"][1]["funcname"] = "AddRanges" -defs["ImFontGlyphRangesBuilder_AddRanges"][1]["location"] = "imgui:2579" +defs["ImFontGlyphRangesBuilder_AddRanges"][1]["location"] = "imgui:2594" defs["ImFontGlyphRangesBuilder_AddRanges"][1]["ov_cimguiname"] = "ImFontGlyphRangesBuilder_AddRanges" defs["ImFontGlyphRangesBuilder_AddRanges"][1]["ret"] = "void" defs["ImFontGlyphRangesBuilder_AddRanges"][1]["signature"] = "(const ImWchar*)" @@ -3046,7 +3046,7 @@ defs["ImFontGlyphRangesBuilder_AddText"][1]["cimguiname"] = "ImFontGlyphRangesBu defs["ImFontGlyphRangesBuilder_AddText"][1]["defaults"] = {} defs["ImFontGlyphRangesBuilder_AddText"][1]["defaults"]["text_end"] = "NULL" defs["ImFontGlyphRangesBuilder_AddText"][1]["funcname"] = "AddText" -defs["ImFontGlyphRangesBuilder_AddText"][1]["location"] = "imgui:2578" +defs["ImFontGlyphRangesBuilder_AddText"][1]["location"] = "imgui:2593" defs["ImFontGlyphRangesBuilder_AddText"][1]["ov_cimguiname"] = "ImFontGlyphRangesBuilder_AddText" defs["ImFontGlyphRangesBuilder_AddText"][1]["ret"] = "void" defs["ImFontGlyphRangesBuilder_AddText"][1]["signature"] = "(const char*,const char*)" @@ -3067,7 +3067,7 @@ defs["ImFontGlyphRangesBuilder_BuildRanges"][1]["call_args"] = "(out_ranges)" defs["ImFontGlyphRangesBuilder_BuildRanges"][1]["cimguiname"] = "ImFontGlyphRangesBuilder_BuildRanges" defs["ImFontGlyphRangesBuilder_BuildRanges"][1]["defaults"] = {} defs["ImFontGlyphRangesBuilder_BuildRanges"][1]["funcname"] = "BuildRanges" -defs["ImFontGlyphRangesBuilder_BuildRanges"][1]["location"] = "imgui:2580" +defs["ImFontGlyphRangesBuilder_BuildRanges"][1]["location"] = "imgui:2595" defs["ImFontGlyphRangesBuilder_BuildRanges"][1]["ov_cimguiname"] = "ImFontGlyphRangesBuilder_BuildRanges" defs["ImFontGlyphRangesBuilder_BuildRanges"][1]["ret"] = "void" defs["ImFontGlyphRangesBuilder_BuildRanges"][1]["signature"] = "(ImVector_ImWchar*)" @@ -3085,7 +3085,7 @@ defs["ImFontGlyphRangesBuilder_Clear"][1]["call_args"] = "()" defs["ImFontGlyphRangesBuilder_Clear"][1]["cimguiname"] = "ImFontGlyphRangesBuilder_Clear" defs["ImFontGlyphRangesBuilder_Clear"][1]["defaults"] = {} defs["ImFontGlyphRangesBuilder_Clear"][1]["funcname"] = "Clear" -defs["ImFontGlyphRangesBuilder_Clear"][1]["location"] = "imgui:2574" +defs["ImFontGlyphRangesBuilder_Clear"][1]["location"] = "imgui:2589" defs["ImFontGlyphRangesBuilder_Clear"][1]["ov_cimguiname"] = "ImFontGlyphRangesBuilder_Clear" defs["ImFontGlyphRangesBuilder_Clear"][1]["ret"] = "void" defs["ImFontGlyphRangesBuilder_Clear"][1]["signature"] = "()" @@ -3106,7 +3106,7 @@ defs["ImFontGlyphRangesBuilder_GetBit"][1]["call_args"] = "(n)" defs["ImFontGlyphRangesBuilder_GetBit"][1]["cimguiname"] = "ImFontGlyphRangesBuilder_GetBit" defs["ImFontGlyphRangesBuilder_GetBit"][1]["defaults"] = {} defs["ImFontGlyphRangesBuilder_GetBit"][1]["funcname"] = "GetBit" -defs["ImFontGlyphRangesBuilder_GetBit"][1]["location"] = "imgui:2575" +defs["ImFontGlyphRangesBuilder_GetBit"][1]["location"] = "imgui:2590" defs["ImFontGlyphRangesBuilder_GetBit"][1]["ov_cimguiname"] = "ImFontGlyphRangesBuilder_GetBit" defs["ImFontGlyphRangesBuilder_GetBit"][1]["ret"] = "bool" defs["ImFontGlyphRangesBuilder_GetBit"][1]["signature"] = "(size_t)const" @@ -3122,7 +3122,7 @@ defs["ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder"][1]["cimguiname"] = "Im defs["ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder"][1]["constructor"] = true defs["ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder"][1]["defaults"] = {} defs["ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder"][1]["funcname"] = "ImFontGlyphRangesBuilder" -defs["ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder"][1]["location"] = "imgui:2573" +defs["ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder"][1]["location"] = "imgui:2588" defs["ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder"][1]["ov_cimguiname"] = "ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder" defs["ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder"][1]["signature"] = "()" defs["ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder"][1]["stname"] = "ImFontGlyphRangesBuilder" @@ -3142,7 +3142,7 @@ defs["ImFontGlyphRangesBuilder_SetBit"][1]["call_args"] = "(n)" defs["ImFontGlyphRangesBuilder_SetBit"][1]["cimguiname"] = "ImFontGlyphRangesBuilder_SetBit" defs["ImFontGlyphRangesBuilder_SetBit"][1]["defaults"] = {} defs["ImFontGlyphRangesBuilder_SetBit"][1]["funcname"] = "SetBit" -defs["ImFontGlyphRangesBuilder_SetBit"][1]["location"] = "imgui:2576" +defs["ImFontGlyphRangesBuilder_SetBit"][1]["location"] = "imgui:2591" defs["ImFontGlyphRangesBuilder_SetBit"][1]["ov_cimguiname"] = "ImFontGlyphRangesBuilder_SetBit" defs["ImFontGlyphRangesBuilder_SetBit"][1]["ret"] = "void" defs["ImFontGlyphRangesBuilder_SetBit"][1]["signature"] = "(size_t)" @@ -3209,7 +3209,7 @@ defs["ImFont_AddGlyph"][1]["call_args"] = "(src_cfg,c,x0,y0,x1,y1,u0,v0,u1,v1,ad defs["ImFont_AddGlyph"][1]["cimguiname"] = "ImFont_AddGlyph" defs["ImFont_AddGlyph"][1]["defaults"] = {} defs["ImFont_AddGlyph"][1]["funcname"] = "AddGlyph" -defs["ImFont_AddGlyph"][1]["location"] = "imgui:2769" +defs["ImFont_AddGlyph"][1]["location"] = "imgui:2784" defs["ImFont_AddGlyph"][1]["ov_cimguiname"] = "ImFont_AddGlyph" defs["ImFont_AddGlyph"][1]["ret"] = "void" defs["ImFont_AddGlyph"][1]["signature"] = "(const ImFontConfig*,ImWchar,float,float,float,float,float,float,float,float,float)" @@ -3237,7 +3237,7 @@ defs["ImFont_AddRemapChar"][1]["cimguiname"] = "ImFont_AddRemapChar" defs["ImFont_AddRemapChar"][1]["defaults"] = {} defs["ImFont_AddRemapChar"][1]["defaults"]["overwrite_dst"] = "true" defs["ImFont_AddRemapChar"][1]["funcname"] = "AddRemapChar" -defs["ImFont_AddRemapChar"][1]["location"] = "imgui:2770" +defs["ImFont_AddRemapChar"][1]["location"] = "imgui:2785" defs["ImFont_AddRemapChar"][1]["ov_cimguiname"] = "ImFont_AddRemapChar" defs["ImFont_AddRemapChar"][1]["ret"] = "void" defs["ImFont_AddRemapChar"][1]["signature"] = "(ImWchar,ImWchar,bool)" @@ -3255,7 +3255,7 @@ defs["ImFont_BuildLookupTable"][1]["call_args"] = "()" defs["ImFont_BuildLookupTable"][1]["cimguiname"] = "ImFont_BuildLookupTable" defs["ImFont_BuildLookupTable"][1]["defaults"] = {} defs["ImFont_BuildLookupTable"][1]["funcname"] = "BuildLookupTable" -defs["ImFont_BuildLookupTable"][1]["location"] = "imgui:2766" +defs["ImFont_BuildLookupTable"][1]["location"] = "imgui:2781" defs["ImFont_BuildLookupTable"][1]["ov_cimguiname"] = "ImFont_BuildLookupTable" defs["ImFont_BuildLookupTable"][1]["ret"] = "void" defs["ImFont_BuildLookupTable"][1]["signature"] = "()" @@ -3296,7 +3296,7 @@ defs["ImFont_CalcTextSizeA"][1]["defaults"] = {} defs["ImFont_CalcTextSizeA"][1]["defaults"]["remaining"] = "NULL" defs["ImFont_CalcTextSizeA"][1]["defaults"]["text_end"] = "NULL" defs["ImFont_CalcTextSizeA"][1]["funcname"] = "CalcTextSizeA" -defs["ImFont_CalcTextSizeA"][1]["location"] = "imgui:2760" +defs["ImFont_CalcTextSizeA"][1]["location"] = "imgui:2775" defs["ImFont_CalcTextSizeA"][1]["nonUDT"] = 1 defs["ImFont_CalcTextSizeA"][1]["ov_cimguiname"] = "ImFont_CalcTextSizeA" defs["ImFont_CalcTextSizeA"][1]["ret"] = "void" @@ -3327,7 +3327,7 @@ defs["ImFont_CalcWordWrapPositionA"][1]["call_args"] = "(scale,text,text_end,wra defs["ImFont_CalcWordWrapPositionA"][1]["cimguiname"] = "ImFont_CalcWordWrapPositionA" defs["ImFont_CalcWordWrapPositionA"][1]["defaults"] = {} defs["ImFont_CalcWordWrapPositionA"][1]["funcname"] = "CalcWordWrapPositionA" -defs["ImFont_CalcWordWrapPositionA"][1]["location"] = "imgui:2761" +defs["ImFont_CalcWordWrapPositionA"][1]["location"] = "imgui:2776" defs["ImFont_CalcWordWrapPositionA"][1]["ov_cimguiname"] = "ImFont_CalcWordWrapPositionA" defs["ImFont_CalcWordWrapPositionA"][1]["ret"] = "const char*" defs["ImFont_CalcWordWrapPositionA"][1]["signature"] = "(float,const char*,const char*,float)const" @@ -3345,7 +3345,7 @@ defs["ImFont_ClearOutputData"][1]["call_args"] = "()" defs["ImFont_ClearOutputData"][1]["cimguiname"] = "ImFont_ClearOutputData" defs["ImFont_ClearOutputData"][1]["defaults"] = {} defs["ImFont_ClearOutputData"][1]["funcname"] = "ClearOutputData" -defs["ImFont_ClearOutputData"][1]["location"] = "imgui:2767" +defs["ImFont_ClearOutputData"][1]["location"] = "imgui:2782" defs["ImFont_ClearOutputData"][1]["ov_cimguiname"] = "ImFont_ClearOutputData" defs["ImFont_ClearOutputData"][1]["ret"] = "void" defs["ImFont_ClearOutputData"][1]["signature"] = "()" @@ -3366,7 +3366,7 @@ defs["ImFont_FindGlyph"][1]["call_args"] = "(c)" defs["ImFont_FindGlyph"][1]["cimguiname"] = "ImFont_FindGlyph" defs["ImFont_FindGlyph"][1]["defaults"] = {} defs["ImFont_FindGlyph"][1]["funcname"] = "FindGlyph" -defs["ImFont_FindGlyph"][1]["location"] = "imgui:2752" +defs["ImFont_FindGlyph"][1]["location"] = "imgui:2767" defs["ImFont_FindGlyph"][1]["ov_cimguiname"] = "ImFont_FindGlyph" defs["ImFont_FindGlyph"][1]["ret"] = "const ImFontGlyph*" defs["ImFont_FindGlyph"][1]["signature"] = "(ImWchar)const" @@ -3387,7 +3387,7 @@ defs["ImFont_FindGlyphNoFallback"][1]["call_args"] = "(c)" defs["ImFont_FindGlyphNoFallback"][1]["cimguiname"] = "ImFont_FindGlyphNoFallback" defs["ImFont_FindGlyphNoFallback"][1]["defaults"] = {} defs["ImFont_FindGlyphNoFallback"][1]["funcname"] = "FindGlyphNoFallback" -defs["ImFont_FindGlyphNoFallback"][1]["location"] = "imgui:2753" +defs["ImFont_FindGlyphNoFallback"][1]["location"] = "imgui:2768" defs["ImFont_FindGlyphNoFallback"][1]["ov_cimguiname"] = "ImFont_FindGlyphNoFallback" defs["ImFont_FindGlyphNoFallback"][1]["ret"] = "const ImFontGlyph*" defs["ImFont_FindGlyphNoFallback"][1]["signature"] = "(ImWchar)const" @@ -3408,7 +3408,7 @@ defs["ImFont_GetCharAdvance"][1]["call_args"] = "(c)" defs["ImFont_GetCharAdvance"][1]["cimguiname"] = "ImFont_GetCharAdvance" defs["ImFont_GetCharAdvance"][1]["defaults"] = {} defs["ImFont_GetCharAdvance"][1]["funcname"] = "GetCharAdvance" -defs["ImFont_GetCharAdvance"][1]["location"] = "imgui:2754" +defs["ImFont_GetCharAdvance"][1]["location"] = "imgui:2769" defs["ImFont_GetCharAdvance"][1]["ov_cimguiname"] = "ImFont_GetCharAdvance" defs["ImFont_GetCharAdvance"][1]["ret"] = "float" defs["ImFont_GetCharAdvance"][1]["signature"] = "(ImWchar)const" @@ -3426,7 +3426,7 @@ defs["ImFont_GetDebugName"][1]["call_args"] = "()" defs["ImFont_GetDebugName"][1]["cimguiname"] = "ImFont_GetDebugName" defs["ImFont_GetDebugName"][1]["defaults"] = {} defs["ImFont_GetDebugName"][1]["funcname"] = "GetDebugName" -defs["ImFont_GetDebugName"][1]["location"] = "imgui:2756" +defs["ImFont_GetDebugName"][1]["location"] = "imgui:2771" defs["ImFont_GetDebugName"][1]["ov_cimguiname"] = "ImFont_GetDebugName" defs["ImFont_GetDebugName"][1]["ret"] = "const char*" defs["ImFont_GetDebugName"][1]["signature"] = "()const" @@ -3447,7 +3447,7 @@ defs["ImFont_GrowIndex"][1]["call_args"] = "(new_size)" defs["ImFont_GrowIndex"][1]["cimguiname"] = "ImFont_GrowIndex" defs["ImFont_GrowIndex"][1]["defaults"] = {} defs["ImFont_GrowIndex"][1]["funcname"] = "GrowIndex" -defs["ImFont_GrowIndex"][1]["location"] = "imgui:2768" +defs["ImFont_GrowIndex"][1]["location"] = "imgui:2783" defs["ImFont_GrowIndex"][1]["ov_cimguiname"] = "ImFont_GrowIndex" defs["ImFont_GrowIndex"][1]["ret"] = "void" defs["ImFont_GrowIndex"][1]["signature"] = "(int)" @@ -3463,7 +3463,7 @@ defs["ImFont_ImFont"][1]["cimguiname"] = "ImFont_ImFont" defs["ImFont_ImFont"][1]["constructor"] = true defs["ImFont_ImFont"][1]["defaults"] = {} defs["ImFont_ImFont"][1]["funcname"] = "ImFont" -defs["ImFont_ImFont"][1]["location"] = "imgui:2750" +defs["ImFont_ImFont"][1]["location"] = "imgui:2765" defs["ImFont_ImFont"][1]["ov_cimguiname"] = "ImFont_ImFont" defs["ImFont_ImFont"][1]["signature"] = "()" defs["ImFont_ImFont"][1]["stname"] = "ImFont" @@ -3486,7 +3486,7 @@ defs["ImFont_IsGlyphRangeUnused"][1]["call_args"] = "(c_begin,c_last)" defs["ImFont_IsGlyphRangeUnused"][1]["cimguiname"] = "ImFont_IsGlyphRangeUnused" defs["ImFont_IsGlyphRangeUnused"][1]["defaults"] = {} defs["ImFont_IsGlyphRangeUnused"][1]["funcname"] = "IsGlyphRangeUnused" -defs["ImFont_IsGlyphRangeUnused"][1]["location"] = "imgui:2772" +defs["ImFont_IsGlyphRangeUnused"][1]["location"] = "imgui:2787" defs["ImFont_IsGlyphRangeUnused"][1]["ov_cimguiname"] = "ImFont_IsGlyphRangeUnused" defs["ImFont_IsGlyphRangeUnused"][1]["ret"] = "bool" defs["ImFont_IsGlyphRangeUnused"][1]["signature"] = "(unsigned int,unsigned int)" @@ -3504,7 +3504,7 @@ defs["ImFont_IsLoaded"][1]["call_args"] = "()" defs["ImFont_IsLoaded"][1]["cimguiname"] = "ImFont_IsLoaded" defs["ImFont_IsLoaded"][1]["defaults"] = {} defs["ImFont_IsLoaded"][1]["funcname"] = "IsLoaded" -defs["ImFont_IsLoaded"][1]["location"] = "imgui:2755" +defs["ImFont_IsLoaded"][1]["location"] = "imgui:2770" defs["ImFont_IsLoaded"][1]["ov_cimguiname"] = "ImFont_IsLoaded" defs["ImFont_IsLoaded"][1]["ret"] = "bool" defs["ImFont_IsLoaded"][1]["signature"] = "()const" @@ -3537,7 +3537,7 @@ defs["ImFont_RenderChar"][1]["call_args"] = "(draw_list,size,pos,col,c)" defs["ImFont_RenderChar"][1]["cimguiname"] = "ImFont_RenderChar" defs["ImFont_RenderChar"][1]["defaults"] = {} defs["ImFont_RenderChar"][1]["funcname"] = "RenderChar" -defs["ImFont_RenderChar"][1]["location"] = "imgui:2762" +defs["ImFont_RenderChar"][1]["location"] = "imgui:2777" defs["ImFont_RenderChar"][1]["ov_cimguiname"] = "ImFont_RenderChar" defs["ImFont_RenderChar"][1]["ret"] = "void" defs["ImFont_RenderChar"][1]["signature"] = "(ImDrawList*,float,ImVec2,ImU32,ImWchar)const" @@ -3584,7 +3584,7 @@ defs["ImFont_RenderText"][1]["defaults"] = {} defs["ImFont_RenderText"][1]["defaults"]["cpu_fine_clip"] = "false" defs["ImFont_RenderText"][1]["defaults"]["wrap_width"] = "0.0f" defs["ImFont_RenderText"][1]["funcname"] = "RenderText" -defs["ImFont_RenderText"][1]["location"] = "imgui:2763" +defs["ImFont_RenderText"][1]["location"] = "imgui:2778" defs["ImFont_RenderText"][1]["ov_cimguiname"] = "ImFont_RenderText" defs["ImFont_RenderText"][1]["ret"] = "void" defs["ImFont_RenderText"][1]["signature"] = "(ImDrawList*,float,ImVec2,ImU32,const ImVec4,const char*,const char*,float,bool)const" @@ -3608,7 +3608,7 @@ defs["ImFont_SetGlyphVisible"][1]["call_args"] = "(c,visible)" defs["ImFont_SetGlyphVisible"][1]["cimguiname"] = "ImFont_SetGlyphVisible" defs["ImFont_SetGlyphVisible"][1]["defaults"] = {} defs["ImFont_SetGlyphVisible"][1]["funcname"] = "SetGlyphVisible" -defs["ImFont_SetGlyphVisible"][1]["location"] = "imgui:2771" +defs["ImFont_SetGlyphVisible"][1]["location"] = "imgui:2786" defs["ImFont_SetGlyphVisible"][1]["ov_cimguiname"] = "ImFont_SetGlyphVisible" defs["ImFont_SetGlyphVisible"][1]["ret"] = "void" defs["ImFont_SetGlyphVisible"][1]["signature"] = "(ImWchar,bool)" @@ -3625,7 +3625,7 @@ defs["ImFont_destroy"][1]["call_args"] = "(self)" defs["ImFont_destroy"][1]["cimguiname"] = "ImFont_destroy" defs["ImFont_destroy"][1]["defaults"] = {} defs["ImFont_destroy"][1]["destructor"] = true -defs["ImFont_destroy"][1]["location"] = "imgui:2751" +defs["ImFont_destroy"][1]["location"] = "imgui:2766" defs["ImFont_destroy"][1]["ov_cimguiname"] = "ImFont_destroy" defs["ImFont_destroy"][1]["realdestructor"] = true defs["ImFont_destroy"][1]["ret"] = "void" @@ -3647,7 +3647,7 @@ defs["ImGuiIO_AddFocusEvent"][1]["call_args"] = "(focused)" defs["ImGuiIO_AddFocusEvent"][1]["cimguiname"] = "ImGuiIO_AddFocusEvent" defs["ImGuiIO_AddFocusEvent"][1]["defaults"] = {} defs["ImGuiIO_AddFocusEvent"][1]["funcname"] = "AddFocusEvent" -defs["ImGuiIO_AddFocusEvent"][1]["location"] = "imgui:1891" +defs["ImGuiIO_AddFocusEvent"][1]["location"] = "imgui:1898" defs["ImGuiIO_AddFocusEvent"][1]["ov_cimguiname"] = "ImGuiIO_AddFocusEvent" defs["ImGuiIO_AddFocusEvent"][1]["ret"] = "void" defs["ImGuiIO_AddFocusEvent"][1]["signature"] = "(bool)" @@ -3668,7 +3668,7 @@ defs["ImGuiIO_AddInputCharacter"][1]["call_args"] = "(c)" defs["ImGuiIO_AddInputCharacter"][1]["cimguiname"] = "ImGuiIO_AddInputCharacter" defs["ImGuiIO_AddInputCharacter"][1]["defaults"] = {} defs["ImGuiIO_AddInputCharacter"][1]["funcname"] = "AddInputCharacter" -defs["ImGuiIO_AddInputCharacter"][1]["location"] = "imgui:1887" +defs["ImGuiIO_AddInputCharacter"][1]["location"] = "imgui:1895" defs["ImGuiIO_AddInputCharacter"][1]["ov_cimguiname"] = "ImGuiIO_AddInputCharacter" defs["ImGuiIO_AddInputCharacter"][1]["ret"] = "void" defs["ImGuiIO_AddInputCharacter"][1]["signature"] = "(unsigned int)" @@ -3689,7 +3689,7 @@ defs["ImGuiIO_AddInputCharacterUTF16"][1]["call_args"] = "(c)" defs["ImGuiIO_AddInputCharacterUTF16"][1]["cimguiname"] = "ImGuiIO_AddInputCharacterUTF16" defs["ImGuiIO_AddInputCharacterUTF16"][1]["defaults"] = {} defs["ImGuiIO_AddInputCharacterUTF16"][1]["funcname"] = "AddInputCharacterUTF16" -defs["ImGuiIO_AddInputCharacterUTF16"][1]["location"] = "imgui:1888" +defs["ImGuiIO_AddInputCharacterUTF16"][1]["location"] = "imgui:1896" defs["ImGuiIO_AddInputCharacterUTF16"][1]["ov_cimguiname"] = "ImGuiIO_AddInputCharacterUTF16" defs["ImGuiIO_AddInputCharacterUTF16"][1]["ret"] = "void" defs["ImGuiIO_AddInputCharacterUTF16"][1]["signature"] = "(ImWchar16)" @@ -3710,7 +3710,7 @@ defs["ImGuiIO_AddInputCharactersUTF8"][1]["call_args"] = "(str)" defs["ImGuiIO_AddInputCharactersUTF8"][1]["cimguiname"] = "ImGuiIO_AddInputCharactersUTF8" defs["ImGuiIO_AddInputCharactersUTF8"][1]["defaults"] = {} defs["ImGuiIO_AddInputCharactersUTF8"][1]["funcname"] = "AddInputCharactersUTF8" -defs["ImGuiIO_AddInputCharactersUTF8"][1]["location"] = "imgui:1889" +defs["ImGuiIO_AddInputCharactersUTF8"][1]["location"] = "imgui:1897" defs["ImGuiIO_AddInputCharactersUTF8"][1]["ov_cimguiname"] = "ImGuiIO_AddInputCharactersUTF8" defs["ImGuiIO_AddInputCharactersUTF8"][1]["ret"] = "void" defs["ImGuiIO_AddInputCharactersUTF8"][1]["signature"] = "(const char*)" @@ -3728,12 +3728,30 @@ defs["ImGuiIO_ClearInputCharacters"][1]["call_args"] = "()" defs["ImGuiIO_ClearInputCharacters"][1]["cimguiname"] = "ImGuiIO_ClearInputCharacters" defs["ImGuiIO_ClearInputCharacters"][1]["defaults"] = {} defs["ImGuiIO_ClearInputCharacters"][1]["funcname"] = "ClearInputCharacters" -defs["ImGuiIO_ClearInputCharacters"][1]["location"] = "imgui:1890" +defs["ImGuiIO_ClearInputCharacters"][1]["location"] = "imgui:1899" defs["ImGuiIO_ClearInputCharacters"][1]["ov_cimguiname"] = "ImGuiIO_ClearInputCharacters" defs["ImGuiIO_ClearInputCharacters"][1]["ret"] = "void" defs["ImGuiIO_ClearInputCharacters"][1]["signature"] = "()" defs["ImGuiIO_ClearInputCharacters"][1]["stname"] = "ImGuiIO" defs["ImGuiIO_ClearInputCharacters"]["()"] = defs["ImGuiIO_ClearInputCharacters"][1] +defs["ImGuiIO_ClearInputKeys"] = {} +defs["ImGuiIO_ClearInputKeys"][1] = {} +defs["ImGuiIO_ClearInputKeys"][1]["args"] = "(ImGuiIO* self)" +defs["ImGuiIO_ClearInputKeys"][1]["argsT"] = {} +defs["ImGuiIO_ClearInputKeys"][1]["argsT"][1] = {} +defs["ImGuiIO_ClearInputKeys"][1]["argsT"][1]["name"] = "self" +defs["ImGuiIO_ClearInputKeys"][1]["argsT"][1]["type"] = "ImGuiIO*" +defs["ImGuiIO_ClearInputKeys"][1]["argsoriginal"] = "()" +defs["ImGuiIO_ClearInputKeys"][1]["call_args"] = "()" +defs["ImGuiIO_ClearInputKeys"][1]["cimguiname"] = "ImGuiIO_ClearInputKeys" +defs["ImGuiIO_ClearInputKeys"][1]["defaults"] = {} +defs["ImGuiIO_ClearInputKeys"][1]["funcname"] = "ClearInputKeys" +defs["ImGuiIO_ClearInputKeys"][1]["location"] = "imgui:1900" +defs["ImGuiIO_ClearInputKeys"][1]["ov_cimguiname"] = "ImGuiIO_ClearInputKeys" +defs["ImGuiIO_ClearInputKeys"][1]["ret"] = "void" +defs["ImGuiIO_ClearInputKeys"][1]["signature"] = "()" +defs["ImGuiIO_ClearInputKeys"][1]["stname"] = "ImGuiIO" +defs["ImGuiIO_ClearInputKeys"]["()"] = defs["ImGuiIO_ClearInputKeys"][1] defs["ImGuiIO_ImGuiIO"] = {} defs["ImGuiIO_ImGuiIO"][1] = {} defs["ImGuiIO_ImGuiIO"][1]["args"] = "()" @@ -3744,7 +3762,7 @@ defs["ImGuiIO_ImGuiIO"][1]["cimguiname"] = "ImGuiIO_ImGuiIO" defs["ImGuiIO_ImGuiIO"][1]["constructor"] = true defs["ImGuiIO_ImGuiIO"][1]["defaults"] = {} defs["ImGuiIO_ImGuiIO"][1]["funcname"] = "ImGuiIO" -defs["ImGuiIO_ImGuiIO"][1]["location"] = "imgui:1940" +defs["ImGuiIO_ImGuiIO"][1]["location"] = "imgui:1953" defs["ImGuiIO_ImGuiIO"][1]["ov_cimguiname"] = "ImGuiIO_ImGuiIO" defs["ImGuiIO_ImGuiIO"][1]["signature"] = "()" defs["ImGuiIO_ImGuiIO"][1]["stname"] = "ImGuiIO" @@ -3777,7 +3795,7 @@ defs["ImGuiInputTextCallbackData_ClearSelection"][1]["call_args"] = "()" defs["ImGuiInputTextCallbackData_ClearSelection"][1]["cimguiname"] = "ImGuiInputTextCallbackData_ClearSelection" defs["ImGuiInputTextCallbackData_ClearSelection"][1]["defaults"] = {} defs["ImGuiInputTextCallbackData_ClearSelection"][1]["funcname"] = "ClearSelection" -defs["ImGuiInputTextCallbackData_ClearSelection"][1]["location"] = "imgui:1981" +defs["ImGuiInputTextCallbackData_ClearSelection"][1]["location"] = "imgui:1994" defs["ImGuiInputTextCallbackData_ClearSelection"][1]["ov_cimguiname"] = "ImGuiInputTextCallbackData_ClearSelection" defs["ImGuiInputTextCallbackData_ClearSelection"][1]["ret"] = "void" defs["ImGuiInputTextCallbackData_ClearSelection"][1]["signature"] = "()" @@ -3801,7 +3819,7 @@ defs["ImGuiInputTextCallbackData_DeleteChars"][1]["call_args"] = "(pos,bytes_cou defs["ImGuiInputTextCallbackData_DeleteChars"][1]["cimguiname"] = "ImGuiInputTextCallbackData_DeleteChars" defs["ImGuiInputTextCallbackData_DeleteChars"][1]["defaults"] = {} defs["ImGuiInputTextCallbackData_DeleteChars"][1]["funcname"] = "DeleteChars" -defs["ImGuiInputTextCallbackData_DeleteChars"][1]["location"] = "imgui:1978" +defs["ImGuiInputTextCallbackData_DeleteChars"][1]["location"] = "imgui:1991" defs["ImGuiInputTextCallbackData_DeleteChars"][1]["ov_cimguiname"] = "ImGuiInputTextCallbackData_DeleteChars" defs["ImGuiInputTextCallbackData_DeleteChars"][1]["ret"] = "void" defs["ImGuiInputTextCallbackData_DeleteChars"][1]["signature"] = "(int,int)" @@ -3819,7 +3837,7 @@ defs["ImGuiInputTextCallbackData_HasSelection"][1]["call_args"] = "()" defs["ImGuiInputTextCallbackData_HasSelection"][1]["cimguiname"] = "ImGuiInputTextCallbackData_HasSelection" defs["ImGuiInputTextCallbackData_HasSelection"][1]["defaults"] = {} defs["ImGuiInputTextCallbackData_HasSelection"][1]["funcname"] = "HasSelection" -defs["ImGuiInputTextCallbackData_HasSelection"][1]["location"] = "imgui:1982" +defs["ImGuiInputTextCallbackData_HasSelection"][1]["location"] = "imgui:1995" defs["ImGuiInputTextCallbackData_HasSelection"][1]["ov_cimguiname"] = "ImGuiInputTextCallbackData_HasSelection" defs["ImGuiInputTextCallbackData_HasSelection"][1]["ret"] = "bool" defs["ImGuiInputTextCallbackData_HasSelection"][1]["signature"] = "()const" @@ -3835,7 +3853,7 @@ defs["ImGuiInputTextCallbackData_ImGuiInputTextCallbackData"][1]["cimguiname"] = defs["ImGuiInputTextCallbackData_ImGuiInputTextCallbackData"][1]["constructor"] = true defs["ImGuiInputTextCallbackData_ImGuiInputTextCallbackData"][1]["defaults"] = {} defs["ImGuiInputTextCallbackData_ImGuiInputTextCallbackData"][1]["funcname"] = "ImGuiInputTextCallbackData" -defs["ImGuiInputTextCallbackData_ImGuiInputTextCallbackData"][1]["location"] = "imgui:1977" +defs["ImGuiInputTextCallbackData_ImGuiInputTextCallbackData"][1]["location"] = "imgui:1990" defs["ImGuiInputTextCallbackData_ImGuiInputTextCallbackData"][1]["ov_cimguiname"] = "ImGuiInputTextCallbackData_ImGuiInputTextCallbackData" defs["ImGuiInputTextCallbackData_ImGuiInputTextCallbackData"][1]["signature"] = "()" defs["ImGuiInputTextCallbackData_ImGuiInputTextCallbackData"][1]["stname"] = "ImGuiInputTextCallbackData" @@ -3862,7 +3880,7 @@ defs["ImGuiInputTextCallbackData_InsertChars"][1]["cimguiname"] = "ImGuiInputTex defs["ImGuiInputTextCallbackData_InsertChars"][1]["defaults"] = {} defs["ImGuiInputTextCallbackData_InsertChars"][1]["defaults"]["text_end"] = "NULL" defs["ImGuiInputTextCallbackData_InsertChars"][1]["funcname"] = "InsertChars" -defs["ImGuiInputTextCallbackData_InsertChars"][1]["location"] = "imgui:1979" +defs["ImGuiInputTextCallbackData_InsertChars"][1]["location"] = "imgui:1992" defs["ImGuiInputTextCallbackData_InsertChars"][1]["ov_cimguiname"] = "ImGuiInputTextCallbackData_InsertChars" defs["ImGuiInputTextCallbackData_InsertChars"][1]["ret"] = "void" defs["ImGuiInputTextCallbackData_InsertChars"][1]["signature"] = "(int,const char*,const char*)" @@ -3880,7 +3898,7 @@ defs["ImGuiInputTextCallbackData_SelectAll"][1]["call_args"] = "()" defs["ImGuiInputTextCallbackData_SelectAll"][1]["cimguiname"] = "ImGuiInputTextCallbackData_SelectAll" defs["ImGuiInputTextCallbackData_SelectAll"][1]["defaults"] = {} defs["ImGuiInputTextCallbackData_SelectAll"][1]["funcname"] = "SelectAll" -defs["ImGuiInputTextCallbackData_SelectAll"][1]["location"] = "imgui:1980" +defs["ImGuiInputTextCallbackData_SelectAll"][1]["location"] = "imgui:1993" defs["ImGuiInputTextCallbackData_SelectAll"][1]["ov_cimguiname"] = "ImGuiInputTextCallbackData_SelectAll" defs["ImGuiInputTextCallbackData_SelectAll"][1]["ret"] = "void" defs["ImGuiInputTextCallbackData_SelectAll"][1]["signature"] = "()" @@ -3921,7 +3939,7 @@ defs["ImGuiListClipper_Begin"][1]["cimguiname"] = "ImGuiListClipper_Begin" defs["ImGuiListClipper_Begin"][1]["defaults"] = {} defs["ImGuiListClipper_Begin"][1]["defaults"]["items_height"] = "-1.0f" defs["ImGuiListClipper_Begin"][1]["funcname"] = "Begin" -defs["ImGuiListClipper_Begin"][1]["location"] = "imgui:2194" +defs["ImGuiListClipper_Begin"][1]["location"] = "imgui:2206" defs["ImGuiListClipper_Begin"][1]["ov_cimguiname"] = "ImGuiListClipper_Begin" defs["ImGuiListClipper_Begin"][1]["ret"] = "void" defs["ImGuiListClipper_Begin"][1]["signature"] = "(int,float)" @@ -3939,12 +3957,36 @@ defs["ImGuiListClipper_End"][1]["call_args"] = "()" defs["ImGuiListClipper_End"][1]["cimguiname"] = "ImGuiListClipper_End" defs["ImGuiListClipper_End"][1]["defaults"] = {} defs["ImGuiListClipper_End"][1]["funcname"] = "End" -defs["ImGuiListClipper_End"][1]["location"] = "imgui:2195" +defs["ImGuiListClipper_End"][1]["location"] = "imgui:2207" defs["ImGuiListClipper_End"][1]["ov_cimguiname"] = "ImGuiListClipper_End" defs["ImGuiListClipper_End"][1]["ret"] = "void" defs["ImGuiListClipper_End"][1]["signature"] = "()" defs["ImGuiListClipper_End"][1]["stname"] = "ImGuiListClipper" defs["ImGuiListClipper_End"]["()"] = defs["ImGuiListClipper_End"][1] +defs["ImGuiListClipper_ForceDisplayRangeByIndices"] = {} +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1] = {} +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["args"] = "(ImGuiListClipper* self,int item_min,int item_max)" +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["argsT"] = {} +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["argsT"][1] = {} +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["argsT"][1]["name"] = "self" +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["argsT"][1]["type"] = "ImGuiListClipper*" +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["argsT"][2] = {} +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["argsT"][2]["name"] = "item_min" +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["argsT"][2]["type"] = "int" +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["argsT"][3] = {} +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["argsT"][3]["name"] = "item_max" +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["argsT"][3]["type"] = "int" +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["argsoriginal"] = "(int item_min,int item_max)" +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["call_args"] = "(item_min,item_max)" +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["cimguiname"] = "ImGuiListClipper_ForceDisplayRangeByIndices" +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["defaults"] = {} +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["funcname"] = "ForceDisplayRangeByIndices" +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["location"] = "imgui:2211" +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["ov_cimguiname"] = "ImGuiListClipper_ForceDisplayRangeByIndices" +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["ret"] = "void" +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["signature"] = "(int,int)" +defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1]["stname"] = "ImGuiListClipper" +defs["ImGuiListClipper_ForceDisplayRangeByIndices"]["(int,int)"] = defs["ImGuiListClipper_ForceDisplayRangeByIndices"][1] defs["ImGuiListClipper_ImGuiListClipper"] = {} defs["ImGuiListClipper_ImGuiListClipper"][1] = {} defs["ImGuiListClipper_ImGuiListClipper"][1]["args"] = "()" @@ -3955,7 +3997,7 @@ defs["ImGuiListClipper_ImGuiListClipper"][1]["cimguiname"] = "ImGuiListClipper_I defs["ImGuiListClipper_ImGuiListClipper"][1]["constructor"] = true defs["ImGuiListClipper_ImGuiListClipper"][1]["defaults"] = {} defs["ImGuiListClipper_ImGuiListClipper"][1]["funcname"] = "ImGuiListClipper" -defs["ImGuiListClipper_ImGuiListClipper"][1]["location"] = "imgui:2189" +defs["ImGuiListClipper_ImGuiListClipper"][1]["location"] = "imgui:2204" defs["ImGuiListClipper_ImGuiListClipper"][1]["ov_cimguiname"] = "ImGuiListClipper_ImGuiListClipper" defs["ImGuiListClipper_ImGuiListClipper"][1]["signature"] = "()" defs["ImGuiListClipper_ImGuiListClipper"][1]["stname"] = "ImGuiListClipper" @@ -3972,7 +4014,7 @@ defs["ImGuiListClipper_Step"][1]["call_args"] = "()" defs["ImGuiListClipper_Step"][1]["cimguiname"] = "ImGuiListClipper_Step" defs["ImGuiListClipper_Step"][1]["defaults"] = {} defs["ImGuiListClipper_Step"][1]["funcname"] = "Step" -defs["ImGuiListClipper_Step"][1]["location"] = "imgui:2196" +defs["ImGuiListClipper_Step"][1]["location"] = "imgui:2208" defs["ImGuiListClipper_Step"][1]["ov_cimguiname"] = "ImGuiListClipper_Step" defs["ImGuiListClipper_Step"][1]["ret"] = "bool" defs["ImGuiListClipper_Step"][1]["signature"] = "()" @@ -3989,7 +4031,7 @@ defs["ImGuiListClipper_destroy"][1]["call_args"] = "(self)" defs["ImGuiListClipper_destroy"][1]["cimguiname"] = "ImGuiListClipper_destroy" defs["ImGuiListClipper_destroy"][1]["defaults"] = {} defs["ImGuiListClipper_destroy"][1]["destructor"] = true -defs["ImGuiListClipper_destroy"][1]["location"] = "imgui:2190" +defs["ImGuiListClipper_destroy"][1]["location"] = "imgui:2205" defs["ImGuiListClipper_destroy"][1]["ov_cimguiname"] = "ImGuiListClipper_destroy" defs["ImGuiListClipper_destroy"][1]["realdestructor"] = true defs["ImGuiListClipper_destroy"][1]["ret"] = "void" @@ -4006,7 +4048,7 @@ defs["ImGuiOnceUponAFrame_ImGuiOnceUponAFrame"][1]["cimguiname"] = "ImGuiOnceUpo defs["ImGuiOnceUponAFrame_ImGuiOnceUponAFrame"][1]["constructor"] = true defs["ImGuiOnceUponAFrame_ImGuiOnceUponAFrame"][1]["defaults"] = {} defs["ImGuiOnceUponAFrame_ImGuiOnceUponAFrame"][1]["funcname"] = "ImGuiOnceUponAFrame" -defs["ImGuiOnceUponAFrame_ImGuiOnceUponAFrame"][1]["location"] = "imgui:2057" +defs["ImGuiOnceUponAFrame_ImGuiOnceUponAFrame"][1]["location"] = "imgui:2070" defs["ImGuiOnceUponAFrame_ImGuiOnceUponAFrame"][1]["ov_cimguiname"] = "ImGuiOnceUponAFrame_ImGuiOnceUponAFrame" defs["ImGuiOnceUponAFrame_ImGuiOnceUponAFrame"][1]["signature"] = "()" defs["ImGuiOnceUponAFrame_ImGuiOnceUponAFrame"][1]["stname"] = "ImGuiOnceUponAFrame" @@ -4039,7 +4081,7 @@ defs["ImGuiPayload_Clear"][1]["call_args"] = "()" defs["ImGuiPayload_Clear"][1]["cimguiname"] = "ImGuiPayload_Clear" defs["ImGuiPayload_Clear"][1]["defaults"] = {} defs["ImGuiPayload_Clear"][1]["funcname"] = "Clear" -defs["ImGuiPayload_Clear"][1]["location"] = "imgui:2011" +defs["ImGuiPayload_Clear"][1]["location"] = "imgui:2024" defs["ImGuiPayload_Clear"][1]["ov_cimguiname"] = "ImGuiPayload_Clear" defs["ImGuiPayload_Clear"][1]["ret"] = "void" defs["ImGuiPayload_Clear"][1]["signature"] = "()" @@ -4055,7 +4097,7 @@ defs["ImGuiPayload_ImGuiPayload"][1]["cimguiname"] = "ImGuiPayload_ImGuiPayload" defs["ImGuiPayload_ImGuiPayload"][1]["constructor"] = true defs["ImGuiPayload_ImGuiPayload"][1]["defaults"] = {} defs["ImGuiPayload_ImGuiPayload"][1]["funcname"] = "ImGuiPayload" -defs["ImGuiPayload_ImGuiPayload"][1]["location"] = "imgui:2010" +defs["ImGuiPayload_ImGuiPayload"][1]["location"] = "imgui:2023" defs["ImGuiPayload_ImGuiPayload"][1]["ov_cimguiname"] = "ImGuiPayload_ImGuiPayload" defs["ImGuiPayload_ImGuiPayload"][1]["signature"] = "()" defs["ImGuiPayload_ImGuiPayload"][1]["stname"] = "ImGuiPayload" @@ -4075,7 +4117,7 @@ defs["ImGuiPayload_IsDataType"][1]["call_args"] = "(type)" defs["ImGuiPayload_IsDataType"][1]["cimguiname"] = "ImGuiPayload_IsDataType" defs["ImGuiPayload_IsDataType"][1]["defaults"] = {} defs["ImGuiPayload_IsDataType"][1]["funcname"] = "IsDataType" -defs["ImGuiPayload_IsDataType"][1]["location"] = "imgui:2012" +defs["ImGuiPayload_IsDataType"][1]["location"] = "imgui:2025" defs["ImGuiPayload_IsDataType"][1]["ov_cimguiname"] = "ImGuiPayload_IsDataType" defs["ImGuiPayload_IsDataType"][1]["ret"] = "bool" defs["ImGuiPayload_IsDataType"][1]["signature"] = "(const char*)const" @@ -4093,7 +4135,7 @@ defs["ImGuiPayload_IsDelivery"][1]["call_args"] = "()" defs["ImGuiPayload_IsDelivery"][1]["cimguiname"] = "ImGuiPayload_IsDelivery" defs["ImGuiPayload_IsDelivery"][1]["defaults"] = {} defs["ImGuiPayload_IsDelivery"][1]["funcname"] = "IsDelivery" -defs["ImGuiPayload_IsDelivery"][1]["location"] = "imgui:2014" +defs["ImGuiPayload_IsDelivery"][1]["location"] = "imgui:2027" defs["ImGuiPayload_IsDelivery"][1]["ov_cimguiname"] = "ImGuiPayload_IsDelivery" defs["ImGuiPayload_IsDelivery"][1]["ret"] = "bool" defs["ImGuiPayload_IsDelivery"][1]["signature"] = "()const" @@ -4111,7 +4153,7 @@ defs["ImGuiPayload_IsPreview"][1]["call_args"] = "()" defs["ImGuiPayload_IsPreview"][1]["cimguiname"] = "ImGuiPayload_IsPreview" defs["ImGuiPayload_IsPreview"][1]["defaults"] = {} defs["ImGuiPayload_IsPreview"][1]["funcname"] = "IsPreview" -defs["ImGuiPayload_IsPreview"][1]["location"] = "imgui:2013" +defs["ImGuiPayload_IsPreview"][1]["location"] = "imgui:2026" defs["ImGuiPayload_IsPreview"][1]["ov_cimguiname"] = "ImGuiPayload_IsPreview" defs["ImGuiPayload_IsPreview"][1]["ret"] = "bool" defs["ImGuiPayload_IsPreview"][1]["signature"] = "()const" @@ -4149,7 +4191,7 @@ defs["ImGuiStoragePair_ImGuiStoragePair"][1]["cimguiname"] = "ImGuiStoragePair_I defs["ImGuiStoragePair_ImGuiStoragePair"][1]["constructor"] = true defs["ImGuiStoragePair_ImGuiStoragePair"][1]["defaults"] = {} defs["ImGuiStoragePair_ImGuiStoragePair"][1]["funcname"] = "ImGuiStoragePair" -defs["ImGuiStoragePair_ImGuiStoragePair"][1]["location"] = "imgui:2124" +defs["ImGuiStoragePair_ImGuiStoragePair"][1]["location"] = "imgui:2137" defs["ImGuiStoragePair_ImGuiStoragePair"][1]["ov_cimguiname"] = "ImGuiStoragePair_ImGuiStoragePairInt" defs["ImGuiStoragePair_ImGuiStoragePair"][1]["signature"] = "(ImGuiID,int)" defs["ImGuiStoragePair_ImGuiStoragePair"][1]["stname"] = "ImGuiStoragePair" @@ -4168,7 +4210,7 @@ defs["ImGuiStoragePair_ImGuiStoragePair"][2]["cimguiname"] = "ImGuiStoragePair_I defs["ImGuiStoragePair_ImGuiStoragePair"][2]["constructor"] = true defs["ImGuiStoragePair_ImGuiStoragePair"][2]["defaults"] = {} defs["ImGuiStoragePair_ImGuiStoragePair"][2]["funcname"] = "ImGuiStoragePair" -defs["ImGuiStoragePair_ImGuiStoragePair"][2]["location"] = "imgui:2125" +defs["ImGuiStoragePair_ImGuiStoragePair"][2]["location"] = "imgui:2138" defs["ImGuiStoragePair_ImGuiStoragePair"][2]["ov_cimguiname"] = "ImGuiStoragePair_ImGuiStoragePairFloat" defs["ImGuiStoragePair_ImGuiStoragePair"][2]["signature"] = "(ImGuiID,float)" defs["ImGuiStoragePair_ImGuiStoragePair"][2]["stname"] = "ImGuiStoragePair" @@ -4187,7 +4229,7 @@ defs["ImGuiStoragePair_ImGuiStoragePair"][3]["cimguiname"] = "ImGuiStoragePair_I defs["ImGuiStoragePair_ImGuiStoragePair"][3]["constructor"] = true defs["ImGuiStoragePair_ImGuiStoragePair"][3]["defaults"] = {} defs["ImGuiStoragePair_ImGuiStoragePair"][3]["funcname"] = "ImGuiStoragePair" -defs["ImGuiStoragePair_ImGuiStoragePair"][3]["location"] = "imgui:2126" +defs["ImGuiStoragePair_ImGuiStoragePair"][3]["location"] = "imgui:2139" defs["ImGuiStoragePair_ImGuiStoragePair"][3]["ov_cimguiname"] = "ImGuiStoragePair_ImGuiStoragePairPtr" defs["ImGuiStoragePair_ImGuiStoragePair"][3]["signature"] = "(ImGuiID,void*)" defs["ImGuiStoragePair_ImGuiStoragePair"][3]["stname"] = "ImGuiStoragePair" @@ -4222,7 +4264,7 @@ defs["ImGuiStorage_BuildSortByKey"][1]["call_args"] = "()" defs["ImGuiStorage_BuildSortByKey"][1]["cimguiname"] = "ImGuiStorage_BuildSortByKey" defs["ImGuiStorage_BuildSortByKey"][1]["defaults"] = {} defs["ImGuiStorage_BuildSortByKey"][1]["funcname"] = "BuildSortByKey" -defs["ImGuiStorage_BuildSortByKey"][1]["location"] = "imgui:2157" +defs["ImGuiStorage_BuildSortByKey"][1]["location"] = "imgui:2170" defs["ImGuiStorage_BuildSortByKey"][1]["ov_cimguiname"] = "ImGuiStorage_BuildSortByKey" defs["ImGuiStorage_BuildSortByKey"][1]["ret"] = "void" defs["ImGuiStorage_BuildSortByKey"][1]["signature"] = "()" @@ -4240,7 +4282,7 @@ defs["ImGuiStorage_Clear"][1]["call_args"] = "()" defs["ImGuiStorage_Clear"][1]["cimguiname"] = "ImGuiStorage_Clear" defs["ImGuiStorage_Clear"][1]["defaults"] = {} defs["ImGuiStorage_Clear"][1]["funcname"] = "Clear" -defs["ImGuiStorage_Clear"][1]["location"] = "imgui:2134" +defs["ImGuiStorage_Clear"][1]["location"] = "imgui:2147" defs["ImGuiStorage_Clear"][1]["ov_cimguiname"] = "ImGuiStorage_Clear" defs["ImGuiStorage_Clear"][1]["ret"] = "void" defs["ImGuiStorage_Clear"][1]["signature"] = "()" @@ -4265,7 +4307,7 @@ defs["ImGuiStorage_GetBool"][1]["cimguiname"] = "ImGuiStorage_GetBool" defs["ImGuiStorage_GetBool"][1]["defaults"] = {} defs["ImGuiStorage_GetBool"][1]["defaults"]["default_val"] = "false" defs["ImGuiStorage_GetBool"][1]["funcname"] = "GetBool" -defs["ImGuiStorage_GetBool"][1]["location"] = "imgui:2137" +defs["ImGuiStorage_GetBool"][1]["location"] = "imgui:2150" defs["ImGuiStorage_GetBool"][1]["ov_cimguiname"] = "ImGuiStorage_GetBool" defs["ImGuiStorage_GetBool"][1]["ret"] = "bool" defs["ImGuiStorage_GetBool"][1]["signature"] = "(ImGuiID,bool)const" @@ -4290,7 +4332,7 @@ defs["ImGuiStorage_GetBoolRef"][1]["cimguiname"] = "ImGuiStorage_GetBoolRef" defs["ImGuiStorage_GetBoolRef"][1]["defaults"] = {} defs["ImGuiStorage_GetBoolRef"][1]["defaults"]["default_val"] = "false" defs["ImGuiStorage_GetBoolRef"][1]["funcname"] = "GetBoolRef" -defs["ImGuiStorage_GetBoolRef"][1]["location"] = "imgui:2149" +defs["ImGuiStorage_GetBoolRef"][1]["location"] = "imgui:2162" defs["ImGuiStorage_GetBoolRef"][1]["ov_cimguiname"] = "ImGuiStorage_GetBoolRef" defs["ImGuiStorage_GetBoolRef"][1]["ret"] = "bool*" defs["ImGuiStorage_GetBoolRef"][1]["signature"] = "(ImGuiID,bool)" @@ -4315,7 +4357,7 @@ defs["ImGuiStorage_GetFloat"][1]["cimguiname"] = "ImGuiStorage_GetFloat" defs["ImGuiStorage_GetFloat"][1]["defaults"] = {} defs["ImGuiStorage_GetFloat"][1]["defaults"]["default_val"] = "0.0f" defs["ImGuiStorage_GetFloat"][1]["funcname"] = "GetFloat" -defs["ImGuiStorage_GetFloat"][1]["location"] = "imgui:2139" +defs["ImGuiStorage_GetFloat"][1]["location"] = "imgui:2152" defs["ImGuiStorage_GetFloat"][1]["ov_cimguiname"] = "ImGuiStorage_GetFloat" defs["ImGuiStorage_GetFloat"][1]["ret"] = "float" defs["ImGuiStorage_GetFloat"][1]["signature"] = "(ImGuiID,float)const" @@ -4340,7 +4382,7 @@ defs["ImGuiStorage_GetFloatRef"][1]["cimguiname"] = "ImGuiStorage_GetFloatRef" defs["ImGuiStorage_GetFloatRef"][1]["defaults"] = {} defs["ImGuiStorage_GetFloatRef"][1]["defaults"]["default_val"] = "0.0f" defs["ImGuiStorage_GetFloatRef"][1]["funcname"] = "GetFloatRef" -defs["ImGuiStorage_GetFloatRef"][1]["location"] = "imgui:2150" +defs["ImGuiStorage_GetFloatRef"][1]["location"] = "imgui:2163" defs["ImGuiStorage_GetFloatRef"][1]["ov_cimguiname"] = "ImGuiStorage_GetFloatRef" defs["ImGuiStorage_GetFloatRef"][1]["ret"] = "float*" defs["ImGuiStorage_GetFloatRef"][1]["signature"] = "(ImGuiID,float)" @@ -4365,7 +4407,7 @@ defs["ImGuiStorage_GetInt"][1]["cimguiname"] = "ImGuiStorage_GetInt" defs["ImGuiStorage_GetInt"][1]["defaults"] = {} defs["ImGuiStorage_GetInt"][1]["defaults"]["default_val"] = "0" defs["ImGuiStorage_GetInt"][1]["funcname"] = "GetInt" -defs["ImGuiStorage_GetInt"][1]["location"] = "imgui:2135" +defs["ImGuiStorage_GetInt"][1]["location"] = "imgui:2148" defs["ImGuiStorage_GetInt"][1]["ov_cimguiname"] = "ImGuiStorage_GetInt" defs["ImGuiStorage_GetInt"][1]["ret"] = "int" defs["ImGuiStorage_GetInt"][1]["signature"] = "(ImGuiID,int)const" @@ -4390,7 +4432,7 @@ defs["ImGuiStorage_GetIntRef"][1]["cimguiname"] = "ImGuiStorage_GetIntRef" defs["ImGuiStorage_GetIntRef"][1]["defaults"] = {} defs["ImGuiStorage_GetIntRef"][1]["defaults"]["default_val"] = "0" defs["ImGuiStorage_GetIntRef"][1]["funcname"] = "GetIntRef" -defs["ImGuiStorage_GetIntRef"][1]["location"] = "imgui:2148" +defs["ImGuiStorage_GetIntRef"][1]["location"] = "imgui:2161" defs["ImGuiStorage_GetIntRef"][1]["ov_cimguiname"] = "ImGuiStorage_GetIntRef" defs["ImGuiStorage_GetIntRef"][1]["ret"] = "int*" defs["ImGuiStorage_GetIntRef"][1]["signature"] = "(ImGuiID,int)" @@ -4411,7 +4453,7 @@ defs["ImGuiStorage_GetVoidPtr"][1]["call_args"] = "(key)" defs["ImGuiStorage_GetVoidPtr"][1]["cimguiname"] = "ImGuiStorage_GetVoidPtr" defs["ImGuiStorage_GetVoidPtr"][1]["defaults"] = {} defs["ImGuiStorage_GetVoidPtr"][1]["funcname"] = "GetVoidPtr" -defs["ImGuiStorage_GetVoidPtr"][1]["location"] = "imgui:2141" +defs["ImGuiStorage_GetVoidPtr"][1]["location"] = "imgui:2154" defs["ImGuiStorage_GetVoidPtr"][1]["ov_cimguiname"] = "ImGuiStorage_GetVoidPtr" defs["ImGuiStorage_GetVoidPtr"][1]["ret"] = "void*" defs["ImGuiStorage_GetVoidPtr"][1]["signature"] = "(ImGuiID)const" @@ -4436,7 +4478,7 @@ defs["ImGuiStorage_GetVoidPtrRef"][1]["cimguiname"] = "ImGuiStorage_GetVoidPtrRe defs["ImGuiStorage_GetVoidPtrRef"][1]["defaults"] = {} defs["ImGuiStorage_GetVoidPtrRef"][1]["defaults"]["default_val"] = "NULL" defs["ImGuiStorage_GetVoidPtrRef"][1]["funcname"] = "GetVoidPtrRef" -defs["ImGuiStorage_GetVoidPtrRef"][1]["location"] = "imgui:2151" +defs["ImGuiStorage_GetVoidPtrRef"][1]["location"] = "imgui:2164" defs["ImGuiStorage_GetVoidPtrRef"][1]["ov_cimguiname"] = "ImGuiStorage_GetVoidPtrRef" defs["ImGuiStorage_GetVoidPtrRef"][1]["ret"] = "void**" defs["ImGuiStorage_GetVoidPtrRef"][1]["signature"] = "(ImGuiID,void*)" @@ -4457,7 +4499,7 @@ defs["ImGuiStorage_SetAllInt"][1]["call_args"] = "(val)" defs["ImGuiStorage_SetAllInt"][1]["cimguiname"] = "ImGuiStorage_SetAllInt" defs["ImGuiStorage_SetAllInt"][1]["defaults"] = {} defs["ImGuiStorage_SetAllInt"][1]["funcname"] = "SetAllInt" -defs["ImGuiStorage_SetAllInt"][1]["location"] = "imgui:2154" +defs["ImGuiStorage_SetAllInt"][1]["location"] = "imgui:2167" defs["ImGuiStorage_SetAllInt"][1]["ov_cimguiname"] = "ImGuiStorage_SetAllInt" defs["ImGuiStorage_SetAllInt"][1]["ret"] = "void" defs["ImGuiStorage_SetAllInt"][1]["signature"] = "(int)" @@ -4481,7 +4523,7 @@ defs["ImGuiStorage_SetBool"][1]["call_args"] = "(key,val)" defs["ImGuiStorage_SetBool"][1]["cimguiname"] = "ImGuiStorage_SetBool" defs["ImGuiStorage_SetBool"][1]["defaults"] = {} defs["ImGuiStorage_SetBool"][1]["funcname"] = "SetBool" -defs["ImGuiStorage_SetBool"][1]["location"] = "imgui:2138" +defs["ImGuiStorage_SetBool"][1]["location"] = "imgui:2151" defs["ImGuiStorage_SetBool"][1]["ov_cimguiname"] = "ImGuiStorage_SetBool" defs["ImGuiStorage_SetBool"][1]["ret"] = "void" defs["ImGuiStorage_SetBool"][1]["signature"] = "(ImGuiID,bool)" @@ -4505,7 +4547,7 @@ defs["ImGuiStorage_SetFloat"][1]["call_args"] = "(key,val)" defs["ImGuiStorage_SetFloat"][1]["cimguiname"] = "ImGuiStorage_SetFloat" defs["ImGuiStorage_SetFloat"][1]["defaults"] = {} defs["ImGuiStorage_SetFloat"][1]["funcname"] = "SetFloat" -defs["ImGuiStorage_SetFloat"][1]["location"] = "imgui:2140" +defs["ImGuiStorage_SetFloat"][1]["location"] = "imgui:2153" defs["ImGuiStorage_SetFloat"][1]["ov_cimguiname"] = "ImGuiStorage_SetFloat" defs["ImGuiStorage_SetFloat"][1]["ret"] = "void" defs["ImGuiStorage_SetFloat"][1]["signature"] = "(ImGuiID,float)" @@ -4529,7 +4571,7 @@ defs["ImGuiStorage_SetInt"][1]["call_args"] = "(key,val)" defs["ImGuiStorage_SetInt"][1]["cimguiname"] = "ImGuiStorage_SetInt" defs["ImGuiStorage_SetInt"][1]["defaults"] = {} defs["ImGuiStorage_SetInt"][1]["funcname"] = "SetInt" -defs["ImGuiStorage_SetInt"][1]["location"] = "imgui:2136" +defs["ImGuiStorage_SetInt"][1]["location"] = "imgui:2149" defs["ImGuiStorage_SetInt"][1]["ov_cimguiname"] = "ImGuiStorage_SetInt" defs["ImGuiStorage_SetInt"][1]["ret"] = "void" defs["ImGuiStorage_SetInt"][1]["signature"] = "(ImGuiID,int)" @@ -4553,7 +4595,7 @@ defs["ImGuiStorage_SetVoidPtr"][1]["call_args"] = "(key,val)" defs["ImGuiStorage_SetVoidPtr"][1]["cimguiname"] = "ImGuiStorage_SetVoidPtr" defs["ImGuiStorage_SetVoidPtr"][1]["defaults"] = {} defs["ImGuiStorage_SetVoidPtr"][1]["funcname"] = "SetVoidPtr" -defs["ImGuiStorage_SetVoidPtr"][1]["location"] = "imgui:2142" +defs["ImGuiStorage_SetVoidPtr"][1]["location"] = "imgui:2155" defs["ImGuiStorage_SetVoidPtr"][1]["ov_cimguiname"] = "ImGuiStorage_SetVoidPtr" defs["ImGuiStorage_SetVoidPtr"][1]["ret"] = "void" defs["ImGuiStorage_SetVoidPtr"][1]["signature"] = "(ImGuiID,void*)" @@ -4569,7 +4611,7 @@ defs["ImGuiStyle_ImGuiStyle"][1]["cimguiname"] = "ImGuiStyle_ImGuiStyle" defs["ImGuiStyle_ImGuiStyle"][1]["constructor"] = true defs["ImGuiStyle_ImGuiStyle"][1]["defaults"] = {} defs["ImGuiStyle_ImGuiStyle"][1]["funcname"] = "ImGuiStyle" -defs["ImGuiStyle_ImGuiStyle"][1]["location"] = "imgui:1801" +defs["ImGuiStyle_ImGuiStyle"][1]["location"] = "imgui:1809" defs["ImGuiStyle_ImGuiStyle"][1]["ov_cimguiname"] = "ImGuiStyle_ImGuiStyle" defs["ImGuiStyle_ImGuiStyle"][1]["signature"] = "()" defs["ImGuiStyle_ImGuiStyle"][1]["stname"] = "ImGuiStyle" @@ -4589,7 +4631,7 @@ defs["ImGuiStyle_ScaleAllSizes"][1]["call_args"] = "(scale_factor)" defs["ImGuiStyle_ScaleAllSizes"][1]["cimguiname"] = "ImGuiStyle_ScaleAllSizes" defs["ImGuiStyle_ScaleAllSizes"][1]["defaults"] = {} defs["ImGuiStyle_ScaleAllSizes"][1]["funcname"] = "ScaleAllSizes" -defs["ImGuiStyle_ScaleAllSizes"][1]["location"] = "imgui:1802" +defs["ImGuiStyle_ScaleAllSizes"][1]["location"] = "imgui:1810" defs["ImGuiStyle_ScaleAllSizes"][1]["ov_cimguiname"] = "ImGuiStyle_ScaleAllSizes" defs["ImGuiStyle_ScaleAllSizes"][1]["ret"] = "void" defs["ImGuiStyle_ScaleAllSizes"][1]["signature"] = "(float)" @@ -4621,7 +4663,7 @@ defs["ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs"][1]["cimguiname"] = " defs["ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs"][1]["constructor"] = true defs["ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs"][1]["defaults"] = {} defs["ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs"][1]["funcname"] = "ImGuiTableColumnSortSpecs" -defs["ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs"][1]["location"] = "imgui:2025" +defs["ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs"][1]["location"] = "imgui:2038" defs["ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs"][1]["ov_cimguiname"] = "ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs" defs["ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs"][1]["signature"] = "()" defs["ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs"][1]["stname"] = "ImGuiTableColumnSortSpecs" @@ -4652,7 +4694,7 @@ defs["ImGuiTableSortSpecs_ImGuiTableSortSpecs"][1]["cimguiname"] = "ImGuiTableSo defs["ImGuiTableSortSpecs_ImGuiTableSortSpecs"][1]["constructor"] = true defs["ImGuiTableSortSpecs_ImGuiTableSortSpecs"][1]["defaults"] = {} defs["ImGuiTableSortSpecs_ImGuiTableSortSpecs"][1]["funcname"] = "ImGuiTableSortSpecs" -defs["ImGuiTableSortSpecs_ImGuiTableSortSpecs"][1]["location"] = "imgui:2038" +defs["ImGuiTableSortSpecs_ImGuiTableSortSpecs"][1]["location"] = "imgui:2051" defs["ImGuiTableSortSpecs_ImGuiTableSortSpecs"][1]["ov_cimguiname"] = "ImGuiTableSortSpecs_ImGuiTableSortSpecs" defs["ImGuiTableSortSpecs_ImGuiTableSortSpecs"][1]["signature"] = "()" defs["ImGuiTableSortSpecs_ImGuiTableSortSpecs"][1]["stname"] = "ImGuiTableSortSpecs" @@ -4683,7 +4725,7 @@ defs["ImGuiTextBuffer_ImGuiTextBuffer"][1]["cimguiname"] = "ImGuiTextBuffer_ImGu defs["ImGuiTextBuffer_ImGuiTextBuffer"][1]["constructor"] = true defs["ImGuiTextBuffer_ImGuiTextBuffer"][1]["defaults"] = {} defs["ImGuiTextBuffer_ImGuiTextBuffer"][1]["funcname"] = "ImGuiTextBuffer" -defs["ImGuiTextBuffer_ImGuiTextBuffer"][1]["location"] = "imgui:2095" +defs["ImGuiTextBuffer_ImGuiTextBuffer"][1]["location"] = "imgui:2108" defs["ImGuiTextBuffer_ImGuiTextBuffer"][1]["ov_cimguiname"] = "ImGuiTextBuffer_ImGuiTextBuffer" defs["ImGuiTextBuffer_ImGuiTextBuffer"][1]["signature"] = "()" defs["ImGuiTextBuffer_ImGuiTextBuffer"][1]["stname"] = "ImGuiTextBuffer" @@ -4707,7 +4749,7 @@ defs["ImGuiTextBuffer_append"][1]["cimguiname"] = "ImGuiTextBuffer_append" defs["ImGuiTextBuffer_append"][1]["defaults"] = {} defs["ImGuiTextBuffer_append"][1]["defaults"]["str_end"] = "NULL" defs["ImGuiTextBuffer_append"][1]["funcname"] = "append" -defs["ImGuiTextBuffer_append"][1]["location"] = "imgui:2104" +defs["ImGuiTextBuffer_append"][1]["location"] = "imgui:2117" defs["ImGuiTextBuffer_append"][1]["ov_cimguiname"] = "ImGuiTextBuffer_append" defs["ImGuiTextBuffer_append"][1]["ret"] = "void" defs["ImGuiTextBuffer_append"][1]["signature"] = "(const char*,const char*)" @@ -4732,7 +4774,7 @@ defs["ImGuiTextBuffer_appendf"][1]["cimguiname"] = "ImGuiTextBuffer_appendf" defs["ImGuiTextBuffer_appendf"][1]["defaults"] = {} defs["ImGuiTextBuffer_appendf"][1]["funcname"] = "appendf" defs["ImGuiTextBuffer_appendf"][1]["isvararg"] = "...)" -defs["ImGuiTextBuffer_appendf"][1]["location"] = "imgui:2105" +defs["ImGuiTextBuffer_appendf"][1]["location"] = "imgui:2118" defs["ImGuiTextBuffer_appendf"][1]["manual"] = true defs["ImGuiTextBuffer_appendf"][1]["ov_cimguiname"] = "ImGuiTextBuffer_appendf" defs["ImGuiTextBuffer_appendf"][1]["ret"] = "void" @@ -4757,7 +4799,7 @@ defs["ImGuiTextBuffer_appendfv"][1]["call_args"] = "(fmt,args)" defs["ImGuiTextBuffer_appendfv"][1]["cimguiname"] = "ImGuiTextBuffer_appendfv" defs["ImGuiTextBuffer_appendfv"][1]["defaults"] = {} defs["ImGuiTextBuffer_appendfv"][1]["funcname"] = "appendfv" -defs["ImGuiTextBuffer_appendfv"][1]["location"] = "imgui:2106" +defs["ImGuiTextBuffer_appendfv"][1]["location"] = "imgui:2119" defs["ImGuiTextBuffer_appendfv"][1]["ov_cimguiname"] = "ImGuiTextBuffer_appendfv" defs["ImGuiTextBuffer_appendfv"][1]["ret"] = "void" defs["ImGuiTextBuffer_appendfv"][1]["signature"] = "(const char*,va_list)" @@ -4775,7 +4817,7 @@ defs["ImGuiTextBuffer_begin"][1]["call_args"] = "()" defs["ImGuiTextBuffer_begin"][1]["cimguiname"] = "ImGuiTextBuffer_begin" defs["ImGuiTextBuffer_begin"][1]["defaults"] = {} defs["ImGuiTextBuffer_begin"][1]["funcname"] = "begin" -defs["ImGuiTextBuffer_begin"][1]["location"] = "imgui:2097" +defs["ImGuiTextBuffer_begin"][1]["location"] = "imgui:2110" defs["ImGuiTextBuffer_begin"][1]["ov_cimguiname"] = "ImGuiTextBuffer_begin" defs["ImGuiTextBuffer_begin"][1]["ret"] = "const char*" defs["ImGuiTextBuffer_begin"][1]["signature"] = "()const" @@ -4793,7 +4835,7 @@ defs["ImGuiTextBuffer_c_str"][1]["call_args"] = "()" defs["ImGuiTextBuffer_c_str"][1]["cimguiname"] = "ImGuiTextBuffer_c_str" defs["ImGuiTextBuffer_c_str"][1]["defaults"] = {} defs["ImGuiTextBuffer_c_str"][1]["funcname"] = "c_str" -defs["ImGuiTextBuffer_c_str"][1]["location"] = "imgui:2103" +defs["ImGuiTextBuffer_c_str"][1]["location"] = "imgui:2116" defs["ImGuiTextBuffer_c_str"][1]["ov_cimguiname"] = "ImGuiTextBuffer_c_str" defs["ImGuiTextBuffer_c_str"][1]["ret"] = "const char*" defs["ImGuiTextBuffer_c_str"][1]["signature"] = "()const" @@ -4811,7 +4853,7 @@ defs["ImGuiTextBuffer_clear"][1]["call_args"] = "()" defs["ImGuiTextBuffer_clear"][1]["cimguiname"] = "ImGuiTextBuffer_clear" defs["ImGuiTextBuffer_clear"][1]["defaults"] = {} defs["ImGuiTextBuffer_clear"][1]["funcname"] = "clear" -defs["ImGuiTextBuffer_clear"][1]["location"] = "imgui:2101" +defs["ImGuiTextBuffer_clear"][1]["location"] = "imgui:2114" defs["ImGuiTextBuffer_clear"][1]["ov_cimguiname"] = "ImGuiTextBuffer_clear" defs["ImGuiTextBuffer_clear"][1]["ret"] = "void" defs["ImGuiTextBuffer_clear"][1]["signature"] = "()" @@ -4845,7 +4887,7 @@ defs["ImGuiTextBuffer_empty"][1]["call_args"] = "()" defs["ImGuiTextBuffer_empty"][1]["cimguiname"] = "ImGuiTextBuffer_empty" defs["ImGuiTextBuffer_empty"][1]["defaults"] = {} defs["ImGuiTextBuffer_empty"][1]["funcname"] = "empty" -defs["ImGuiTextBuffer_empty"][1]["location"] = "imgui:2100" +defs["ImGuiTextBuffer_empty"][1]["location"] = "imgui:2113" defs["ImGuiTextBuffer_empty"][1]["ov_cimguiname"] = "ImGuiTextBuffer_empty" defs["ImGuiTextBuffer_empty"][1]["ret"] = "bool" defs["ImGuiTextBuffer_empty"][1]["signature"] = "()const" @@ -4863,7 +4905,7 @@ defs["ImGuiTextBuffer_end"][1]["call_args"] = "()" defs["ImGuiTextBuffer_end"][1]["cimguiname"] = "ImGuiTextBuffer_end" defs["ImGuiTextBuffer_end"][1]["defaults"] = {} defs["ImGuiTextBuffer_end"][1]["funcname"] = "end" -defs["ImGuiTextBuffer_end"][1]["location"] = "imgui:2098" +defs["ImGuiTextBuffer_end"][1]["location"] = "imgui:2111" defs["ImGuiTextBuffer_end"][1]["ov_cimguiname"] = "ImGuiTextBuffer_end" defs["ImGuiTextBuffer_end"][1]["ret"] = "const char*" defs["ImGuiTextBuffer_end"][1]["signature"] = "()const" @@ -4884,7 +4926,7 @@ defs["ImGuiTextBuffer_reserve"][1]["call_args"] = "(capacity)" defs["ImGuiTextBuffer_reserve"][1]["cimguiname"] = "ImGuiTextBuffer_reserve" defs["ImGuiTextBuffer_reserve"][1]["defaults"] = {} defs["ImGuiTextBuffer_reserve"][1]["funcname"] = "reserve" -defs["ImGuiTextBuffer_reserve"][1]["location"] = "imgui:2102" +defs["ImGuiTextBuffer_reserve"][1]["location"] = "imgui:2115" defs["ImGuiTextBuffer_reserve"][1]["ov_cimguiname"] = "ImGuiTextBuffer_reserve" defs["ImGuiTextBuffer_reserve"][1]["ret"] = "void" defs["ImGuiTextBuffer_reserve"][1]["signature"] = "(int)" @@ -4902,7 +4944,7 @@ defs["ImGuiTextBuffer_size"][1]["call_args"] = "()" defs["ImGuiTextBuffer_size"][1]["cimguiname"] = "ImGuiTextBuffer_size" defs["ImGuiTextBuffer_size"][1]["defaults"] = {} defs["ImGuiTextBuffer_size"][1]["funcname"] = "size" -defs["ImGuiTextBuffer_size"][1]["location"] = "imgui:2099" +defs["ImGuiTextBuffer_size"][1]["location"] = "imgui:2112" defs["ImGuiTextBuffer_size"][1]["ov_cimguiname"] = "ImGuiTextBuffer_size" defs["ImGuiTextBuffer_size"][1]["ret"] = "int" defs["ImGuiTextBuffer_size"][1]["signature"] = "()const" @@ -4920,7 +4962,7 @@ defs["ImGuiTextFilter_Build"][1]["call_args"] = "()" defs["ImGuiTextFilter_Build"][1]["cimguiname"] = "ImGuiTextFilter_Build" defs["ImGuiTextFilter_Build"][1]["defaults"] = {} defs["ImGuiTextFilter_Build"][1]["funcname"] = "Build" -defs["ImGuiTextFilter_Build"][1]["location"] = "imgui:2068" +defs["ImGuiTextFilter_Build"][1]["location"] = "imgui:2081" defs["ImGuiTextFilter_Build"][1]["ov_cimguiname"] = "ImGuiTextFilter_Build" defs["ImGuiTextFilter_Build"][1]["ret"] = "void" defs["ImGuiTextFilter_Build"][1]["signature"] = "()" @@ -4938,7 +4980,7 @@ defs["ImGuiTextFilter_Clear"][1]["call_args"] = "()" defs["ImGuiTextFilter_Clear"][1]["cimguiname"] = "ImGuiTextFilter_Clear" defs["ImGuiTextFilter_Clear"][1]["defaults"] = {} defs["ImGuiTextFilter_Clear"][1]["funcname"] = "Clear" -defs["ImGuiTextFilter_Clear"][1]["location"] = "imgui:2069" +defs["ImGuiTextFilter_Clear"][1]["location"] = "imgui:2082" defs["ImGuiTextFilter_Clear"][1]["ov_cimguiname"] = "ImGuiTextFilter_Clear" defs["ImGuiTextFilter_Clear"][1]["ret"] = "void" defs["ImGuiTextFilter_Clear"][1]["signature"] = "()" @@ -4964,7 +5006,7 @@ defs["ImGuiTextFilter_Draw"][1]["defaults"] = {} defs["ImGuiTextFilter_Draw"][1]["defaults"]["label"] = "\"Filter(inc,-exc)\"" defs["ImGuiTextFilter_Draw"][1]["defaults"]["width"] = "0.0f" defs["ImGuiTextFilter_Draw"][1]["funcname"] = "Draw" -defs["ImGuiTextFilter_Draw"][1]["location"] = "imgui:2066" +defs["ImGuiTextFilter_Draw"][1]["location"] = "imgui:2079" defs["ImGuiTextFilter_Draw"][1]["ov_cimguiname"] = "ImGuiTextFilter_Draw" defs["ImGuiTextFilter_Draw"][1]["ret"] = "bool" defs["ImGuiTextFilter_Draw"][1]["signature"] = "(const char*,float)" @@ -4984,7 +5026,7 @@ defs["ImGuiTextFilter_ImGuiTextFilter"][1]["constructor"] = true defs["ImGuiTextFilter_ImGuiTextFilter"][1]["defaults"] = {} defs["ImGuiTextFilter_ImGuiTextFilter"][1]["defaults"]["default_filter"] = "\"\"" defs["ImGuiTextFilter_ImGuiTextFilter"][1]["funcname"] = "ImGuiTextFilter" -defs["ImGuiTextFilter_ImGuiTextFilter"][1]["location"] = "imgui:2065" +defs["ImGuiTextFilter_ImGuiTextFilter"][1]["location"] = "imgui:2078" defs["ImGuiTextFilter_ImGuiTextFilter"][1]["ov_cimguiname"] = "ImGuiTextFilter_ImGuiTextFilter" defs["ImGuiTextFilter_ImGuiTextFilter"][1]["signature"] = "(const char*)" defs["ImGuiTextFilter_ImGuiTextFilter"][1]["stname"] = "ImGuiTextFilter" @@ -5001,7 +5043,7 @@ defs["ImGuiTextFilter_IsActive"][1]["call_args"] = "()" defs["ImGuiTextFilter_IsActive"][1]["cimguiname"] = "ImGuiTextFilter_IsActive" defs["ImGuiTextFilter_IsActive"][1]["defaults"] = {} defs["ImGuiTextFilter_IsActive"][1]["funcname"] = "IsActive" -defs["ImGuiTextFilter_IsActive"][1]["location"] = "imgui:2070" +defs["ImGuiTextFilter_IsActive"][1]["location"] = "imgui:2083" defs["ImGuiTextFilter_IsActive"][1]["ov_cimguiname"] = "ImGuiTextFilter_IsActive" defs["ImGuiTextFilter_IsActive"][1]["ret"] = "bool" defs["ImGuiTextFilter_IsActive"][1]["signature"] = "()const" @@ -5026,7 +5068,7 @@ defs["ImGuiTextFilter_PassFilter"][1]["cimguiname"] = "ImGuiTextFilter_PassFilte defs["ImGuiTextFilter_PassFilter"][1]["defaults"] = {} defs["ImGuiTextFilter_PassFilter"][1]["defaults"]["text_end"] = "NULL" defs["ImGuiTextFilter_PassFilter"][1]["funcname"] = "PassFilter" -defs["ImGuiTextFilter_PassFilter"][1]["location"] = "imgui:2067" +defs["ImGuiTextFilter_PassFilter"][1]["location"] = "imgui:2080" defs["ImGuiTextFilter_PassFilter"][1]["ov_cimguiname"] = "ImGuiTextFilter_PassFilter" defs["ImGuiTextFilter_PassFilter"][1]["ret"] = "bool" defs["ImGuiTextFilter_PassFilter"][1]["signature"] = "(const char*,const char*)const" @@ -5058,7 +5100,7 @@ defs["ImGuiTextRange_ImGuiTextRange"][1]["cimguiname"] = "ImGuiTextRange_ImGuiTe defs["ImGuiTextRange_ImGuiTextRange"][1]["constructor"] = true defs["ImGuiTextRange_ImGuiTextRange"][1]["defaults"] = {} defs["ImGuiTextRange_ImGuiTextRange"][1]["funcname"] = "ImGuiTextRange" -defs["ImGuiTextRange_ImGuiTextRange"][1]["location"] = "imgui:2078" +defs["ImGuiTextRange_ImGuiTextRange"][1]["location"] = "imgui:2091" defs["ImGuiTextRange_ImGuiTextRange"][1]["ov_cimguiname"] = "ImGuiTextRange_ImGuiTextRangeNil" defs["ImGuiTextRange_ImGuiTextRange"][1]["signature"] = "()" defs["ImGuiTextRange_ImGuiTextRange"][1]["stname"] = "ImGuiTextRange" @@ -5077,7 +5119,7 @@ defs["ImGuiTextRange_ImGuiTextRange"][2]["cimguiname"] = "ImGuiTextRange_ImGuiTe defs["ImGuiTextRange_ImGuiTextRange"][2]["constructor"] = true defs["ImGuiTextRange_ImGuiTextRange"][2]["defaults"] = {} defs["ImGuiTextRange_ImGuiTextRange"][2]["funcname"] = "ImGuiTextRange" -defs["ImGuiTextRange_ImGuiTextRange"][2]["location"] = "imgui:2079" +defs["ImGuiTextRange_ImGuiTextRange"][2]["location"] = "imgui:2092" defs["ImGuiTextRange_ImGuiTextRange"][2]["ov_cimguiname"] = "ImGuiTextRange_ImGuiTextRangeStr" defs["ImGuiTextRange_ImGuiTextRange"][2]["signature"] = "(const char*,const char*)" defs["ImGuiTextRange_ImGuiTextRange"][2]["stname"] = "ImGuiTextRange" @@ -5111,7 +5153,7 @@ defs["ImGuiTextRange_empty"][1]["call_args"] = "()" defs["ImGuiTextRange_empty"][1]["cimguiname"] = "ImGuiTextRange_empty" defs["ImGuiTextRange_empty"][1]["defaults"] = {} defs["ImGuiTextRange_empty"][1]["funcname"] = "empty" -defs["ImGuiTextRange_empty"][1]["location"] = "imgui:2080" +defs["ImGuiTextRange_empty"][1]["location"] = "imgui:2093" defs["ImGuiTextRange_empty"][1]["ov_cimguiname"] = "ImGuiTextRange_empty" defs["ImGuiTextRange_empty"][1]["ret"] = "bool" defs["ImGuiTextRange_empty"][1]["signature"] = "()const" @@ -5135,7 +5177,7 @@ defs["ImGuiTextRange_split"][1]["call_args"] = "(separator,out)" defs["ImGuiTextRange_split"][1]["cimguiname"] = "ImGuiTextRange_split" defs["ImGuiTextRange_split"][1]["defaults"] = {} defs["ImGuiTextRange_split"][1]["funcname"] = "split" -defs["ImGuiTextRange_split"][1]["location"] = "imgui:2081" +defs["ImGuiTextRange_split"][1]["location"] = "imgui:2094" defs["ImGuiTextRange_split"][1]["ov_cimguiname"] = "ImGuiTextRange_split" defs["ImGuiTextRange_split"][1]["ret"] = "void" defs["ImGuiTextRange_split"][1]["signature"] = "(char,ImVector_ImGuiTextRange*)const" @@ -5156,7 +5198,7 @@ defs["ImGuiViewport_GetCenter"][1]["call_args"] = "()" defs["ImGuiViewport_GetCenter"][1]["cimguiname"] = "ImGuiViewport_GetCenter" defs["ImGuiViewport_GetCenter"][1]["defaults"] = {} defs["ImGuiViewport_GetCenter"][1]["funcname"] = "GetCenter" -defs["ImGuiViewport_GetCenter"][1]["location"] = "imgui:2806" +defs["ImGuiViewport_GetCenter"][1]["location"] = "imgui:2821" defs["ImGuiViewport_GetCenter"][1]["nonUDT"] = 1 defs["ImGuiViewport_GetCenter"][1]["ov_cimguiname"] = "ImGuiViewport_GetCenter" defs["ImGuiViewport_GetCenter"][1]["ret"] = "void" @@ -5178,7 +5220,7 @@ defs["ImGuiViewport_GetWorkCenter"][1]["call_args"] = "()" defs["ImGuiViewport_GetWorkCenter"][1]["cimguiname"] = "ImGuiViewport_GetWorkCenter" defs["ImGuiViewport_GetWorkCenter"][1]["defaults"] = {} defs["ImGuiViewport_GetWorkCenter"][1]["funcname"] = "GetWorkCenter" -defs["ImGuiViewport_GetWorkCenter"][1]["location"] = "imgui:2807" +defs["ImGuiViewport_GetWorkCenter"][1]["location"] = "imgui:2822" defs["ImGuiViewport_GetWorkCenter"][1]["nonUDT"] = 1 defs["ImGuiViewport_GetWorkCenter"][1]["ov_cimguiname"] = "ImGuiViewport_GetWorkCenter" defs["ImGuiViewport_GetWorkCenter"][1]["ret"] = "void" @@ -5195,7 +5237,7 @@ defs["ImGuiViewport_ImGuiViewport"][1]["cimguiname"] = "ImGuiViewport_ImGuiViewp defs["ImGuiViewport_ImGuiViewport"][1]["constructor"] = true defs["ImGuiViewport_ImGuiViewport"][1]["defaults"] = {} defs["ImGuiViewport_ImGuiViewport"][1]["funcname"] = "ImGuiViewport" -defs["ImGuiViewport_ImGuiViewport"][1]["location"] = "imgui:2803" +defs["ImGuiViewport_ImGuiViewport"][1]["location"] = "imgui:2818" defs["ImGuiViewport_ImGuiViewport"][1]["ov_cimguiname"] = "ImGuiViewport_ImGuiViewport" defs["ImGuiViewport_ImGuiViewport"][1]["signature"] = "()" defs["ImGuiViewport_ImGuiViewport"][1]["stname"] = "ImGuiViewport" @@ -5226,7 +5268,7 @@ defs["ImVec2_ImVec2"][1]["cimguiname"] = "ImVec2_ImVec2" defs["ImVec2_ImVec2"][1]["constructor"] = true defs["ImVec2_ImVec2"][1]["defaults"] = {} defs["ImVec2_ImVec2"][1]["funcname"] = "ImVec2" -defs["ImVec2_ImVec2"][1]["location"] = "imgui:259" +defs["ImVec2_ImVec2"][1]["location"] = "imgui:262" defs["ImVec2_ImVec2"][1]["ov_cimguiname"] = "ImVec2_ImVec2Nil" defs["ImVec2_ImVec2"][1]["signature"] = "()" defs["ImVec2_ImVec2"][1]["stname"] = "ImVec2" @@ -5245,7 +5287,7 @@ defs["ImVec2_ImVec2"][2]["cimguiname"] = "ImVec2_ImVec2" defs["ImVec2_ImVec2"][2]["constructor"] = true defs["ImVec2_ImVec2"][2]["defaults"] = {} defs["ImVec2_ImVec2"][2]["funcname"] = "ImVec2" -defs["ImVec2_ImVec2"][2]["location"] = "imgui:260" +defs["ImVec2_ImVec2"][2]["location"] = "imgui:263" defs["ImVec2_ImVec2"][2]["ov_cimguiname"] = "ImVec2_ImVec2Float" defs["ImVec2_ImVec2"][2]["signature"] = "(float,float)" defs["ImVec2_ImVec2"][2]["stname"] = "ImVec2" @@ -5277,7 +5319,7 @@ defs["ImVec4_ImVec4"][1]["cimguiname"] = "ImVec4_ImVec4" defs["ImVec4_ImVec4"][1]["constructor"] = true defs["ImVec4_ImVec4"][1]["defaults"] = {} defs["ImVec4_ImVec4"][1]["funcname"] = "ImVec4" -defs["ImVec4_ImVec4"][1]["location"] = "imgui:272" +defs["ImVec4_ImVec4"][1]["location"] = "imgui:275" defs["ImVec4_ImVec4"][1]["ov_cimguiname"] = "ImVec4_ImVec4Nil" defs["ImVec4_ImVec4"][1]["signature"] = "()" defs["ImVec4_ImVec4"][1]["stname"] = "ImVec4" @@ -5302,7 +5344,7 @@ defs["ImVec4_ImVec4"][2]["cimguiname"] = "ImVec4_ImVec4" defs["ImVec4_ImVec4"][2]["constructor"] = true defs["ImVec4_ImVec4"][2]["defaults"] = {} defs["ImVec4_ImVec4"][2]["funcname"] = "ImVec4" -defs["ImVec4_ImVec4"][2]["location"] = "imgui:273" +defs["ImVec4_ImVec4"][2]["location"] = "imgui:276" defs["ImVec4_ImVec4"][2]["ov_cimguiname"] = "ImVec4_ImVec4Float" defs["ImVec4_ImVec4"][2]["signature"] = "(float,float,float,float)" defs["ImVec4_ImVec4"][2]["stname"] = "ImVec4" @@ -5334,7 +5376,7 @@ defs["ImVector_ImVector"][1]["cimguiname"] = "ImVector_ImVector" defs["ImVector_ImVector"][1]["constructor"] = true defs["ImVector_ImVector"][1]["defaults"] = {} defs["ImVector_ImVector"][1]["funcname"] = "ImVector" -defs["ImVector_ImVector"][1]["location"] = "imgui:1699" +defs["ImVector_ImVector"][1]["location"] = "imgui:1707" defs["ImVector_ImVector"][1]["ov_cimguiname"] = "ImVector_ImVectorNil" defs["ImVector_ImVector"][1]["signature"] = "()" defs["ImVector_ImVector"][1]["stname"] = "ImVector" @@ -5351,7 +5393,7 @@ defs["ImVector_ImVector"][2]["cimguiname"] = "ImVector_ImVector" defs["ImVector_ImVector"][2]["constructor"] = true defs["ImVector_ImVector"][2]["defaults"] = {} defs["ImVector_ImVector"][2]["funcname"] = "ImVector" -defs["ImVector_ImVector"][2]["location"] = "imgui:1700" +defs["ImVector_ImVector"][2]["location"] = "imgui:1708" defs["ImVector_ImVector"][2]["ov_cimguiname"] = "ImVector_ImVectorVector" defs["ImVector_ImVector"][2]["signature"] = "(const ImVector)" defs["ImVector_ImVector"][2]["stname"] = "ImVector" @@ -5373,7 +5415,7 @@ defs["ImVector__grow_capacity"][1]["call_args"] = "(sz)" defs["ImVector__grow_capacity"][1]["cimguiname"] = "ImVector__grow_capacity" defs["ImVector__grow_capacity"][1]["defaults"] = {} defs["ImVector__grow_capacity"][1]["funcname"] = "_grow_capacity" -defs["ImVector__grow_capacity"][1]["location"] = "imgui:1726" +defs["ImVector__grow_capacity"][1]["location"] = "imgui:1734" defs["ImVector__grow_capacity"][1]["ov_cimguiname"] = "ImVector__grow_capacity" defs["ImVector__grow_capacity"][1]["ret"] = "int" defs["ImVector__grow_capacity"][1]["signature"] = "(int)const" @@ -5392,7 +5434,7 @@ defs["ImVector_back"][1]["call_args"] = "()" defs["ImVector_back"][1]["cimguiname"] = "ImVector_back" defs["ImVector_back"][1]["defaults"] = {} defs["ImVector_back"][1]["funcname"] = "back" -defs["ImVector_back"][1]["location"] = "imgui:1722" +defs["ImVector_back"][1]["location"] = "imgui:1730" defs["ImVector_back"][1]["ov_cimguiname"] = "ImVector_backNil" defs["ImVector_back"][1]["ret"] = "T*" defs["ImVector_back"][1]["retref"] = "&" @@ -5410,7 +5452,7 @@ defs["ImVector_back"][2]["call_args"] = "()" defs["ImVector_back"][2]["cimguiname"] = "ImVector_back" defs["ImVector_back"][2]["defaults"] = {} defs["ImVector_back"][2]["funcname"] = "back" -defs["ImVector_back"][2]["location"] = "imgui:1723" +defs["ImVector_back"][2]["location"] = "imgui:1731" defs["ImVector_back"][2]["ov_cimguiname"] = "ImVector_back_const" defs["ImVector_back"][2]["ret"] = "const T*" defs["ImVector_back"][2]["retref"] = "&" @@ -5431,7 +5473,7 @@ defs["ImVector_begin"][1]["call_args"] = "()" defs["ImVector_begin"][1]["cimguiname"] = "ImVector_begin" defs["ImVector_begin"][1]["defaults"] = {} defs["ImVector_begin"][1]["funcname"] = "begin" -defs["ImVector_begin"][1]["location"] = "imgui:1716" +defs["ImVector_begin"][1]["location"] = "imgui:1724" defs["ImVector_begin"][1]["ov_cimguiname"] = "ImVector_beginNil" defs["ImVector_begin"][1]["ret"] = "T*" defs["ImVector_begin"][1]["signature"] = "()" @@ -5448,7 +5490,7 @@ defs["ImVector_begin"][2]["call_args"] = "()" defs["ImVector_begin"][2]["cimguiname"] = "ImVector_begin" defs["ImVector_begin"][2]["defaults"] = {} defs["ImVector_begin"][2]["funcname"] = "begin" -defs["ImVector_begin"][2]["location"] = "imgui:1717" +defs["ImVector_begin"][2]["location"] = "imgui:1725" defs["ImVector_begin"][2]["ov_cimguiname"] = "ImVector_begin_const" defs["ImVector_begin"][2]["ret"] = "const T*" defs["ImVector_begin"][2]["signature"] = "()const" @@ -5468,7 +5510,7 @@ defs["ImVector_capacity"][1]["call_args"] = "()" defs["ImVector_capacity"][1]["cimguiname"] = "ImVector_capacity" defs["ImVector_capacity"][1]["defaults"] = {} defs["ImVector_capacity"][1]["funcname"] = "capacity" -defs["ImVector_capacity"][1]["location"] = "imgui:1712" +defs["ImVector_capacity"][1]["location"] = "imgui:1720" defs["ImVector_capacity"][1]["ov_cimguiname"] = "ImVector_capacity" defs["ImVector_capacity"][1]["ret"] = "int" defs["ImVector_capacity"][1]["signature"] = "()const" @@ -5487,7 +5529,7 @@ defs["ImVector_clear"][1]["call_args"] = "()" defs["ImVector_clear"][1]["cimguiname"] = "ImVector_clear" defs["ImVector_clear"][1]["defaults"] = {} defs["ImVector_clear"][1]["funcname"] = "clear" -defs["ImVector_clear"][1]["location"] = "imgui:1704" +defs["ImVector_clear"][1]["location"] = "imgui:1712" defs["ImVector_clear"][1]["ov_cimguiname"] = "ImVector_clear" defs["ImVector_clear"][1]["ret"] = "void" defs["ImVector_clear"][1]["signature"] = "()" @@ -5506,7 +5548,7 @@ defs["ImVector_clear_delete"][1]["call_args"] = "()" defs["ImVector_clear_delete"][1]["cimguiname"] = "ImVector_clear_delete" defs["ImVector_clear_delete"][1]["defaults"] = {} defs["ImVector_clear_delete"][1]["funcname"] = "clear_delete" -defs["ImVector_clear_delete"][1]["location"] = "imgui:1705" +defs["ImVector_clear_delete"][1]["location"] = "imgui:1713" defs["ImVector_clear_delete"][1]["ov_cimguiname"] = "ImVector_clear_delete" defs["ImVector_clear_delete"][1]["ret"] = "void" defs["ImVector_clear_delete"][1]["signature"] = "()" @@ -5525,7 +5567,7 @@ defs["ImVector_clear_destruct"][1]["call_args"] = "()" defs["ImVector_clear_destruct"][1]["cimguiname"] = "ImVector_clear_destruct" defs["ImVector_clear_destruct"][1]["defaults"] = {} defs["ImVector_clear_destruct"][1]["funcname"] = "clear_destruct" -defs["ImVector_clear_destruct"][1]["location"] = "imgui:1706" +defs["ImVector_clear_destruct"][1]["location"] = "imgui:1714" defs["ImVector_clear_destruct"][1]["ov_cimguiname"] = "ImVector_clear_destruct" defs["ImVector_clear_destruct"][1]["ret"] = "void" defs["ImVector_clear_destruct"][1]["signature"] = "()" @@ -5547,7 +5589,7 @@ defs["ImVector_contains"][1]["call_args"] = "(v)" defs["ImVector_contains"][1]["cimguiname"] = "ImVector_contains" defs["ImVector_contains"][1]["defaults"] = {} defs["ImVector_contains"][1]["funcname"] = "contains" -defs["ImVector_contains"][1]["location"] = "imgui:1740" +defs["ImVector_contains"][1]["location"] = "imgui:1748" defs["ImVector_contains"][1]["ov_cimguiname"] = "ImVector_contains" defs["ImVector_contains"][1]["ret"] = "bool" defs["ImVector_contains"][1]["signature"] = "(const T)const" @@ -5565,7 +5607,7 @@ defs["ImVector_destroy"][1]["call_args"] = "(self)" defs["ImVector_destroy"][1]["cimguiname"] = "ImVector_destroy" defs["ImVector_destroy"][1]["defaults"] = {} defs["ImVector_destroy"][1]["destructor"] = true -defs["ImVector_destroy"][1]["location"] = "imgui:1702" +defs["ImVector_destroy"][1]["location"] = "imgui:1710" defs["ImVector_destroy"][1]["ov_cimguiname"] = "ImVector_destroy" defs["ImVector_destroy"][1]["realdestructor"] = true defs["ImVector_destroy"][1]["ret"] = "void" @@ -5585,7 +5627,7 @@ defs["ImVector_empty"][1]["call_args"] = "()" defs["ImVector_empty"][1]["cimguiname"] = "ImVector_empty" defs["ImVector_empty"][1]["defaults"] = {} defs["ImVector_empty"][1]["funcname"] = "empty" -defs["ImVector_empty"][1]["location"] = "imgui:1708" +defs["ImVector_empty"][1]["location"] = "imgui:1716" defs["ImVector_empty"][1]["ov_cimguiname"] = "ImVector_empty" defs["ImVector_empty"][1]["ret"] = "bool" defs["ImVector_empty"][1]["signature"] = "()const" @@ -5604,7 +5646,7 @@ defs["ImVector_end"][1]["call_args"] = "()" defs["ImVector_end"][1]["cimguiname"] = "ImVector_end" defs["ImVector_end"][1]["defaults"] = {} defs["ImVector_end"][1]["funcname"] = "end" -defs["ImVector_end"][1]["location"] = "imgui:1718" +defs["ImVector_end"][1]["location"] = "imgui:1726" defs["ImVector_end"][1]["ov_cimguiname"] = "ImVector_endNil" defs["ImVector_end"][1]["ret"] = "T*" defs["ImVector_end"][1]["signature"] = "()" @@ -5621,7 +5663,7 @@ defs["ImVector_end"][2]["call_args"] = "()" defs["ImVector_end"][2]["cimguiname"] = "ImVector_end" defs["ImVector_end"][2]["defaults"] = {} defs["ImVector_end"][2]["funcname"] = "end" -defs["ImVector_end"][2]["location"] = "imgui:1719" +defs["ImVector_end"][2]["location"] = "imgui:1727" defs["ImVector_end"][2]["ov_cimguiname"] = "ImVector_end_const" defs["ImVector_end"][2]["ret"] = "const T*" defs["ImVector_end"][2]["signature"] = "()const" @@ -5644,7 +5686,7 @@ defs["ImVector_erase"][1]["call_args"] = "(it)" defs["ImVector_erase"][1]["cimguiname"] = "ImVector_erase" defs["ImVector_erase"][1]["defaults"] = {} defs["ImVector_erase"][1]["funcname"] = "erase" -defs["ImVector_erase"][1]["location"] = "imgui:1736" +defs["ImVector_erase"][1]["location"] = "imgui:1744" defs["ImVector_erase"][1]["ov_cimguiname"] = "ImVector_eraseNil" defs["ImVector_erase"][1]["ret"] = "T*" defs["ImVector_erase"][1]["signature"] = "(const T*)" @@ -5667,7 +5709,7 @@ defs["ImVector_erase"][2]["call_args"] = "(it,it_last)" defs["ImVector_erase"][2]["cimguiname"] = "ImVector_erase" defs["ImVector_erase"][2]["defaults"] = {} defs["ImVector_erase"][2]["funcname"] = "erase" -defs["ImVector_erase"][2]["location"] = "imgui:1737" +defs["ImVector_erase"][2]["location"] = "imgui:1745" defs["ImVector_erase"][2]["ov_cimguiname"] = "ImVector_eraseTPtr" defs["ImVector_erase"][2]["ret"] = "T*" defs["ImVector_erase"][2]["signature"] = "(const T*,const T*)" @@ -5690,7 +5732,7 @@ defs["ImVector_erase_unsorted"][1]["call_args"] = "(it)" defs["ImVector_erase_unsorted"][1]["cimguiname"] = "ImVector_erase_unsorted" defs["ImVector_erase_unsorted"][1]["defaults"] = {} defs["ImVector_erase_unsorted"][1]["funcname"] = "erase_unsorted" -defs["ImVector_erase_unsorted"][1]["location"] = "imgui:1738" +defs["ImVector_erase_unsorted"][1]["location"] = "imgui:1746" defs["ImVector_erase_unsorted"][1]["ov_cimguiname"] = "ImVector_erase_unsorted" defs["ImVector_erase_unsorted"][1]["ret"] = "T*" defs["ImVector_erase_unsorted"][1]["signature"] = "(const T*)" @@ -5712,7 +5754,7 @@ defs["ImVector_find"][1]["call_args"] = "(v)" defs["ImVector_find"][1]["cimguiname"] = "ImVector_find" defs["ImVector_find"][1]["defaults"] = {} defs["ImVector_find"][1]["funcname"] = "find" -defs["ImVector_find"][1]["location"] = "imgui:1741" +defs["ImVector_find"][1]["location"] = "imgui:1749" defs["ImVector_find"][1]["ov_cimguiname"] = "ImVector_findNil" defs["ImVector_find"][1]["ret"] = "T*" defs["ImVector_find"][1]["signature"] = "(const T)" @@ -5732,7 +5774,7 @@ defs["ImVector_find"][2]["call_args"] = "(v)" defs["ImVector_find"][2]["cimguiname"] = "ImVector_find" defs["ImVector_find"][2]["defaults"] = {} defs["ImVector_find"][2]["funcname"] = "find" -defs["ImVector_find"][2]["location"] = "imgui:1742" +defs["ImVector_find"][2]["location"] = "imgui:1750" defs["ImVector_find"][2]["ov_cimguiname"] = "ImVector_find_const" defs["ImVector_find"][2]["ret"] = "const T*" defs["ImVector_find"][2]["signature"] = "(const T)const" @@ -5755,7 +5797,7 @@ defs["ImVector_find_erase"][1]["call_args"] = "(v)" defs["ImVector_find_erase"][1]["cimguiname"] = "ImVector_find_erase" defs["ImVector_find_erase"][1]["defaults"] = {} defs["ImVector_find_erase"][1]["funcname"] = "find_erase" -defs["ImVector_find_erase"][1]["location"] = "imgui:1743" +defs["ImVector_find_erase"][1]["location"] = "imgui:1751" defs["ImVector_find_erase"][1]["ov_cimguiname"] = "ImVector_find_erase" defs["ImVector_find_erase"][1]["ret"] = "bool" defs["ImVector_find_erase"][1]["signature"] = "(const T)" @@ -5777,7 +5819,7 @@ defs["ImVector_find_erase_unsorted"][1]["call_args"] = "(v)" defs["ImVector_find_erase_unsorted"][1]["cimguiname"] = "ImVector_find_erase_unsorted" defs["ImVector_find_erase_unsorted"][1]["defaults"] = {} defs["ImVector_find_erase_unsorted"][1]["funcname"] = "find_erase_unsorted" -defs["ImVector_find_erase_unsorted"][1]["location"] = "imgui:1744" +defs["ImVector_find_erase_unsorted"][1]["location"] = "imgui:1752" defs["ImVector_find_erase_unsorted"][1]["ov_cimguiname"] = "ImVector_find_erase_unsorted" defs["ImVector_find_erase_unsorted"][1]["ret"] = "bool" defs["ImVector_find_erase_unsorted"][1]["signature"] = "(const T)" @@ -5796,7 +5838,7 @@ defs["ImVector_front"][1]["call_args"] = "()" defs["ImVector_front"][1]["cimguiname"] = "ImVector_front" defs["ImVector_front"][1]["defaults"] = {} defs["ImVector_front"][1]["funcname"] = "front" -defs["ImVector_front"][1]["location"] = "imgui:1720" +defs["ImVector_front"][1]["location"] = "imgui:1728" defs["ImVector_front"][1]["ov_cimguiname"] = "ImVector_frontNil" defs["ImVector_front"][1]["ret"] = "T*" defs["ImVector_front"][1]["retref"] = "&" @@ -5814,7 +5856,7 @@ defs["ImVector_front"][2]["call_args"] = "()" defs["ImVector_front"][2]["cimguiname"] = "ImVector_front" defs["ImVector_front"][2]["defaults"] = {} defs["ImVector_front"][2]["funcname"] = "front" -defs["ImVector_front"][2]["location"] = "imgui:1721" +defs["ImVector_front"][2]["location"] = "imgui:1729" defs["ImVector_front"][2]["ov_cimguiname"] = "ImVector_front_const" defs["ImVector_front"][2]["ret"] = "const T*" defs["ImVector_front"][2]["retref"] = "&" @@ -5838,7 +5880,7 @@ defs["ImVector_index_from_ptr"][1]["call_args"] = "(it)" defs["ImVector_index_from_ptr"][1]["cimguiname"] = "ImVector_index_from_ptr" defs["ImVector_index_from_ptr"][1]["defaults"] = {} defs["ImVector_index_from_ptr"][1]["funcname"] = "index_from_ptr" -defs["ImVector_index_from_ptr"][1]["location"] = "imgui:1745" +defs["ImVector_index_from_ptr"][1]["location"] = "imgui:1753" defs["ImVector_index_from_ptr"][1]["ov_cimguiname"] = "ImVector_index_from_ptr" defs["ImVector_index_from_ptr"][1]["ret"] = "int" defs["ImVector_index_from_ptr"][1]["signature"] = "(const T*)const" @@ -5863,7 +5905,7 @@ defs["ImVector_insert"][1]["call_args"] = "(it,v)" defs["ImVector_insert"][1]["cimguiname"] = "ImVector_insert" defs["ImVector_insert"][1]["defaults"] = {} defs["ImVector_insert"][1]["funcname"] = "insert" -defs["ImVector_insert"][1]["location"] = "imgui:1739" +defs["ImVector_insert"][1]["location"] = "imgui:1747" defs["ImVector_insert"][1]["ov_cimguiname"] = "ImVector_insert" defs["ImVector_insert"][1]["ret"] = "T*" defs["ImVector_insert"][1]["signature"] = "(const T*,const T)" @@ -5882,7 +5924,7 @@ defs["ImVector_max_size"][1]["call_args"] = "()" defs["ImVector_max_size"][1]["cimguiname"] = "ImVector_max_size" defs["ImVector_max_size"][1]["defaults"] = {} defs["ImVector_max_size"][1]["funcname"] = "max_size" -defs["ImVector_max_size"][1]["location"] = "imgui:1711" +defs["ImVector_max_size"][1]["location"] = "imgui:1719" defs["ImVector_max_size"][1]["ov_cimguiname"] = "ImVector_max_size" defs["ImVector_max_size"][1]["ret"] = "int" defs["ImVector_max_size"][1]["signature"] = "()const" @@ -5901,7 +5943,7 @@ defs["ImVector_pop_back"][1]["call_args"] = "()" defs["ImVector_pop_back"][1]["cimguiname"] = "ImVector_pop_back" defs["ImVector_pop_back"][1]["defaults"] = {} defs["ImVector_pop_back"][1]["funcname"] = "pop_back" -defs["ImVector_pop_back"][1]["location"] = "imgui:1734" +defs["ImVector_pop_back"][1]["location"] = "imgui:1742" defs["ImVector_pop_back"][1]["ov_cimguiname"] = "ImVector_pop_back" defs["ImVector_pop_back"][1]["ret"] = "void" defs["ImVector_pop_back"][1]["signature"] = "()" @@ -5923,7 +5965,7 @@ defs["ImVector_push_back"][1]["call_args"] = "(v)" defs["ImVector_push_back"][1]["cimguiname"] = "ImVector_push_back" defs["ImVector_push_back"][1]["defaults"] = {} defs["ImVector_push_back"][1]["funcname"] = "push_back" -defs["ImVector_push_back"][1]["location"] = "imgui:1733" +defs["ImVector_push_back"][1]["location"] = "imgui:1741" defs["ImVector_push_back"][1]["ov_cimguiname"] = "ImVector_push_back" defs["ImVector_push_back"][1]["ret"] = "void" defs["ImVector_push_back"][1]["signature"] = "(const T)" @@ -5945,7 +5987,7 @@ defs["ImVector_push_front"][1]["call_args"] = "(v)" defs["ImVector_push_front"][1]["cimguiname"] = "ImVector_push_front" defs["ImVector_push_front"][1]["defaults"] = {} defs["ImVector_push_front"][1]["funcname"] = "push_front" -defs["ImVector_push_front"][1]["location"] = "imgui:1735" +defs["ImVector_push_front"][1]["location"] = "imgui:1743" defs["ImVector_push_front"][1]["ov_cimguiname"] = "ImVector_push_front" defs["ImVector_push_front"][1]["ret"] = "void" defs["ImVector_push_front"][1]["signature"] = "(const T)" @@ -5967,7 +6009,7 @@ defs["ImVector_reserve"][1]["call_args"] = "(new_capacity)" defs["ImVector_reserve"][1]["cimguiname"] = "ImVector_reserve" defs["ImVector_reserve"][1]["defaults"] = {} defs["ImVector_reserve"][1]["funcname"] = "reserve" -defs["ImVector_reserve"][1]["location"] = "imgui:1730" +defs["ImVector_reserve"][1]["location"] = "imgui:1738" defs["ImVector_reserve"][1]["ov_cimguiname"] = "ImVector_reserve" defs["ImVector_reserve"][1]["ret"] = "void" defs["ImVector_reserve"][1]["signature"] = "(int)" @@ -5989,7 +6031,7 @@ defs["ImVector_resize"][1]["call_args"] = "(new_size)" defs["ImVector_resize"][1]["cimguiname"] = "ImVector_resize" defs["ImVector_resize"][1]["defaults"] = {} defs["ImVector_resize"][1]["funcname"] = "resize" -defs["ImVector_resize"][1]["location"] = "imgui:1727" +defs["ImVector_resize"][1]["location"] = "imgui:1735" defs["ImVector_resize"][1]["ov_cimguiname"] = "ImVector_resizeNil" defs["ImVector_resize"][1]["ret"] = "void" defs["ImVector_resize"][1]["signature"] = "(int)" @@ -6012,7 +6054,7 @@ defs["ImVector_resize"][2]["call_args"] = "(new_size,v)" defs["ImVector_resize"][2]["cimguiname"] = "ImVector_resize" defs["ImVector_resize"][2]["defaults"] = {} defs["ImVector_resize"][2]["funcname"] = "resize" -defs["ImVector_resize"][2]["location"] = "imgui:1728" +defs["ImVector_resize"][2]["location"] = "imgui:1736" defs["ImVector_resize"][2]["ov_cimguiname"] = "ImVector_resizeT" defs["ImVector_resize"][2]["ret"] = "void" defs["ImVector_resize"][2]["signature"] = "(int,const T)" @@ -6035,7 +6077,7 @@ defs["ImVector_shrink"][1]["call_args"] = "(new_size)" defs["ImVector_shrink"][1]["cimguiname"] = "ImVector_shrink" defs["ImVector_shrink"][1]["defaults"] = {} defs["ImVector_shrink"][1]["funcname"] = "shrink" -defs["ImVector_shrink"][1]["location"] = "imgui:1729" +defs["ImVector_shrink"][1]["location"] = "imgui:1737" defs["ImVector_shrink"][1]["ov_cimguiname"] = "ImVector_shrink" defs["ImVector_shrink"][1]["ret"] = "void" defs["ImVector_shrink"][1]["signature"] = "(int)" @@ -6054,7 +6096,7 @@ defs["ImVector_size"][1]["call_args"] = "()" defs["ImVector_size"][1]["cimguiname"] = "ImVector_size" defs["ImVector_size"][1]["defaults"] = {} defs["ImVector_size"][1]["funcname"] = "size" -defs["ImVector_size"][1]["location"] = "imgui:1709" +defs["ImVector_size"][1]["location"] = "imgui:1717" defs["ImVector_size"][1]["ov_cimguiname"] = "ImVector_size" defs["ImVector_size"][1]["ret"] = "int" defs["ImVector_size"][1]["signature"] = "()const" @@ -6073,7 +6115,7 @@ defs["ImVector_size_in_bytes"][1]["call_args"] = "()" defs["ImVector_size_in_bytes"][1]["cimguiname"] = "ImVector_size_in_bytes" defs["ImVector_size_in_bytes"][1]["defaults"] = {} defs["ImVector_size_in_bytes"][1]["funcname"] = "size_in_bytes" -defs["ImVector_size_in_bytes"][1]["location"] = "imgui:1710" +defs["ImVector_size_in_bytes"][1]["location"] = "imgui:1718" defs["ImVector_size_in_bytes"][1]["ov_cimguiname"] = "ImVector_size_in_bytes" defs["ImVector_size_in_bytes"][1]["ret"] = "int" defs["ImVector_size_in_bytes"][1]["signature"] = "()const" @@ -6096,7 +6138,7 @@ defs["ImVector_swap"][1]["call_args"] = "(*rhs)" defs["ImVector_swap"][1]["cimguiname"] = "ImVector_swap" defs["ImVector_swap"][1]["defaults"] = {} defs["ImVector_swap"][1]["funcname"] = "swap" -defs["ImVector_swap"][1]["location"] = "imgui:1724" +defs["ImVector_swap"][1]["location"] = "imgui:1732" defs["ImVector_swap"][1]["ov_cimguiname"] = "ImVector_swap" defs["ImVector_swap"][1]["ret"] = "void" defs["ImVector_swap"][1]["signature"] = "(ImVector*)" @@ -6119,7 +6161,7 @@ defs["igAcceptDragDropPayload"][1]["cimguiname"] = "igAcceptDragDropPayload" defs["igAcceptDragDropPayload"][1]["defaults"] = {} defs["igAcceptDragDropPayload"][1]["defaults"]["flags"] = "0" defs["igAcceptDragDropPayload"][1]["funcname"] = "AcceptDragDropPayload" -defs["igAcceptDragDropPayload"][1]["location"] = "imgui:810" +defs["igAcceptDragDropPayload"][1]["location"] = "imgui:813" defs["igAcceptDragDropPayload"][1]["namespace"] = "ImGui" defs["igAcceptDragDropPayload"][1]["ov_cimguiname"] = "igAcceptDragDropPayload" defs["igAcceptDragDropPayload"][1]["ret"] = "const ImGuiPayload*" @@ -6135,7 +6177,7 @@ defs["igAlignTextToFramePadding"][1]["call_args"] = "()" defs["igAlignTextToFramePadding"][1]["cimguiname"] = "igAlignTextToFramePadding" defs["igAlignTextToFramePadding"][1]["defaults"] = {} defs["igAlignTextToFramePadding"][1]["funcname"] = "AlignTextToFramePadding" -defs["igAlignTextToFramePadding"][1]["location"] = "imgui:455" +defs["igAlignTextToFramePadding"][1]["location"] = "imgui:458" defs["igAlignTextToFramePadding"][1]["namespace"] = "ImGui" defs["igAlignTextToFramePadding"][1]["ov_cimguiname"] = "igAlignTextToFramePadding" defs["igAlignTextToFramePadding"][1]["ret"] = "void" @@ -6157,7 +6199,7 @@ defs["igArrowButton"][1]["call_args"] = "(str_id,dir)" defs["igArrowButton"][1]["cimguiname"] = "igArrowButton" defs["igArrowButton"][1]["defaults"] = {} defs["igArrowButton"][1]["funcname"] = "ArrowButton" -defs["igArrowButton"][1]["location"] = "imgui:502" +defs["igArrowButton"][1]["location"] = "imgui:505" defs["igArrowButton"][1]["namespace"] = "ImGui" defs["igArrowButton"][1]["ov_cimguiname"] = "igArrowButton" defs["igArrowButton"][1]["ret"] = "bool" @@ -6184,7 +6226,7 @@ defs["igBegin"][1]["defaults"] = {} defs["igBegin"][1]["defaults"]["flags"] = "0" defs["igBegin"][1]["defaults"]["p_open"] = "NULL" defs["igBegin"][1]["funcname"] = "Begin" -defs["igBegin"][1]["location"] = "imgui:331" +defs["igBegin"][1]["location"] = "imgui:335" defs["igBegin"][1]["namespace"] = "ImGui" defs["igBegin"][1]["ov_cimguiname"] = "igBegin" defs["igBegin"][1]["ret"] = "bool" @@ -6215,7 +6257,7 @@ defs["igBeginChild"][1]["defaults"]["border"] = "false" defs["igBeginChild"][1]["defaults"]["flags"] = "0" defs["igBeginChild"][1]["defaults"]["size"] = "ImVec2(0,0)" defs["igBeginChild"][1]["funcname"] = "BeginChild" -defs["igBeginChild"][1]["location"] = "imgui:342" +defs["igBeginChild"][1]["location"] = "imgui:346" defs["igBeginChild"][1]["namespace"] = "ImGui" defs["igBeginChild"][1]["ov_cimguiname"] = "igBeginChildStr" defs["igBeginChild"][1]["ret"] = "bool" @@ -6244,7 +6286,7 @@ defs["igBeginChild"][2]["defaults"]["border"] = "false" defs["igBeginChild"][2]["defaults"]["flags"] = "0" defs["igBeginChild"][2]["defaults"]["size"] = "ImVec2(0,0)" defs["igBeginChild"][2]["funcname"] = "BeginChild" -defs["igBeginChild"][2]["location"] = "imgui:343" +defs["igBeginChild"][2]["location"] = "imgui:347" defs["igBeginChild"][2]["namespace"] = "ImGui" defs["igBeginChild"][2]["ov_cimguiname"] = "igBeginChildID" defs["igBeginChild"][2]["ret"] = "bool" @@ -6271,7 +6313,7 @@ defs["igBeginChildFrame"][1]["cimguiname"] = "igBeginChildFrame" defs["igBeginChildFrame"][1]["defaults"] = {} defs["igBeginChildFrame"][1]["defaults"]["flags"] = "0" defs["igBeginChildFrame"][1]["funcname"] = "BeginChildFrame" -defs["igBeginChildFrame"][1]["location"] = "imgui:869" +defs["igBeginChildFrame"][1]["location"] = "imgui:872" defs["igBeginChildFrame"][1]["namespace"] = "ImGui" defs["igBeginChildFrame"][1]["ov_cimguiname"] = "igBeginChildFrame" defs["igBeginChildFrame"][1]["ret"] = "bool" @@ -6297,7 +6339,7 @@ defs["igBeginCombo"][1]["cimguiname"] = "igBeginCombo" defs["igBeginCombo"][1]["defaults"] = {} defs["igBeginCombo"][1]["defaults"]["flags"] = "0" defs["igBeginCombo"][1]["funcname"] = "BeginCombo" -defs["igBeginCombo"][1]["location"] = "imgui:516" +defs["igBeginCombo"][1]["location"] = "imgui:519" defs["igBeginCombo"][1]["namespace"] = "ImGui" defs["igBeginCombo"][1]["ov_cimguiname"] = "igBeginCombo" defs["igBeginCombo"][1]["ret"] = "bool" @@ -6317,7 +6359,7 @@ defs["igBeginDisabled"][1]["cimguiname"] = "igBeginDisabled" defs["igBeginDisabled"][1]["defaults"] = {} defs["igBeginDisabled"][1]["defaults"]["disabled"] = "true" defs["igBeginDisabled"][1]["funcname"] = "BeginDisabled" -defs["igBeginDisabled"][1]["location"] = "imgui:817" +defs["igBeginDisabled"][1]["location"] = "imgui:821" defs["igBeginDisabled"][1]["namespace"] = "ImGui" defs["igBeginDisabled"][1]["ov_cimguiname"] = "igBeginDisabled" defs["igBeginDisabled"][1]["ret"] = "void" @@ -6337,7 +6379,7 @@ defs["igBeginDragDropSource"][1]["cimguiname"] = "igBeginDragDropSource" defs["igBeginDragDropSource"][1]["defaults"] = {} defs["igBeginDragDropSource"][1]["defaults"]["flags"] = "0" defs["igBeginDragDropSource"][1]["funcname"] = "BeginDragDropSource" -defs["igBeginDragDropSource"][1]["location"] = "imgui:806" +defs["igBeginDragDropSource"][1]["location"] = "imgui:809" defs["igBeginDragDropSource"][1]["namespace"] = "ImGui" defs["igBeginDragDropSource"][1]["ov_cimguiname"] = "igBeginDragDropSource" defs["igBeginDragDropSource"][1]["ret"] = "bool" @@ -6353,7 +6395,7 @@ defs["igBeginDragDropTarget"][1]["call_args"] = "()" defs["igBeginDragDropTarget"][1]["cimguiname"] = "igBeginDragDropTarget" defs["igBeginDragDropTarget"][1]["defaults"] = {} defs["igBeginDragDropTarget"][1]["funcname"] = "BeginDragDropTarget" -defs["igBeginDragDropTarget"][1]["location"] = "imgui:809" +defs["igBeginDragDropTarget"][1]["location"] = "imgui:812" defs["igBeginDragDropTarget"][1]["namespace"] = "ImGui" defs["igBeginDragDropTarget"][1]["ov_cimguiname"] = "igBeginDragDropTarget" defs["igBeginDragDropTarget"][1]["ret"] = "bool" @@ -6369,7 +6411,7 @@ defs["igBeginGroup"][1]["call_args"] = "()" defs["igBeginGroup"][1]["cimguiname"] = "igBeginGroup" defs["igBeginGroup"][1]["defaults"] = {} defs["igBeginGroup"][1]["funcname"] = "BeginGroup" -defs["igBeginGroup"][1]["location"] = "imgui:444" +defs["igBeginGroup"][1]["location"] = "imgui:447" defs["igBeginGroup"][1]["namespace"] = "ImGui" defs["igBeginGroup"][1]["ov_cimguiname"] = "igBeginGroup" defs["igBeginGroup"][1]["ret"] = "void" @@ -6392,7 +6434,7 @@ defs["igBeginListBox"][1]["cimguiname"] = "igBeginListBox" defs["igBeginListBox"][1]["defaults"] = {} defs["igBeginListBox"][1]["defaults"]["size"] = "ImVec2(0,0)" defs["igBeginListBox"][1]["funcname"] = "BeginListBox" -defs["igBeginListBox"][1]["location"] = "imgui:627" +defs["igBeginListBox"][1]["location"] = "imgui:630" defs["igBeginListBox"][1]["namespace"] = "ImGui" defs["igBeginListBox"][1]["ov_cimguiname"] = "igBeginListBox" defs["igBeginListBox"][1]["ret"] = "bool" @@ -6408,7 +6450,7 @@ defs["igBeginMainMenuBar"][1]["call_args"] = "()" defs["igBeginMainMenuBar"][1]["cimguiname"] = "igBeginMainMenuBar" defs["igBeginMainMenuBar"][1]["defaults"] = {} defs["igBeginMainMenuBar"][1]["funcname"] = "BeginMainMenuBar" -defs["igBeginMainMenuBar"][1]["location"] = "imgui:653" +defs["igBeginMainMenuBar"][1]["location"] = "imgui:656" defs["igBeginMainMenuBar"][1]["namespace"] = "ImGui" defs["igBeginMainMenuBar"][1]["ov_cimguiname"] = "igBeginMainMenuBar" defs["igBeginMainMenuBar"][1]["ret"] = "bool" @@ -6431,7 +6473,7 @@ defs["igBeginMenu"][1]["cimguiname"] = "igBeginMenu" defs["igBeginMenu"][1]["defaults"] = {} defs["igBeginMenu"][1]["defaults"]["enabled"] = "true" defs["igBeginMenu"][1]["funcname"] = "BeginMenu" -defs["igBeginMenu"][1]["location"] = "imgui:655" +defs["igBeginMenu"][1]["location"] = "imgui:658" defs["igBeginMenu"][1]["namespace"] = "ImGui" defs["igBeginMenu"][1]["ov_cimguiname"] = "igBeginMenu" defs["igBeginMenu"][1]["ret"] = "bool" @@ -6447,7 +6489,7 @@ defs["igBeginMenuBar"][1]["call_args"] = "()" defs["igBeginMenuBar"][1]["cimguiname"] = "igBeginMenuBar" defs["igBeginMenuBar"][1]["defaults"] = {} defs["igBeginMenuBar"][1]["funcname"] = "BeginMenuBar" -defs["igBeginMenuBar"][1]["location"] = "imgui:651" +defs["igBeginMenuBar"][1]["location"] = "imgui:654" defs["igBeginMenuBar"][1]["namespace"] = "ImGui" defs["igBeginMenuBar"][1]["ov_cimguiname"] = "igBeginMenuBar" defs["igBeginMenuBar"][1]["ret"] = "bool" @@ -6470,7 +6512,7 @@ defs["igBeginPopup"][1]["cimguiname"] = "igBeginPopup" defs["igBeginPopup"][1]["defaults"] = {} defs["igBeginPopup"][1]["defaults"]["flags"] = "0" defs["igBeginPopup"][1]["funcname"] = "BeginPopup" -defs["igBeginPopup"][1]["location"] = "imgui:679" +defs["igBeginPopup"][1]["location"] = "imgui:682" defs["igBeginPopup"][1]["namespace"] = "ImGui" defs["igBeginPopup"][1]["ov_cimguiname"] = "igBeginPopup" defs["igBeginPopup"][1]["ret"] = "bool" @@ -6494,7 +6536,7 @@ defs["igBeginPopupContextItem"][1]["defaults"] = {} defs["igBeginPopupContextItem"][1]["defaults"]["popup_flags"] = "1" defs["igBeginPopupContextItem"][1]["defaults"]["str_id"] = "NULL" defs["igBeginPopupContextItem"][1]["funcname"] = "BeginPopupContextItem" -defs["igBeginPopupContextItem"][1]["location"] = "imgui:700" +defs["igBeginPopupContextItem"][1]["location"] = "imgui:703" defs["igBeginPopupContextItem"][1]["namespace"] = "ImGui" defs["igBeginPopupContextItem"][1]["ov_cimguiname"] = "igBeginPopupContextItem" defs["igBeginPopupContextItem"][1]["ret"] = "bool" @@ -6518,7 +6560,7 @@ defs["igBeginPopupContextVoid"][1]["defaults"] = {} defs["igBeginPopupContextVoid"][1]["defaults"]["popup_flags"] = "1" defs["igBeginPopupContextVoid"][1]["defaults"]["str_id"] = "NULL" defs["igBeginPopupContextVoid"][1]["funcname"] = "BeginPopupContextVoid" -defs["igBeginPopupContextVoid"][1]["location"] = "imgui:702" +defs["igBeginPopupContextVoid"][1]["location"] = "imgui:705" defs["igBeginPopupContextVoid"][1]["namespace"] = "ImGui" defs["igBeginPopupContextVoid"][1]["ov_cimguiname"] = "igBeginPopupContextVoid" defs["igBeginPopupContextVoid"][1]["ret"] = "bool" @@ -6542,7 +6584,7 @@ defs["igBeginPopupContextWindow"][1]["defaults"] = {} defs["igBeginPopupContextWindow"][1]["defaults"]["popup_flags"] = "1" defs["igBeginPopupContextWindow"][1]["defaults"]["str_id"] = "NULL" defs["igBeginPopupContextWindow"][1]["funcname"] = "BeginPopupContextWindow" -defs["igBeginPopupContextWindow"][1]["location"] = "imgui:701" +defs["igBeginPopupContextWindow"][1]["location"] = "imgui:704" defs["igBeginPopupContextWindow"][1]["namespace"] = "ImGui" defs["igBeginPopupContextWindow"][1]["ov_cimguiname"] = "igBeginPopupContextWindow" defs["igBeginPopupContextWindow"][1]["ret"] = "bool" @@ -6569,7 +6611,7 @@ defs["igBeginPopupModal"][1]["defaults"] = {} defs["igBeginPopupModal"][1]["defaults"]["flags"] = "0" defs["igBeginPopupModal"][1]["defaults"]["p_open"] = "NULL" defs["igBeginPopupModal"][1]["funcname"] = "BeginPopupModal" -defs["igBeginPopupModal"][1]["location"] = "imgui:680" +defs["igBeginPopupModal"][1]["location"] = "imgui:683" defs["igBeginPopupModal"][1]["namespace"] = "ImGui" defs["igBeginPopupModal"][1]["ov_cimguiname"] = "igBeginPopupModal" defs["igBeginPopupModal"][1]["ret"] = "bool" @@ -6592,7 +6634,7 @@ defs["igBeginTabBar"][1]["cimguiname"] = "igBeginTabBar" defs["igBeginTabBar"][1]["defaults"] = {} defs["igBeginTabBar"][1]["defaults"]["flags"] = "0" defs["igBeginTabBar"][1]["funcname"] = "BeginTabBar" -defs["igBeginTabBar"][1]["location"] = "imgui:784" +defs["igBeginTabBar"][1]["location"] = "imgui:787" defs["igBeginTabBar"][1]["namespace"] = "ImGui" defs["igBeginTabBar"][1]["ov_cimguiname"] = "igBeginTabBar" defs["igBeginTabBar"][1]["ret"] = "bool" @@ -6619,7 +6661,7 @@ defs["igBeginTabItem"][1]["defaults"] = {} defs["igBeginTabItem"][1]["defaults"]["flags"] = "0" defs["igBeginTabItem"][1]["defaults"]["p_open"] = "NULL" defs["igBeginTabItem"][1]["funcname"] = "BeginTabItem" -defs["igBeginTabItem"][1]["location"] = "imgui:786" +defs["igBeginTabItem"][1]["location"] = "imgui:789" defs["igBeginTabItem"][1]["namespace"] = "ImGui" defs["igBeginTabItem"][1]["ov_cimguiname"] = "igBeginTabItem" defs["igBeginTabItem"][1]["ret"] = "bool" @@ -6653,7 +6695,7 @@ defs["igBeginTable"][1]["defaults"]["flags"] = "0" defs["igBeginTable"][1]["defaults"]["inner_width"] = "0.0f" defs["igBeginTable"][1]["defaults"]["outer_size"] = "ImVec2(0.0f,0.0f)" defs["igBeginTable"][1]["funcname"] = "BeginTable" -defs["igBeginTable"][1]["location"] = "imgui:735" +defs["igBeginTable"][1]["location"] = "imgui:738" defs["igBeginTable"][1]["namespace"] = "ImGui" defs["igBeginTable"][1]["ov_cimguiname"] = "igBeginTable" defs["igBeginTable"][1]["ret"] = "bool" @@ -6669,7 +6711,7 @@ defs["igBeginTooltip"][1]["call_args"] = "()" defs["igBeginTooltip"][1]["cimguiname"] = "igBeginTooltip" defs["igBeginTooltip"][1]["defaults"] = {} defs["igBeginTooltip"][1]["funcname"] = "BeginTooltip" -defs["igBeginTooltip"][1]["location"] = "imgui:662" +defs["igBeginTooltip"][1]["location"] = "imgui:665" defs["igBeginTooltip"][1]["namespace"] = "ImGui" defs["igBeginTooltip"][1]["ov_cimguiname"] = "igBeginTooltip" defs["igBeginTooltip"][1]["ret"] = "void" @@ -6685,7 +6727,7 @@ defs["igBullet"][1]["call_args"] = "()" defs["igBullet"][1]["cimguiname"] = "igBullet" defs["igBullet"][1]["defaults"] = {} defs["igBullet"][1]["funcname"] = "Bullet" -defs["igBullet"][1]["location"] = "imgui:511" +defs["igBullet"][1]["location"] = "imgui:514" defs["igBullet"][1]["namespace"] = "ImGui" defs["igBullet"][1]["ov_cimguiname"] = "igBullet" defs["igBullet"][1]["ret"] = "void" @@ -6708,7 +6750,7 @@ defs["igBulletText"][1]["cimguiname"] = "igBulletText" defs["igBulletText"][1]["defaults"] = {} defs["igBulletText"][1]["funcname"] = "BulletText" defs["igBulletText"][1]["isvararg"] = "...)" -defs["igBulletText"][1]["location"] = "imgui:493" +defs["igBulletText"][1]["location"] = "imgui:496" defs["igBulletText"][1]["namespace"] = "ImGui" defs["igBulletText"][1]["ov_cimguiname"] = "igBulletText" defs["igBulletText"][1]["ret"] = "void" @@ -6730,7 +6772,7 @@ defs["igBulletTextV"][1]["call_args"] = "(fmt,args)" defs["igBulletTextV"][1]["cimguiname"] = "igBulletTextV" defs["igBulletTextV"][1]["defaults"] = {} defs["igBulletTextV"][1]["funcname"] = "BulletTextV" -defs["igBulletTextV"][1]["location"] = "imgui:494" +defs["igBulletTextV"][1]["location"] = "imgui:497" defs["igBulletTextV"][1]["namespace"] = "ImGui" defs["igBulletTextV"][1]["ov_cimguiname"] = "igBulletTextV" defs["igBulletTextV"][1]["ret"] = "void" @@ -6753,7 +6795,7 @@ defs["igButton"][1]["cimguiname"] = "igButton" defs["igButton"][1]["defaults"] = {} defs["igButton"][1]["defaults"]["size"] = "ImVec2(0,0)" defs["igButton"][1]["funcname"] = "Button" -defs["igButton"][1]["location"] = "imgui:499" +defs["igButton"][1]["location"] = "imgui:502" defs["igButton"][1]["namespace"] = "ImGui" defs["igButton"][1]["ov_cimguiname"] = "igButton" defs["igButton"][1]["ret"] = "bool" @@ -6769,41 +6811,13 @@ defs["igCalcItemWidth"][1]["call_args"] = "()" defs["igCalcItemWidth"][1]["cimguiname"] = "igCalcItemWidth" defs["igCalcItemWidth"][1]["defaults"] = {} defs["igCalcItemWidth"][1]["funcname"] = "CalcItemWidth" -defs["igCalcItemWidth"][1]["location"] = "imgui:416" +defs["igCalcItemWidth"][1]["location"] = "imgui:419" defs["igCalcItemWidth"][1]["namespace"] = "ImGui" defs["igCalcItemWidth"][1]["ov_cimguiname"] = "igCalcItemWidth" defs["igCalcItemWidth"][1]["ret"] = "float" defs["igCalcItemWidth"][1]["signature"] = "()" defs["igCalcItemWidth"][1]["stname"] = "" defs["igCalcItemWidth"]["()"] = defs["igCalcItemWidth"][1] -defs["igCalcListClipping"] = {} -defs["igCalcListClipping"][1] = {} -defs["igCalcListClipping"][1]["args"] = "(int items_count,float items_height,int* out_items_display_start,int* out_items_display_end)" -defs["igCalcListClipping"][1]["argsT"] = {} -defs["igCalcListClipping"][1]["argsT"][1] = {} -defs["igCalcListClipping"][1]["argsT"][1]["name"] = "items_count" -defs["igCalcListClipping"][1]["argsT"][1]["type"] = "int" -defs["igCalcListClipping"][1]["argsT"][2] = {} -defs["igCalcListClipping"][1]["argsT"][2]["name"] = "items_height" -defs["igCalcListClipping"][1]["argsT"][2]["type"] = "float" -defs["igCalcListClipping"][1]["argsT"][3] = {} -defs["igCalcListClipping"][1]["argsT"][3]["name"] = "out_items_display_start" -defs["igCalcListClipping"][1]["argsT"][3]["type"] = "int*" -defs["igCalcListClipping"][1]["argsT"][4] = {} -defs["igCalcListClipping"][1]["argsT"][4]["name"] = "out_items_display_end" -defs["igCalcListClipping"][1]["argsT"][4]["type"] = "int*" -defs["igCalcListClipping"][1]["argsoriginal"] = "(int items_count,float items_height,int* out_items_display_start,int* out_items_display_end)" -defs["igCalcListClipping"][1]["call_args"] = "(items_count,items_height,out_items_display_start,out_items_display_end)" -defs["igCalcListClipping"][1]["cimguiname"] = "igCalcListClipping" -defs["igCalcListClipping"][1]["defaults"] = {} -defs["igCalcListClipping"][1]["funcname"] = "CalcListClipping" -defs["igCalcListClipping"][1]["location"] = "imgui:868" -defs["igCalcListClipping"][1]["namespace"] = "ImGui" -defs["igCalcListClipping"][1]["ov_cimguiname"] = "igCalcListClipping" -defs["igCalcListClipping"][1]["ret"] = "void" -defs["igCalcListClipping"][1]["signature"] = "(int,float,int*,int*)" -defs["igCalcListClipping"][1]["stname"] = "" -defs["igCalcListClipping"]["(int,float,int*,int*)"] = defs["igCalcListClipping"][1] defs["igCalcTextSize"] = {} defs["igCalcTextSize"][1] = {} defs["igCalcTextSize"][1]["args"] = "(ImVec2 *pOut,const char* text,const char* text_end,bool hide_text_after_double_hash,float wrap_width)" @@ -6831,7 +6845,7 @@ defs["igCalcTextSize"][1]["defaults"]["hide_text_after_double_hash"] = "false" defs["igCalcTextSize"][1]["defaults"]["text_end"] = "NULL" defs["igCalcTextSize"][1]["defaults"]["wrap_width"] = "-1.0f" defs["igCalcTextSize"][1]["funcname"] = "CalcTextSize" -defs["igCalcTextSize"][1]["location"] = "imgui:873" +defs["igCalcTextSize"][1]["location"] = "imgui:876" defs["igCalcTextSize"][1]["namespace"] = "ImGui" defs["igCalcTextSize"][1]["nonUDT"] = 1 defs["igCalcTextSize"][1]["ov_cimguiname"] = "igCalcTextSize" @@ -6852,7 +6866,7 @@ defs["igCaptureKeyboardFromApp"][1]["cimguiname"] = "igCaptureKeyboardFromApp" defs["igCaptureKeyboardFromApp"][1]["defaults"] = {} defs["igCaptureKeyboardFromApp"][1]["defaults"]["want_capture_keyboard_value"] = "true" defs["igCaptureKeyboardFromApp"][1]["funcname"] = "CaptureKeyboardFromApp" -defs["igCaptureKeyboardFromApp"][1]["location"] = "imgui:889" +defs["igCaptureKeyboardFromApp"][1]["location"] = "imgui:892" defs["igCaptureKeyboardFromApp"][1]["namespace"] = "ImGui" defs["igCaptureKeyboardFromApp"][1]["ov_cimguiname"] = "igCaptureKeyboardFromApp" defs["igCaptureKeyboardFromApp"][1]["ret"] = "void" @@ -6872,7 +6886,7 @@ defs["igCaptureMouseFromApp"][1]["cimguiname"] = "igCaptureMouseFromApp" defs["igCaptureMouseFromApp"][1]["defaults"] = {} defs["igCaptureMouseFromApp"][1]["defaults"]["want_capture_mouse_value"] = "true" defs["igCaptureMouseFromApp"][1]["funcname"] = "CaptureMouseFromApp" -defs["igCaptureMouseFromApp"][1]["location"] = "imgui:909" +defs["igCaptureMouseFromApp"][1]["location"] = "imgui:913" defs["igCaptureMouseFromApp"][1]["namespace"] = "ImGui" defs["igCaptureMouseFromApp"][1]["ov_cimguiname"] = "igCaptureMouseFromApp" defs["igCaptureMouseFromApp"][1]["ret"] = "void" @@ -6894,7 +6908,7 @@ defs["igCheckbox"][1]["call_args"] = "(label,v)" defs["igCheckbox"][1]["cimguiname"] = "igCheckbox" defs["igCheckbox"][1]["defaults"] = {} defs["igCheckbox"][1]["funcname"] = "Checkbox" -defs["igCheckbox"][1]["location"] = "imgui:505" +defs["igCheckbox"][1]["location"] = "imgui:508" defs["igCheckbox"][1]["namespace"] = "ImGui" defs["igCheckbox"][1]["ov_cimguiname"] = "igCheckbox" defs["igCheckbox"][1]["ret"] = "bool" @@ -6919,7 +6933,7 @@ defs["igCheckboxFlags"][1]["call_args"] = "(label,flags,flags_value)" defs["igCheckboxFlags"][1]["cimguiname"] = "igCheckboxFlags" defs["igCheckboxFlags"][1]["defaults"] = {} defs["igCheckboxFlags"][1]["funcname"] = "CheckboxFlags" -defs["igCheckboxFlags"][1]["location"] = "imgui:506" +defs["igCheckboxFlags"][1]["location"] = "imgui:509" defs["igCheckboxFlags"][1]["namespace"] = "ImGui" defs["igCheckboxFlags"][1]["ov_cimguiname"] = "igCheckboxFlagsIntPtr" defs["igCheckboxFlags"][1]["ret"] = "bool" @@ -6942,7 +6956,7 @@ defs["igCheckboxFlags"][2]["call_args"] = "(label,flags,flags_value)" defs["igCheckboxFlags"][2]["cimguiname"] = "igCheckboxFlags" defs["igCheckboxFlags"][2]["defaults"] = {} defs["igCheckboxFlags"][2]["funcname"] = "CheckboxFlags" -defs["igCheckboxFlags"][2]["location"] = "imgui:507" +defs["igCheckboxFlags"][2]["location"] = "imgui:510" defs["igCheckboxFlags"][2]["namespace"] = "ImGui" defs["igCheckboxFlags"][2]["ov_cimguiname"] = "igCheckboxFlagsUintPtr" defs["igCheckboxFlags"][2]["ret"] = "bool" @@ -6959,7 +6973,7 @@ defs["igCloseCurrentPopup"][1]["call_args"] = "()" defs["igCloseCurrentPopup"][1]["cimguiname"] = "igCloseCurrentPopup" defs["igCloseCurrentPopup"][1]["defaults"] = {} defs["igCloseCurrentPopup"][1]["funcname"] = "CloseCurrentPopup" -defs["igCloseCurrentPopup"][1]["location"] = "imgui:693" +defs["igCloseCurrentPopup"][1]["location"] = "imgui:696" defs["igCloseCurrentPopup"][1]["namespace"] = "ImGui" defs["igCloseCurrentPopup"][1]["ov_cimguiname"] = "igCloseCurrentPopup" defs["igCloseCurrentPopup"][1]["ret"] = "void" @@ -6982,7 +6996,7 @@ defs["igCollapsingHeader"][1]["cimguiname"] = "igCollapsingHeader" defs["igCollapsingHeader"][1]["defaults"] = {} defs["igCollapsingHeader"][1]["defaults"]["flags"] = "0" defs["igCollapsingHeader"][1]["funcname"] = "CollapsingHeader" -defs["igCollapsingHeader"][1]["location"] = "imgui:611" +defs["igCollapsingHeader"][1]["location"] = "imgui:614" defs["igCollapsingHeader"][1]["namespace"] = "ImGui" defs["igCollapsingHeader"][1]["ov_cimguiname"] = "igCollapsingHeaderTreeNodeFlags" defs["igCollapsingHeader"][1]["ret"] = "bool" @@ -7006,7 +7020,7 @@ defs["igCollapsingHeader"][2]["cimguiname"] = "igCollapsingHeader" defs["igCollapsingHeader"][2]["defaults"] = {} defs["igCollapsingHeader"][2]["defaults"]["flags"] = "0" defs["igCollapsingHeader"][2]["funcname"] = "CollapsingHeader" -defs["igCollapsingHeader"][2]["location"] = "imgui:612" +defs["igCollapsingHeader"][2]["location"] = "imgui:615" defs["igCollapsingHeader"][2]["namespace"] = "ImGui" defs["igCollapsingHeader"][2]["ov_cimguiname"] = "igCollapsingHeaderBoolPtr" defs["igCollapsingHeader"][2]["ret"] = "bool" @@ -7037,7 +7051,7 @@ defs["igColorButton"][1]["defaults"] = {} defs["igColorButton"][1]["defaults"]["flags"] = "0" defs["igColorButton"][1]["defaults"]["size"] = "ImVec2(0,0)" defs["igColorButton"][1]["funcname"] = "ColorButton" -defs["igColorButton"][1]["location"] = "imgui:592" +defs["igColorButton"][1]["location"] = "imgui:595" defs["igColorButton"][1]["namespace"] = "ImGui" defs["igColorButton"][1]["ov_cimguiname"] = "igColorButton" defs["igColorButton"][1]["ret"] = "bool" @@ -7056,7 +7070,7 @@ defs["igColorConvertFloat4ToU32"][1]["call_args"] = "(in)" defs["igColorConvertFloat4ToU32"][1]["cimguiname"] = "igColorConvertFloat4ToU32" defs["igColorConvertFloat4ToU32"][1]["defaults"] = {} defs["igColorConvertFloat4ToU32"][1]["funcname"] = "ColorConvertFloat4ToU32" -defs["igColorConvertFloat4ToU32"][1]["location"] = "imgui:877" +defs["igColorConvertFloat4ToU32"][1]["location"] = "imgui:880" defs["igColorConvertFloat4ToU32"][1]["namespace"] = "ImGui" defs["igColorConvertFloat4ToU32"][1]["ov_cimguiname"] = "igColorConvertFloat4ToU32" defs["igColorConvertFloat4ToU32"][1]["ret"] = "ImU32" @@ -7093,7 +7107,7 @@ defs["igColorConvertHSVtoRGB"][1]["call_args"] = "(h,s,v,*out_r,*out_g,*out_b)" defs["igColorConvertHSVtoRGB"][1]["cimguiname"] = "igColorConvertHSVtoRGB" defs["igColorConvertHSVtoRGB"][1]["defaults"] = {} defs["igColorConvertHSVtoRGB"][1]["funcname"] = "ColorConvertHSVtoRGB" -defs["igColorConvertHSVtoRGB"][1]["location"] = "imgui:879" +defs["igColorConvertHSVtoRGB"][1]["location"] = "imgui:882" defs["igColorConvertHSVtoRGB"][1]["namespace"] = "ImGui" defs["igColorConvertHSVtoRGB"][1]["ov_cimguiname"] = "igColorConvertHSVtoRGB" defs["igColorConvertHSVtoRGB"][1]["ret"] = "void" @@ -7130,7 +7144,7 @@ defs["igColorConvertRGBtoHSV"][1]["call_args"] = "(r,g,b,*out_h,*out_s,*out_v)" defs["igColorConvertRGBtoHSV"][1]["cimguiname"] = "igColorConvertRGBtoHSV" defs["igColorConvertRGBtoHSV"][1]["defaults"] = {} defs["igColorConvertRGBtoHSV"][1]["funcname"] = "ColorConvertRGBtoHSV" -defs["igColorConvertRGBtoHSV"][1]["location"] = "imgui:878" +defs["igColorConvertRGBtoHSV"][1]["location"] = "imgui:881" defs["igColorConvertRGBtoHSV"][1]["namespace"] = "ImGui" defs["igColorConvertRGBtoHSV"][1]["ov_cimguiname"] = "igColorConvertRGBtoHSV" defs["igColorConvertRGBtoHSV"][1]["ret"] = "void" @@ -7152,7 +7166,7 @@ defs["igColorConvertU32ToFloat4"][1]["call_args"] = "(in)" defs["igColorConvertU32ToFloat4"][1]["cimguiname"] = "igColorConvertU32ToFloat4" defs["igColorConvertU32ToFloat4"][1]["defaults"] = {} defs["igColorConvertU32ToFloat4"][1]["funcname"] = "ColorConvertU32ToFloat4" -defs["igColorConvertU32ToFloat4"][1]["location"] = "imgui:876" +defs["igColorConvertU32ToFloat4"][1]["location"] = "imgui:879" defs["igColorConvertU32ToFloat4"][1]["namespace"] = "ImGui" defs["igColorConvertU32ToFloat4"][1]["nonUDT"] = 1 defs["igColorConvertU32ToFloat4"][1]["ov_cimguiname"] = "igColorConvertU32ToFloat4" @@ -7179,7 +7193,7 @@ defs["igColorEdit3"][1]["cimguiname"] = "igColorEdit3" defs["igColorEdit3"][1]["defaults"] = {} defs["igColorEdit3"][1]["defaults"]["flags"] = "0" defs["igColorEdit3"][1]["funcname"] = "ColorEdit3" -defs["igColorEdit3"][1]["location"] = "imgui:588" +defs["igColorEdit3"][1]["location"] = "imgui:591" defs["igColorEdit3"][1]["namespace"] = "ImGui" defs["igColorEdit3"][1]["ov_cimguiname"] = "igColorEdit3" defs["igColorEdit3"][1]["ret"] = "bool" @@ -7205,7 +7219,7 @@ defs["igColorEdit4"][1]["cimguiname"] = "igColorEdit4" defs["igColorEdit4"][1]["defaults"] = {} defs["igColorEdit4"][1]["defaults"]["flags"] = "0" defs["igColorEdit4"][1]["funcname"] = "ColorEdit4" -defs["igColorEdit4"][1]["location"] = "imgui:589" +defs["igColorEdit4"][1]["location"] = "imgui:592" defs["igColorEdit4"][1]["namespace"] = "ImGui" defs["igColorEdit4"][1]["ov_cimguiname"] = "igColorEdit4" defs["igColorEdit4"][1]["ret"] = "bool" @@ -7231,7 +7245,7 @@ defs["igColorPicker3"][1]["cimguiname"] = "igColorPicker3" defs["igColorPicker3"][1]["defaults"] = {} defs["igColorPicker3"][1]["defaults"]["flags"] = "0" defs["igColorPicker3"][1]["funcname"] = "ColorPicker3" -defs["igColorPicker3"][1]["location"] = "imgui:590" +defs["igColorPicker3"][1]["location"] = "imgui:593" defs["igColorPicker3"][1]["namespace"] = "ImGui" defs["igColorPicker3"][1]["ov_cimguiname"] = "igColorPicker3" defs["igColorPicker3"][1]["ret"] = "bool" @@ -7261,7 +7275,7 @@ defs["igColorPicker4"][1]["defaults"] = {} defs["igColorPicker4"][1]["defaults"]["flags"] = "0" defs["igColorPicker4"][1]["defaults"]["ref_col"] = "NULL" defs["igColorPicker4"][1]["funcname"] = "ColorPicker4" -defs["igColorPicker4"][1]["location"] = "imgui:591" +defs["igColorPicker4"][1]["location"] = "imgui:594" defs["igColorPicker4"][1]["namespace"] = "ImGui" defs["igColorPicker4"][1]["ov_cimguiname"] = "igColorPicker4" defs["igColorPicker4"][1]["ret"] = "bool" @@ -7289,7 +7303,7 @@ defs["igColumns"][1]["defaults"]["border"] = "true" defs["igColumns"][1]["defaults"]["count"] = "1" defs["igColumns"][1]["defaults"]["id"] = "NULL" defs["igColumns"][1]["funcname"] = "Columns" -defs["igColumns"][1]["location"] = "imgui:774" +defs["igColumns"][1]["location"] = "imgui:777" defs["igColumns"][1]["namespace"] = "ImGui" defs["igColumns"][1]["ov_cimguiname"] = "igColumns" defs["igColumns"][1]["ret"] = "void" @@ -7321,7 +7335,7 @@ defs["igCombo"][1]["cimguiname"] = "igCombo" defs["igCombo"][1]["defaults"] = {} defs["igCombo"][1]["defaults"]["popup_max_height_in_items"] = "-1" defs["igCombo"][1]["funcname"] = "Combo" -defs["igCombo"][1]["location"] = "imgui:518" +defs["igCombo"][1]["location"] = "imgui:521" defs["igCombo"][1]["namespace"] = "ImGui" defs["igCombo"][1]["ov_cimguiname"] = "igComboStr_arr" defs["igCombo"][1]["ret"] = "bool" @@ -7348,7 +7362,7 @@ defs["igCombo"][2]["cimguiname"] = "igCombo" defs["igCombo"][2]["defaults"] = {} defs["igCombo"][2]["defaults"]["popup_max_height_in_items"] = "-1" defs["igCombo"][2]["funcname"] = "Combo" -defs["igCombo"][2]["location"] = "imgui:519" +defs["igCombo"][2]["location"] = "imgui:522" defs["igCombo"][2]["namespace"] = "ImGui" defs["igCombo"][2]["ov_cimguiname"] = "igComboStr" defs["igCombo"][2]["ret"] = "bool" @@ -7383,7 +7397,7 @@ defs["igCombo"][3]["cimguiname"] = "igCombo" defs["igCombo"][3]["defaults"] = {} defs["igCombo"][3]["defaults"]["popup_max_height_in_items"] = "-1" defs["igCombo"][3]["funcname"] = "Combo" -defs["igCombo"][3]["location"] = "imgui:520" +defs["igCombo"][3]["location"] = "imgui:523" defs["igCombo"][3]["namespace"] = "ImGui" defs["igCombo"][3]["ov_cimguiname"] = "igComboFnBoolPtr" defs["igCombo"][3]["ret"] = "bool" @@ -7405,7 +7419,7 @@ defs["igCreateContext"][1]["cimguiname"] = "igCreateContext" defs["igCreateContext"][1]["defaults"] = {} defs["igCreateContext"][1]["defaults"]["shared_font_atlas"] = "NULL" defs["igCreateContext"][1]["funcname"] = "CreateContext" -defs["igCreateContext"][1]["location"] = "imgui:291" +defs["igCreateContext"][1]["location"] = "imgui:294" defs["igCreateContext"][1]["namespace"] = "ImGui" defs["igCreateContext"][1]["ov_cimguiname"] = "igCreateContext" defs["igCreateContext"][1]["ret"] = "ImGuiContext*" @@ -7442,7 +7456,7 @@ defs["igDebugCheckVersionAndDataLayout"][1]["call_args"] = "(version_str,sz_io,s defs["igDebugCheckVersionAndDataLayout"][1]["cimguiname"] = "igDebugCheckVersionAndDataLayout" defs["igDebugCheckVersionAndDataLayout"][1]["defaults"] = {} defs["igDebugCheckVersionAndDataLayout"][1]["funcname"] = "DebugCheckVersionAndDataLayout" -defs["igDebugCheckVersionAndDataLayout"][1]["location"] = "imgui:927" +defs["igDebugCheckVersionAndDataLayout"][1]["location"] = "imgui:931" defs["igDebugCheckVersionAndDataLayout"][1]["namespace"] = "ImGui" defs["igDebugCheckVersionAndDataLayout"][1]["ov_cimguiname"] = "igDebugCheckVersionAndDataLayout" defs["igDebugCheckVersionAndDataLayout"][1]["ret"] = "bool" @@ -7462,7 +7476,7 @@ defs["igDestroyContext"][1]["cimguiname"] = "igDestroyContext" defs["igDestroyContext"][1]["defaults"] = {} defs["igDestroyContext"][1]["defaults"]["ctx"] = "NULL" defs["igDestroyContext"][1]["funcname"] = "DestroyContext" -defs["igDestroyContext"][1]["location"] = "imgui:292" +defs["igDestroyContext"][1]["location"] = "imgui:295" defs["igDestroyContext"][1]["namespace"] = "ImGui" defs["igDestroyContext"][1]["ov_cimguiname"] = "igDestroyContext" defs["igDestroyContext"][1]["ret"] = "void" @@ -7504,7 +7518,7 @@ defs["igDragFloat"][1]["defaults"]["v_max"] = "0.0f" defs["igDragFloat"][1]["defaults"]["v_min"] = "0.0f" defs["igDragFloat"][1]["defaults"]["v_speed"] = "1.0f" defs["igDragFloat"][1]["funcname"] = "DragFloat" -defs["igDragFloat"][1]["location"] = "imgui:533" +defs["igDragFloat"][1]["location"] = "imgui:536" defs["igDragFloat"][1]["namespace"] = "ImGui" defs["igDragFloat"][1]["ov_cimguiname"] = "igDragFloat" defs["igDragFloat"][1]["ret"] = "bool" @@ -7546,7 +7560,7 @@ defs["igDragFloat2"][1]["defaults"]["v_max"] = "0.0f" defs["igDragFloat2"][1]["defaults"]["v_min"] = "0.0f" defs["igDragFloat2"][1]["defaults"]["v_speed"] = "1.0f" defs["igDragFloat2"][1]["funcname"] = "DragFloat2" -defs["igDragFloat2"][1]["location"] = "imgui:534" +defs["igDragFloat2"][1]["location"] = "imgui:537" defs["igDragFloat2"][1]["namespace"] = "ImGui" defs["igDragFloat2"][1]["ov_cimguiname"] = "igDragFloat2" defs["igDragFloat2"][1]["ret"] = "bool" @@ -7588,7 +7602,7 @@ defs["igDragFloat3"][1]["defaults"]["v_max"] = "0.0f" defs["igDragFloat3"][1]["defaults"]["v_min"] = "0.0f" defs["igDragFloat3"][1]["defaults"]["v_speed"] = "1.0f" defs["igDragFloat3"][1]["funcname"] = "DragFloat3" -defs["igDragFloat3"][1]["location"] = "imgui:535" +defs["igDragFloat3"][1]["location"] = "imgui:538" defs["igDragFloat3"][1]["namespace"] = "ImGui" defs["igDragFloat3"][1]["ov_cimguiname"] = "igDragFloat3" defs["igDragFloat3"][1]["ret"] = "bool" @@ -7630,7 +7644,7 @@ defs["igDragFloat4"][1]["defaults"]["v_max"] = "0.0f" defs["igDragFloat4"][1]["defaults"]["v_min"] = "0.0f" defs["igDragFloat4"][1]["defaults"]["v_speed"] = "1.0f" defs["igDragFloat4"][1]["funcname"] = "DragFloat4" -defs["igDragFloat4"][1]["location"] = "imgui:536" +defs["igDragFloat4"][1]["location"] = "imgui:539" defs["igDragFloat4"][1]["namespace"] = "ImGui" defs["igDragFloat4"][1]["ov_cimguiname"] = "igDragFloat4" defs["igDragFloat4"][1]["ret"] = "bool" @@ -7679,7 +7693,7 @@ defs["igDragFloatRange2"][1]["defaults"]["v_max"] = "0.0f" defs["igDragFloatRange2"][1]["defaults"]["v_min"] = "0.0f" defs["igDragFloatRange2"][1]["defaults"]["v_speed"] = "1.0f" defs["igDragFloatRange2"][1]["funcname"] = "DragFloatRange2" -defs["igDragFloatRange2"][1]["location"] = "imgui:537" +defs["igDragFloatRange2"][1]["location"] = "imgui:540" defs["igDragFloatRange2"][1]["namespace"] = "ImGui" defs["igDragFloatRange2"][1]["ov_cimguiname"] = "igDragFloatRange2" defs["igDragFloatRange2"][1]["ret"] = "bool" @@ -7721,7 +7735,7 @@ defs["igDragInt"][1]["defaults"]["v_max"] = "0" defs["igDragInt"][1]["defaults"]["v_min"] = "0" defs["igDragInt"][1]["defaults"]["v_speed"] = "1.0f" defs["igDragInt"][1]["funcname"] = "DragInt" -defs["igDragInt"][1]["location"] = "imgui:538" +defs["igDragInt"][1]["location"] = "imgui:541" defs["igDragInt"][1]["namespace"] = "ImGui" defs["igDragInt"][1]["ov_cimguiname"] = "igDragInt" defs["igDragInt"][1]["ret"] = "bool" @@ -7763,7 +7777,7 @@ defs["igDragInt2"][1]["defaults"]["v_max"] = "0" defs["igDragInt2"][1]["defaults"]["v_min"] = "0" defs["igDragInt2"][1]["defaults"]["v_speed"] = "1.0f" defs["igDragInt2"][1]["funcname"] = "DragInt2" -defs["igDragInt2"][1]["location"] = "imgui:539" +defs["igDragInt2"][1]["location"] = "imgui:542" defs["igDragInt2"][1]["namespace"] = "ImGui" defs["igDragInt2"][1]["ov_cimguiname"] = "igDragInt2" defs["igDragInt2"][1]["ret"] = "bool" @@ -7805,7 +7819,7 @@ defs["igDragInt3"][1]["defaults"]["v_max"] = "0" defs["igDragInt3"][1]["defaults"]["v_min"] = "0" defs["igDragInt3"][1]["defaults"]["v_speed"] = "1.0f" defs["igDragInt3"][1]["funcname"] = "DragInt3" -defs["igDragInt3"][1]["location"] = "imgui:540" +defs["igDragInt3"][1]["location"] = "imgui:543" defs["igDragInt3"][1]["namespace"] = "ImGui" defs["igDragInt3"][1]["ov_cimguiname"] = "igDragInt3" defs["igDragInt3"][1]["ret"] = "bool" @@ -7847,7 +7861,7 @@ defs["igDragInt4"][1]["defaults"]["v_max"] = "0" defs["igDragInt4"][1]["defaults"]["v_min"] = "0" defs["igDragInt4"][1]["defaults"]["v_speed"] = "1.0f" defs["igDragInt4"][1]["funcname"] = "DragInt4" -defs["igDragInt4"][1]["location"] = "imgui:541" +defs["igDragInt4"][1]["location"] = "imgui:544" defs["igDragInt4"][1]["namespace"] = "ImGui" defs["igDragInt4"][1]["ov_cimguiname"] = "igDragInt4" defs["igDragInt4"][1]["ret"] = "bool" @@ -7896,7 +7910,7 @@ defs["igDragIntRange2"][1]["defaults"]["v_max"] = "0" defs["igDragIntRange2"][1]["defaults"]["v_min"] = "0" defs["igDragIntRange2"][1]["defaults"]["v_speed"] = "1.0f" defs["igDragIntRange2"][1]["funcname"] = "DragIntRange2" -defs["igDragIntRange2"][1]["location"] = "imgui:542" +defs["igDragIntRange2"][1]["location"] = "imgui:545" defs["igDragIntRange2"][1]["namespace"] = "ImGui" defs["igDragIntRange2"][1]["ov_cimguiname"] = "igDragIntRange2" defs["igDragIntRange2"][1]["ret"] = "bool" @@ -7941,7 +7955,7 @@ defs["igDragScalar"][1]["defaults"]["p_max"] = "NULL" defs["igDragScalar"][1]["defaults"]["p_min"] = "NULL" defs["igDragScalar"][1]["defaults"]["v_speed"] = "1.0f" defs["igDragScalar"][1]["funcname"] = "DragScalar" -defs["igDragScalar"][1]["location"] = "imgui:543" +defs["igDragScalar"][1]["location"] = "imgui:546" defs["igDragScalar"][1]["namespace"] = "ImGui" defs["igDragScalar"][1]["ov_cimguiname"] = "igDragScalar" defs["igDragScalar"][1]["ret"] = "bool" @@ -7989,7 +8003,7 @@ defs["igDragScalarN"][1]["defaults"]["p_max"] = "NULL" defs["igDragScalarN"][1]["defaults"]["p_min"] = "NULL" defs["igDragScalarN"][1]["defaults"]["v_speed"] = "1.0f" defs["igDragScalarN"][1]["funcname"] = "DragScalarN" -defs["igDragScalarN"][1]["location"] = "imgui:544" +defs["igDragScalarN"][1]["location"] = "imgui:547" defs["igDragScalarN"][1]["namespace"] = "ImGui" defs["igDragScalarN"][1]["ov_cimguiname"] = "igDragScalarN" defs["igDragScalarN"][1]["ret"] = "bool" @@ -8008,7 +8022,7 @@ defs["igDummy"][1]["call_args"] = "(size)" defs["igDummy"][1]["cimguiname"] = "igDummy" defs["igDummy"][1]["defaults"] = {} defs["igDummy"][1]["funcname"] = "Dummy" -defs["igDummy"][1]["location"] = "imgui:441" +defs["igDummy"][1]["location"] = "imgui:444" defs["igDummy"][1]["namespace"] = "ImGui" defs["igDummy"][1]["ov_cimguiname"] = "igDummy" defs["igDummy"][1]["ret"] = "void" @@ -8024,7 +8038,7 @@ defs["igEnd"][1]["call_args"] = "()" defs["igEnd"][1]["cimguiname"] = "igEnd" defs["igEnd"][1]["defaults"] = {} defs["igEnd"][1]["funcname"] = "End" -defs["igEnd"][1]["location"] = "imgui:332" +defs["igEnd"][1]["location"] = "imgui:336" defs["igEnd"][1]["namespace"] = "ImGui" defs["igEnd"][1]["ov_cimguiname"] = "igEnd" defs["igEnd"][1]["ret"] = "void" @@ -8040,7 +8054,7 @@ defs["igEndChild"][1]["call_args"] = "()" defs["igEndChild"][1]["cimguiname"] = "igEndChild" defs["igEndChild"][1]["defaults"] = {} defs["igEndChild"][1]["funcname"] = "EndChild" -defs["igEndChild"][1]["location"] = "imgui:344" +defs["igEndChild"][1]["location"] = "imgui:348" defs["igEndChild"][1]["namespace"] = "ImGui" defs["igEndChild"][1]["ov_cimguiname"] = "igEndChild" defs["igEndChild"][1]["ret"] = "void" @@ -8056,7 +8070,7 @@ defs["igEndChildFrame"][1]["call_args"] = "()" defs["igEndChildFrame"][1]["cimguiname"] = "igEndChildFrame" defs["igEndChildFrame"][1]["defaults"] = {} defs["igEndChildFrame"][1]["funcname"] = "EndChildFrame" -defs["igEndChildFrame"][1]["location"] = "imgui:870" +defs["igEndChildFrame"][1]["location"] = "imgui:873" defs["igEndChildFrame"][1]["namespace"] = "ImGui" defs["igEndChildFrame"][1]["ov_cimguiname"] = "igEndChildFrame" defs["igEndChildFrame"][1]["ret"] = "void" @@ -8072,7 +8086,7 @@ defs["igEndCombo"][1]["call_args"] = "()" defs["igEndCombo"][1]["cimguiname"] = "igEndCombo" defs["igEndCombo"][1]["defaults"] = {} defs["igEndCombo"][1]["funcname"] = "EndCombo" -defs["igEndCombo"][1]["location"] = "imgui:517" +defs["igEndCombo"][1]["location"] = "imgui:520" defs["igEndCombo"][1]["namespace"] = "ImGui" defs["igEndCombo"][1]["ov_cimguiname"] = "igEndCombo" defs["igEndCombo"][1]["ret"] = "void" @@ -8088,7 +8102,7 @@ defs["igEndDisabled"][1]["call_args"] = "()" defs["igEndDisabled"][1]["cimguiname"] = "igEndDisabled" defs["igEndDisabled"][1]["defaults"] = {} defs["igEndDisabled"][1]["funcname"] = "EndDisabled" -defs["igEndDisabled"][1]["location"] = "imgui:818" +defs["igEndDisabled"][1]["location"] = "imgui:822" defs["igEndDisabled"][1]["namespace"] = "ImGui" defs["igEndDisabled"][1]["ov_cimguiname"] = "igEndDisabled" defs["igEndDisabled"][1]["ret"] = "void" @@ -8104,7 +8118,7 @@ defs["igEndDragDropSource"][1]["call_args"] = "()" defs["igEndDragDropSource"][1]["cimguiname"] = "igEndDragDropSource" defs["igEndDragDropSource"][1]["defaults"] = {} defs["igEndDragDropSource"][1]["funcname"] = "EndDragDropSource" -defs["igEndDragDropSource"][1]["location"] = "imgui:808" +defs["igEndDragDropSource"][1]["location"] = "imgui:811" defs["igEndDragDropSource"][1]["namespace"] = "ImGui" defs["igEndDragDropSource"][1]["ov_cimguiname"] = "igEndDragDropSource" defs["igEndDragDropSource"][1]["ret"] = "void" @@ -8120,7 +8134,7 @@ defs["igEndDragDropTarget"][1]["call_args"] = "()" defs["igEndDragDropTarget"][1]["cimguiname"] = "igEndDragDropTarget" defs["igEndDragDropTarget"][1]["defaults"] = {} defs["igEndDragDropTarget"][1]["funcname"] = "EndDragDropTarget" -defs["igEndDragDropTarget"][1]["location"] = "imgui:811" +defs["igEndDragDropTarget"][1]["location"] = "imgui:814" defs["igEndDragDropTarget"][1]["namespace"] = "ImGui" defs["igEndDragDropTarget"][1]["ov_cimguiname"] = "igEndDragDropTarget" defs["igEndDragDropTarget"][1]["ret"] = "void" @@ -8136,7 +8150,7 @@ defs["igEndFrame"][1]["call_args"] = "()" defs["igEndFrame"][1]["cimguiname"] = "igEndFrame" defs["igEndFrame"][1]["defaults"] = {} defs["igEndFrame"][1]["funcname"] = "EndFrame" -defs["igEndFrame"][1]["location"] = "imgui:300" +defs["igEndFrame"][1]["location"] = "imgui:303" defs["igEndFrame"][1]["namespace"] = "ImGui" defs["igEndFrame"][1]["ov_cimguiname"] = "igEndFrame" defs["igEndFrame"][1]["ret"] = "void" @@ -8152,7 +8166,7 @@ defs["igEndGroup"][1]["call_args"] = "()" defs["igEndGroup"][1]["cimguiname"] = "igEndGroup" defs["igEndGroup"][1]["defaults"] = {} defs["igEndGroup"][1]["funcname"] = "EndGroup" -defs["igEndGroup"][1]["location"] = "imgui:445" +defs["igEndGroup"][1]["location"] = "imgui:448" defs["igEndGroup"][1]["namespace"] = "ImGui" defs["igEndGroup"][1]["ov_cimguiname"] = "igEndGroup" defs["igEndGroup"][1]["ret"] = "void" @@ -8168,7 +8182,7 @@ defs["igEndListBox"][1]["call_args"] = "()" defs["igEndListBox"][1]["cimguiname"] = "igEndListBox" defs["igEndListBox"][1]["defaults"] = {} defs["igEndListBox"][1]["funcname"] = "EndListBox" -defs["igEndListBox"][1]["location"] = "imgui:628" +defs["igEndListBox"][1]["location"] = "imgui:631" defs["igEndListBox"][1]["namespace"] = "ImGui" defs["igEndListBox"][1]["ov_cimguiname"] = "igEndListBox" defs["igEndListBox"][1]["ret"] = "void" @@ -8184,7 +8198,7 @@ defs["igEndMainMenuBar"][1]["call_args"] = "()" defs["igEndMainMenuBar"][1]["cimguiname"] = "igEndMainMenuBar" defs["igEndMainMenuBar"][1]["defaults"] = {} defs["igEndMainMenuBar"][1]["funcname"] = "EndMainMenuBar" -defs["igEndMainMenuBar"][1]["location"] = "imgui:654" +defs["igEndMainMenuBar"][1]["location"] = "imgui:657" defs["igEndMainMenuBar"][1]["namespace"] = "ImGui" defs["igEndMainMenuBar"][1]["ov_cimguiname"] = "igEndMainMenuBar" defs["igEndMainMenuBar"][1]["ret"] = "void" @@ -8200,7 +8214,7 @@ defs["igEndMenu"][1]["call_args"] = "()" defs["igEndMenu"][1]["cimguiname"] = "igEndMenu" defs["igEndMenu"][1]["defaults"] = {} defs["igEndMenu"][1]["funcname"] = "EndMenu" -defs["igEndMenu"][1]["location"] = "imgui:656" +defs["igEndMenu"][1]["location"] = "imgui:659" defs["igEndMenu"][1]["namespace"] = "ImGui" defs["igEndMenu"][1]["ov_cimguiname"] = "igEndMenu" defs["igEndMenu"][1]["ret"] = "void" @@ -8216,7 +8230,7 @@ defs["igEndMenuBar"][1]["call_args"] = "()" defs["igEndMenuBar"][1]["cimguiname"] = "igEndMenuBar" defs["igEndMenuBar"][1]["defaults"] = {} defs["igEndMenuBar"][1]["funcname"] = "EndMenuBar" -defs["igEndMenuBar"][1]["location"] = "imgui:652" +defs["igEndMenuBar"][1]["location"] = "imgui:655" defs["igEndMenuBar"][1]["namespace"] = "ImGui" defs["igEndMenuBar"][1]["ov_cimguiname"] = "igEndMenuBar" defs["igEndMenuBar"][1]["ret"] = "void" @@ -8232,7 +8246,7 @@ defs["igEndPopup"][1]["call_args"] = "()" defs["igEndPopup"][1]["cimguiname"] = "igEndPopup" defs["igEndPopup"][1]["defaults"] = {} defs["igEndPopup"][1]["funcname"] = "EndPopup" -defs["igEndPopup"][1]["location"] = "imgui:681" +defs["igEndPopup"][1]["location"] = "imgui:684" defs["igEndPopup"][1]["namespace"] = "ImGui" defs["igEndPopup"][1]["ov_cimguiname"] = "igEndPopup" defs["igEndPopup"][1]["ret"] = "void" @@ -8248,7 +8262,7 @@ defs["igEndTabBar"][1]["call_args"] = "()" defs["igEndTabBar"][1]["cimguiname"] = "igEndTabBar" defs["igEndTabBar"][1]["defaults"] = {} defs["igEndTabBar"][1]["funcname"] = "EndTabBar" -defs["igEndTabBar"][1]["location"] = "imgui:785" +defs["igEndTabBar"][1]["location"] = "imgui:788" defs["igEndTabBar"][1]["namespace"] = "ImGui" defs["igEndTabBar"][1]["ov_cimguiname"] = "igEndTabBar" defs["igEndTabBar"][1]["ret"] = "void" @@ -8264,7 +8278,7 @@ defs["igEndTabItem"][1]["call_args"] = "()" defs["igEndTabItem"][1]["cimguiname"] = "igEndTabItem" defs["igEndTabItem"][1]["defaults"] = {} defs["igEndTabItem"][1]["funcname"] = "EndTabItem" -defs["igEndTabItem"][1]["location"] = "imgui:787" +defs["igEndTabItem"][1]["location"] = "imgui:790" defs["igEndTabItem"][1]["namespace"] = "ImGui" defs["igEndTabItem"][1]["ov_cimguiname"] = "igEndTabItem" defs["igEndTabItem"][1]["ret"] = "void" @@ -8280,7 +8294,7 @@ defs["igEndTable"][1]["call_args"] = "()" defs["igEndTable"][1]["cimguiname"] = "igEndTable" defs["igEndTable"][1]["defaults"] = {} defs["igEndTable"][1]["funcname"] = "EndTable" -defs["igEndTable"][1]["location"] = "imgui:736" +defs["igEndTable"][1]["location"] = "imgui:739" defs["igEndTable"][1]["namespace"] = "ImGui" defs["igEndTable"][1]["ov_cimguiname"] = "igEndTable" defs["igEndTable"][1]["ret"] = "void" @@ -8296,7 +8310,7 @@ defs["igEndTooltip"][1]["call_args"] = "()" defs["igEndTooltip"][1]["cimguiname"] = "igEndTooltip" defs["igEndTooltip"][1]["defaults"] = {} defs["igEndTooltip"][1]["funcname"] = "EndTooltip" -defs["igEndTooltip"][1]["location"] = "imgui:663" +defs["igEndTooltip"][1]["location"] = "imgui:666" defs["igEndTooltip"][1]["namespace"] = "ImGui" defs["igEndTooltip"][1]["ov_cimguiname"] = "igEndTooltip" defs["igEndTooltip"][1]["ret"] = "void" @@ -8321,7 +8335,7 @@ defs["igGetAllocatorFunctions"][1]["call_args"] = "(p_alloc_func,p_free_func,p_u defs["igGetAllocatorFunctions"][1]["cimguiname"] = "igGetAllocatorFunctions" defs["igGetAllocatorFunctions"][1]["defaults"] = {} defs["igGetAllocatorFunctions"][1]["funcname"] = "GetAllocatorFunctions" -defs["igGetAllocatorFunctions"][1]["location"] = "imgui:934" +defs["igGetAllocatorFunctions"][1]["location"] = "imgui:938" defs["igGetAllocatorFunctions"][1]["namespace"] = "ImGui" defs["igGetAllocatorFunctions"][1]["ov_cimguiname"] = "igGetAllocatorFunctions" defs["igGetAllocatorFunctions"][1]["ret"] = "void" @@ -8337,7 +8351,7 @@ defs["igGetBackgroundDrawList"][1]["call_args"] = "()" defs["igGetBackgroundDrawList"][1]["cimguiname"] = "igGetBackgroundDrawList" defs["igGetBackgroundDrawList"][1]["defaults"] = {} defs["igGetBackgroundDrawList"][1]["funcname"] = "GetBackgroundDrawList" -defs["igGetBackgroundDrawList"][1]["location"] = "imgui:862" +defs["igGetBackgroundDrawList"][1]["location"] = "imgui:866" defs["igGetBackgroundDrawList"][1]["namespace"] = "ImGui" defs["igGetBackgroundDrawList"][1]["ov_cimguiname"] = "igGetBackgroundDrawList" defs["igGetBackgroundDrawList"][1]["ret"] = "ImDrawList*" @@ -8353,7 +8367,7 @@ defs["igGetClipboardText"][1]["call_args"] = "()" defs["igGetClipboardText"][1]["cimguiname"] = "igGetClipboardText" defs["igGetClipboardText"][1]["defaults"] = {} defs["igGetClipboardText"][1]["funcname"] = "GetClipboardText" -defs["igGetClipboardText"][1]["location"] = "imgui:913" +defs["igGetClipboardText"][1]["location"] = "imgui:917" defs["igGetClipboardText"][1]["namespace"] = "ImGui" defs["igGetClipboardText"][1]["ov_cimguiname"] = "igGetClipboardText" defs["igGetClipboardText"][1]["ret"] = "const char*" @@ -8376,7 +8390,7 @@ defs["igGetColorU32"][1]["cimguiname"] = "igGetColorU32" defs["igGetColorU32"][1]["defaults"] = {} defs["igGetColorU32"][1]["defaults"]["alpha_mul"] = "1.0f" defs["igGetColorU32"][1]["funcname"] = "GetColorU32" -defs["igGetColorU32"][1]["location"] = "imgui:425" +defs["igGetColorU32"][1]["location"] = "imgui:428" defs["igGetColorU32"][1]["namespace"] = "ImGui" defs["igGetColorU32"][1]["ov_cimguiname"] = "igGetColorU32Col" defs["igGetColorU32"][1]["ret"] = "ImU32" @@ -8393,7 +8407,7 @@ defs["igGetColorU32"][2]["call_args"] = "(col)" defs["igGetColorU32"][2]["cimguiname"] = "igGetColorU32" defs["igGetColorU32"][2]["defaults"] = {} defs["igGetColorU32"][2]["funcname"] = "GetColorU32" -defs["igGetColorU32"][2]["location"] = "imgui:426" +defs["igGetColorU32"][2]["location"] = "imgui:429" defs["igGetColorU32"][2]["namespace"] = "ImGui" defs["igGetColorU32"][2]["ov_cimguiname"] = "igGetColorU32Vec4" defs["igGetColorU32"][2]["ret"] = "ImU32" @@ -8410,7 +8424,7 @@ defs["igGetColorU32"][3]["call_args"] = "(col)" defs["igGetColorU32"][3]["cimguiname"] = "igGetColorU32" defs["igGetColorU32"][3]["defaults"] = {} defs["igGetColorU32"][3]["funcname"] = "GetColorU32" -defs["igGetColorU32"][3]["location"] = "imgui:427" +defs["igGetColorU32"][3]["location"] = "imgui:430" defs["igGetColorU32"][3]["namespace"] = "ImGui" defs["igGetColorU32"][3]["ov_cimguiname"] = "igGetColorU32U32" defs["igGetColorU32"][3]["ret"] = "ImU32" @@ -8428,7 +8442,7 @@ defs["igGetColumnIndex"][1]["call_args"] = "()" defs["igGetColumnIndex"][1]["cimguiname"] = "igGetColumnIndex" defs["igGetColumnIndex"][1]["defaults"] = {} defs["igGetColumnIndex"][1]["funcname"] = "GetColumnIndex" -defs["igGetColumnIndex"][1]["location"] = "imgui:776" +defs["igGetColumnIndex"][1]["location"] = "imgui:779" defs["igGetColumnIndex"][1]["namespace"] = "ImGui" defs["igGetColumnIndex"][1]["ov_cimguiname"] = "igGetColumnIndex" defs["igGetColumnIndex"][1]["ret"] = "int" @@ -8448,7 +8462,7 @@ defs["igGetColumnOffset"][1]["cimguiname"] = "igGetColumnOffset" defs["igGetColumnOffset"][1]["defaults"] = {} defs["igGetColumnOffset"][1]["defaults"]["column_index"] = "-1" defs["igGetColumnOffset"][1]["funcname"] = "GetColumnOffset" -defs["igGetColumnOffset"][1]["location"] = "imgui:779" +defs["igGetColumnOffset"][1]["location"] = "imgui:782" defs["igGetColumnOffset"][1]["namespace"] = "ImGui" defs["igGetColumnOffset"][1]["ov_cimguiname"] = "igGetColumnOffset" defs["igGetColumnOffset"][1]["ret"] = "float" @@ -8468,7 +8482,7 @@ defs["igGetColumnWidth"][1]["cimguiname"] = "igGetColumnWidth" defs["igGetColumnWidth"][1]["defaults"] = {} defs["igGetColumnWidth"][1]["defaults"]["column_index"] = "-1" defs["igGetColumnWidth"][1]["funcname"] = "GetColumnWidth" -defs["igGetColumnWidth"][1]["location"] = "imgui:777" +defs["igGetColumnWidth"][1]["location"] = "imgui:780" defs["igGetColumnWidth"][1]["namespace"] = "ImGui" defs["igGetColumnWidth"][1]["ov_cimguiname"] = "igGetColumnWidth" defs["igGetColumnWidth"][1]["ret"] = "float" @@ -8484,7 +8498,7 @@ defs["igGetColumnsCount"][1]["call_args"] = "()" defs["igGetColumnsCount"][1]["cimguiname"] = "igGetColumnsCount" defs["igGetColumnsCount"][1]["defaults"] = {} defs["igGetColumnsCount"][1]["funcname"] = "GetColumnsCount" -defs["igGetColumnsCount"][1]["location"] = "imgui:781" +defs["igGetColumnsCount"][1]["location"] = "imgui:784" defs["igGetColumnsCount"][1]["namespace"] = "ImGui" defs["igGetColumnsCount"][1]["ov_cimguiname"] = "igGetColumnsCount" defs["igGetColumnsCount"][1]["ret"] = "int" @@ -8503,7 +8517,7 @@ defs["igGetContentRegionAvail"][1]["call_args"] = "()" defs["igGetContentRegionAvail"][1]["cimguiname"] = "igGetContentRegionAvail" defs["igGetContentRegionAvail"][1]["defaults"] = {} defs["igGetContentRegionAvail"][1]["funcname"] = "GetContentRegionAvail" -defs["igGetContentRegionAvail"][1]["location"] = "imgui:380" +defs["igGetContentRegionAvail"][1]["location"] = "imgui:384" defs["igGetContentRegionAvail"][1]["namespace"] = "ImGui" defs["igGetContentRegionAvail"][1]["nonUDT"] = 1 defs["igGetContentRegionAvail"][1]["ov_cimguiname"] = "igGetContentRegionAvail" @@ -8523,7 +8537,7 @@ defs["igGetContentRegionMax"][1]["call_args"] = "()" defs["igGetContentRegionMax"][1]["cimguiname"] = "igGetContentRegionMax" defs["igGetContentRegionMax"][1]["defaults"] = {} defs["igGetContentRegionMax"][1]["funcname"] = "GetContentRegionMax" -defs["igGetContentRegionMax"][1]["location"] = "imgui:381" +defs["igGetContentRegionMax"][1]["location"] = "imgui:385" defs["igGetContentRegionMax"][1]["namespace"] = "ImGui" defs["igGetContentRegionMax"][1]["nonUDT"] = 1 defs["igGetContentRegionMax"][1]["ov_cimguiname"] = "igGetContentRegionMax" @@ -8540,7 +8554,7 @@ defs["igGetCurrentContext"][1]["call_args"] = "()" defs["igGetCurrentContext"][1]["cimguiname"] = "igGetCurrentContext" defs["igGetCurrentContext"][1]["defaults"] = {} defs["igGetCurrentContext"][1]["funcname"] = "GetCurrentContext" -defs["igGetCurrentContext"][1]["location"] = "imgui:293" +defs["igGetCurrentContext"][1]["location"] = "imgui:296" defs["igGetCurrentContext"][1]["namespace"] = "ImGui" defs["igGetCurrentContext"][1]["ov_cimguiname"] = "igGetCurrentContext" defs["igGetCurrentContext"][1]["ret"] = "ImGuiContext*" @@ -8559,7 +8573,7 @@ defs["igGetCursorPos"][1]["call_args"] = "()" defs["igGetCursorPos"][1]["cimguiname"] = "igGetCursorPos" defs["igGetCursorPos"][1]["defaults"] = {} defs["igGetCursorPos"][1]["funcname"] = "GetCursorPos" -defs["igGetCursorPos"][1]["location"] = "imgui:446" +defs["igGetCursorPos"][1]["location"] = "imgui:449" defs["igGetCursorPos"][1]["namespace"] = "ImGui" defs["igGetCursorPos"][1]["nonUDT"] = 1 defs["igGetCursorPos"][1]["ov_cimguiname"] = "igGetCursorPos" @@ -8576,7 +8590,7 @@ defs["igGetCursorPosX"][1]["call_args"] = "()" defs["igGetCursorPosX"][1]["cimguiname"] = "igGetCursorPosX" defs["igGetCursorPosX"][1]["defaults"] = {} defs["igGetCursorPosX"][1]["funcname"] = "GetCursorPosX" -defs["igGetCursorPosX"][1]["location"] = "imgui:447" +defs["igGetCursorPosX"][1]["location"] = "imgui:450" defs["igGetCursorPosX"][1]["namespace"] = "ImGui" defs["igGetCursorPosX"][1]["ov_cimguiname"] = "igGetCursorPosX" defs["igGetCursorPosX"][1]["ret"] = "float" @@ -8592,7 +8606,7 @@ defs["igGetCursorPosY"][1]["call_args"] = "()" defs["igGetCursorPosY"][1]["cimguiname"] = "igGetCursorPosY" defs["igGetCursorPosY"][1]["defaults"] = {} defs["igGetCursorPosY"][1]["funcname"] = "GetCursorPosY" -defs["igGetCursorPosY"][1]["location"] = "imgui:448" +defs["igGetCursorPosY"][1]["location"] = "imgui:451" defs["igGetCursorPosY"][1]["namespace"] = "ImGui" defs["igGetCursorPosY"][1]["ov_cimguiname"] = "igGetCursorPosY" defs["igGetCursorPosY"][1]["ret"] = "float" @@ -8611,7 +8625,7 @@ defs["igGetCursorScreenPos"][1]["call_args"] = "()" defs["igGetCursorScreenPos"][1]["cimguiname"] = "igGetCursorScreenPos" defs["igGetCursorScreenPos"][1]["defaults"] = {} defs["igGetCursorScreenPos"][1]["funcname"] = "GetCursorScreenPos" -defs["igGetCursorScreenPos"][1]["location"] = "imgui:453" +defs["igGetCursorScreenPos"][1]["location"] = "imgui:456" defs["igGetCursorScreenPos"][1]["namespace"] = "ImGui" defs["igGetCursorScreenPos"][1]["nonUDT"] = 1 defs["igGetCursorScreenPos"][1]["ov_cimguiname"] = "igGetCursorScreenPos" @@ -8631,7 +8645,7 @@ defs["igGetCursorStartPos"][1]["call_args"] = "()" defs["igGetCursorStartPos"][1]["cimguiname"] = "igGetCursorStartPos" defs["igGetCursorStartPos"][1]["defaults"] = {} defs["igGetCursorStartPos"][1]["funcname"] = "GetCursorStartPos" -defs["igGetCursorStartPos"][1]["location"] = "imgui:452" +defs["igGetCursorStartPos"][1]["location"] = "imgui:455" defs["igGetCursorStartPos"][1]["namespace"] = "ImGui" defs["igGetCursorStartPos"][1]["nonUDT"] = 1 defs["igGetCursorStartPos"][1]["ov_cimguiname"] = "igGetCursorStartPos" @@ -8648,7 +8662,7 @@ defs["igGetDragDropPayload"][1]["call_args"] = "()" defs["igGetDragDropPayload"][1]["cimguiname"] = "igGetDragDropPayload" defs["igGetDragDropPayload"][1]["defaults"] = {} defs["igGetDragDropPayload"][1]["funcname"] = "GetDragDropPayload" -defs["igGetDragDropPayload"][1]["location"] = "imgui:812" +defs["igGetDragDropPayload"][1]["location"] = "imgui:815" defs["igGetDragDropPayload"][1]["namespace"] = "ImGui" defs["igGetDragDropPayload"][1]["ov_cimguiname"] = "igGetDragDropPayload" defs["igGetDragDropPayload"][1]["ret"] = "const ImGuiPayload*" @@ -8664,7 +8678,7 @@ defs["igGetDrawData"][1]["call_args"] = "()" defs["igGetDrawData"][1]["cimguiname"] = "igGetDrawData" defs["igGetDrawData"][1]["defaults"] = {} defs["igGetDrawData"][1]["funcname"] = "GetDrawData" -defs["igGetDrawData"][1]["location"] = "imgui:302" +defs["igGetDrawData"][1]["location"] = "imgui:305" defs["igGetDrawData"][1]["namespace"] = "ImGui" defs["igGetDrawData"][1]["ov_cimguiname"] = "igGetDrawData" defs["igGetDrawData"][1]["ret"] = "ImDrawData*" @@ -8680,7 +8694,7 @@ defs["igGetDrawListSharedData"][1]["call_args"] = "()" defs["igGetDrawListSharedData"][1]["cimguiname"] = "igGetDrawListSharedData" defs["igGetDrawListSharedData"][1]["defaults"] = {} defs["igGetDrawListSharedData"][1]["funcname"] = "GetDrawListSharedData" -defs["igGetDrawListSharedData"][1]["location"] = "imgui:864" +defs["igGetDrawListSharedData"][1]["location"] = "imgui:868" defs["igGetDrawListSharedData"][1]["namespace"] = "ImGui" defs["igGetDrawListSharedData"][1]["ov_cimguiname"] = "igGetDrawListSharedData" defs["igGetDrawListSharedData"][1]["ret"] = "ImDrawListSharedData*" @@ -8696,7 +8710,7 @@ defs["igGetFont"][1]["call_args"] = "()" defs["igGetFont"][1]["cimguiname"] = "igGetFont" defs["igGetFont"][1]["defaults"] = {} defs["igGetFont"][1]["funcname"] = "GetFont" -defs["igGetFont"][1]["location"] = "imgui:422" +defs["igGetFont"][1]["location"] = "imgui:425" defs["igGetFont"][1]["namespace"] = "ImGui" defs["igGetFont"][1]["ov_cimguiname"] = "igGetFont" defs["igGetFont"][1]["ret"] = "ImFont*" @@ -8712,7 +8726,7 @@ defs["igGetFontSize"][1]["call_args"] = "()" defs["igGetFontSize"][1]["cimguiname"] = "igGetFontSize" defs["igGetFontSize"][1]["defaults"] = {} defs["igGetFontSize"][1]["funcname"] = "GetFontSize" -defs["igGetFontSize"][1]["location"] = "imgui:423" +defs["igGetFontSize"][1]["location"] = "imgui:426" defs["igGetFontSize"][1]["namespace"] = "ImGui" defs["igGetFontSize"][1]["ov_cimguiname"] = "igGetFontSize" defs["igGetFontSize"][1]["ret"] = "float" @@ -8731,7 +8745,7 @@ defs["igGetFontTexUvWhitePixel"][1]["call_args"] = "()" defs["igGetFontTexUvWhitePixel"][1]["cimguiname"] = "igGetFontTexUvWhitePixel" defs["igGetFontTexUvWhitePixel"][1]["defaults"] = {} defs["igGetFontTexUvWhitePixel"][1]["funcname"] = "GetFontTexUvWhitePixel" -defs["igGetFontTexUvWhitePixel"][1]["location"] = "imgui:424" +defs["igGetFontTexUvWhitePixel"][1]["location"] = "imgui:427" defs["igGetFontTexUvWhitePixel"][1]["namespace"] = "ImGui" defs["igGetFontTexUvWhitePixel"][1]["nonUDT"] = 1 defs["igGetFontTexUvWhitePixel"][1]["ov_cimguiname"] = "igGetFontTexUvWhitePixel" @@ -8748,7 +8762,7 @@ defs["igGetForegroundDrawList"][1]["call_args"] = "()" defs["igGetForegroundDrawList"][1]["cimguiname"] = "igGetForegroundDrawList" defs["igGetForegroundDrawList"][1]["defaults"] = {} defs["igGetForegroundDrawList"][1]["funcname"] = "GetForegroundDrawList" -defs["igGetForegroundDrawList"][1]["location"] = "imgui:863" +defs["igGetForegroundDrawList"][1]["location"] = "imgui:867" defs["igGetForegroundDrawList"][1]["namespace"] = "ImGui" defs["igGetForegroundDrawList"][1]["ov_cimguiname"] = "igGetForegroundDrawList" defs["igGetForegroundDrawList"][1]["ret"] = "ImDrawList*" @@ -8764,7 +8778,7 @@ defs["igGetFrameCount"][1]["call_args"] = "()" defs["igGetFrameCount"][1]["cimguiname"] = "igGetFrameCount" defs["igGetFrameCount"][1]["defaults"] = {} defs["igGetFrameCount"][1]["funcname"] = "GetFrameCount" -defs["igGetFrameCount"][1]["location"] = "imgui:861" +defs["igGetFrameCount"][1]["location"] = "imgui:865" defs["igGetFrameCount"][1]["namespace"] = "ImGui" defs["igGetFrameCount"][1]["ov_cimguiname"] = "igGetFrameCount" defs["igGetFrameCount"][1]["ret"] = "int" @@ -8780,7 +8794,7 @@ defs["igGetFrameHeight"][1]["call_args"] = "()" defs["igGetFrameHeight"][1]["cimguiname"] = "igGetFrameHeight" defs["igGetFrameHeight"][1]["defaults"] = {} defs["igGetFrameHeight"][1]["funcname"] = "GetFrameHeight" -defs["igGetFrameHeight"][1]["location"] = "imgui:458" +defs["igGetFrameHeight"][1]["location"] = "imgui:461" defs["igGetFrameHeight"][1]["namespace"] = "ImGui" defs["igGetFrameHeight"][1]["ov_cimguiname"] = "igGetFrameHeight" defs["igGetFrameHeight"][1]["ret"] = "float" @@ -8796,7 +8810,7 @@ defs["igGetFrameHeightWithSpacing"][1]["call_args"] = "()" defs["igGetFrameHeightWithSpacing"][1]["cimguiname"] = "igGetFrameHeightWithSpacing" defs["igGetFrameHeightWithSpacing"][1]["defaults"] = {} defs["igGetFrameHeightWithSpacing"][1]["funcname"] = "GetFrameHeightWithSpacing" -defs["igGetFrameHeightWithSpacing"][1]["location"] = "imgui:459" +defs["igGetFrameHeightWithSpacing"][1]["location"] = "imgui:462" defs["igGetFrameHeightWithSpacing"][1]["namespace"] = "ImGui" defs["igGetFrameHeightWithSpacing"][1]["ov_cimguiname"] = "igGetFrameHeightWithSpacing" defs["igGetFrameHeightWithSpacing"][1]["ret"] = "float" @@ -8815,7 +8829,7 @@ defs["igGetID"][1]["call_args"] = "(str_id)" defs["igGetID"][1]["cimguiname"] = "igGetID" defs["igGetID"][1]["defaults"] = {} defs["igGetID"][1]["funcname"] = "GetID" -defs["igGetID"][1]["location"] = "imgui:477" +defs["igGetID"][1]["location"] = "imgui:480" defs["igGetID"][1]["namespace"] = "ImGui" defs["igGetID"][1]["ov_cimguiname"] = "igGetIDStr" defs["igGetID"][1]["ret"] = "ImGuiID" @@ -8835,7 +8849,7 @@ defs["igGetID"][2]["call_args"] = "(str_id_begin,str_id_end)" defs["igGetID"][2]["cimguiname"] = "igGetID" defs["igGetID"][2]["defaults"] = {} defs["igGetID"][2]["funcname"] = "GetID" -defs["igGetID"][2]["location"] = "imgui:478" +defs["igGetID"][2]["location"] = "imgui:481" defs["igGetID"][2]["namespace"] = "ImGui" defs["igGetID"][2]["ov_cimguiname"] = "igGetIDStrStr" defs["igGetID"][2]["ret"] = "ImGuiID" @@ -8852,7 +8866,7 @@ defs["igGetID"][3]["call_args"] = "(ptr_id)" defs["igGetID"][3]["cimguiname"] = "igGetID" defs["igGetID"][3]["defaults"] = {} defs["igGetID"][3]["funcname"] = "GetID" -defs["igGetID"][3]["location"] = "imgui:479" +defs["igGetID"][3]["location"] = "imgui:482" defs["igGetID"][3]["namespace"] = "ImGui" defs["igGetID"][3]["ov_cimguiname"] = "igGetIDPtr" defs["igGetID"][3]["ret"] = "ImGuiID" @@ -8870,7 +8884,7 @@ defs["igGetIO"][1]["call_args"] = "()" defs["igGetIO"][1]["cimguiname"] = "igGetIO" defs["igGetIO"][1]["defaults"] = {} defs["igGetIO"][1]["funcname"] = "GetIO" -defs["igGetIO"][1]["location"] = "imgui:297" +defs["igGetIO"][1]["location"] = "imgui:300" defs["igGetIO"][1]["namespace"] = "ImGui" defs["igGetIO"][1]["ov_cimguiname"] = "igGetIO" defs["igGetIO"][1]["ret"] = "ImGuiIO*" @@ -8890,7 +8904,7 @@ defs["igGetItemRectMax"][1]["call_args"] = "()" defs["igGetItemRectMax"][1]["cimguiname"] = "igGetItemRectMax" defs["igGetItemRectMax"][1]["defaults"] = {} defs["igGetItemRectMax"][1]["funcname"] = "GetItemRectMax" -defs["igGetItemRectMax"][1]["location"] = "imgui:847" +defs["igGetItemRectMax"][1]["location"] = "imgui:851" defs["igGetItemRectMax"][1]["namespace"] = "ImGui" defs["igGetItemRectMax"][1]["nonUDT"] = 1 defs["igGetItemRectMax"][1]["ov_cimguiname"] = "igGetItemRectMax" @@ -8910,7 +8924,7 @@ defs["igGetItemRectMin"][1]["call_args"] = "()" defs["igGetItemRectMin"][1]["cimguiname"] = "igGetItemRectMin" defs["igGetItemRectMin"][1]["defaults"] = {} defs["igGetItemRectMin"][1]["funcname"] = "GetItemRectMin" -defs["igGetItemRectMin"][1]["location"] = "imgui:846" +defs["igGetItemRectMin"][1]["location"] = "imgui:850" defs["igGetItemRectMin"][1]["namespace"] = "ImGui" defs["igGetItemRectMin"][1]["nonUDT"] = 1 defs["igGetItemRectMin"][1]["ov_cimguiname"] = "igGetItemRectMin" @@ -8930,7 +8944,7 @@ defs["igGetItemRectSize"][1]["call_args"] = "()" defs["igGetItemRectSize"][1]["cimguiname"] = "igGetItemRectSize" defs["igGetItemRectSize"][1]["defaults"] = {} defs["igGetItemRectSize"][1]["funcname"] = "GetItemRectSize" -defs["igGetItemRectSize"][1]["location"] = "imgui:848" +defs["igGetItemRectSize"][1]["location"] = "imgui:852" defs["igGetItemRectSize"][1]["namespace"] = "ImGui" defs["igGetItemRectSize"][1]["nonUDT"] = 1 defs["igGetItemRectSize"][1]["ov_cimguiname"] = "igGetItemRectSize" @@ -8950,7 +8964,7 @@ defs["igGetKeyIndex"][1]["call_args"] = "(imgui_key)" defs["igGetKeyIndex"][1]["cimguiname"] = "igGetKeyIndex" defs["igGetKeyIndex"][1]["defaults"] = {} defs["igGetKeyIndex"][1]["funcname"] = "GetKeyIndex" -defs["igGetKeyIndex"][1]["location"] = "imgui:884" +defs["igGetKeyIndex"][1]["location"] = "imgui:887" defs["igGetKeyIndex"][1]["namespace"] = "ImGui" defs["igGetKeyIndex"][1]["ov_cimguiname"] = "igGetKeyIndex" defs["igGetKeyIndex"][1]["ret"] = "int" @@ -8975,7 +8989,7 @@ defs["igGetKeyPressedAmount"][1]["call_args"] = "(key_index,repeat_delay,rate)" defs["igGetKeyPressedAmount"][1]["cimguiname"] = "igGetKeyPressedAmount" defs["igGetKeyPressedAmount"][1]["defaults"] = {} defs["igGetKeyPressedAmount"][1]["funcname"] = "GetKeyPressedAmount" -defs["igGetKeyPressedAmount"][1]["location"] = "imgui:888" +defs["igGetKeyPressedAmount"][1]["location"] = "imgui:891" defs["igGetKeyPressedAmount"][1]["namespace"] = "ImGui" defs["igGetKeyPressedAmount"][1]["ov_cimguiname"] = "igGetKeyPressedAmount" defs["igGetKeyPressedAmount"][1]["ret"] = "int" @@ -8991,13 +9005,32 @@ defs["igGetMainViewport"][1]["call_args"] = "()" defs["igGetMainViewport"][1]["cimguiname"] = "igGetMainViewport" defs["igGetMainViewport"][1]["defaults"] = {} defs["igGetMainViewport"][1]["funcname"] = "GetMainViewport" -defs["igGetMainViewport"][1]["location"] = "imgui:855" +defs["igGetMainViewport"][1]["location"] = "imgui:859" defs["igGetMainViewport"][1]["namespace"] = "ImGui" defs["igGetMainViewport"][1]["ov_cimguiname"] = "igGetMainViewport" defs["igGetMainViewport"][1]["ret"] = "ImGuiViewport*" defs["igGetMainViewport"][1]["signature"] = "()" defs["igGetMainViewport"][1]["stname"] = "" defs["igGetMainViewport"]["()"] = defs["igGetMainViewport"][1] +defs["igGetMouseClickedCount"] = {} +defs["igGetMouseClickedCount"][1] = {} +defs["igGetMouseClickedCount"][1]["args"] = "(ImGuiMouseButton button)" +defs["igGetMouseClickedCount"][1]["argsT"] = {} +defs["igGetMouseClickedCount"][1]["argsT"][1] = {} +defs["igGetMouseClickedCount"][1]["argsT"][1]["name"] = "button" +defs["igGetMouseClickedCount"][1]["argsT"][1]["type"] = "ImGuiMouseButton" +defs["igGetMouseClickedCount"][1]["argsoriginal"] = "(ImGuiMouseButton button)" +defs["igGetMouseClickedCount"][1]["call_args"] = "(button)" +defs["igGetMouseClickedCount"][1]["cimguiname"] = "igGetMouseClickedCount" +defs["igGetMouseClickedCount"][1]["defaults"] = {} +defs["igGetMouseClickedCount"][1]["funcname"] = "GetMouseClickedCount" +defs["igGetMouseClickedCount"][1]["location"] = "imgui:902" +defs["igGetMouseClickedCount"][1]["namespace"] = "ImGui" +defs["igGetMouseClickedCount"][1]["ov_cimguiname"] = "igGetMouseClickedCount" +defs["igGetMouseClickedCount"][1]["ret"] = "int" +defs["igGetMouseClickedCount"][1]["signature"] = "(ImGuiMouseButton)" +defs["igGetMouseClickedCount"][1]["stname"] = "" +defs["igGetMouseClickedCount"]["(ImGuiMouseButton)"] = defs["igGetMouseClickedCount"][1] defs["igGetMouseCursor"] = {} defs["igGetMouseCursor"][1] = {} defs["igGetMouseCursor"][1]["args"] = "()" @@ -9007,7 +9040,7 @@ defs["igGetMouseCursor"][1]["call_args"] = "()" defs["igGetMouseCursor"][1]["cimguiname"] = "igGetMouseCursor" defs["igGetMouseCursor"][1]["defaults"] = {} defs["igGetMouseCursor"][1]["funcname"] = "GetMouseCursor" -defs["igGetMouseCursor"][1]["location"] = "imgui:907" +defs["igGetMouseCursor"][1]["location"] = "imgui:911" defs["igGetMouseCursor"][1]["namespace"] = "ImGui" defs["igGetMouseCursor"][1]["ov_cimguiname"] = "igGetMouseCursor" defs["igGetMouseCursor"][1]["ret"] = "ImGuiMouseCursor" @@ -9034,7 +9067,7 @@ defs["igGetMouseDragDelta"][1]["defaults"] = {} defs["igGetMouseDragDelta"][1]["defaults"]["button"] = "0" defs["igGetMouseDragDelta"][1]["defaults"]["lock_threshold"] = "-1.0f" defs["igGetMouseDragDelta"][1]["funcname"] = "GetMouseDragDelta" -defs["igGetMouseDragDelta"][1]["location"] = "imgui:905" +defs["igGetMouseDragDelta"][1]["location"] = "imgui:909" defs["igGetMouseDragDelta"][1]["namespace"] = "ImGui" defs["igGetMouseDragDelta"][1]["nonUDT"] = 1 defs["igGetMouseDragDelta"][1]["ov_cimguiname"] = "igGetMouseDragDelta" @@ -9054,7 +9087,7 @@ defs["igGetMousePos"][1]["call_args"] = "()" defs["igGetMousePos"][1]["cimguiname"] = "igGetMousePos" defs["igGetMousePos"][1]["defaults"] = {} defs["igGetMousePos"][1]["funcname"] = "GetMousePos" -defs["igGetMousePos"][1]["location"] = "imgui:902" +defs["igGetMousePos"][1]["location"] = "imgui:906" defs["igGetMousePos"][1]["namespace"] = "ImGui" defs["igGetMousePos"][1]["nonUDT"] = 1 defs["igGetMousePos"][1]["ov_cimguiname"] = "igGetMousePos" @@ -9074,7 +9107,7 @@ defs["igGetMousePosOnOpeningCurrentPopup"][1]["call_args"] = "()" defs["igGetMousePosOnOpeningCurrentPopup"][1]["cimguiname"] = "igGetMousePosOnOpeningCurrentPopup" defs["igGetMousePosOnOpeningCurrentPopup"][1]["defaults"] = {} defs["igGetMousePosOnOpeningCurrentPopup"][1]["funcname"] = "GetMousePosOnOpeningCurrentPopup" -defs["igGetMousePosOnOpeningCurrentPopup"][1]["location"] = "imgui:903" +defs["igGetMousePosOnOpeningCurrentPopup"][1]["location"] = "imgui:907" defs["igGetMousePosOnOpeningCurrentPopup"][1]["namespace"] = "ImGui" defs["igGetMousePosOnOpeningCurrentPopup"][1]["nonUDT"] = 1 defs["igGetMousePosOnOpeningCurrentPopup"][1]["ov_cimguiname"] = "igGetMousePosOnOpeningCurrentPopup" @@ -9091,7 +9124,7 @@ defs["igGetScrollMaxX"][1]["call_args"] = "()" defs["igGetScrollMaxX"][1]["cimguiname"] = "igGetScrollMaxX" defs["igGetScrollMaxX"][1]["defaults"] = {} defs["igGetScrollMaxX"][1]["funcname"] = "GetScrollMaxX" -defs["igGetScrollMaxX"][1]["location"] = "imgui:391" +defs["igGetScrollMaxX"][1]["location"] = "imgui:394" defs["igGetScrollMaxX"][1]["namespace"] = "ImGui" defs["igGetScrollMaxX"][1]["ov_cimguiname"] = "igGetScrollMaxX" defs["igGetScrollMaxX"][1]["ret"] = "float" @@ -9107,7 +9140,7 @@ defs["igGetScrollMaxY"][1]["call_args"] = "()" defs["igGetScrollMaxY"][1]["cimguiname"] = "igGetScrollMaxY" defs["igGetScrollMaxY"][1]["defaults"] = {} defs["igGetScrollMaxY"][1]["funcname"] = "GetScrollMaxY" -defs["igGetScrollMaxY"][1]["location"] = "imgui:392" +defs["igGetScrollMaxY"][1]["location"] = "imgui:395" defs["igGetScrollMaxY"][1]["namespace"] = "ImGui" defs["igGetScrollMaxY"][1]["ov_cimguiname"] = "igGetScrollMaxY" defs["igGetScrollMaxY"][1]["ret"] = "float" @@ -9123,7 +9156,7 @@ defs["igGetScrollX"][1]["call_args"] = "()" defs["igGetScrollX"][1]["cimguiname"] = "igGetScrollX" defs["igGetScrollX"][1]["defaults"] = {} defs["igGetScrollX"][1]["funcname"] = "GetScrollX" -defs["igGetScrollX"][1]["location"] = "imgui:387" +defs["igGetScrollX"][1]["location"] = "imgui:390" defs["igGetScrollX"][1]["namespace"] = "ImGui" defs["igGetScrollX"][1]["ov_cimguiname"] = "igGetScrollX" defs["igGetScrollX"][1]["ret"] = "float" @@ -9139,7 +9172,7 @@ defs["igGetScrollY"][1]["call_args"] = "()" defs["igGetScrollY"][1]["cimguiname"] = "igGetScrollY" defs["igGetScrollY"][1]["defaults"] = {} defs["igGetScrollY"][1]["funcname"] = "GetScrollY" -defs["igGetScrollY"][1]["location"] = "imgui:388" +defs["igGetScrollY"][1]["location"] = "imgui:391" defs["igGetScrollY"][1]["namespace"] = "ImGui" defs["igGetScrollY"][1]["ov_cimguiname"] = "igGetScrollY" defs["igGetScrollY"][1]["ret"] = "float" @@ -9155,7 +9188,7 @@ defs["igGetStateStorage"][1]["call_args"] = "()" defs["igGetStateStorage"][1]["cimguiname"] = "igGetStateStorage" defs["igGetStateStorage"][1]["defaults"] = {} defs["igGetStateStorage"][1]["funcname"] = "GetStateStorage" -defs["igGetStateStorage"][1]["location"] = "imgui:867" +defs["igGetStateStorage"][1]["location"] = "imgui:871" defs["igGetStateStorage"][1]["namespace"] = "ImGui" defs["igGetStateStorage"][1]["ov_cimguiname"] = "igGetStateStorage" defs["igGetStateStorage"][1]["ret"] = "ImGuiStorage*" @@ -9171,7 +9204,7 @@ defs["igGetStyle"][1]["call_args"] = "()" defs["igGetStyle"][1]["cimguiname"] = "igGetStyle" defs["igGetStyle"][1]["defaults"] = {} defs["igGetStyle"][1]["funcname"] = "GetStyle" -defs["igGetStyle"][1]["location"] = "imgui:298" +defs["igGetStyle"][1]["location"] = "imgui:301" defs["igGetStyle"][1]["namespace"] = "ImGui" defs["igGetStyle"][1]["ov_cimguiname"] = "igGetStyle" defs["igGetStyle"][1]["ret"] = "ImGuiStyle*" @@ -9191,7 +9224,7 @@ defs["igGetStyleColorName"][1]["call_args"] = "(idx)" defs["igGetStyleColorName"][1]["cimguiname"] = "igGetStyleColorName" defs["igGetStyleColorName"][1]["defaults"] = {} defs["igGetStyleColorName"][1]["funcname"] = "GetStyleColorName" -defs["igGetStyleColorName"][1]["location"] = "imgui:865" +defs["igGetStyleColorName"][1]["location"] = "imgui:869" defs["igGetStyleColorName"][1]["namespace"] = "ImGui" defs["igGetStyleColorName"][1]["ov_cimguiname"] = "igGetStyleColorName" defs["igGetStyleColorName"][1]["ret"] = "const char*" @@ -9210,7 +9243,7 @@ defs["igGetStyleColorVec4"][1]["call_args"] = "(idx)" defs["igGetStyleColorVec4"][1]["cimguiname"] = "igGetStyleColorVec4" defs["igGetStyleColorVec4"][1]["defaults"] = {} defs["igGetStyleColorVec4"][1]["funcname"] = "GetStyleColorVec4" -defs["igGetStyleColorVec4"][1]["location"] = "imgui:428" +defs["igGetStyleColorVec4"][1]["location"] = "imgui:431" defs["igGetStyleColorVec4"][1]["namespace"] = "ImGui" defs["igGetStyleColorVec4"][1]["ov_cimguiname"] = "igGetStyleColorVec4" defs["igGetStyleColorVec4"][1]["ret"] = "const ImVec4*" @@ -9227,7 +9260,7 @@ defs["igGetTextLineHeight"][1]["call_args"] = "()" defs["igGetTextLineHeight"][1]["cimguiname"] = "igGetTextLineHeight" defs["igGetTextLineHeight"][1]["defaults"] = {} defs["igGetTextLineHeight"][1]["funcname"] = "GetTextLineHeight" -defs["igGetTextLineHeight"][1]["location"] = "imgui:456" +defs["igGetTextLineHeight"][1]["location"] = "imgui:459" defs["igGetTextLineHeight"][1]["namespace"] = "ImGui" defs["igGetTextLineHeight"][1]["ov_cimguiname"] = "igGetTextLineHeight" defs["igGetTextLineHeight"][1]["ret"] = "float" @@ -9243,7 +9276,7 @@ defs["igGetTextLineHeightWithSpacing"][1]["call_args"] = "()" defs["igGetTextLineHeightWithSpacing"][1]["cimguiname"] = "igGetTextLineHeightWithSpacing" defs["igGetTextLineHeightWithSpacing"][1]["defaults"] = {} defs["igGetTextLineHeightWithSpacing"][1]["funcname"] = "GetTextLineHeightWithSpacing" -defs["igGetTextLineHeightWithSpacing"][1]["location"] = "imgui:457" +defs["igGetTextLineHeightWithSpacing"][1]["location"] = "imgui:460" defs["igGetTextLineHeightWithSpacing"][1]["namespace"] = "ImGui" defs["igGetTextLineHeightWithSpacing"][1]["ov_cimguiname"] = "igGetTextLineHeightWithSpacing" defs["igGetTextLineHeightWithSpacing"][1]["ret"] = "float" @@ -9259,7 +9292,7 @@ defs["igGetTime"][1]["call_args"] = "()" defs["igGetTime"][1]["cimguiname"] = "igGetTime" defs["igGetTime"][1]["defaults"] = {} defs["igGetTime"][1]["funcname"] = "GetTime" -defs["igGetTime"][1]["location"] = "imgui:860" +defs["igGetTime"][1]["location"] = "imgui:864" defs["igGetTime"][1]["namespace"] = "ImGui" defs["igGetTime"][1]["ov_cimguiname"] = "igGetTime" defs["igGetTime"][1]["ret"] = "double" @@ -9275,7 +9308,7 @@ defs["igGetTreeNodeToLabelSpacing"][1]["call_args"] = "()" defs["igGetTreeNodeToLabelSpacing"][1]["cimguiname"] = "igGetTreeNodeToLabelSpacing" defs["igGetTreeNodeToLabelSpacing"][1]["defaults"] = {} defs["igGetTreeNodeToLabelSpacing"][1]["funcname"] = "GetTreeNodeToLabelSpacing" -defs["igGetTreeNodeToLabelSpacing"][1]["location"] = "imgui:610" +defs["igGetTreeNodeToLabelSpacing"][1]["location"] = "imgui:613" defs["igGetTreeNodeToLabelSpacing"][1]["namespace"] = "ImGui" defs["igGetTreeNodeToLabelSpacing"][1]["ov_cimguiname"] = "igGetTreeNodeToLabelSpacing" defs["igGetTreeNodeToLabelSpacing"][1]["ret"] = "float" @@ -9291,7 +9324,7 @@ defs["igGetVersion"][1]["call_args"] = "()" defs["igGetVersion"][1]["cimguiname"] = "igGetVersion" defs["igGetVersion"][1]["defaults"] = {} defs["igGetVersion"][1]["funcname"] = "GetVersion" -defs["igGetVersion"][1]["location"] = "imgui:312" +defs["igGetVersion"][1]["location"] = "imgui:316" defs["igGetVersion"][1]["namespace"] = "ImGui" defs["igGetVersion"][1]["ov_cimguiname"] = "igGetVersion" defs["igGetVersion"][1]["ret"] = "const char*" @@ -9310,7 +9343,7 @@ defs["igGetWindowContentRegionMax"][1]["call_args"] = "()" defs["igGetWindowContentRegionMax"][1]["cimguiname"] = "igGetWindowContentRegionMax" defs["igGetWindowContentRegionMax"][1]["defaults"] = {} defs["igGetWindowContentRegionMax"][1]["funcname"] = "GetWindowContentRegionMax" -defs["igGetWindowContentRegionMax"][1]["location"] = "imgui:383" +defs["igGetWindowContentRegionMax"][1]["location"] = "imgui:387" defs["igGetWindowContentRegionMax"][1]["namespace"] = "ImGui" defs["igGetWindowContentRegionMax"][1]["nonUDT"] = 1 defs["igGetWindowContentRegionMax"][1]["ov_cimguiname"] = "igGetWindowContentRegionMax" @@ -9330,7 +9363,7 @@ defs["igGetWindowContentRegionMin"][1]["call_args"] = "()" defs["igGetWindowContentRegionMin"][1]["cimguiname"] = "igGetWindowContentRegionMin" defs["igGetWindowContentRegionMin"][1]["defaults"] = {} defs["igGetWindowContentRegionMin"][1]["funcname"] = "GetWindowContentRegionMin" -defs["igGetWindowContentRegionMin"][1]["location"] = "imgui:382" +defs["igGetWindowContentRegionMin"][1]["location"] = "imgui:386" defs["igGetWindowContentRegionMin"][1]["namespace"] = "ImGui" defs["igGetWindowContentRegionMin"][1]["nonUDT"] = 1 defs["igGetWindowContentRegionMin"][1]["ov_cimguiname"] = "igGetWindowContentRegionMin" @@ -9338,22 +9371,6 @@ defs["igGetWindowContentRegionMin"][1]["ret"] = "void" defs["igGetWindowContentRegionMin"][1]["signature"] = "()" defs["igGetWindowContentRegionMin"][1]["stname"] = "" defs["igGetWindowContentRegionMin"]["()"] = defs["igGetWindowContentRegionMin"][1] -defs["igGetWindowContentRegionWidth"] = {} -defs["igGetWindowContentRegionWidth"][1] = {} -defs["igGetWindowContentRegionWidth"][1]["args"] = "()" -defs["igGetWindowContentRegionWidth"][1]["argsT"] = {} -defs["igGetWindowContentRegionWidth"][1]["argsoriginal"] = "()" -defs["igGetWindowContentRegionWidth"][1]["call_args"] = "()" -defs["igGetWindowContentRegionWidth"][1]["cimguiname"] = "igGetWindowContentRegionWidth" -defs["igGetWindowContentRegionWidth"][1]["defaults"] = {} -defs["igGetWindowContentRegionWidth"][1]["funcname"] = "GetWindowContentRegionWidth" -defs["igGetWindowContentRegionWidth"][1]["location"] = "imgui:384" -defs["igGetWindowContentRegionWidth"][1]["namespace"] = "ImGui" -defs["igGetWindowContentRegionWidth"][1]["ov_cimguiname"] = "igGetWindowContentRegionWidth" -defs["igGetWindowContentRegionWidth"][1]["ret"] = "float" -defs["igGetWindowContentRegionWidth"][1]["signature"] = "()" -defs["igGetWindowContentRegionWidth"][1]["stname"] = "" -defs["igGetWindowContentRegionWidth"]["()"] = defs["igGetWindowContentRegionWidth"][1] defs["igGetWindowDrawList"] = {} defs["igGetWindowDrawList"][1] = {} defs["igGetWindowDrawList"][1]["args"] = "()" @@ -9363,7 +9380,7 @@ defs["igGetWindowDrawList"][1]["call_args"] = "()" defs["igGetWindowDrawList"][1]["cimguiname"] = "igGetWindowDrawList" defs["igGetWindowDrawList"][1]["defaults"] = {} defs["igGetWindowDrawList"][1]["funcname"] = "GetWindowDrawList" -defs["igGetWindowDrawList"][1]["location"] = "imgui:352" +defs["igGetWindowDrawList"][1]["location"] = "imgui:356" defs["igGetWindowDrawList"][1]["namespace"] = "ImGui" defs["igGetWindowDrawList"][1]["ov_cimguiname"] = "igGetWindowDrawList" defs["igGetWindowDrawList"][1]["ret"] = "ImDrawList*" @@ -9379,7 +9396,7 @@ defs["igGetWindowHeight"][1]["call_args"] = "()" defs["igGetWindowHeight"][1]["cimguiname"] = "igGetWindowHeight" defs["igGetWindowHeight"][1]["defaults"] = {} defs["igGetWindowHeight"][1]["funcname"] = "GetWindowHeight" -defs["igGetWindowHeight"][1]["location"] = "imgui:356" +defs["igGetWindowHeight"][1]["location"] = "imgui:360" defs["igGetWindowHeight"][1]["namespace"] = "ImGui" defs["igGetWindowHeight"][1]["ov_cimguiname"] = "igGetWindowHeight" defs["igGetWindowHeight"][1]["ret"] = "float" @@ -9398,7 +9415,7 @@ defs["igGetWindowPos"][1]["call_args"] = "()" defs["igGetWindowPos"][1]["cimguiname"] = "igGetWindowPos" defs["igGetWindowPos"][1]["defaults"] = {} defs["igGetWindowPos"][1]["funcname"] = "GetWindowPos" -defs["igGetWindowPos"][1]["location"] = "imgui:353" +defs["igGetWindowPos"][1]["location"] = "imgui:357" defs["igGetWindowPos"][1]["namespace"] = "ImGui" defs["igGetWindowPos"][1]["nonUDT"] = 1 defs["igGetWindowPos"][1]["ov_cimguiname"] = "igGetWindowPos" @@ -9418,7 +9435,7 @@ defs["igGetWindowSize"][1]["call_args"] = "()" defs["igGetWindowSize"][1]["cimguiname"] = "igGetWindowSize" defs["igGetWindowSize"][1]["defaults"] = {} defs["igGetWindowSize"][1]["funcname"] = "GetWindowSize" -defs["igGetWindowSize"][1]["location"] = "imgui:354" +defs["igGetWindowSize"][1]["location"] = "imgui:358" defs["igGetWindowSize"][1]["namespace"] = "ImGui" defs["igGetWindowSize"][1]["nonUDT"] = 1 defs["igGetWindowSize"][1]["ov_cimguiname"] = "igGetWindowSize" @@ -9435,7 +9452,7 @@ defs["igGetWindowWidth"][1]["call_args"] = "()" defs["igGetWindowWidth"][1]["cimguiname"] = "igGetWindowWidth" defs["igGetWindowWidth"][1]["defaults"] = {} defs["igGetWindowWidth"][1]["funcname"] = "GetWindowWidth" -defs["igGetWindowWidth"][1]["location"] = "imgui:355" +defs["igGetWindowWidth"][1]["location"] = "imgui:359" defs["igGetWindowWidth"][1]["namespace"] = "ImGui" defs["igGetWindowWidth"][1]["ov_cimguiname"] = "igGetWindowWidth" defs["igGetWindowWidth"][1]["ret"] = "float" @@ -9473,7 +9490,7 @@ defs["igImage"][1]["defaults"]["tint_col"] = "ImVec4(1,1,1,1)" defs["igImage"][1]["defaults"]["uv0"] = "ImVec2(0,0)" defs["igImage"][1]["defaults"]["uv1"] = "ImVec2(1,1)" defs["igImage"][1]["funcname"] = "Image" -defs["igImage"][1]["location"] = "imgui:503" +defs["igImage"][1]["location"] = "imgui:506" defs["igImage"][1]["namespace"] = "ImGui" defs["igImage"][1]["ov_cimguiname"] = "igImage" defs["igImage"][1]["ret"] = "void" @@ -9515,7 +9532,7 @@ defs["igImageButton"][1]["defaults"]["tint_col"] = "ImVec4(1,1,1,1)" defs["igImageButton"][1]["defaults"]["uv0"] = "ImVec2(0,0)" defs["igImageButton"][1]["defaults"]["uv1"] = "ImVec2(1,1)" defs["igImageButton"][1]["funcname"] = "ImageButton" -defs["igImageButton"][1]["location"] = "imgui:504" +defs["igImageButton"][1]["location"] = "imgui:507" defs["igImageButton"][1]["namespace"] = "ImGui" defs["igImageButton"][1]["ov_cimguiname"] = "igImageButton" defs["igImageButton"][1]["ret"] = "bool" @@ -9535,7 +9552,7 @@ defs["igIndent"][1]["cimguiname"] = "igIndent" defs["igIndent"][1]["defaults"] = {} defs["igIndent"][1]["defaults"]["indent_w"] = "0.0f" defs["igIndent"][1]["funcname"] = "Indent" -defs["igIndent"][1]["location"] = "imgui:442" +defs["igIndent"][1]["location"] = "imgui:445" defs["igIndent"][1]["namespace"] = "ImGui" defs["igIndent"][1]["ov_cimguiname"] = "igIndent" defs["igIndent"][1]["ret"] = "void" @@ -9573,7 +9590,7 @@ defs["igInputDouble"][1]["defaults"]["format"] = "\"%.6f\"" defs["igInputDouble"][1]["defaults"]["step"] = "0.0" defs["igInputDouble"][1]["defaults"]["step_fast"] = "0.0" defs["igInputDouble"][1]["funcname"] = "InputDouble" -defs["igInputDouble"][1]["location"] = "imgui:581" +defs["igInputDouble"][1]["location"] = "imgui:584" defs["igInputDouble"][1]["namespace"] = "ImGui" defs["igInputDouble"][1]["ov_cimguiname"] = "igInputDouble" defs["igInputDouble"][1]["ret"] = "bool" @@ -9611,7 +9628,7 @@ defs["igInputFloat"][1]["defaults"]["format"] = "\"%.3f\"" defs["igInputFloat"][1]["defaults"]["step"] = "0.0f" defs["igInputFloat"][1]["defaults"]["step_fast"] = "0.0f" defs["igInputFloat"][1]["funcname"] = "InputFloat" -defs["igInputFloat"][1]["location"] = "imgui:573" +defs["igInputFloat"][1]["location"] = "imgui:576" defs["igInputFloat"][1]["namespace"] = "ImGui" defs["igInputFloat"][1]["ov_cimguiname"] = "igInputFloat" defs["igInputFloat"][1]["ret"] = "bool" @@ -9641,7 +9658,7 @@ defs["igInputFloat2"][1]["defaults"] = {} defs["igInputFloat2"][1]["defaults"]["flags"] = "0" defs["igInputFloat2"][1]["defaults"]["format"] = "\"%.3f\"" defs["igInputFloat2"][1]["funcname"] = "InputFloat2" -defs["igInputFloat2"][1]["location"] = "imgui:574" +defs["igInputFloat2"][1]["location"] = "imgui:577" defs["igInputFloat2"][1]["namespace"] = "ImGui" defs["igInputFloat2"][1]["ov_cimguiname"] = "igInputFloat2" defs["igInputFloat2"][1]["ret"] = "bool" @@ -9671,7 +9688,7 @@ defs["igInputFloat3"][1]["defaults"] = {} defs["igInputFloat3"][1]["defaults"]["flags"] = "0" defs["igInputFloat3"][1]["defaults"]["format"] = "\"%.3f\"" defs["igInputFloat3"][1]["funcname"] = "InputFloat3" -defs["igInputFloat3"][1]["location"] = "imgui:575" +defs["igInputFloat3"][1]["location"] = "imgui:578" defs["igInputFloat3"][1]["namespace"] = "ImGui" defs["igInputFloat3"][1]["ov_cimguiname"] = "igInputFloat3" defs["igInputFloat3"][1]["ret"] = "bool" @@ -9701,7 +9718,7 @@ defs["igInputFloat4"][1]["defaults"] = {} defs["igInputFloat4"][1]["defaults"]["flags"] = "0" defs["igInputFloat4"][1]["defaults"]["format"] = "\"%.3f\"" defs["igInputFloat4"][1]["funcname"] = "InputFloat4" -defs["igInputFloat4"][1]["location"] = "imgui:576" +defs["igInputFloat4"][1]["location"] = "imgui:579" defs["igInputFloat4"][1]["namespace"] = "ImGui" defs["igInputFloat4"][1]["ov_cimguiname"] = "igInputFloat4" defs["igInputFloat4"][1]["ret"] = "bool" @@ -9735,7 +9752,7 @@ defs["igInputInt"][1]["defaults"]["flags"] = "0" defs["igInputInt"][1]["defaults"]["step"] = "1" defs["igInputInt"][1]["defaults"]["step_fast"] = "100" defs["igInputInt"][1]["funcname"] = "InputInt" -defs["igInputInt"][1]["location"] = "imgui:577" +defs["igInputInt"][1]["location"] = "imgui:580" defs["igInputInt"][1]["namespace"] = "ImGui" defs["igInputInt"][1]["ov_cimguiname"] = "igInputInt" defs["igInputInt"][1]["ret"] = "bool" @@ -9761,7 +9778,7 @@ defs["igInputInt2"][1]["cimguiname"] = "igInputInt2" defs["igInputInt2"][1]["defaults"] = {} defs["igInputInt2"][1]["defaults"]["flags"] = "0" defs["igInputInt2"][1]["funcname"] = "InputInt2" -defs["igInputInt2"][1]["location"] = "imgui:578" +defs["igInputInt2"][1]["location"] = "imgui:581" defs["igInputInt2"][1]["namespace"] = "ImGui" defs["igInputInt2"][1]["ov_cimguiname"] = "igInputInt2" defs["igInputInt2"][1]["ret"] = "bool" @@ -9787,7 +9804,7 @@ defs["igInputInt3"][1]["cimguiname"] = "igInputInt3" defs["igInputInt3"][1]["defaults"] = {} defs["igInputInt3"][1]["defaults"]["flags"] = "0" defs["igInputInt3"][1]["funcname"] = "InputInt3" -defs["igInputInt3"][1]["location"] = "imgui:579" +defs["igInputInt3"][1]["location"] = "imgui:582" defs["igInputInt3"][1]["namespace"] = "ImGui" defs["igInputInt3"][1]["ov_cimguiname"] = "igInputInt3" defs["igInputInt3"][1]["ret"] = "bool" @@ -9813,7 +9830,7 @@ defs["igInputInt4"][1]["cimguiname"] = "igInputInt4" defs["igInputInt4"][1]["defaults"] = {} defs["igInputInt4"][1]["defaults"]["flags"] = "0" defs["igInputInt4"][1]["funcname"] = "InputInt4" -defs["igInputInt4"][1]["location"] = "imgui:580" +defs["igInputInt4"][1]["location"] = "imgui:583" defs["igInputInt4"][1]["namespace"] = "ImGui" defs["igInputInt4"][1]["ov_cimguiname"] = "igInputInt4" defs["igInputInt4"][1]["ret"] = "bool" @@ -9854,7 +9871,7 @@ defs["igInputScalar"][1]["defaults"]["format"] = "NULL" defs["igInputScalar"][1]["defaults"]["p_step"] = "NULL" defs["igInputScalar"][1]["defaults"]["p_step_fast"] = "NULL" defs["igInputScalar"][1]["funcname"] = "InputScalar" -defs["igInputScalar"][1]["location"] = "imgui:582" +defs["igInputScalar"][1]["location"] = "imgui:585" defs["igInputScalar"][1]["namespace"] = "ImGui" defs["igInputScalar"][1]["ov_cimguiname"] = "igInputScalar" defs["igInputScalar"][1]["ret"] = "bool" @@ -9898,7 +9915,7 @@ defs["igInputScalarN"][1]["defaults"]["format"] = "NULL" defs["igInputScalarN"][1]["defaults"]["p_step"] = "NULL" defs["igInputScalarN"][1]["defaults"]["p_step_fast"] = "NULL" defs["igInputScalarN"][1]["funcname"] = "InputScalarN" -defs["igInputScalarN"][1]["location"] = "imgui:583" +defs["igInputScalarN"][1]["location"] = "imgui:586" defs["igInputScalarN"][1]["namespace"] = "ImGui" defs["igInputScalarN"][1]["ov_cimguiname"] = "igInputScalarN" defs["igInputScalarN"][1]["ret"] = "bool" @@ -9935,7 +9952,7 @@ defs["igInputText"][1]["defaults"]["callback"] = "NULL" defs["igInputText"][1]["defaults"]["flags"] = "0" defs["igInputText"][1]["defaults"]["user_data"] = "NULL" defs["igInputText"][1]["funcname"] = "InputText" -defs["igInputText"][1]["location"] = "imgui:570" +defs["igInputText"][1]["location"] = "imgui:573" defs["igInputText"][1]["namespace"] = "ImGui" defs["igInputText"][1]["ov_cimguiname"] = "igInputText" defs["igInputText"][1]["ret"] = "bool" @@ -9976,7 +9993,7 @@ defs["igInputTextMultiline"][1]["defaults"]["flags"] = "0" defs["igInputTextMultiline"][1]["defaults"]["size"] = "ImVec2(0,0)" defs["igInputTextMultiline"][1]["defaults"]["user_data"] = "NULL" defs["igInputTextMultiline"][1]["funcname"] = "InputTextMultiline" -defs["igInputTextMultiline"][1]["location"] = "imgui:571" +defs["igInputTextMultiline"][1]["location"] = "imgui:574" defs["igInputTextMultiline"][1]["namespace"] = "ImGui" defs["igInputTextMultiline"][1]["ov_cimguiname"] = "igInputTextMultiline" defs["igInputTextMultiline"][1]["ret"] = "bool" @@ -10016,7 +10033,7 @@ defs["igInputTextWithHint"][1]["defaults"]["callback"] = "NULL" defs["igInputTextWithHint"][1]["defaults"]["flags"] = "0" defs["igInputTextWithHint"][1]["defaults"]["user_data"] = "NULL" defs["igInputTextWithHint"][1]["funcname"] = "InputTextWithHint" -defs["igInputTextWithHint"][1]["location"] = "imgui:572" +defs["igInputTextWithHint"][1]["location"] = "imgui:575" defs["igInputTextWithHint"][1]["namespace"] = "ImGui" defs["igInputTextWithHint"][1]["ov_cimguiname"] = "igInputTextWithHint" defs["igInputTextWithHint"][1]["ret"] = "bool" @@ -10042,7 +10059,7 @@ defs["igInvisibleButton"][1]["cimguiname"] = "igInvisibleButton" defs["igInvisibleButton"][1]["defaults"] = {} defs["igInvisibleButton"][1]["defaults"]["flags"] = "0" defs["igInvisibleButton"][1]["funcname"] = "InvisibleButton" -defs["igInvisibleButton"][1]["location"] = "imgui:501" +defs["igInvisibleButton"][1]["location"] = "imgui:504" defs["igInvisibleButton"][1]["namespace"] = "ImGui" defs["igInvisibleButton"][1]["ov_cimguiname"] = "igInvisibleButton" defs["igInvisibleButton"][1]["ret"] = "bool" @@ -10058,7 +10075,7 @@ defs["igIsAnyItemActive"][1]["call_args"] = "()" defs["igIsAnyItemActive"][1]["cimguiname"] = "igIsAnyItemActive" defs["igIsAnyItemActive"][1]["defaults"] = {} defs["igIsAnyItemActive"][1]["funcname"] = "IsAnyItemActive" -defs["igIsAnyItemActive"][1]["location"] = "imgui:844" +defs["igIsAnyItemActive"][1]["location"] = "imgui:848" defs["igIsAnyItemActive"][1]["namespace"] = "ImGui" defs["igIsAnyItemActive"][1]["ov_cimguiname"] = "igIsAnyItemActive" defs["igIsAnyItemActive"][1]["ret"] = "bool" @@ -10074,7 +10091,7 @@ defs["igIsAnyItemFocused"][1]["call_args"] = "()" defs["igIsAnyItemFocused"][1]["cimguiname"] = "igIsAnyItemFocused" defs["igIsAnyItemFocused"][1]["defaults"] = {} defs["igIsAnyItemFocused"][1]["funcname"] = "IsAnyItemFocused" -defs["igIsAnyItemFocused"][1]["location"] = "imgui:845" +defs["igIsAnyItemFocused"][1]["location"] = "imgui:849" defs["igIsAnyItemFocused"][1]["namespace"] = "ImGui" defs["igIsAnyItemFocused"][1]["ov_cimguiname"] = "igIsAnyItemFocused" defs["igIsAnyItemFocused"][1]["ret"] = "bool" @@ -10090,7 +10107,7 @@ defs["igIsAnyItemHovered"][1]["call_args"] = "()" defs["igIsAnyItemHovered"][1]["cimguiname"] = "igIsAnyItemHovered" defs["igIsAnyItemHovered"][1]["defaults"] = {} defs["igIsAnyItemHovered"][1]["funcname"] = "IsAnyItemHovered" -defs["igIsAnyItemHovered"][1]["location"] = "imgui:843" +defs["igIsAnyItemHovered"][1]["location"] = "imgui:847" defs["igIsAnyItemHovered"][1]["namespace"] = "ImGui" defs["igIsAnyItemHovered"][1]["ov_cimguiname"] = "igIsAnyItemHovered" defs["igIsAnyItemHovered"][1]["ret"] = "bool" @@ -10106,7 +10123,7 @@ defs["igIsAnyMouseDown"][1]["call_args"] = "()" defs["igIsAnyMouseDown"][1]["cimguiname"] = "igIsAnyMouseDown" defs["igIsAnyMouseDown"][1]["defaults"] = {} defs["igIsAnyMouseDown"][1]["funcname"] = "IsAnyMouseDown" -defs["igIsAnyMouseDown"][1]["location"] = "imgui:901" +defs["igIsAnyMouseDown"][1]["location"] = "imgui:905" defs["igIsAnyMouseDown"][1]["namespace"] = "ImGui" defs["igIsAnyMouseDown"][1]["ov_cimguiname"] = "igIsAnyMouseDown" defs["igIsAnyMouseDown"][1]["ret"] = "bool" @@ -10122,7 +10139,7 @@ defs["igIsItemActivated"][1]["call_args"] = "()" defs["igIsItemActivated"][1]["cimguiname"] = "igIsItemActivated" defs["igIsItemActivated"][1]["defaults"] = {} defs["igIsItemActivated"][1]["funcname"] = "IsItemActivated" -defs["igIsItemActivated"][1]["location"] = "imgui:839" +defs["igIsItemActivated"][1]["location"] = "imgui:843" defs["igIsItemActivated"][1]["namespace"] = "ImGui" defs["igIsItemActivated"][1]["ov_cimguiname"] = "igIsItemActivated" defs["igIsItemActivated"][1]["ret"] = "bool" @@ -10138,7 +10155,7 @@ defs["igIsItemActive"][1]["call_args"] = "()" defs["igIsItemActive"][1]["cimguiname"] = "igIsItemActive" defs["igIsItemActive"][1]["defaults"] = {} defs["igIsItemActive"][1]["funcname"] = "IsItemActive" -defs["igIsItemActive"][1]["location"] = "imgui:834" +defs["igIsItemActive"][1]["location"] = "imgui:838" defs["igIsItemActive"][1]["namespace"] = "ImGui" defs["igIsItemActive"][1]["ov_cimguiname"] = "igIsItemActive" defs["igIsItemActive"][1]["ret"] = "bool" @@ -10158,7 +10175,7 @@ defs["igIsItemClicked"][1]["cimguiname"] = "igIsItemClicked" defs["igIsItemClicked"][1]["defaults"] = {} defs["igIsItemClicked"][1]["defaults"]["mouse_button"] = "0" defs["igIsItemClicked"][1]["funcname"] = "IsItemClicked" -defs["igIsItemClicked"][1]["location"] = "imgui:836" +defs["igIsItemClicked"][1]["location"] = "imgui:840" defs["igIsItemClicked"][1]["namespace"] = "ImGui" defs["igIsItemClicked"][1]["ov_cimguiname"] = "igIsItemClicked" defs["igIsItemClicked"][1]["ret"] = "bool" @@ -10174,7 +10191,7 @@ defs["igIsItemDeactivated"][1]["call_args"] = "()" defs["igIsItemDeactivated"][1]["cimguiname"] = "igIsItemDeactivated" defs["igIsItemDeactivated"][1]["defaults"] = {} defs["igIsItemDeactivated"][1]["funcname"] = "IsItemDeactivated" -defs["igIsItemDeactivated"][1]["location"] = "imgui:840" +defs["igIsItemDeactivated"][1]["location"] = "imgui:844" defs["igIsItemDeactivated"][1]["namespace"] = "ImGui" defs["igIsItemDeactivated"][1]["ov_cimguiname"] = "igIsItemDeactivated" defs["igIsItemDeactivated"][1]["ret"] = "bool" @@ -10190,7 +10207,7 @@ defs["igIsItemDeactivatedAfterEdit"][1]["call_args"] = "()" defs["igIsItemDeactivatedAfterEdit"][1]["cimguiname"] = "igIsItemDeactivatedAfterEdit" defs["igIsItemDeactivatedAfterEdit"][1]["defaults"] = {} defs["igIsItemDeactivatedAfterEdit"][1]["funcname"] = "IsItemDeactivatedAfterEdit" -defs["igIsItemDeactivatedAfterEdit"][1]["location"] = "imgui:841" +defs["igIsItemDeactivatedAfterEdit"][1]["location"] = "imgui:845" defs["igIsItemDeactivatedAfterEdit"][1]["namespace"] = "ImGui" defs["igIsItemDeactivatedAfterEdit"][1]["ov_cimguiname"] = "igIsItemDeactivatedAfterEdit" defs["igIsItemDeactivatedAfterEdit"][1]["ret"] = "bool" @@ -10206,7 +10223,7 @@ defs["igIsItemEdited"][1]["call_args"] = "()" defs["igIsItemEdited"][1]["cimguiname"] = "igIsItemEdited" defs["igIsItemEdited"][1]["defaults"] = {} defs["igIsItemEdited"][1]["funcname"] = "IsItemEdited" -defs["igIsItemEdited"][1]["location"] = "imgui:838" +defs["igIsItemEdited"][1]["location"] = "imgui:842" defs["igIsItemEdited"][1]["namespace"] = "ImGui" defs["igIsItemEdited"][1]["ov_cimguiname"] = "igIsItemEdited" defs["igIsItemEdited"][1]["ret"] = "bool" @@ -10222,7 +10239,7 @@ defs["igIsItemFocused"][1]["call_args"] = "()" defs["igIsItemFocused"][1]["cimguiname"] = "igIsItemFocused" defs["igIsItemFocused"][1]["defaults"] = {} defs["igIsItemFocused"][1]["funcname"] = "IsItemFocused" -defs["igIsItemFocused"][1]["location"] = "imgui:835" +defs["igIsItemFocused"][1]["location"] = "imgui:839" defs["igIsItemFocused"][1]["namespace"] = "ImGui" defs["igIsItemFocused"][1]["ov_cimguiname"] = "igIsItemFocused" defs["igIsItemFocused"][1]["ret"] = "bool" @@ -10242,7 +10259,7 @@ defs["igIsItemHovered"][1]["cimguiname"] = "igIsItemHovered" defs["igIsItemHovered"][1]["defaults"] = {} defs["igIsItemHovered"][1]["defaults"]["flags"] = "0" defs["igIsItemHovered"][1]["funcname"] = "IsItemHovered" -defs["igIsItemHovered"][1]["location"] = "imgui:833" +defs["igIsItemHovered"][1]["location"] = "imgui:837" defs["igIsItemHovered"][1]["namespace"] = "ImGui" defs["igIsItemHovered"][1]["ov_cimguiname"] = "igIsItemHovered" defs["igIsItemHovered"][1]["ret"] = "bool" @@ -10258,7 +10275,7 @@ defs["igIsItemToggledOpen"][1]["call_args"] = "()" defs["igIsItemToggledOpen"][1]["cimguiname"] = "igIsItemToggledOpen" defs["igIsItemToggledOpen"][1]["defaults"] = {} defs["igIsItemToggledOpen"][1]["funcname"] = "IsItemToggledOpen" -defs["igIsItemToggledOpen"][1]["location"] = "imgui:842" +defs["igIsItemToggledOpen"][1]["location"] = "imgui:846" defs["igIsItemToggledOpen"][1]["namespace"] = "ImGui" defs["igIsItemToggledOpen"][1]["ov_cimguiname"] = "igIsItemToggledOpen" defs["igIsItemToggledOpen"][1]["ret"] = "bool" @@ -10274,7 +10291,7 @@ defs["igIsItemVisible"][1]["call_args"] = "()" defs["igIsItemVisible"][1]["cimguiname"] = "igIsItemVisible" defs["igIsItemVisible"][1]["defaults"] = {} defs["igIsItemVisible"][1]["funcname"] = "IsItemVisible" -defs["igIsItemVisible"][1]["location"] = "imgui:837" +defs["igIsItemVisible"][1]["location"] = "imgui:841" defs["igIsItemVisible"][1]["namespace"] = "ImGui" defs["igIsItemVisible"][1]["ov_cimguiname"] = "igIsItemVisible" defs["igIsItemVisible"][1]["ret"] = "bool" @@ -10293,7 +10310,7 @@ defs["igIsKeyDown"][1]["call_args"] = "(user_key_index)" defs["igIsKeyDown"][1]["cimguiname"] = "igIsKeyDown" defs["igIsKeyDown"][1]["defaults"] = {} defs["igIsKeyDown"][1]["funcname"] = "IsKeyDown" -defs["igIsKeyDown"][1]["location"] = "imgui:885" +defs["igIsKeyDown"][1]["location"] = "imgui:888" defs["igIsKeyDown"][1]["namespace"] = "ImGui" defs["igIsKeyDown"][1]["ov_cimguiname"] = "igIsKeyDown" defs["igIsKeyDown"][1]["ret"] = "bool" @@ -10316,7 +10333,7 @@ defs["igIsKeyPressed"][1]["cimguiname"] = "igIsKeyPressed" defs["igIsKeyPressed"][1]["defaults"] = {} defs["igIsKeyPressed"][1]["defaults"]["repeat"] = "true" defs["igIsKeyPressed"][1]["funcname"] = "IsKeyPressed" -defs["igIsKeyPressed"][1]["location"] = "imgui:886" +defs["igIsKeyPressed"][1]["location"] = "imgui:889" defs["igIsKeyPressed"][1]["namespace"] = "ImGui" defs["igIsKeyPressed"][1]["ov_cimguiname"] = "igIsKeyPressed" defs["igIsKeyPressed"][1]["ret"] = "bool" @@ -10335,7 +10352,7 @@ defs["igIsKeyReleased"][1]["call_args"] = "(user_key_index)" defs["igIsKeyReleased"][1]["cimguiname"] = "igIsKeyReleased" defs["igIsKeyReleased"][1]["defaults"] = {} defs["igIsKeyReleased"][1]["funcname"] = "IsKeyReleased" -defs["igIsKeyReleased"][1]["location"] = "imgui:887" +defs["igIsKeyReleased"][1]["location"] = "imgui:890" defs["igIsKeyReleased"][1]["namespace"] = "ImGui" defs["igIsKeyReleased"][1]["ov_cimguiname"] = "igIsKeyReleased" defs["igIsKeyReleased"][1]["ret"] = "bool" @@ -10358,7 +10375,7 @@ defs["igIsMouseClicked"][1]["cimguiname"] = "igIsMouseClicked" defs["igIsMouseClicked"][1]["defaults"] = {} defs["igIsMouseClicked"][1]["defaults"]["repeat"] = "false" defs["igIsMouseClicked"][1]["funcname"] = "IsMouseClicked" -defs["igIsMouseClicked"][1]["location"] = "imgui:896" +defs["igIsMouseClicked"][1]["location"] = "imgui:899" defs["igIsMouseClicked"][1]["namespace"] = "ImGui" defs["igIsMouseClicked"][1]["ov_cimguiname"] = "igIsMouseClicked" defs["igIsMouseClicked"][1]["ret"] = "bool" @@ -10377,7 +10394,7 @@ defs["igIsMouseDoubleClicked"][1]["call_args"] = "(button)" defs["igIsMouseDoubleClicked"][1]["cimguiname"] = "igIsMouseDoubleClicked" defs["igIsMouseDoubleClicked"][1]["defaults"] = {} defs["igIsMouseDoubleClicked"][1]["funcname"] = "IsMouseDoubleClicked" -defs["igIsMouseDoubleClicked"][1]["location"] = "imgui:898" +defs["igIsMouseDoubleClicked"][1]["location"] = "imgui:901" defs["igIsMouseDoubleClicked"][1]["namespace"] = "ImGui" defs["igIsMouseDoubleClicked"][1]["ov_cimguiname"] = "igIsMouseDoubleClicked" defs["igIsMouseDoubleClicked"][1]["ret"] = "bool" @@ -10396,7 +10413,7 @@ defs["igIsMouseDown"][1]["call_args"] = "(button)" defs["igIsMouseDown"][1]["cimguiname"] = "igIsMouseDown" defs["igIsMouseDown"][1]["defaults"] = {} defs["igIsMouseDown"][1]["funcname"] = "IsMouseDown" -defs["igIsMouseDown"][1]["location"] = "imgui:895" +defs["igIsMouseDown"][1]["location"] = "imgui:898" defs["igIsMouseDown"][1]["namespace"] = "ImGui" defs["igIsMouseDown"][1]["ov_cimguiname"] = "igIsMouseDown" defs["igIsMouseDown"][1]["ret"] = "bool" @@ -10419,7 +10436,7 @@ defs["igIsMouseDragging"][1]["cimguiname"] = "igIsMouseDragging" defs["igIsMouseDragging"][1]["defaults"] = {} defs["igIsMouseDragging"][1]["defaults"]["lock_threshold"] = "-1.0f" defs["igIsMouseDragging"][1]["funcname"] = "IsMouseDragging" -defs["igIsMouseDragging"][1]["location"] = "imgui:904" +defs["igIsMouseDragging"][1]["location"] = "imgui:908" defs["igIsMouseDragging"][1]["namespace"] = "ImGui" defs["igIsMouseDragging"][1]["ov_cimguiname"] = "igIsMouseDragging" defs["igIsMouseDragging"][1]["ret"] = "bool" @@ -10445,7 +10462,7 @@ defs["igIsMouseHoveringRect"][1]["cimguiname"] = "igIsMouseHoveringRect" defs["igIsMouseHoveringRect"][1]["defaults"] = {} defs["igIsMouseHoveringRect"][1]["defaults"]["clip"] = "true" defs["igIsMouseHoveringRect"][1]["funcname"] = "IsMouseHoveringRect" -defs["igIsMouseHoveringRect"][1]["location"] = "imgui:899" +defs["igIsMouseHoveringRect"][1]["location"] = "imgui:903" defs["igIsMouseHoveringRect"][1]["namespace"] = "ImGui" defs["igIsMouseHoveringRect"][1]["ov_cimguiname"] = "igIsMouseHoveringRect" defs["igIsMouseHoveringRect"][1]["ret"] = "bool" @@ -10465,7 +10482,7 @@ defs["igIsMousePosValid"][1]["cimguiname"] = "igIsMousePosValid" defs["igIsMousePosValid"][1]["defaults"] = {} defs["igIsMousePosValid"][1]["defaults"]["mouse_pos"] = "NULL" defs["igIsMousePosValid"][1]["funcname"] = "IsMousePosValid" -defs["igIsMousePosValid"][1]["location"] = "imgui:900" +defs["igIsMousePosValid"][1]["location"] = "imgui:904" defs["igIsMousePosValid"][1]["namespace"] = "ImGui" defs["igIsMousePosValid"][1]["ov_cimguiname"] = "igIsMousePosValid" defs["igIsMousePosValid"][1]["ret"] = "bool" @@ -10484,7 +10501,7 @@ defs["igIsMouseReleased"][1]["call_args"] = "(button)" defs["igIsMouseReleased"][1]["cimguiname"] = "igIsMouseReleased" defs["igIsMouseReleased"][1]["defaults"] = {} defs["igIsMouseReleased"][1]["funcname"] = "IsMouseReleased" -defs["igIsMouseReleased"][1]["location"] = "imgui:897" +defs["igIsMouseReleased"][1]["location"] = "imgui:900" defs["igIsMouseReleased"][1]["namespace"] = "ImGui" defs["igIsMouseReleased"][1]["ov_cimguiname"] = "igIsMouseReleased" defs["igIsMouseReleased"][1]["ret"] = "bool" @@ -10507,7 +10524,7 @@ defs["igIsPopupOpen"][1]["cimguiname"] = "igIsPopupOpen" defs["igIsPopupOpen"][1]["defaults"] = {} defs["igIsPopupOpen"][1]["defaults"]["flags"] = "0" defs["igIsPopupOpen"][1]["funcname"] = "IsPopupOpen" -defs["igIsPopupOpen"][1]["location"] = "imgui:708" +defs["igIsPopupOpen"][1]["location"] = "imgui:711" defs["igIsPopupOpen"][1]["namespace"] = "ImGui" defs["igIsPopupOpen"][1]["ov_cimguiname"] = "igIsPopupOpen" defs["igIsPopupOpen"][1]["ret"] = "bool" @@ -10526,7 +10543,7 @@ defs["igIsRectVisible"][1]["call_args"] = "(size)" defs["igIsRectVisible"][1]["cimguiname"] = "igIsRectVisible" defs["igIsRectVisible"][1]["defaults"] = {} defs["igIsRectVisible"][1]["funcname"] = "IsRectVisible" -defs["igIsRectVisible"][1]["location"] = "imgui:858" +defs["igIsRectVisible"][1]["location"] = "imgui:862" defs["igIsRectVisible"][1]["namespace"] = "ImGui" defs["igIsRectVisible"][1]["ov_cimguiname"] = "igIsRectVisibleNil" defs["igIsRectVisible"][1]["ret"] = "bool" @@ -10546,7 +10563,7 @@ defs["igIsRectVisible"][2]["call_args"] = "(rect_min,rect_max)" defs["igIsRectVisible"][2]["cimguiname"] = "igIsRectVisible" defs["igIsRectVisible"][2]["defaults"] = {} defs["igIsRectVisible"][2]["funcname"] = "IsRectVisible" -defs["igIsRectVisible"][2]["location"] = "imgui:859" +defs["igIsRectVisible"][2]["location"] = "imgui:863" defs["igIsRectVisible"][2]["namespace"] = "ImGui" defs["igIsRectVisible"][2]["ov_cimguiname"] = "igIsRectVisibleVec2" defs["igIsRectVisible"][2]["ret"] = "bool" @@ -10563,7 +10580,7 @@ defs["igIsWindowAppearing"][1]["call_args"] = "()" defs["igIsWindowAppearing"][1]["cimguiname"] = "igIsWindowAppearing" defs["igIsWindowAppearing"][1]["defaults"] = {} defs["igIsWindowAppearing"][1]["funcname"] = "IsWindowAppearing" -defs["igIsWindowAppearing"][1]["location"] = "imgui:348" +defs["igIsWindowAppearing"][1]["location"] = "imgui:352" defs["igIsWindowAppearing"][1]["namespace"] = "ImGui" defs["igIsWindowAppearing"][1]["ov_cimguiname"] = "igIsWindowAppearing" defs["igIsWindowAppearing"][1]["ret"] = "bool" @@ -10579,7 +10596,7 @@ defs["igIsWindowCollapsed"][1]["call_args"] = "()" defs["igIsWindowCollapsed"][1]["cimguiname"] = "igIsWindowCollapsed" defs["igIsWindowCollapsed"][1]["defaults"] = {} defs["igIsWindowCollapsed"][1]["funcname"] = "IsWindowCollapsed" -defs["igIsWindowCollapsed"][1]["location"] = "imgui:349" +defs["igIsWindowCollapsed"][1]["location"] = "imgui:353" defs["igIsWindowCollapsed"][1]["namespace"] = "ImGui" defs["igIsWindowCollapsed"][1]["ov_cimguiname"] = "igIsWindowCollapsed" defs["igIsWindowCollapsed"][1]["ret"] = "bool" @@ -10599,7 +10616,7 @@ defs["igIsWindowFocused"][1]["cimguiname"] = "igIsWindowFocused" defs["igIsWindowFocused"][1]["defaults"] = {} defs["igIsWindowFocused"][1]["defaults"]["flags"] = "0" defs["igIsWindowFocused"][1]["funcname"] = "IsWindowFocused" -defs["igIsWindowFocused"][1]["location"] = "imgui:350" +defs["igIsWindowFocused"][1]["location"] = "imgui:354" defs["igIsWindowFocused"][1]["namespace"] = "ImGui" defs["igIsWindowFocused"][1]["ov_cimguiname"] = "igIsWindowFocused" defs["igIsWindowFocused"][1]["ret"] = "bool" @@ -10619,7 +10636,7 @@ defs["igIsWindowHovered"][1]["cimguiname"] = "igIsWindowHovered" defs["igIsWindowHovered"][1]["defaults"] = {} defs["igIsWindowHovered"][1]["defaults"]["flags"] = "0" defs["igIsWindowHovered"][1]["funcname"] = "IsWindowHovered" -defs["igIsWindowHovered"][1]["location"] = "imgui:351" +defs["igIsWindowHovered"][1]["location"] = "imgui:355" defs["igIsWindowHovered"][1]["namespace"] = "ImGui" defs["igIsWindowHovered"][1]["ov_cimguiname"] = "igIsWindowHovered" defs["igIsWindowHovered"][1]["ret"] = "bool" @@ -10645,7 +10662,7 @@ defs["igLabelText"][1]["cimguiname"] = "igLabelText" defs["igLabelText"][1]["defaults"] = {} defs["igLabelText"][1]["funcname"] = "LabelText" defs["igLabelText"][1]["isvararg"] = "...)" -defs["igLabelText"][1]["location"] = "imgui:491" +defs["igLabelText"][1]["location"] = "imgui:494" defs["igLabelText"][1]["namespace"] = "ImGui" defs["igLabelText"][1]["ov_cimguiname"] = "igLabelText" defs["igLabelText"][1]["ret"] = "void" @@ -10670,7 +10687,7 @@ defs["igLabelTextV"][1]["call_args"] = "(label,fmt,args)" defs["igLabelTextV"][1]["cimguiname"] = "igLabelTextV" defs["igLabelTextV"][1]["defaults"] = {} defs["igLabelTextV"][1]["funcname"] = "LabelTextV" -defs["igLabelTextV"][1]["location"] = "imgui:492" +defs["igLabelTextV"][1]["location"] = "imgui:495" defs["igLabelTextV"][1]["namespace"] = "ImGui" defs["igLabelTextV"][1]["ov_cimguiname"] = "igLabelTextV" defs["igLabelTextV"][1]["ret"] = "void" @@ -10702,7 +10719,7 @@ defs["igListBox"][1]["cimguiname"] = "igListBox" defs["igListBox"][1]["defaults"] = {} defs["igListBox"][1]["defaults"]["height_in_items"] = "-1" defs["igListBox"][1]["funcname"] = "ListBox" -defs["igListBox"][1]["location"] = "imgui:629" +defs["igListBox"][1]["location"] = "imgui:632" defs["igListBox"][1]["namespace"] = "ImGui" defs["igListBox"][1]["ov_cimguiname"] = "igListBoxStr_arr" defs["igListBox"][1]["ret"] = "bool" @@ -10737,7 +10754,7 @@ defs["igListBox"][2]["cimguiname"] = "igListBox" defs["igListBox"][2]["defaults"] = {} defs["igListBox"][2]["defaults"]["height_in_items"] = "-1" defs["igListBox"][2]["funcname"] = "ListBox" -defs["igListBox"][2]["location"] = "imgui:630" +defs["igListBox"][2]["location"] = "imgui:633" defs["igListBox"][2]["namespace"] = "ImGui" defs["igListBox"][2]["ov_cimguiname"] = "igListBoxFnBoolPtr" defs["igListBox"][2]["ret"] = "bool" @@ -10757,7 +10774,7 @@ defs["igLoadIniSettingsFromDisk"][1]["call_args"] = "(ini_filename)" defs["igLoadIniSettingsFromDisk"][1]["cimguiname"] = "igLoadIniSettingsFromDisk" defs["igLoadIniSettingsFromDisk"][1]["defaults"] = {} defs["igLoadIniSettingsFromDisk"][1]["funcname"] = "LoadIniSettingsFromDisk" -defs["igLoadIniSettingsFromDisk"][1]["location"] = "imgui:920" +defs["igLoadIniSettingsFromDisk"][1]["location"] = "imgui:924" defs["igLoadIniSettingsFromDisk"][1]["namespace"] = "ImGui" defs["igLoadIniSettingsFromDisk"][1]["ov_cimguiname"] = "igLoadIniSettingsFromDisk" defs["igLoadIniSettingsFromDisk"][1]["ret"] = "void" @@ -10780,7 +10797,7 @@ defs["igLoadIniSettingsFromMemory"][1]["cimguiname"] = "igLoadIniSettingsFromMem defs["igLoadIniSettingsFromMemory"][1]["defaults"] = {} defs["igLoadIniSettingsFromMemory"][1]["defaults"]["ini_size"] = "0" defs["igLoadIniSettingsFromMemory"][1]["funcname"] = "LoadIniSettingsFromMemory" -defs["igLoadIniSettingsFromMemory"][1]["location"] = "imgui:921" +defs["igLoadIniSettingsFromMemory"][1]["location"] = "imgui:925" defs["igLoadIniSettingsFromMemory"][1]["namespace"] = "ImGui" defs["igLoadIniSettingsFromMemory"][1]["ov_cimguiname"] = "igLoadIniSettingsFromMemory" defs["igLoadIniSettingsFromMemory"][1]["ret"] = "void" @@ -10796,7 +10813,7 @@ defs["igLogButtons"][1]["call_args"] = "()" defs["igLogButtons"][1]["cimguiname"] = "igLogButtons" defs["igLogButtons"][1]["defaults"] = {} defs["igLogButtons"][1]["funcname"] = "LogButtons" -defs["igLogButtons"][1]["location"] = "imgui:797" +defs["igLogButtons"][1]["location"] = "imgui:800" defs["igLogButtons"][1]["namespace"] = "ImGui" defs["igLogButtons"][1]["ov_cimguiname"] = "igLogButtons" defs["igLogButtons"][1]["ret"] = "void" @@ -10812,7 +10829,7 @@ defs["igLogFinish"][1]["call_args"] = "()" defs["igLogFinish"][1]["cimguiname"] = "igLogFinish" defs["igLogFinish"][1]["defaults"] = {} defs["igLogFinish"][1]["funcname"] = "LogFinish" -defs["igLogFinish"][1]["location"] = "imgui:796" +defs["igLogFinish"][1]["location"] = "imgui:799" defs["igLogFinish"][1]["namespace"] = "ImGui" defs["igLogFinish"][1]["ov_cimguiname"] = "igLogFinish" defs["igLogFinish"][1]["ret"] = "void" @@ -10835,7 +10852,7 @@ defs["igLogText"][1]["cimguiname"] = "igLogText" defs["igLogText"][1]["defaults"] = {} defs["igLogText"][1]["funcname"] = "LogText" defs["igLogText"][1]["isvararg"] = "...)" -defs["igLogText"][1]["location"] = "imgui:798" +defs["igLogText"][1]["location"] = "imgui:801" defs["igLogText"][1]["manual"] = true defs["igLogText"][1]["namespace"] = "ImGui" defs["igLogText"][1]["ov_cimguiname"] = "igLogText" @@ -10858,7 +10875,7 @@ defs["igLogTextV"][1]["call_args"] = "(fmt,args)" defs["igLogTextV"][1]["cimguiname"] = "igLogTextV" defs["igLogTextV"][1]["defaults"] = {} defs["igLogTextV"][1]["funcname"] = "LogTextV" -defs["igLogTextV"][1]["location"] = "imgui:799" +defs["igLogTextV"][1]["location"] = "imgui:802" defs["igLogTextV"][1]["namespace"] = "ImGui" defs["igLogTextV"][1]["ov_cimguiname"] = "igLogTextV" defs["igLogTextV"][1]["ret"] = "void" @@ -10878,7 +10895,7 @@ defs["igLogToClipboard"][1]["cimguiname"] = "igLogToClipboard" defs["igLogToClipboard"][1]["defaults"] = {} defs["igLogToClipboard"][1]["defaults"]["auto_open_depth"] = "-1" defs["igLogToClipboard"][1]["funcname"] = "LogToClipboard" -defs["igLogToClipboard"][1]["location"] = "imgui:795" +defs["igLogToClipboard"][1]["location"] = "imgui:798" defs["igLogToClipboard"][1]["namespace"] = "ImGui" defs["igLogToClipboard"][1]["ov_cimguiname"] = "igLogToClipboard" defs["igLogToClipboard"][1]["ret"] = "void" @@ -10902,7 +10919,7 @@ defs["igLogToFile"][1]["defaults"] = {} defs["igLogToFile"][1]["defaults"]["auto_open_depth"] = "-1" defs["igLogToFile"][1]["defaults"]["filename"] = "NULL" defs["igLogToFile"][1]["funcname"] = "LogToFile" -defs["igLogToFile"][1]["location"] = "imgui:794" +defs["igLogToFile"][1]["location"] = "imgui:797" defs["igLogToFile"][1]["namespace"] = "ImGui" defs["igLogToFile"][1]["ov_cimguiname"] = "igLogToFile" defs["igLogToFile"][1]["ret"] = "void" @@ -10922,7 +10939,7 @@ defs["igLogToTTY"][1]["cimguiname"] = "igLogToTTY" defs["igLogToTTY"][1]["defaults"] = {} defs["igLogToTTY"][1]["defaults"]["auto_open_depth"] = "-1" defs["igLogToTTY"][1]["funcname"] = "LogToTTY" -defs["igLogToTTY"][1]["location"] = "imgui:793" +defs["igLogToTTY"][1]["location"] = "imgui:796" defs["igLogToTTY"][1]["namespace"] = "ImGui" defs["igLogToTTY"][1]["ov_cimguiname"] = "igLogToTTY" defs["igLogToTTY"][1]["ret"] = "void" @@ -10941,7 +10958,7 @@ defs["igMemAlloc"][1]["call_args"] = "(size)" defs["igMemAlloc"][1]["cimguiname"] = "igMemAlloc" defs["igMemAlloc"][1]["defaults"] = {} defs["igMemAlloc"][1]["funcname"] = "MemAlloc" -defs["igMemAlloc"][1]["location"] = "imgui:935" +defs["igMemAlloc"][1]["location"] = "imgui:939" defs["igMemAlloc"][1]["namespace"] = "ImGui" defs["igMemAlloc"][1]["ov_cimguiname"] = "igMemAlloc" defs["igMemAlloc"][1]["ret"] = "void*" @@ -10960,7 +10977,7 @@ defs["igMemFree"][1]["call_args"] = "(ptr)" defs["igMemFree"][1]["cimguiname"] = "igMemFree" defs["igMemFree"][1]["defaults"] = {} defs["igMemFree"][1]["funcname"] = "MemFree" -defs["igMemFree"][1]["location"] = "imgui:936" +defs["igMemFree"][1]["location"] = "imgui:940" defs["igMemFree"][1]["namespace"] = "ImGui" defs["igMemFree"][1]["ov_cimguiname"] = "igMemFree" defs["igMemFree"][1]["ret"] = "void" @@ -10991,7 +11008,7 @@ defs["igMenuItem"][1]["defaults"]["enabled"] = "true" defs["igMenuItem"][1]["defaults"]["selected"] = "false" defs["igMenuItem"][1]["defaults"]["shortcut"] = "NULL" defs["igMenuItem"][1]["funcname"] = "MenuItem" -defs["igMenuItem"][1]["location"] = "imgui:657" +defs["igMenuItem"][1]["location"] = "imgui:660" defs["igMenuItem"][1]["namespace"] = "ImGui" defs["igMenuItem"][1]["ov_cimguiname"] = "igMenuItemBool" defs["igMenuItem"][1]["ret"] = "bool" @@ -11018,7 +11035,7 @@ defs["igMenuItem"][2]["cimguiname"] = "igMenuItem" defs["igMenuItem"][2]["defaults"] = {} defs["igMenuItem"][2]["defaults"]["enabled"] = "true" defs["igMenuItem"][2]["funcname"] = "MenuItem" -defs["igMenuItem"][2]["location"] = "imgui:658" +defs["igMenuItem"][2]["location"] = "imgui:661" defs["igMenuItem"][2]["namespace"] = "ImGui" defs["igMenuItem"][2]["ov_cimguiname"] = "igMenuItemBoolPtr" defs["igMenuItem"][2]["ret"] = "bool" @@ -11035,7 +11052,7 @@ defs["igNewFrame"][1]["call_args"] = "()" defs["igNewFrame"][1]["cimguiname"] = "igNewFrame" defs["igNewFrame"][1]["defaults"] = {} defs["igNewFrame"][1]["funcname"] = "NewFrame" -defs["igNewFrame"][1]["location"] = "imgui:299" +defs["igNewFrame"][1]["location"] = "imgui:302" defs["igNewFrame"][1]["namespace"] = "ImGui" defs["igNewFrame"][1]["ov_cimguiname"] = "igNewFrame" defs["igNewFrame"][1]["ret"] = "void" @@ -11051,7 +11068,7 @@ defs["igNewLine"][1]["call_args"] = "()" defs["igNewLine"][1]["cimguiname"] = "igNewLine" defs["igNewLine"][1]["defaults"] = {} defs["igNewLine"][1]["funcname"] = "NewLine" -defs["igNewLine"][1]["location"] = "imgui:439" +defs["igNewLine"][1]["location"] = "imgui:442" defs["igNewLine"][1]["namespace"] = "ImGui" defs["igNewLine"][1]["ov_cimguiname"] = "igNewLine" defs["igNewLine"][1]["ret"] = "void" @@ -11067,7 +11084,7 @@ defs["igNextColumn"][1]["call_args"] = "()" defs["igNextColumn"][1]["cimguiname"] = "igNextColumn" defs["igNextColumn"][1]["defaults"] = {} defs["igNextColumn"][1]["funcname"] = "NextColumn" -defs["igNextColumn"][1]["location"] = "imgui:775" +defs["igNextColumn"][1]["location"] = "imgui:778" defs["igNextColumn"][1]["namespace"] = "ImGui" defs["igNextColumn"][1]["ov_cimguiname"] = "igNextColumn" defs["igNextColumn"][1]["ret"] = "void" @@ -11090,7 +11107,7 @@ defs["igOpenPopup"][1]["cimguiname"] = "igOpenPopup" defs["igOpenPopup"][1]["defaults"] = {} defs["igOpenPopup"][1]["defaults"]["popup_flags"] = "0" defs["igOpenPopup"][1]["funcname"] = "OpenPopup" -defs["igOpenPopup"][1]["location"] = "imgui:690" +defs["igOpenPopup"][1]["location"] = "imgui:693" defs["igOpenPopup"][1]["namespace"] = "ImGui" defs["igOpenPopup"][1]["ov_cimguiname"] = "igOpenPopupStr" defs["igOpenPopup"][1]["ret"] = "void" @@ -11111,7 +11128,7 @@ defs["igOpenPopup"][2]["cimguiname"] = "igOpenPopup" defs["igOpenPopup"][2]["defaults"] = {} defs["igOpenPopup"][2]["defaults"]["popup_flags"] = "0" defs["igOpenPopup"][2]["funcname"] = "OpenPopup" -defs["igOpenPopup"][2]["location"] = "imgui:691" +defs["igOpenPopup"][2]["location"] = "imgui:694" defs["igOpenPopup"][2]["namespace"] = "ImGui" defs["igOpenPopup"][2]["ov_cimguiname"] = "igOpenPopupID" defs["igOpenPopup"][2]["ret"] = "void" @@ -11136,7 +11153,7 @@ defs["igOpenPopupOnItemClick"][1]["defaults"] = {} defs["igOpenPopupOnItemClick"][1]["defaults"]["popup_flags"] = "1" defs["igOpenPopupOnItemClick"][1]["defaults"]["str_id"] = "NULL" defs["igOpenPopupOnItemClick"][1]["funcname"] = "OpenPopupOnItemClick" -defs["igOpenPopupOnItemClick"][1]["location"] = "imgui:692" +defs["igOpenPopupOnItemClick"][1]["location"] = "imgui:695" defs["igOpenPopupOnItemClick"][1]["namespace"] = "ImGui" defs["igOpenPopupOnItemClick"][1]["ov_cimguiname"] = "igOpenPopupOnItemClick" defs["igOpenPopupOnItemClick"][1]["ret"] = "void" @@ -11185,7 +11202,7 @@ defs["igPlotHistogram"][1]["defaults"]["scale_min"] = "FLT_MAX" defs["igPlotHistogram"][1]["defaults"]["stride"] = "sizeof(float)" defs["igPlotHistogram"][1]["defaults"]["values_offset"] = "0" defs["igPlotHistogram"][1]["funcname"] = "PlotHistogram" -defs["igPlotHistogram"][1]["location"] = "imgui:636" +defs["igPlotHistogram"][1]["location"] = "imgui:639" defs["igPlotHistogram"][1]["namespace"] = "ImGui" defs["igPlotHistogram"][1]["ov_cimguiname"] = "igPlotHistogramFloatPtr" defs["igPlotHistogram"][1]["ret"] = "void" @@ -11233,7 +11250,7 @@ defs["igPlotHistogram"][2]["defaults"]["scale_max"] = "FLT_MAX" defs["igPlotHistogram"][2]["defaults"]["scale_min"] = "FLT_MAX" defs["igPlotHistogram"][2]["defaults"]["values_offset"] = "0" defs["igPlotHistogram"][2]["funcname"] = "PlotHistogram" -defs["igPlotHistogram"][2]["location"] = "imgui:637" +defs["igPlotHistogram"][2]["location"] = "imgui:640" defs["igPlotHistogram"][2]["namespace"] = "ImGui" defs["igPlotHistogram"][2]["ov_cimguiname"] = "igPlotHistogramFnFloatPtr" defs["igPlotHistogram"][2]["ret"] = "void" @@ -11283,7 +11300,7 @@ defs["igPlotLines"][1]["defaults"]["scale_min"] = "FLT_MAX" defs["igPlotLines"][1]["defaults"]["stride"] = "sizeof(float)" defs["igPlotLines"][1]["defaults"]["values_offset"] = "0" defs["igPlotLines"][1]["funcname"] = "PlotLines" -defs["igPlotLines"][1]["location"] = "imgui:634" +defs["igPlotLines"][1]["location"] = "imgui:637" defs["igPlotLines"][1]["namespace"] = "ImGui" defs["igPlotLines"][1]["ov_cimguiname"] = "igPlotLinesFloatPtr" defs["igPlotLines"][1]["ret"] = "void" @@ -11331,7 +11348,7 @@ defs["igPlotLines"][2]["defaults"]["scale_max"] = "FLT_MAX" defs["igPlotLines"][2]["defaults"]["scale_min"] = "FLT_MAX" defs["igPlotLines"][2]["defaults"]["values_offset"] = "0" defs["igPlotLines"][2]["funcname"] = "PlotLines" -defs["igPlotLines"][2]["location"] = "imgui:635" +defs["igPlotLines"][2]["location"] = "imgui:638" defs["igPlotLines"][2]["namespace"] = "ImGui" defs["igPlotLines"][2]["ov_cimguiname"] = "igPlotLinesFnFloatPtr" defs["igPlotLines"][2]["ret"] = "void" @@ -11348,7 +11365,7 @@ defs["igPopAllowKeyboardFocus"][1]["call_args"] = "()" defs["igPopAllowKeyboardFocus"][1]["cimguiname"] = "igPopAllowKeyboardFocus" defs["igPopAllowKeyboardFocus"][1]["defaults"] = {} defs["igPopAllowKeyboardFocus"][1]["funcname"] = "PopAllowKeyboardFocus" -defs["igPopAllowKeyboardFocus"][1]["location"] = "imgui:408" +defs["igPopAllowKeyboardFocus"][1]["location"] = "imgui:411" defs["igPopAllowKeyboardFocus"][1]["namespace"] = "ImGui" defs["igPopAllowKeyboardFocus"][1]["ov_cimguiname"] = "igPopAllowKeyboardFocus" defs["igPopAllowKeyboardFocus"][1]["ret"] = "void" @@ -11364,7 +11381,7 @@ defs["igPopButtonRepeat"][1]["call_args"] = "()" defs["igPopButtonRepeat"][1]["cimguiname"] = "igPopButtonRepeat" defs["igPopButtonRepeat"][1]["defaults"] = {} defs["igPopButtonRepeat"][1]["funcname"] = "PopButtonRepeat" -defs["igPopButtonRepeat"][1]["location"] = "imgui:410" +defs["igPopButtonRepeat"][1]["location"] = "imgui:413" defs["igPopButtonRepeat"][1]["namespace"] = "ImGui" defs["igPopButtonRepeat"][1]["ov_cimguiname"] = "igPopButtonRepeat" defs["igPopButtonRepeat"][1]["ret"] = "void" @@ -11380,7 +11397,7 @@ defs["igPopClipRect"][1]["call_args"] = "()" defs["igPopClipRect"][1]["cimguiname"] = "igPopClipRect" defs["igPopClipRect"][1]["defaults"] = {} defs["igPopClipRect"][1]["funcname"] = "PopClipRect" -defs["igPopClipRect"][1]["location"] = "imgui:823" +defs["igPopClipRect"][1]["location"] = "imgui:827" defs["igPopClipRect"][1]["namespace"] = "ImGui" defs["igPopClipRect"][1]["ov_cimguiname"] = "igPopClipRect" defs["igPopClipRect"][1]["ret"] = "void" @@ -11396,7 +11413,7 @@ defs["igPopFont"][1]["call_args"] = "()" defs["igPopFont"][1]["cimguiname"] = "igPopFont" defs["igPopFont"][1]["defaults"] = {} defs["igPopFont"][1]["funcname"] = "PopFont" -defs["igPopFont"][1]["location"] = "imgui:400" +defs["igPopFont"][1]["location"] = "imgui:403" defs["igPopFont"][1]["namespace"] = "ImGui" defs["igPopFont"][1]["ov_cimguiname"] = "igPopFont" defs["igPopFont"][1]["ret"] = "void" @@ -11412,7 +11429,7 @@ defs["igPopID"][1]["call_args"] = "()" defs["igPopID"][1]["cimguiname"] = "igPopID" defs["igPopID"][1]["defaults"] = {} defs["igPopID"][1]["funcname"] = "PopID" -defs["igPopID"][1]["location"] = "imgui:476" +defs["igPopID"][1]["location"] = "imgui:479" defs["igPopID"][1]["namespace"] = "ImGui" defs["igPopID"][1]["ov_cimguiname"] = "igPopID" defs["igPopID"][1]["ret"] = "void" @@ -11428,7 +11445,7 @@ defs["igPopItemWidth"][1]["call_args"] = "()" defs["igPopItemWidth"][1]["cimguiname"] = "igPopItemWidth" defs["igPopItemWidth"][1]["defaults"] = {} defs["igPopItemWidth"][1]["funcname"] = "PopItemWidth" -defs["igPopItemWidth"][1]["location"] = "imgui:414" +defs["igPopItemWidth"][1]["location"] = "imgui:417" defs["igPopItemWidth"][1]["namespace"] = "ImGui" defs["igPopItemWidth"][1]["ov_cimguiname"] = "igPopItemWidth" defs["igPopItemWidth"][1]["ret"] = "void" @@ -11448,7 +11465,7 @@ defs["igPopStyleColor"][1]["cimguiname"] = "igPopStyleColor" defs["igPopStyleColor"][1]["defaults"] = {} defs["igPopStyleColor"][1]["defaults"]["count"] = "1" defs["igPopStyleColor"][1]["funcname"] = "PopStyleColor" -defs["igPopStyleColor"][1]["location"] = "imgui:403" +defs["igPopStyleColor"][1]["location"] = "imgui:406" defs["igPopStyleColor"][1]["namespace"] = "ImGui" defs["igPopStyleColor"][1]["ov_cimguiname"] = "igPopStyleColor" defs["igPopStyleColor"][1]["ret"] = "void" @@ -11468,7 +11485,7 @@ defs["igPopStyleVar"][1]["cimguiname"] = "igPopStyleVar" defs["igPopStyleVar"][1]["defaults"] = {} defs["igPopStyleVar"][1]["defaults"]["count"] = "1" defs["igPopStyleVar"][1]["funcname"] = "PopStyleVar" -defs["igPopStyleVar"][1]["location"] = "imgui:406" +defs["igPopStyleVar"][1]["location"] = "imgui:409" defs["igPopStyleVar"][1]["namespace"] = "ImGui" defs["igPopStyleVar"][1]["ov_cimguiname"] = "igPopStyleVar" defs["igPopStyleVar"][1]["ret"] = "void" @@ -11484,7 +11501,7 @@ defs["igPopTextWrapPos"][1]["call_args"] = "()" defs["igPopTextWrapPos"][1]["cimguiname"] = "igPopTextWrapPos" defs["igPopTextWrapPos"][1]["defaults"] = {} defs["igPopTextWrapPos"][1]["funcname"] = "PopTextWrapPos" -defs["igPopTextWrapPos"][1]["location"] = "imgui:418" +defs["igPopTextWrapPos"][1]["location"] = "imgui:421" defs["igPopTextWrapPos"][1]["namespace"] = "ImGui" defs["igPopTextWrapPos"][1]["ov_cimguiname"] = "igPopTextWrapPos" defs["igPopTextWrapPos"][1]["ret"] = "void" @@ -11511,7 +11528,7 @@ defs["igProgressBar"][1]["defaults"] = {} defs["igProgressBar"][1]["defaults"]["overlay"] = "NULL" defs["igProgressBar"][1]["defaults"]["size_arg"] = "ImVec2(-FLT_MIN,0)" defs["igProgressBar"][1]["funcname"] = "ProgressBar" -defs["igProgressBar"][1]["location"] = "imgui:510" +defs["igProgressBar"][1]["location"] = "imgui:513" defs["igProgressBar"][1]["namespace"] = "ImGui" defs["igProgressBar"][1]["ov_cimguiname"] = "igProgressBar" defs["igProgressBar"][1]["ret"] = "void" @@ -11530,7 +11547,7 @@ defs["igPushAllowKeyboardFocus"][1]["call_args"] = "(allow_keyboard_focus)" defs["igPushAllowKeyboardFocus"][1]["cimguiname"] = "igPushAllowKeyboardFocus" defs["igPushAllowKeyboardFocus"][1]["defaults"] = {} defs["igPushAllowKeyboardFocus"][1]["funcname"] = "PushAllowKeyboardFocus" -defs["igPushAllowKeyboardFocus"][1]["location"] = "imgui:407" +defs["igPushAllowKeyboardFocus"][1]["location"] = "imgui:410" defs["igPushAllowKeyboardFocus"][1]["namespace"] = "ImGui" defs["igPushAllowKeyboardFocus"][1]["ov_cimguiname"] = "igPushAllowKeyboardFocus" defs["igPushAllowKeyboardFocus"][1]["ret"] = "void" @@ -11549,7 +11566,7 @@ defs["igPushButtonRepeat"][1]["call_args"] = "(repeat)" defs["igPushButtonRepeat"][1]["cimguiname"] = "igPushButtonRepeat" defs["igPushButtonRepeat"][1]["defaults"] = {} defs["igPushButtonRepeat"][1]["funcname"] = "PushButtonRepeat" -defs["igPushButtonRepeat"][1]["location"] = "imgui:409" +defs["igPushButtonRepeat"][1]["location"] = "imgui:412" defs["igPushButtonRepeat"][1]["namespace"] = "ImGui" defs["igPushButtonRepeat"][1]["ov_cimguiname"] = "igPushButtonRepeat" defs["igPushButtonRepeat"][1]["ret"] = "void" @@ -11574,7 +11591,7 @@ defs["igPushClipRect"][1]["call_args"] = "(clip_rect_min,clip_rect_max,intersect defs["igPushClipRect"][1]["cimguiname"] = "igPushClipRect" defs["igPushClipRect"][1]["defaults"] = {} defs["igPushClipRect"][1]["funcname"] = "PushClipRect" -defs["igPushClipRect"][1]["location"] = "imgui:822" +defs["igPushClipRect"][1]["location"] = "imgui:826" defs["igPushClipRect"][1]["namespace"] = "ImGui" defs["igPushClipRect"][1]["ov_cimguiname"] = "igPushClipRect" defs["igPushClipRect"][1]["ret"] = "void" @@ -11593,7 +11610,7 @@ defs["igPushFont"][1]["call_args"] = "(font)" defs["igPushFont"][1]["cimguiname"] = "igPushFont" defs["igPushFont"][1]["defaults"] = {} defs["igPushFont"][1]["funcname"] = "PushFont" -defs["igPushFont"][1]["location"] = "imgui:399" +defs["igPushFont"][1]["location"] = "imgui:402" defs["igPushFont"][1]["namespace"] = "ImGui" defs["igPushFont"][1]["ov_cimguiname"] = "igPushFont" defs["igPushFont"][1]["ret"] = "void" @@ -11612,7 +11629,7 @@ defs["igPushID"][1]["call_args"] = "(str_id)" defs["igPushID"][1]["cimguiname"] = "igPushID" defs["igPushID"][1]["defaults"] = {} defs["igPushID"][1]["funcname"] = "PushID" -defs["igPushID"][1]["location"] = "imgui:472" +defs["igPushID"][1]["location"] = "imgui:475" defs["igPushID"][1]["namespace"] = "ImGui" defs["igPushID"][1]["ov_cimguiname"] = "igPushIDStr" defs["igPushID"][1]["ret"] = "void" @@ -11632,7 +11649,7 @@ defs["igPushID"][2]["call_args"] = "(str_id_begin,str_id_end)" defs["igPushID"][2]["cimguiname"] = "igPushID" defs["igPushID"][2]["defaults"] = {} defs["igPushID"][2]["funcname"] = "PushID" -defs["igPushID"][2]["location"] = "imgui:473" +defs["igPushID"][2]["location"] = "imgui:476" defs["igPushID"][2]["namespace"] = "ImGui" defs["igPushID"][2]["ov_cimguiname"] = "igPushIDStrStr" defs["igPushID"][2]["ret"] = "void" @@ -11649,7 +11666,7 @@ defs["igPushID"][3]["call_args"] = "(ptr_id)" defs["igPushID"][3]["cimguiname"] = "igPushID" defs["igPushID"][3]["defaults"] = {} defs["igPushID"][3]["funcname"] = "PushID" -defs["igPushID"][3]["location"] = "imgui:474" +defs["igPushID"][3]["location"] = "imgui:477" defs["igPushID"][3]["namespace"] = "ImGui" defs["igPushID"][3]["ov_cimguiname"] = "igPushIDPtr" defs["igPushID"][3]["ret"] = "void" @@ -11666,7 +11683,7 @@ defs["igPushID"][4]["call_args"] = "(int_id)" defs["igPushID"][4]["cimguiname"] = "igPushID" defs["igPushID"][4]["defaults"] = {} defs["igPushID"][4]["funcname"] = "PushID" -defs["igPushID"][4]["location"] = "imgui:475" +defs["igPushID"][4]["location"] = "imgui:478" defs["igPushID"][4]["namespace"] = "ImGui" defs["igPushID"][4]["ov_cimguiname"] = "igPushIDInt" defs["igPushID"][4]["ret"] = "void" @@ -11688,7 +11705,7 @@ defs["igPushItemWidth"][1]["call_args"] = "(item_width)" defs["igPushItemWidth"][1]["cimguiname"] = "igPushItemWidth" defs["igPushItemWidth"][1]["defaults"] = {} defs["igPushItemWidth"][1]["funcname"] = "PushItemWidth" -defs["igPushItemWidth"][1]["location"] = "imgui:413" +defs["igPushItemWidth"][1]["location"] = "imgui:416" defs["igPushItemWidth"][1]["namespace"] = "ImGui" defs["igPushItemWidth"][1]["ov_cimguiname"] = "igPushItemWidth" defs["igPushItemWidth"][1]["ret"] = "void" @@ -11710,7 +11727,7 @@ defs["igPushStyleColor"][1]["call_args"] = "(idx,col)" defs["igPushStyleColor"][1]["cimguiname"] = "igPushStyleColor" defs["igPushStyleColor"][1]["defaults"] = {} defs["igPushStyleColor"][1]["funcname"] = "PushStyleColor" -defs["igPushStyleColor"][1]["location"] = "imgui:401" +defs["igPushStyleColor"][1]["location"] = "imgui:404" defs["igPushStyleColor"][1]["namespace"] = "ImGui" defs["igPushStyleColor"][1]["ov_cimguiname"] = "igPushStyleColorU32" defs["igPushStyleColor"][1]["ret"] = "void" @@ -11730,7 +11747,7 @@ defs["igPushStyleColor"][2]["call_args"] = "(idx,col)" defs["igPushStyleColor"][2]["cimguiname"] = "igPushStyleColor" defs["igPushStyleColor"][2]["defaults"] = {} defs["igPushStyleColor"][2]["funcname"] = "PushStyleColor" -defs["igPushStyleColor"][2]["location"] = "imgui:402" +defs["igPushStyleColor"][2]["location"] = "imgui:405" defs["igPushStyleColor"][2]["namespace"] = "ImGui" defs["igPushStyleColor"][2]["ov_cimguiname"] = "igPushStyleColorVec4" defs["igPushStyleColor"][2]["ret"] = "void" @@ -11753,7 +11770,7 @@ defs["igPushStyleVar"][1]["call_args"] = "(idx,val)" defs["igPushStyleVar"][1]["cimguiname"] = "igPushStyleVar" defs["igPushStyleVar"][1]["defaults"] = {} defs["igPushStyleVar"][1]["funcname"] = "PushStyleVar" -defs["igPushStyleVar"][1]["location"] = "imgui:404" +defs["igPushStyleVar"][1]["location"] = "imgui:407" defs["igPushStyleVar"][1]["namespace"] = "ImGui" defs["igPushStyleVar"][1]["ov_cimguiname"] = "igPushStyleVarFloat" defs["igPushStyleVar"][1]["ret"] = "void" @@ -11773,7 +11790,7 @@ defs["igPushStyleVar"][2]["call_args"] = "(idx,val)" defs["igPushStyleVar"][2]["cimguiname"] = "igPushStyleVar" defs["igPushStyleVar"][2]["defaults"] = {} defs["igPushStyleVar"][2]["funcname"] = "PushStyleVar" -defs["igPushStyleVar"][2]["location"] = "imgui:405" +defs["igPushStyleVar"][2]["location"] = "imgui:408" defs["igPushStyleVar"][2]["namespace"] = "ImGui" defs["igPushStyleVar"][2]["ov_cimguiname"] = "igPushStyleVarVec2" defs["igPushStyleVar"][2]["ret"] = "void" @@ -11794,7 +11811,7 @@ defs["igPushTextWrapPos"][1]["cimguiname"] = "igPushTextWrapPos" defs["igPushTextWrapPos"][1]["defaults"] = {} defs["igPushTextWrapPos"][1]["defaults"]["wrap_local_pos_x"] = "0.0f" defs["igPushTextWrapPos"][1]["funcname"] = "PushTextWrapPos" -defs["igPushTextWrapPos"][1]["location"] = "imgui:417" +defs["igPushTextWrapPos"][1]["location"] = "imgui:420" defs["igPushTextWrapPos"][1]["namespace"] = "ImGui" defs["igPushTextWrapPos"][1]["ov_cimguiname"] = "igPushTextWrapPos" defs["igPushTextWrapPos"][1]["ret"] = "void" @@ -11816,7 +11833,7 @@ defs["igRadioButton"][1]["call_args"] = "(label,active)" defs["igRadioButton"][1]["cimguiname"] = "igRadioButton" defs["igRadioButton"][1]["defaults"] = {} defs["igRadioButton"][1]["funcname"] = "RadioButton" -defs["igRadioButton"][1]["location"] = "imgui:508" +defs["igRadioButton"][1]["location"] = "imgui:511" defs["igRadioButton"][1]["namespace"] = "ImGui" defs["igRadioButton"][1]["ov_cimguiname"] = "igRadioButtonBool" defs["igRadioButton"][1]["ret"] = "bool" @@ -11839,7 +11856,7 @@ defs["igRadioButton"][2]["call_args"] = "(label,v,v_button)" defs["igRadioButton"][2]["cimguiname"] = "igRadioButton" defs["igRadioButton"][2]["defaults"] = {} defs["igRadioButton"][2]["funcname"] = "RadioButton" -defs["igRadioButton"][2]["location"] = "imgui:509" +defs["igRadioButton"][2]["location"] = "imgui:512" defs["igRadioButton"][2]["namespace"] = "ImGui" defs["igRadioButton"][2]["ov_cimguiname"] = "igRadioButtonIntPtr" defs["igRadioButton"][2]["ret"] = "bool" @@ -11856,7 +11873,7 @@ defs["igRender"][1]["call_args"] = "()" defs["igRender"][1]["cimguiname"] = "igRender" defs["igRender"][1]["defaults"] = {} defs["igRender"][1]["funcname"] = "Render" -defs["igRender"][1]["location"] = "imgui:301" +defs["igRender"][1]["location"] = "imgui:304" defs["igRender"][1]["namespace"] = "ImGui" defs["igRender"][1]["ov_cimguiname"] = "igRender" defs["igRender"][1]["ret"] = "void" @@ -11876,7 +11893,7 @@ defs["igResetMouseDragDelta"][1]["cimguiname"] = "igResetMouseDragDelta" defs["igResetMouseDragDelta"][1]["defaults"] = {} defs["igResetMouseDragDelta"][1]["defaults"]["button"] = "0" defs["igResetMouseDragDelta"][1]["funcname"] = "ResetMouseDragDelta" -defs["igResetMouseDragDelta"][1]["location"] = "imgui:906" +defs["igResetMouseDragDelta"][1]["location"] = "imgui:910" defs["igResetMouseDragDelta"][1]["namespace"] = "ImGui" defs["igResetMouseDragDelta"][1]["ov_cimguiname"] = "igResetMouseDragDelta" defs["igResetMouseDragDelta"][1]["ret"] = "void" @@ -11900,7 +11917,7 @@ defs["igSameLine"][1]["defaults"] = {} defs["igSameLine"][1]["defaults"]["offset_from_start_x"] = "0.0f" defs["igSameLine"][1]["defaults"]["spacing"] = "-1.0f" defs["igSameLine"][1]["funcname"] = "SameLine" -defs["igSameLine"][1]["location"] = "imgui:438" +defs["igSameLine"][1]["location"] = "imgui:441" defs["igSameLine"][1]["namespace"] = "ImGui" defs["igSameLine"][1]["ov_cimguiname"] = "igSameLine" defs["igSameLine"][1]["ret"] = "void" @@ -11919,7 +11936,7 @@ defs["igSaveIniSettingsToDisk"][1]["call_args"] = "(ini_filename)" defs["igSaveIniSettingsToDisk"][1]["cimguiname"] = "igSaveIniSettingsToDisk" defs["igSaveIniSettingsToDisk"][1]["defaults"] = {} defs["igSaveIniSettingsToDisk"][1]["funcname"] = "SaveIniSettingsToDisk" -defs["igSaveIniSettingsToDisk"][1]["location"] = "imgui:922" +defs["igSaveIniSettingsToDisk"][1]["location"] = "imgui:926" defs["igSaveIniSettingsToDisk"][1]["namespace"] = "ImGui" defs["igSaveIniSettingsToDisk"][1]["ov_cimguiname"] = "igSaveIniSettingsToDisk" defs["igSaveIniSettingsToDisk"][1]["ret"] = "void" @@ -11939,7 +11956,7 @@ defs["igSaveIniSettingsToMemory"][1]["cimguiname"] = "igSaveIniSettingsToMemory" defs["igSaveIniSettingsToMemory"][1]["defaults"] = {} defs["igSaveIniSettingsToMemory"][1]["defaults"]["out_ini_size"] = "NULL" defs["igSaveIniSettingsToMemory"][1]["funcname"] = "SaveIniSettingsToMemory" -defs["igSaveIniSettingsToMemory"][1]["location"] = "imgui:923" +defs["igSaveIniSettingsToMemory"][1]["location"] = "imgui:927" defs["igSaveIniSettingsToMemory"][1]["namespace"] = "ImGui" defs["igSaveIniSettingsToMemory"][1]["ov_cimguiname"] = "igSaveIniSettingsToMemory" defs["igSaveIniSettingsToMemory"][1]["ret"] = "const char*" @@ -11970,7 +11987,7 @@ defs["igSelectable"][1]["defaults"]["flags"] = "0" defs["igSelectable"][1]["defaults"]["selected"] = "false" defs["igSelectable"][1]["defaults"]["size"] = "ImVec2(0,0)" defs["igSelectable"][1]["funcname"] = "Selectable" -defs["igSelectable"][1]["location"] = "imgui:618" +defs["igSelectable"][1]["location"] = "imgui:621" defs["igSelectable"][1]["namespace"] = "ImGui" defs["igSelectable"][1]["ov_cimguiname"] = "igSelectableBool" defs["igSelectable"][1]["ret"] = "bool" @@ -11998,7 +12015,7 @@ defs["igSelectable"][2]["defaults"] = {} defs["igSelectable"][2]["defaults"]["flags"] = "0" defs["igSelectable"][2]["defaults"]["size"] = "ImVec2(0,0)" defs["igSelectable"][2]["funcname"] = "Selectable" -defs["igSelectable"][2]["location"] = "imgui:619" +defs["igSelectable"][2]["location"] = "imgui:622" defs["igSelectable"][2]["namespace"] = "ImGui" defs["igSelectable"][2]["ov_cimguiname"] = "igSelectableBoolPtr" defs["igSelectable"][2]["ret"] = "bool" @@ -12015,7 +12032,7 @@ defs["igSeparator"][1]["call_args"] = "()" defs["igSeparator"][1]["cimguiname"] = "igSeparator" defs["igSeparator"][1]["defaults"] = {} defs["igSeparator"][1]["funcname"] = "Separator" -defs["igSeparator"][1]["location"] = "imgui:437" +defs["igSeparator"][1]["location"] = "imgui:440" defs["igSeparator"][1]["namespace"] = "ImGui" defs["igSeparator"][1]["ov_cimguiname"] = "igSeparator" defs["igSeparator"][1]["ret"] = "void" @@ -12041,7 +12058,7 @@ defs["igSetAllocatorFunctions"][1]["cimguiname"] = "igSetAllocatorFunctions" defs["igSetAllocatorFunctions"][1]["defaults"] = {} defs["igSetAllocatorFunctions"][1]["defaults"]["user_data"] = "NULL" defs["igSetAllocatorFunctions"][1]["funcname"] = "SetAllocatorFunctions" -defs["igSetAllocatorFunctions"][1]["location"] = "imgui:933" +defs["igSetAllocatorFunctions"][1]["location"] = "imgui:937" defs["igSetAllocatorFunctions"][1]["namespace"] = "ImGui" defs["igSetAllocatorFunctions"][1]["ov_cimguiname"] = "igSetAllocatorFunctions" defs["igSetAllocatorFunctions"][1]["ret"] = "void" @@ -12060,7 +12077,7 @@ defs["igSetClipboardText"][1]["call_args"] = "(text)" defs["igSetClipboardText"][1]["cimguiname"] = "igSetClipboardText" defs["igSetClipboardText"][1]["defaults"] = {} defs["igSetClipboardText"][1]["funcname"] = "SetClipboardText" -defs["igSetClipboardText"][1]["location"] = "imgui:914" +defs["igSetClipboardText"][1]["location"] = "imgui:918" defs["igSetClipboardText"][1]["namespace"] = "ImGui" defs["igSetClipboardText"][1]["ov_cimguiname"] = "igSetClipboardText" defs["igSetClipboardText"][1]["ret"] = "void" @@ -12079,7 +12096,7 @@ defs["igSetColorEditOptions"][1]["call_args"] = "(flags)" defs["igSetColorEditOptions"][1]["cimguiname"] = "igSetColorEditOptions" defs["igSetColorEditOptions"][1]["defaults"] = {} defs["igSetColorEditOptions"][1]["funcname"] = "SetColorEditOptions" -defs["igSetColorEditOptions"][1]["location"] = "imgui:593" +defs["igSetColorEditOptions"][1]["location"] = "imgui:596" defs["igSetColorEditOptions"][1]["namespace"] = "ImGui" defs["igSetColorEditOptions"][1]["ov_cimguiname"] = "igSetColorEditOptions" defs["igSetColorEditOptions"][1]["ret"] = "void" @@ -12101,7 +12118,7 @@ defs["igSetColumnOffset"][1]["call_args"] = "(column_index,offset_x)" defs["igSetColumnOffset"][1]["cimguiname"] = "igSetColumnOffset" defs["igSetColumnOffset"][1]["defaults"] = {} defs["igSetColumnOffset"][1]["funcname"] = "SetColumnOffset" -defs["igSetColumnOffset"][1]["location"] = "imgui:780" +defs["igSetColumnOffset"][1]["location"] = "imgui:783" defs["igSetColumnOffset"][1]["namespace"] = "ImGui" defs["igSetColumnOffset"][1]["ov_cimguiname"] = "igSetColumnOffset" defs["igSetColumnOffset"][1]["ret"] = "void" @@ -12123,7 +12140,7 @@ defs["igSetColumnWidth"][1]["call_args"] = "(column_index,width)" defs["igSetColumnWidth"][1]["cimguiname"] = "igSetColumnWidth" defs["igSetColumnWidth"][1]["defaults"] = {} defs["igSetColumnWidth"][1]["funcname"] = "SetColumnWidth" -defs["igSetColumnWidth"][1]["location"] = "imgui:778" +defs["igSetColumnWidth"][1]["location"] = "imgui:781" defs["igSetColumnWidth"][1]["namespace"] = "ImGui" defs["igSetColumnWidth"][1]["ov_cimguiname"] = "igSetColumnWidth" defs["igSetColumnWidth"][1]["ret"] = "void" @@ -12142,7 +12159,7 @@ defs["igSetCurrentContext"][1]["call_args"] = "(ctx)" defs["igSetCurrentContext"][1]["cimguiname"] = "igSetCurrentContext" defs["igSetCurrentContext"][1]["defaults"] = {} defs["igSetCurrentContext"][1]["funcname"] = "SetCurrentContext" -defs["igSetCurrentContext"][1]["location"] = "imgui:294" +defs["igSetCurrentContext"][1]["location"] = "imgui:297" defs["igSetCurrentContext"][1]["namespace"] = "ImGui" defs["igSetCurrentContext"][1]["ov_cimguiname"] = "igSetCurrentContext" defs["igSetCurrentContext"][1]["ret"] = "void" @@ -12161,7 +12178,7 @@ defs["igSetCursorPos"][1]["call_args"] = "(local_pos)" defs["igSetCursorPos"][1]["cimguiname"] = "igSetCursorPos" defs["igSetCursorPos"][1]["defaults"] = {} defs["igSetCursorPos"][1]["funcname"] = "SetCursorPos" -defs["igSetCursorPos"][1]["location"] = "imgui:449" +defs["igSetCursorPos"][1]["location"] = "imgui:452" defs["igSetCursorPos"][1]["namespace"] = "ImGui" defs["igSetCursorPos"][1]["ov_cimguiname"] = "igSetCursorPos" defs["igSetCursorPos"][1]["ret"] = "void" @@ -12180,7 +12197,7 @@ defs["igSetCursorPosX"][1]["call_args"] = "(local_x)" defs["igSetCursorPosX"][1]["cimguiname"] = "igSetCursorPosX" defs["igSetCursorPosX"][1]["defaults"] = {} defs["igSetCursorPosX"][1]["funcname"] = "SetCursorPosX" -defs["igSetCursorPosX"][1]["location"] = "imgui:450" +defs["igSetCursorPosX"][1]["location"] = "imgui:453" defs["igSetCursorPosX"][1]["namespace"] = "ImGui" defs["igSetCursorPosX"][1]["ov_cimguiname"] = "igSetCursorPosX" defs["igSetCursorPosX"][1]["ret"] = "void" @@ -12199,7 +12216,7 @@ defs["igSetCursorPosY"][1]["call_args"] = "(local_y)" defs["igSetCursorPosY"][1]["cimguiname"] = "igSetCursorPosY" defs["igSetCursorPosY"][1]["defaults"] = {} defs["igSetCursorPosY"][1]["funcname"] = "SetCursorPosY" -defs["igSetCursorPosY"][1]["location"] = "imgui:451" +defs["igSetCursorPosY"][1]["location"] = "imgui:454" defs["igSetCursorPosY"][1]["namespace"] = "ImGui" defs["igSetCursorPosY"][1]["ov_cimguiname"] = "igSetCursorPosY" defs["igSetCursorPosY"][1]["ret"] = "void" @@ -12218,7 +12235,7 @@ defs["igSetCursorScreenPos"][1]["call_args"] = "(pos)" defs["igSetCursorScreenPos"][1]["cimguiname"] = "igSetCursorScreenPos" defs["igSetCursorScreenPos"][1]["defaults"] = {} defs["igSetCursorScreenPos"][1]["funcname"] = "SetCursorScreenPos" -defs["igSetCursorScreenPos"][1]["location"] = "imgui:454" +defs["igSetCursorScreenPos"][1]["location"] = "imgui:457" defs["igSetCursorScreenPos"][1]["namespace"] = "ImGui" defs["igSetCursorScreenPos"][1]["ov_cimguiname"] = "igSetCursorScreenPos" defs["igSetCursorScreenPos"][1]["ret"] = "void" @@ -12247,7 +12264,7 @@ defs["igSetDragDropPayload"][1]["cimguiname"] = "igSetDragDropPayload" defs["igSetDragDropPayload"][1]["defaults"] = {} defs["igSetDragDropPayload"][1]["defaults"]["cond"] = "0" defs["igSetDragDropPayload"][1]["funcname"] = "SetDragDropPayload" -defs["igSetDragDropPayload"][1]["location"] = "imgui:807" +defs["igSetDragDropPayload"][1]["location"] = "imgui:810" defs["igSetDragDropPayload"][1]["namespace"] = "ImGui" defs["igSetDragDropPayload"][1]["ov_cimguiname"] = "igSetDragDropPayload" defs["igSetDragDropPayload"][1]["ret"] = "bool" @@ -12263,7 +12280,7 @@ defs["igSetItemAllowOverlap"][1]["call_args"] = "()" defs["igSetItemAllowOverlap"][1]["cimguiname"] = "igSetItemAllowOverlap" defs["igSetItemAllowOverlap"][1]["defaults"] = {} defs["igSetItemAllowOverlap"][1]["funcname"] = "SetItemAllowOverlap" -defs["igSetItemAllowOverlap"][1]["location"] = "imgui:849" +defs["igSetItemAllowOverlap"][1]["location"] = "imgui:853" defs["igSetItemAllowOverlap"][1]["namespace"] = "ImGui" defs["igSetItemAllowOverlap"][1]["ov_cimguiname"] = "igSetItemAllowOverlap" defs["igSetItemAllowOverlap"][1]["ret"] = "void" @@ -12279,7 +12296,7 @@ defs["igSetItemDefaultFocus"][1]["call_args"] = "()" defs["igSetItemDefaultFocus"][1]["cimguiname"] = "igSetItemDefaultFocus" defs["igSetItemDefaultFocus"][1]["defaults"] = {} defs["igSetItemDefaultFocus"][1]["funcname"] = "SetItemDefaultFocus" -defs["igSetItemDefaultFocus"][1]["location"] = "imgui:827" +defs["igSetItemDefaultFocus"][1]["location"] = "imgui:831" defs["igSetItemDefaultFocus"][1]["namespace"] = "ImGui" defs["igSetItemDefaultFocus"][1]["ov_cimguiname"] = "igSetItemDefaultFocus" defs["igSetItemDefaultFocus"][1]["ret"] = "void" @@ -12299,7 +12316,7 @@ defs["igSetKeyboardFocusHere"][1]["cimguiname"] = "igSetKeyboardFocusHere" defs["igSetKeyboardFocusHere"][1]["defaults"] = {} defs["igSetKeyboardFocusHere"][1]["defaults"]["offset"] = "0" defs["igSetKeyboardFocusHere"][1]["funcname"] = "SetKeyboardFocusHere" -defs["igSetKeyboardFocusHere"][1]["location"] = "imgui:828" +defs["igSetKeyboardFocusHere"][1]["location"] = "imgui:832" defs["igSetKeyboardFocusHere"][1]["namespace"] = "ImGui" defs["igSetKeyboardFocusHere"][1]["ov_cimguiname"] = "igSetKeyboardFocusHere" defs["igSetKeyboardFocusHere"][1]["ret"] = "void" @@ -12318,7 +12335,7 @@ defs["igSetMouseCursor"][1]["call_args"] = "(cursor_type)" defs["igSetMouseCursor"][1]["cimguiname"] = "igSetMouseCursor" defs["igSetMouseCursor"][1]["defaults"] = {} defs["igSetMouseCursor"][1]["funcname"] = "SetMouseCursor" -defs["igSetMouseCursor"][1]["location"] = "imgui:908" +defs["igSetMouseCursor"][1]["location"] = "imgui:912" defs["igSetMouseCursor"][1]["namespace"] = "ImGui" defs["igSetMouseCursor"][1]["ov_cimguiname"] = "igSetMouseCursor" defs["igSetMouseCursor"][1]["ret"] = "void" @@ -12341,7 +12358,7 @@ defs["igSetNextItemOpen"][1]["cimguiname"] = "igSetNextItemOpen" defs["igSetNextItemOpen"][1]["defaults"] = {} defs["igSetNextItemOpen"][1]["defaults"]["cond"] = "0" defs["igSetNextItemOpen"][1]["funcname"] = "SetNextItemOpen" -defs["igSetNextItemOpen"][1]["location"] = "imgui:613" +defs["igSetNextItemOpen"][1]["location"] = "imgui:616" defs["igSetNextItemOpen"][1]["namespace"] = "ImGui" defs["igSetNextItemOpen"][1]["ov_cimguiname"] = "igSetNextItemOpen" defs["igSetNextItemOpen"][1]["ret"] = "void" @@ -12360,7 +12377,7 @@ defs["igSetNextItemWidth"][1]["call_args"] = "(item_width)" defs["igSetNextItemWidth"][1]["cimguiname"] = "igSetNextItemWidth" defs["igSetNextItemWidth"][1]["defaults"] = {} defs["igSetNextItemWidth"][1]["funcname"] = "SetNextItemWidth" -defs["igSetNextItemWidth"][1]["location"] = "imgui:415" +defs["igSetNextItemWidth"][1]["location"] = "imgui:418" defs["igSetNextItemWidth"][1]["namespace"] = "ImGui" defs["igSetNextItemWidth"][1]["ov_cimguiname"] = "igSetNextItemWidth" defs["igSetNextItemWidth"][1]["ret"] = "void" @@ -12379,7 +12396,7 @@ defs["igSetNextWindowBgAlpha"][1]["call_args"] = "(alpha)" defs["igSetNextWindowBgAlpha"][1]["cimguiname"] = "igSetNextWindowBgAlpha" defs["igSetNextWindowBgAlpha"][1]["defaults"] = {} defs["igSetNextWindowBgAlpha"][1]["funcname"] = "SetNextWindowBgAlpha" -defs["igSetNextWindowBgAlpha"][1]["location"] = "imgui:366" +defs["igSetNextWindowBgAlpha"][1]["location"] = "imgui:370" defs["igSetNextWindowBgAlpha"][1]["namespace"] = "ImGui" defs["igSetNextWindowBgAlpha"][1]["ov_cimguiname"] = "igSetNextWindowBgAlpha" defs["igSetNextWindowBgAlpha"][1]["ret"] = "void" @@ -12402,7 +12419,7 @@ defs["igSetNextWindowCollapsed"][1]["cimguiname"] = "igSetNextWindowCollapsed" defs["igSetNextWindowCollapsed"][1]["defaults"] = {} defs["igSetNextWindowCollapsed"][1]["defaults"]["cond"] = "0" defs["igSetNextWindowCollapsed"][1]["funcname"] = "SetNextWindowCollapsed" -defs["igSetNextWindowCollapsed"][1]["location"] = "imgui:364" +defs["igSetNextWindowCollapsed"][1]["location"] = "imgui:368" defs["igSetNextWindowCollapsed"][1]["namespace"] = "ImGui" defs["igSetNextWindowCollapsed"][1]["ov_cimguiname"] = "igSetNextWindowCollapsed" defs["igSetNextWindowCollapsed"][1]["ret"] = "void" @@ -12421,7 +12438,7 @@ defs["igSetNextWindowContentSize"][1]["call_args"] = "(size)" defs["igSetNextWindowContentSize"][1]["cimguiname"] = "igSetNextWindowContentSize" defs["igSetNextWindowContentSize"][1]["defaults"] = {} defs["igSetNextWindowContentSize"][1]["funcname"] = "SetNextWindowContentSize" -defs["igSetNextWindowContentSize"][1]["location"] = "imgui:363" +defs["igSetNextWindowContentSize"][1]["location"] = "imgui:367" defs["igSetNextWindowContentSize"][1]["namespace"] = "ImGui" defs["igSetNextWindowContentSize"][1]["ov_cimguiname"] = "igSetNextWindowContentSize" defs["igSetNextWindowContentSize"][1]["ret"] = "void" @@ -12437,7 +12454,7 @@ defs["igSetNextWindowFocus"][1]["call_args"] = "()" defs["igSetNextWindowFocus"][1]["cimguiname"] = "igSetNextWindowFocus" defs["igSetNextWindowFocus"][1]["defaults"] = {} defs["igSetNextWindowFocus"][1]["funcname"] = "SetNextWindowFocus" -defs["igSetNextWindowFocus"][1]["location"] = "imgui:365" +defs["igSetNextWindowFocus"][1]["location"] = "imgui:369" defs["igSetNextWindowFocus"][1]["namespace"] = "ImGui" defs["igSetNextWindowFocus"][1]["ov_cimguiname"] = "igSetNextWindowFocus" defs["igSetNextWindowFocus"][1]["ret"] = "void" @@ -12464,7 +12481,7 @@ defs["igSetNextWindowPos"][1]["defaults"] = {} defs["igSetNextWindowPos"][1]["defaults"]["cond"] = "0" defs["igSetNextWindowPos"][1]["defaults"]["pivot"] = "ImVec2(0,0)" defs["igSetNextWindowPos"][1]["funcname"] = "SetNextWindowPos" -defs["igSetNextWindowPos"][1]["location"] = "imgui:360" +defs["igSetNextWindowPos"][1]["location"] = "imgui:364" defs["igSetNextWindowPos"][1]["namespace"] = "ImGui" defs["igSetNextWindowPos"][1]["ov_cimguiname"] = "igSetNextWindowPos" defs["igSetNextWindowPos"][1]["ret"] = "void" @@ -12487,7 +12504,7 @@ defs["igSetNextWindowSize"][1]["cimguiname"] = "igSetNextWindowSize" defs["igSetNextWindowSize"][1]["defaults"] = {} defs["igSetNextWindowSize"][1]["defaults"]["cond"] = "0" defs["igSetNextWindowSize"][1]["funcname"] = "SetNextWindowSize" -defs["igSetNextWindowSize"][1]["location"] = "imgui:361" +defs["igSetNextWindowSize"][1]["location"] = "imgui:365" defs["igSetNextWindowSize"][1]["namespace"] = "ImGui" defs["igSetNextWindowSize"][1]["ov_cimguiname"] = "igSetNextWindowSize" defs["igSetNextWindowSize"][1]["ret"] = "void" @@ -12517,7 +12534,7 @@ defs["igSetNextWindowSizeConstraints"][1]["defaults"] = {} defs["igSetNextWindowSizeConstraints"][1]["defaults"]["custom_callback"] = "NULL" defs["igSetNextWindowSizeConstraints"][1]["defaults"]["custom_callback_data"] = "NULL" defs["igSetNextWindowSizeConstraints"][1]["funcname"] = "SetNextWindowSizeConstraints" -defs["igSetNextWindowSizeConstraints"][1]["location"] = "imgui:362" +defs["igSetNextWindowSizeConstraints"][1]["location"] = "imgui:366" defs["igSetNextWindowSizeConstraints"][1]["namespace"] = "ImGui" defs["igSetNextWindowSizeConstraints"][1]["ov_cimguiname"] = "igSetNextWindowSizeConstraints" defs["igSetNextWindowSizeConstraints"][1]["ret"] = "void" @@ -12540,7 +12557,7 @@ defs["igSetScrollFromPosX"][1]["cimguiname"] = "igSetScrollFromPosX" defs["igSetScrollFromPosX"][1]["defaults"] = {} defs["igSetScrollFromPosX"][1]["defaults"]["center_x_ratio"] = "0.5f" defs["igSetScrollFromPosX"][1]["funcname"] = "SetScrollFromPosX" -defs["igSetScrollFromPosX"][1]["location"] = "imgui:395" +defs["igSetScrollFromPosX"][1]["location"] = "imgui:398" defs["igSetScrollFromPosX"][1]["namespace"] = "ImGui" defs["igSetScrollFromPosX"][1]["ov_cimguiname"] = "igSetScrollFromPosX" defs["igSetScrollFromPosX"][1]["ret"] = "void" @@ -12563,7 +12580,7 @@ defs["igSetScrollFromPosY"][1]["cimguiname"] = "igSetScrollFromPosY" defs["igSetScrollFromPosY"][1]["defaults"] = {} defs["igSetScrollFromPosY"][1]["defaults"]["center_y_ratio"] = "0.5f" defs["igSetScrollFromPosY"][1]["funcname"] = "SetScrollFromPosY" -defs["igSetScrollFromPosY"][1]["location"] = "imgui:396" +defs["igSetScrollFromPosY"][1]["location"] = "imgui:399" defs["igSetScrollFromPosY"][1]["namespace"] = "ImGui" defs["igSetScrollFromPosY"][1]["ov_cimguiname"] = "igSetScrollFromPosY" defs["igSetScrollFromPosY"][1]["ret"] = "void" @@ -12583,7 +12600,7 @@ defs["igSetScrollHereX"][1]["cimguiname"] = "igSetScrollHereX" defs["igSetScrollHereX"][1]["defaults"] = {} defs["igSetScrollHereX"][1]["defaults"]["center_x_ratio"] = "0.5f" defs["igSetScrollHereX"][1]["funcname"] = "SetScrollHereX" -defs["igSetScrollHereX"][1]["location"] = "imgui:393" +defs["igSetScrollHereX"][1]["location"] = "imgui:396" defs["igSetScrollHereX"][1]["namespace"] = "ImGui" defs["igSetScrollHereX"][1]["ov_cimguiname"] = "igSetScrollHereX" defs["igSetScrollHereX"][1]["ret"] = "void" @@ -12603,7 +12620,7 @@ defs["igSetScrollHereY"][1]["cimguiname"] = "igSetScrollHereY" defs["igSetScrollHereY"][1]["defaults"] = {} defs["igSetScrollHereY"][1]["defaults"]["center_y_ratio"] = "0.5f" defs["igSetScrollHereY"][1]["funcname"] = "SetScrollHereY" -defs["igSetScrollHereY"][1]["location"] = "imgui:394" +defs["igSetScrollHereY"][1]["location"] = "imgui:397" defs["igSetScrollHereY"][1]["namespace"] = "ImGui" defs["igSetScrollHereY"][1]["ov_cimguiname"] = "igSetScrollHereY" defs["igSetScrollHereY"][1]["ret"] = "void" @@ -12622,7 +12639,7 @@ defs["igSetScrollX"][1]["call_args"] = "(scroll_x)" defs["igSetScrollX"][1]["cimguiname"] = "igSetScrollX" defs["igSetScrollX"][1]["defaults"] = {} defs["igSetScrollX"][1]["funcname"] = "SetScrollX" -defs["igSetScrollX"][1]["location"] = "imgui:389" +defs["igSetScrollX"][1]["location"] = "imgui:392" defs["igSetScrollX"][1]["namespace"] = "ImGui" defs["igSetScrollX"][1]["ov_cimguiname"] = "igSetScrollX" defs["igSetScrollX"][1]["ret"] = "void" @@ -12641,7 +12658,7 @@ defs["igSetScrollY"][1]["call_args"] = "(scroll_y)" defs["igSetScrollY"][1]["cimguiname"] = "igSetScrollY" defs["igSetScrollY"][1]["defaults"] = {} defs["igSetScrollY"][1]["funcname"] = "SetScrollY" -defs["igSetScrollY"][1]["location"] = "imgui:390" +defs["igSetScrollY"][1]["location"] = "imgui:393" defs["igSetScrollY"][1]["namespace"] = "ImGui" defs["igSetScrollY"][1]["ov_cimguiname"] = "igSetScrollY" defs["igSetScrollY"][1]["ret"] = "void" @@ -12660,7 +12677,7 @@ defs["igSetStateStorage"][1]["call_args"] = "(storage)" defs["igSetStateStorage"][1]["cimguiname"] = "igSetStateStorage" defs["igSetStateStorage"][1]["defaults"] = {} defs["igSetStateStorage"][1]["funcname"] = "SetStateStorage" -defs["igSetStateStorage"][1]["location"] = "imgui:866" +defs["igSetStateStorage"][1]["location"] = "imgui:870" defs["igSetStateStorage"][1]["namespace"] = "ImGui" defs["igSetStateStorage"][1]["ov_cimguiname"] = "igSetStateStorage" defs["igSetStateStorage"][1]["ret"] = "void" @@ -12679,7 +12696,7 @@ defs["igSetTabItemClosed"][1]["call_args"] = "(tab_or_docked_window_label)" defs["igSetTabItemClosed"][1]["cimguiname"] = "igSetTabItemClosed" defs["igSetTabItemClosed"][1]["defaults"] = {} defs["igSetTabItemClosed"][1]["funcname"] = "SetTabItemClosed" -defs["igSetTabItemClosed"][1]["location"] = "imgui:789" +defs["igSetTabItemClosed"][1]["location"] = "imgui:792" defs["igSetTabItemClosed"][1]["namespace"] = "ImGui" defs["igSetTabItemClosed"][1]["ov_cimguiname"] = "igSetTabItemClosed" defs["igSetTabItemClosed"][1]["ret"] = "void" @@ -12702,7 +12719,7 @@ defs["igSetTooltip"][1]["cimguiname"] = "igSetTooltip" defs["igSetTooltip"][1]["defaults"] = {} defs["igSetTooltip"][1]["funcname"] = "SetTooltip" defs["igSetTooltip"][1]["isvararg"] = "...)" -defs["igSetTooltip"][1]["location"] = "imgui:664" +defs["igSetTooltip"][1]["location"] = "imgui:667" defs["igSetTooltip"][1]["namespace"] = "ImGui" defs["igSetTooltip"][1]["ov_cimguiname"] = "igSetTooltip" defs["igSetTooltip"][1]["ret"] = "void" @@ -12724,7 +12741,7 @@ defs["igSetTooltipV"][1]["call_args"] = "(fmt,args)" defs["igSetTooltipV"][1]["cimguiname"] = "igSetTooltipV" defs["igSetTooltipV"][1]["defaults"] = {} defs["igSetTooltipV"][1]["funcname"] = "SetTooltipV" -defs["igSetTooltipV"][1]["location"] = "imgui:665" +defs["igSetTooltipV"][1]["location"] = "imgui:668" defs["igSetTooltipV"][1]["namespace"] = "ImGui" defs["igSetTooltipV"][1]["ov_cimguiname"] = "igSetTooltipV" defs["igSetTooltipV"][1]["ret"] = "void" @@ -12747,7 +12764,7 @@ defs["igSetWindowCollapsed"][1]["cimguiname"] = "igSetWindowCollapsed" defs["igSetWindowCollapsed"][1]["defaults"] = {} defs["igSetWindowCollapsed"][1]["defaults"]["cond"] = "0" defs["igSetWindowCollapsed"][1]["funcname"] = "SetWindowCollapsed" -defs["igSetWindowCollapsed"][1]["location"] = "imgui:369" +defs["igSetWindowCollapsed"][1]["location"] = "imgui:373" defs["igSetWindowCollapsed"][1]["namespace"] = "ImGui" defs["igSetWindowCollapsed"][1]["ov_cimguiname"] = "igSetWindowCollapsedBool" defs["igSetWindowCollapsed"][1]["ret"] = "void" @@ -12771,7 +12788,7 @@ defs["igSetWindowCollapsed"][2]["cimguiname"] = "igSetWindowCollapsed" defs["igSetWindowCollapsed"][2]["defaults"] = {} defs["igSetWindowCollapsed"][2]["defaults"]["cond"] = "0" defs["igSetWindowCollapsed"][2]["funcname"] = "SetWindowCollapsed" -defs["igSetWindowCollapsed"][2]["location"] = "imgui:374" +defs["igSetWindowCollapsed"][2]["location"] = "imgui:378" defs["igSetWindowCollapsed"][2]["namespace"] = "ImGui" defs["igSetWindowCollapsed"][2]["ov_cimguiname"] = "igSetWindowCollapsedStr" defs["igSetWindowCollapsed"][2]["ret"] = "void" @@ -12788,7 +12805,7 @@ defs["igSetWindowFocus"][1]["call_args"] = "()" defs["igSetWindowFocus"][1]["cimguiname"] = "igSetWindowFocus" defs["igSetWindowFocus"][1]["defaults"] = {} defs["igSetWindowFocus"][1]["funcname"] = "SetWindowFocus" -defs["igSetWindowFocus"][1]["location"] = "imgui:370" +defs["igSetWindowFocus"][1]["location"] = "imgui:374" defs["igSetWindowFocus"][1]["namespace"] = "ImGui" defs["igSetWindowFocus"][1]["ov_cimguiname"] = "igSetWindowFocusNil" defs["igSetWindowFocus"][1]["ret"] = "void" @@ -12805,7 +12822,7 @@ defs["igSetWindowFocus"][2]["call_args"] = "(name)" defs["igSetWindowFocus"][2]["cimguiname"] = "igSetWindowFocus" defs["igSetWindowFocus"][2]["defaults"] = {} defs["igSetWindowFocus"][2]["funcname"] = "SetWindowFocus" -defs["igSetWindowFocus"][2]["location"] = "imgui:375" +defs["igSetWindowFocus"][2]["location"] = "imgui:379" defs["igSetWindowFocus"][2]["namespace"] = "ImGui" defs["igSetWindowFocus"][2]["ov_cimguiname"] = "igSetWindowFocusStr" defs["igSetWindowFocus"][2]["ret"] = "void" @@ -12825,7 +12842,7 @@ defs["igSetWindowFontScale"][1]["call_args"] = "(scale)" defs["igSetWindowFontScale"][1]["cimguiname"] = "igSetWindowFontScale" defs["igSetWindowFontScale"][1]["defaults"] = {} defs["igSetWindowFontScale"][1]["funcname"] = "SetWindowFontScale" -defs["igSetWindowFontScale"][1]["location"] = "imgui:371" +defs["igSetWindowFontScale"][1]["location"] = "imgui:375" defs["igSetWindowFontScale"][1]["namespace"] = "ImGui" defs["igSetWindowFontScale"][1]["ov_cimguiname"] = "igSetWindowFontScale" defs["igSetWindowFontScale"][1]["ret"] = "void" @@ -12848,7 +12865,7 @@ defs["igSetWindowPos"][1]["cimguiname"] = "igSetWindowPos" defs["igSetWindowPos"][1]["defaults"] = {} defs["igSetWindowPos"][1]["defaults"]["cond"] = "0" defs["igSetWindowPos"][1]["funcname"] = "SetWindowPos" -defs["igSetWindowPos"][1]["location"] = "imgui:367" +defs["igSetWindowPos"][1]["location"] = "imgui:371" defs["igSetWindowPos"][1]["namespace"] = "ImGui" defs["igSetWindowPos"][1]["ov_cimguiname"] = "igSetWindowPosVec2" defs["igSetWindowPos"][1]["ret"] = "void" @@ -12872,7 +12889,7 @@ defs["igSetWindowPos"][2]["cimguiname"] = "igSetWindowPos" defs["igSetWindowPos"][2]["defaults"] = {} defs["igSetWindowPos"][2]["defaults"]["cond"] = "0" defs["igSetWindowPos"][2]["funcname"] = "SetWindowPos" -defs["igSetWindowPos"][2]["location"] = "imgui:372" +defs["igSetWindowPos"][2]["location"] = "imgui:376" defs["igSetWindowPos"][2]["namespace"] = "ImGui" defs["igSetWindowPos"][2]["ov_cimguiname"] = "igSetWindowPosStr" defs["igSetWindowPos"][2]["ret"] = "void" @@ -12896,7 +12913,7 @@ defs["igSetWindowSize"][1]["cimguiname"] = "igSetWindowSize" defs["igSetWindowSize"][1]["defaults"] = {} defs["igSetWindowSize"][1]["defaults"]["cond"] = "0" defs["igSetWindowSize"][1]["funcname"] = "SetWindowSize" -defs["igSetWindowSize"][1]["location"] = "imgui:368" +defs["igSetWindowSize"][1]["location"] = "imgui:372" defs["igSetWindowSize"][1]["namespace"] = "ImGui" defs["igSetWindowSize"][1]["ov_cimguiname"] = "igSetWindowSizeVec2" defs["igSetWindowSize"][1]["ret"] = "void" @@ -12920,7 +12937,7 @@ defs["igSetWindowSize"][2]["cimguiname"] = "igSetWindowSize" defs["igSetWindowSize"][2]["defaults"] = {} defs["igSetWindowSize"][2]["defaults"]["cond"] = "0" defs["igSetWindowSize"][2]["funcname"] = "SetWindowSize" -defs["igSetWindowSize"][2]["location"] = "imgui:373" +defs["igSetWindowSize"][2]["location"] = "imgui:377" defs["igSetWindowSize"][2]["namespace"] = "ImGui" defs["igSetWindowSize"][2]["ov_cimguiname"] = "igSetWindowSizeStr" defs["igSetWindowSize"][2]["ret"] = "void" @@ -12941,7 +12958,7 @@ defs["igShowAboutWindow"][1]["cimguiname"] = "igShowAboutWindow" defs["igShowAboutWindow"][1]["defaults"] = {} defs["igShowAboutWindow"][1]["defaults"]["p_open"] = "NULL" defs["igShowAboutWindow"][1]["funcname"] = "ShowAboutWindow" -defs["igShowAboutWindow"][1]["location"] = "imgui:307" +defs["igShowAboutWindow"][1]["location"] = "imgui:311" defs["igShowAboutWindow"][1]["namespace"] = "ImGui" defs["igShowAboutWindow"][1]["ov_cimguiname"] = "igShowAboutWindow" defs["igShowAboutWindow"][1]["ret"] = "void" @@ -12961,7 +12978,7 @@ defs["igShowDemoWindow"][1]["cimguiname"] = "igShowDemoWindow" defs["igShowDemoWindow"][1]["defaults"] = {} defs["igShowDemoWindow"][1]["defaults"]["p_open"] = "NULL" defs["igShowDemoWindow"][1]["funcname"] = "ShowDemoWindow" -defs["igShowDemoWindow"][1]["location"] = "imgui:305" +defs["igShowDemoWindow"][1]["location"] = "imgui:308" defs["igShowDemoWindow"][1]["namespace"] = "ImGui" defs["igShowDemoWindow"][1]["ov_cimguiname"] = "igShowDemoWindow" defs["igShowDemoWindow"][1]["ret"] = "void" @@ -12980,7 +12997,7 @@ defs["igShowFontSelector"][1]["call_args"] = "(label)" defs["igShowFontSelector"][1]["cimguiname"] = "igShowFontSelector" defs["igShowFontSelector"][1]["defaults"] = {} defs["igShowFontSelector"][1]["funcname"] = "ShowFontSelector" -defs["igShowFontSelector"][1]["location"] = "imgui:310" +defs["igShowFontSelector"][1]["location"] = "imgui:314" defs["igShowFontSelector"][1]["namespace"] = "ImGui" defs["igShowFontSelector"][1]["ov_cimguiname"] = "igShowFontSelector" defs["igShowFontSelector"][1]["ret"] = "void" @@ -13000,13 +13017,33 @@ defs["igShowMetricsWindow"][1]["cimguiname"] = "igShowMetricsWindow" defs["igShowMetricsWindow"][1]["defaults"] = {} defs["igShowMetricsWindow"][1]["defaults"]["p_open"] = "NULL" defs["igShowMetricsWindow"][1]["funcname"] = "ShowMetricsWindow" -defs["igShowMetricsWindow"][1]["location"] = "imgui:306" +defs["igShowMetricsWindow"][1]["location"] = "imgui:309" defs["igShowMetricsWindow"][1]["namespace"] = "ImGui" defs["igShowMetricsWindow"][1]["ov_cimguiname"] = "igShowMetricsWindow" defs["igShowMetricsWindow"][1]["ret"] = "void" defs["igShowMetricsWindow"][1]["signature"] = "(bool*)" defs["igShowMetricsWindow"][1]["stname"] = "" defs["igShowMetricsWindow"]["(bool*)"] = defs["igShowMetricsWindow"][1] +defs["igShowStackToolWindow"] = {} +defs["igShowStackToolWindow"][1] = {} +defs["igShowStackToolWindow"][1]["args"] = "(bool* p_open)" +defs["igShowStackToolWindow"][1]["argsT"] = {} +defs["igShowStackToolWindow"][1]["argsT"][1] = {} +defs["igShowStackToolWindow"][1]["argsT"][1]["name"] = "p_open" +defs["igShowStackToolWindow"][1]["argsT"][1]["type"] = "bool*" +defs["igShowStackToolWindow"][1]["argsoriginal"] = "(bool* p_open=((void*)0))" +defs["igShowStackToolWindow"][1]["call_args"] = "(p_open)" +defs["igShowStackToolWindow"][1]["cimguiname"] = "igShowStackToolWindow" +defs["igShowStackToolWindow"][1]["defaults"] = {} +defs["igShowStackToolWindow"][1]["defaults"]["p_open"] = "NULL" +defs["igShowStackToolWindow"][1]["funcname"] = "ShowStackToolWindow" +defs["igShowStackToolWindow"][1]["location"] = "imgui:310" +defs["igShowStackToolWindow"][1]["namespace"] = "ImGui" +defs["igShowStackToolWindow"][1]["ov_cimguiname"] = "igShowStackToolWindow" +defs["igShowStackToolWindow"][1]["ret"] = "void" +defs["igShowStackToolWindow"][1]["signature"] = "(bool*)" +defs["igShowStackToolWindow"][1]["stname"] = "" +defs["igShowStackToolWindow"]["(bool*)"] = defs["igShowStackToolWindow"][1] defs["igShowStyleEditor"] = {} defs["igShowStyleEditor"][1] = {} defs["igShowStyleEditor"][1]["args"] = "(ImGuiStyle* ref)" @@ -13020,7 +13057,7 @@ defs["igShowStyleEditor"][1]["cimguiname"] = "igShowStyleEditor" defs["igShowStyleEditor"][1]["defaults"] = {} defs["igShowStyleEditor"][1]["defaults"]["ref"] = "NULL" defs["igShowStyleEditor"][1]["funcname"] = "ShowStyleEditor" -defs["igShowStyleEditor"][1]["location"] = "imgui:308" +defs["igShowStyleEditor"][1]["location"] = "imgui:312" defs["igShowStyleEditor"][1]["namespace"] = "ImGui" defs["igShowStyleEditor"][1]["ov_cimguiname"] = "igShowStyleEditor" defs["igShowStyleEditor"][1]["ret"] = "void" @@ -13039,7 +13076,7 @@ defs["igShowStyleSelector"][1]["call_args"] = "(label)" defs["igShowStyleSelector"][1]["cimguiname"] = "igShowStyleSelector" defs["igShowStyleSelector"][1]["defaults"] = {} defs["igShowStyleSelector"][1]["funcname"] = "ShowStyleSelector" -defs["igShowStyleSelector"][1]["location"] = "imgui:309" +defs["igShowStyleSelector"][1]["location"] = "imgui:313" defs["igShowStyleSelector"][1]["namespace"] = "ImGui" defs["igShowStyleSelector"][1]["ov_cimguiname"] = "igShowStyleSelector" defs["igShowStyleSelector"][1]["ret"] = "bool" @@ -13055,7 +13092,7 @@ defs["igShowUserGuide"][1]["call_args"] = "()" defs["igShowUserGuide"][1]["cimguiname"] = "igShowUserGuide" defs["igShowUserGuide"][1]["defaults"] = {} defs["igShowUserGuide"][1]["funcname"] = "ShowUserGuide" -defs["igShowUserGuide"][1]["location"] = "imgui:311" +defs["igShowUserGuide"][1]["location"] = "imgui:315" defs["igShowUserGuide"][1]["namespace"] = "ImGui" defs["igShowUserGuide"][1]["ov_cimguiname"] = "igShowUserGuide" defs["igShowUserGuide"][1]["ret"] = "void" @@ -13093,7 +13130,7 @@ defs["igSliderAngle"][1]["defaults"]["format"] = "\"%.0f deg\"" defs["igSliderAngle"][1]["defaults"]["v_degrees_max"] = "+360.0f" defs["igSliderAngle"][1]["defaults"]["v_degrees_min"] = "-360.0f" defs["igSliderAngle"][1]["funcname"] = "SliderAngle" -defs["igSliderAngle"][1]["location"] = "imgui:556" +defs["igSliderAngle"][1]["location"] = "imgui:559" defs["igSliderAngle"][1]["namespace"] = "ImGui" defs["igSliderAngle"][1]["ov_cimguiname"] = "igSliderAngle" defs["igSliderAngle"][1]["ret"] = "bool" @@ -13129,7 +13166,7 @@ defs["igSliderFloat"][1]["defaults"] = {} defs["igSliderFloat"][1]["defaults"]["flags"] = "0" defs["igSliderFloat"][1]["defaults"]["format"] = "\"%.3f\"" defs["igSliderFloat"][1]["funcname"] = "SliderFloat" -defs["igSliderFloat"][1]["location"] = "imgui:552" +defs["igSliderFloat"][1]["location"] = "imgui:555" defs["igSliderFloat"][1]["namespace"] = "ImGui" defs["igSliderFloat"][1]["ov_cimguiname"] = "igSliderFloat" defs["igSliderFloat"][1]["ret"] = "bool" @@ -13165,7 +13202,7 @@ defs["igSliderFloat2"][1]["defaults"] = {} defs["igSliderFloat2"][1]["defaults"]["flags"] = "0" defs["igSliderFloat2"][1]["defaults"]["format"] = "\"%.3f\"" defs["igSliderFloat2"][1]["funcname"] = "SliderFloat2" -defs["igSliderFloat2"][1]["location"] = "imgui:553" +defs["igSliderFloat2"][1]["location"] = "imgui:556" defs["igSliderFloat2"][1]["namespace"] = "ImGui" defs["igSliderFloat2"][1]["ov_cimguiname"] = "igSliderFloat2" defs["igSliderFloat2"][1]["ret"] = "bool" @@ -13201,7 +13238,7 @@ defs["igSliderFloat3"][1]["defaults"] = {} defs["igSliderFloat3"][1]["defaults"]["flags"] = "0" defs["igSliderFloat3"][1]["defaults"]["format"] = "\"%.3f\"" defs["igSliderFloat3"][1]["funcname"] = "SliderFloat3" -defs["igSliderFloat3"][1]["location"] = "imgui:554" +defs["igSliderFloat3"][1]["location"] = "imgui:557" defs["igSliderFloat3"][1]["namespace"] = "ImGui" defs["igSliderFloat3"][1]["ov_cimguiname"] = "igSliderFloat3" defs["igSliderFloat3"][1]["ret"] = "bool" @@ -13237,7 +13274,7 @@ defs["igSliderFloat4"][1]["defaults"] = {} defs["igSliderFloat4"][1]["defaults"]["flags"] = "0" defs["igSliderFloat4"][1]["defaults"]["format"] = "\"%.3f\"" defs["igSliderFloat4"][1]["funcname"] = "SliderFloat4" -defs["igSliderFloat4"][1]["location"] = "imgui:555" +defs["igSliderFloat4"][1]["location"] = "imgui:558" defs["igSliderFloat4"][1]["namespace"] = "ImGui" defs["igSliderFloat4"][1]["ov_cimguiname"] = "igSliderFloat4" defs["igSliderFloat4"][1]["ret"] = "bool" @@ -13273,7 +13310,7 @@ defs["igSliderInt"][1]["defaults"] = {} defs["igSliderInt"][1]["defaults"]["flags"] = "0" defs["igSliderInt"][1]["defaults"]["format"] = "\"%d\"" defs["igSliderInt"][1]["funcname"] = "SliderInt" -defs["igSliderInt"][1]["location"] = "imgui:557" +defs["igSliderInt"][1]["location"] = "imgui:560" defs["igSliderInt"][1]["namespace"] = "ImGui" defs["igSliderInt"][1]["ov_cimguiname"] = "igSliderInt" defs["igSliderInt"][1]["ret"] = "bool" @@ -13309,7 +13346,7 @@ defs["igSliderInt2"][1]["defaults"] = {} defs["igSliderInt2"][1]["defaults"]["flags"] = "0" defs["igSliderInt2"][1]["defaults"]["format"] = "\"%d\"" defs["igSliderInt2"][1]["funcname"] = "SliderInt2" -defs["igSliderInt2"][1]["location"] = "imgui:558" +defs["igSliderInt2"][1]["location"] = "imgui:561" defs["igSliderInt2"][1]["namespace"] = "ImGui" defs["igSliderInt2"][1]["ov_cimguiname"] = "igSliderInt2" defs["igSliderInt2"][1]["ret"] = "bool" @@ -13345,7 +13382,7 @@ defs["igSliderInt3"][1]["defaults"] = {} defs["igSliderInt3"][1]["defaults"]["flags"] = "0" defs["igSliderInt3"][1]["defaults"]["format"] = "\"%d\"" defs["igSliderInt3"][1]["funcname"] = "SliderInt3" -defs["igSliderInt3"][1]["location"] = "imgui:559" +defs["igSliderInt3"][1]["location"] = "imgui:562" defs["igSliderInt3"][1]["namespace"] = "ImGui" defs["igSliderInt3"][1]["ov_cimguiname"] = "igSliderInt3" defs["igSliderInt3"][1]["ret"] = "bool" @@ -13381,7 +13418,7 @@ defs["igSliderInt4"][1]["defaults"] = {} defs["igSliderInt4"][1]["defaults"]["flags"] = "0" defs["igSliderInt4"][1]["defaults"]["format"] = "\"%d\"" defs["igSliderInt4"][1]["funcname"] = "SliderInt4" -defs["igSliderInt4"][1]["location"] = "imgui:560" +defs["igSliderInt4"][1]["location"] = "imgui:563" defs["igSliderInt4"][1]["namespace"] = "ImGui" defs["igSliderInt4"][1]["ov_cimguiname"] = "igSliderInt4" defs["igSliderInt4"][1]["ret"] = "bool" @@ -13420,7 +13457,7 @@ defs["igSliderScalar"][1]["defaults"] = {} defs["igSliderScalar"][1]["defaults"]["flags"] = "0" defs["igSliderScalar"][1]["defaults"]["format"] = "NULL" defs["igSliderScalar"][1]["funcname"] = "SliderScalar" -defs["igSliderScalar"][1]["location"] = "imgui:561" +defs["igSliderScalar"][1]["location"] = "imgui:564" defs["igSliderScalar"][1]["namespace"] = "ImGui" defs["igSliderScalar"][1]["ov_cimguiname"] = "igSliderScalar" defs["igSliderScalar"][1]["ret"] = "bool" @@ -13462,7 +13499,7 @@ defs["igSliderScalarN"][1]["defaults"] = {} defs["igSliderScalarN"][1]["defaults"]["flags"] = "0" defs["igSliderScalarN"][1]["defaults"]["format"] = "NULL" defs["igSliderScalarN"][1]["funcname"] = "SliderScalarN" -defs["igSliderScalarN"][1]["location"] = "imgui:562" +defs["igSliderScalarN"][1]["location"] = "imgui:565" defs["igSliderScalarN"][1]["namespace"] = "ImGui" defs["igSliderScalarN"][1]["ov_cimguiname"] = "igSliderScalarN" defs["igSliderScalarN"][1]["ret"] = "bool" @@ -13481,7 +13518,7 @@ defs["igSmallButton"][1]["call_args"] = "(label)" defs["igSmallButton"][1]["cimguiname"] = "igSmallButton" defs["igSmallButton"][1]["defaults"] = {} defs["igSmallButton"][1]["funcname"] = "SmallButton" -defs["igSmallButton"][1]["location"] = "imgui:500" +defs["igSmallButton"][1]["location"] = "imgui:503" defs["igSmallButton"][1]["namespace"] = "ImGui" defs["igSmallButton"][1]["ov_cimguiname"] = "igSmallButton" defs["igSmallButton"][1]["ret"] = "bool" @@ -13497,7 +13534,7 @@ defs["igSpacing"][1]["call_args"] = "()" defs["igSpacing"][1]["cimguiname"] = "igSpacing" defs["igSpacing"][1]["defaults"] = {} defs["igSpacing"][1]["funcname"] = "Spacing" -defs["igSpacing"][1]["location"] = "imgui:440" +defs["igSpacing"][1]["location"] = "imgui:443" defs["igSpacing"][1]["namespace"] = "ImGui" defs["igSpacing"][1]["ov_cimguiname"] = "igSpacing" defs["igSpacing"][1]["ret"] = "void" @@ -13517,7 +13554,7 @@ defs["igStyleColorsClassic"][1]["cimguiname"] = "igStyleColorsClassic" defs["igStyleColorsClassic"][1]["defaults"] = {} defs["igStyleColorsClassic"][1]["defaults"]["dst"] = "NULL" defs["igStyleColorsClassic"][1]["funcname"] = "StyleColorsClassic" -defs["igStyleColorsClassic"][1]["location"] = "imgui:317" +defs["igStyleColorsClassic"][1]["location"] = "imgui:321" defs["igStyleColorsClassic"][1]["namespace"] = "ImGui" defs["igStyleColorsClassic"][1]["ov_cimguiname"] = "igStyleColorsClassic" defs["igStyleColorsClassic"][1]["ret"] = "void" @@ -13537,7 +13574,7 @@ defs["igStyleColorsDark"][1]["cimguiname"] = "igStyleColorsDark" defs["igStyleColorsDark"][1]["defaults"] = {} defs["igStyleColorsDark"][1]["defaults"]["dst"] = "NULL" defs["igStyleColorsDark"][1]["funcname"] = "StyleColorsDark" -defs["igStyleColorsDark"][1]["location"] = "imgui:315" +defs["igStyleColorsDark"][1]["location"] = "imgui:319" defs["igStyleColorsDark"][1]["namespace"] = "ImGui" defs["igStyleColorsDark"][1]["ov_cimguiname"] = "igStyleColorsDark" defs["igStyleColorsDark"][1]["ret"] = "void" @@ -13557,7 +13594,7 @@ defs["igStyleColorsLight"][1]["cimguiname"] = "igStyleColorsLight" defs["igStyleColorsLight"][1]["defaults"] = {} defs["igStyleColorsLight"][1]["defaults"]["dst"] = "NULL" defs["igStyleColorsLight"][1]["funcname"] = "StyleColorsLight" -defs["igStyleColorsLight"][1]["location"] = "imgui:316" +defs["igStyleColorsLight"][1]["location"] = "imgui:320" defs["igStyleColorsLight"][1]["namespace"] = "ImGui" defs["igStyleColorsLight"][1]["ov_cimguiname"] = "igStyleColorsLight" defs["igStyleColorsLight"][1]["ret"] = "void" @@ -13580,7 +13617,7 @@ defs["igTabItemButton"][1]["cimguiname"] = "igTabItemButton" defs["igTabItemButton"][1]["defaults"] = {} defs["igTabItemButton"][1]["defaults"]["flags"] = "0" defs["igTabItemButton"][1]["funcname"] = "TabItemButton" -defs["igTabItemButton"][1]["location"] = "imgui:788" +defs["igTabItemButton"][1]["location"] = "imgui:791" defs["igTabItemButton"][1]["namespace"] = "ImGui" defs["igTabItemButton"][1]["ov_cimguiname"] = "igTabItemButton" defs["igTabItemButton"][1]["ret"] = "bool" @@ -13596,7 +13633,7 @@ defs["igTableGetColumnCount"][1]["call_args"] = "()" defs["igTableGetColumnCount"][1]["cimguiname"] = "igTableGetColumnCount" defs["igTableGetColumnCount"][1]["defaults"] = {} defs["igTableGetColumnCount"][1]["funcname"] = "TableGetColumnCount" -defs["igTableGetColumnCount"][1]["location"] = "imgui:764" +defs["igTableGetColumnCount"][1]["location"] = "imgui:767" defs["igTableGetColumnCount"][1]["namespace"] = "ImGui" defs["igTableGetColumnCount"][1]["ov_cimguiname"] = "igTableGetColumnCount" defs["igTableGetColumnCount"][1]["ret"] = "int" @@ -13616,7 +13653,7 @@ defs["igTableGetColumnFlags"][1]["cimguiname"] = "igTableGetColumnFlags" defs["igTableGetColumnFlags"][1]["defaults"] = {} defs["igTableGetColumnFlags"][1]["defaults"]["column_n"] = "-1" defs["igTableGetColumnFlags"][1]["funcname"] = "TableGetColumnFlags" -defs["igTableGetColumnFlags"][1]["location"] = "imgui:768" +defs["igTableGetColumnFlags"][1]["location"] = "imgui:771" defs["igTableGetColumnFlags"][1]["namespace"] = "ImGui" defs["igTableGetColumnFlags"][1]["ov_cimguiname"] = "igTableGetColumnFlags" defs["igTableGetColumnFlags"][1]["ret"] = "ImGuiTableColumnFlags" @@ -13632,7 +13669,7 @@ defs["igTableGetColumnIndex"][1]["call_args"] = "()" defs["igTableGetColumnIndex"][1]["cimguiname"] = "igTableGetColumnIndex" defs["igTableGetColumnIndex"][1]["defaults"] = {} defs["igTableGetColumnIndex"][1]["funcname"] = "TableGetColumnIndex" -defs["igTableGetColumnIndex"][1]["location"] = "imgui:765" +defs["igTableGetColumnIndex"][1]["location"] = "imgui:768" defs["igTableGetColumnIndex"][1]["namespace"] = "ImGui" defs["igTableGetColumnIndex"][1]["ov_cimguiname"] = "igTableGetColumnIndex" defs["igTableGetColumnIndex"][1]["ret"] = "int" @@ -13652,7 +13689,7 @@ defs["igTableGetColumnName"][1]["cimguiname"] = "igTableGetColumnName" defs["igTableGetColumnName"][1]["defaults"] = {} defs["igTableGetColumnName"][1]["defaults"]["column_n"] = "-1" defs["igTableGetColumnName"][1]["funcname"] = "TableGetColumnName" -defs["igTableGetColumnName"][1]["location"] = "imgui:767" +defs["igTableGetColumnName"][1]["location"] = "imgui:770" defs["igTableGetColumnName"][1]["namespace"] = "ImGui" defs["igTableGetColumnName"][1]["ov_cimguiname"] = "igTableGetColumnName" defs["igTableGetColumnName"][1]["ret"] = "const char*" @@ -13668,7 +13705,7 @@ defs["igTableGetRowIndex"][1]["call_args"] = "()" defs["igTableGetRowIndex"][1]["cimguiname"] = "igTableGetRowIndex" defs["igTableGetRowIndex"][1]["defaults"] = {} defs["igTableGetRowIndex"][1]["funcname"] = "TableGetRowIndex" -defs["igTableGetRowIndex"][1]["location"] = "imgui:766" +defs["igTableGetRowIndex"][1]["location"] = "imgui:769" defs["igTableGetRowIndex"][1]["namespace"] = "ImGui" defs["igTableGetRowIndex"][1]["ov_cimguiname"] = "igTableGetRowIndex" defs["igTableGetRowIndex"][1]["ret"] = "int" @@ -13684,7 +13721,7 @@ defs["igTableGetSortSpecs"][1]["call_args"] = "()" defs["igTableGetSortSpecs"][1]["cimguiname"] = "igTableGetSortSpecs" defs["igTableGetSortSpecs"][1]["defaults"] = {} defs["igTableGetSortSpecs"][1]["funcname"] = "TableGetSortSpecs" -defs["igTableGetSortSpecs"][1]["location"] = "imgui:760" +defs["igTableGetSortSpecs"][1]["location"] = "imgui:763" defs["igTableGetSortSpecs"][1]["namespace"] = "ImGui" defs["igTableGetSortSpecs"][1]["ov_cimguiname"] = "igTableGetSortSpecs" defs["igTableGetSortSpecs"][1]["ret"] = "ImGuiTableSortSpecs*" @@ -13703,7 +13740,7 @@ defs["igTableHeader"][1]["call_args"] = "(label)" defs["igTableHeader"][1]["cimguiname"] = "igTableHeader" defs["igTableHeader"][1]["defaults"] = {} defs["igTableHeader"][1]["funcname"] = "TableHeader" -defs["igTableHeader"][1]["location"] = "imgui:752" +defs["igTableHeader"][1]["location"] = "imgui:755" defs["igTableHeader"][1]["namespace"] = "ImGui" defs["igTableHeader"][1]["ov_cimguiname"] = "igTableHeader" defs["igTableHeader"][1]["ret"] = "void" @@ -13719,7 +13756,7 @@ defs["igTableHeadersRow"][1]["call_args"] = "()" defs["igTableHeadersRow"][1]["cimguiname"] = "igTableHeadersRow" defs["igTableHeadersRow"][1]["defaults"] = {} defs["igTableHeadersRow"][1]["funcname"] = "TableHeadersRow" -defs["igTableHeadersRow"][1]["location"] = "imgui:751" +defs["igTableHeadersRow"][1]["location"] = "imgui:754" defs["igTableHeadersRow"][1]["namespace"] = "ImGui" defs["igTableHeadersRow"][1]["ov_cimguiname"] = "igTableHeadersRow" defs["igTableHeadersRow"][1]["ret"] = "void" @@ -13735,7 +13772,7 @@ defs["igTableNextColumn"][1]["call_args"] = "()" defs["igTableNextColumn"][1]["cimguiname"] = "igTableNextColumn" defs["igTableNextColumn"][1]["defaults"] = {} defs["igTableNextColumn"][1]["funcname"] = "TableNextColumn" -defs["igTableNextColumn"][1]["location"] = "imgui:738" +defs["igTableNextColumn"][1]["location"] = "imgui:741" defs["igTableNextColumn"][1]["namespace"] = "ImGui" defs["igTableNextColumn"][1]["ov_cimguiname"] = "igTableNextColumn" defs["igTableNextColumn"][1]["ret"] = "bool" @@ -13759,7 +13796,7 @@ defs["igTableNextRow"][1]["defaults"] = {} defs["igTableNextRow"][1]["defaults"]["min_row_height"] = "0.0f" defs["igTableNextRow"][1]["defaults"]["row_flags"] = "0" defs["igTableNextRow"][1]["funcname"] = "TableNextRow" -defs["igTableNextRow"][1]["location"] = "imgui:737" +defs["igTableNextRow"][1]["location"] = "imgui:740" defs["igTableNextRow"][1]["namespace"] = "ImGui" defs["igTableNextRow"][1]["ov_cimguiname"] = "igTableNextRow" defs["igTableNextRow"][1]["ret"] = "void" @@ -13785,7 +13822,7 @@ defs["igTableSetBgColor"][1]["cimguiname"] = "igTableSetBgColor" defs["igTableSetBgColor"][1]["defaults"] = {} defs["igTableSetBgColor"][1]["defaults"]["column_n"] = "-1" defs["igTableSetBgColor"][1]["funcname"] = "TableSetBgColor" -defs["igTableSetBgColor"][1]["location"] = "imgui:770" +defs["igTableSetBgColor"][1]["location"] = "imgui:773" defs["igTableSetBgColor"][1]["namespace"] = "ImGui" defs["igTableSetBgColor"][1]["ov_cimguiname"] = "igTableSetBgColor" defs["igTableSetBgColor"][1]["ret"] = "void" @@ -13807,7 +13844,7 @@ defs["igTableSetColumnEnabled"][1]["call_args"] = "(column_n,v)" defs["igTableSetColumnEnabled"][1]["cimguiname"] = "igTableSetColumnEnabled" defs["igTableSetColumnEnabled"][1]["defaults"] = {} defs["igTableSetColumnEnabled"][1]["funcname"] = "TableSetColumnEnabled" -defs["igTableSetColumnEnabled"][1]["location"] = "imgui:769" +defs["igTableSetColumnEnabled"][1]["location"] = "imgui:772" defs["igTableSetColumnEnabled"][1]["namespace"] = "ImGui" defs["igTableSetColumnEnabled"][1]["ov_cimguiname"] = "igTableSetColumnEnabled" defs["igTableSetColumnEnabled"][1]["ret"] = "void" @@ -13826,7 +13863,7 @@ defs["igTableSetColumnIndex"][1]["call_args"] = "(column_n)" defs["igTableSetColumnIndex"][1]["cimguiname"] = "igTableSetColumnIndex" defs["igTableSetColumnIndex"][1]["defaults"] = {} defs["igTableSetColumnIndex"][1]["funcname"] = "TableSetColumnIndex" -defs["igTableSetColumnIndex"][1]["location"] = "imgui:739" +defs["igTableSetColumnIndex"][1]["location"] = "imgui:742" defs["igTableSetColumnIndex"][1]["namespace"] = "ImGui" defs["igTableSetColumnIndex"][1]["ov_cimguiname"] = "igTableSetColumnIndex" defs["igTableSetColumnIndex"][1]["ret"] = "bool" @@ -13857,7 +13894,7 @@ defs["igTableSetupColumn"][1]["defaults"]["flags"] = "0" defs["igTableSetupColumn"][1]["defaults"]["init_width_or_weight"] = "0.0f" defs["igTableSetupColumn"][1]["defaults"]["user_id"] = "0" defs["igTableSetupColumn"][1]["funcname"] = "TableSetupColumn" -defs["igTableSetupColumn"][1]["location"] = "imgui:749" +defs["igTableSetupColumn"][1]["location"] = "imgui:752" defs["igTableSetupColumn"][1]["namespace"] = "ImGui" defs["igTableSetupColumn"][1]["ov_cimguiname"] = "igTableSetupColumn" defs["igTableSetupColumn"][1]["ret"] = "void" @@ -13879,7 +13916,7 @@ defs["igTableSetupScrollFreeze"][1]["call_args"] = "(cols,rows)" defs["igTableSetupScrollFreeze"][1]["cimguiname"] = "igTableSetupScrollFreeze" defs["igTableSetupScrollFreeze"][1]["defaults"] = {} defs["igTableSetupScrollFreeze"][1]["funcname"] = "TableSetupScrollFreeze" -defs["igTableSetupScrollFreeze"][1]["location"] = "imgui:750" +defs["igTableSetupScrollFreeze"][1]["location"] = "imgui:753" defs["igTableSetupScrollFreeze"][1]["namespace"] = "ImGui" defs["igTableSetupScrollFreeze"][1]["ov_cimguiname"] = "igTableSetupScrollFreeze" defs["igTableSetupScrollFreeze"][1]["ret"] = "void" @@ -13902,7 +13939,7 @@ defs["igText"][1]["cimguiname"] = "igText" defs["igText"][1]["defaults"] = {} defs["igText"][1]["funcname"] = "Text" defs["igText"][1]["isvararg"] = "...)" -defs["igText"][1]["location"] = "imgui:483" +defs["igText"][1]["location"] = "imgui:486" defs["igText"][1]["namespace"] = "ImGui" defs["igText"][1]["ov_cimguiname"] = "igText" defs["igText"][1]["ret"] = "void" @@ -13928,7 +13965,7 @@ defs["igTextColored"][1]["cimguiname"] = "igTextColored" defs["igTextColored"][1]["defaults"] = {} defs["igTextColored"][1]["funcname"] = "TextColored" defs["igTextColored"][1]["isvararg"] = "...)" -defs["igTextColored"][1]["location"] = "imgui:485" +defs["igTextColored"][1]["location"] = "imgui:488" defs["igTextColored"][1]["namespace"] = "ImGui" defs["igTextColored"][1]["ov_cimguiname"] = "igTextColored" defs["igTextColored"][1]["ret"] = "void" @@ -13953,7 +13990,7 @@ defs["igTextColoredV"][1]["call_args"] = "(col,fmt,args)" defs["igTextColoredV"][1]["cimguiname"] = "igTextColoredV" defs["igTextColoredV"][1]["defaults"] = {} defs["igTextColoredV"][1]["funcname"] = "TextColoredV" -defs["igTextColoredV"][1]["location"] = "imgui:486" +defs["igTextColoredV"][1]["location"] = "imgui:489" defs["igTextColoredV"][1]["namespace"] = "ImGui" defs["igTextColoredV"][1]["ov_cimguiname"] = "igTextColoredV" defs["igTextColoredV"][1]["ret"] = "void" @@ -13976,7 +14013,7 @@ defs["igTextDisabled"][1]["cimguiname"] = "igTextDisabled" defs["igTextDisabled"][1]["defaults"] = {} defs["igTextDisabled"][1]["funcname"] = "TextDisabled" defs["igTextDisabled"][1]["isvararg"] = "...)" -defs["igTextDisabled"][1]["location"] = "imgui:487" +defs["igTextDisabled"][1]["location"] = "imgui:490" defs["igTextDisabled"][1]["namespace"] = "ImGui" defs["igTextDisabled"][1]["ov_cimguiname"] = "igTextDisabled" defs["igTextDisabled"][1]["ret"] = "void" @@ -13998,7 +14035,7 @@ defs["igTextDisabledV"][1]["call_args"] = "(fmt,args)" defs["igTextDisabledV"][1]["cimguiname"] = "igTextDisabledV" defs["igTextDisabledV"][1]["defaults"] = {} defs["igTextDisabledV"][1]["funcname"] = "TextDisabledV" -defs["igTextDisabledV"][1]["location"] = "imgui:488" +defs["igTextDisabledV"][1]["location"] = "imgui:491" defs["igTextDisabledV"][1]["namespace"] = "ImGui" defs["igTextDisabledV"][1]["ov_cimguiname"] = "igTextDisabledV" defs["igTextDisabledV"][1]["ret"] = "void" @@ -14021,7 +14058,7 @@ defs["igTextUnformatted"][1]["cimguiname"] = "igTextUnformatted" defs["igTextUnformatted"][1]["defaults"] = {} defs["igTextUnformatted"][1]["defaults"]["text_end"] = "NULL" defs["igTextUnformatted"][1]["funcname"] = "TextUnformatted" -defs["igTextUnformatted"][1]["location"] = "imgui:482" +defs["igTextUnformatted"][1]["location"] = "imgui:485" defs["igTextUnformatted"][1]["namespace"] = "ImGui" defs["igTextUnformatted"][1]["ov_cimguiname"] = "igTextUnformatted" defs["igTextUnformatted"][1]["ret"] = "void" @@ -14043,7 +14080,7 @@ defs["igTextV"][1]["call_args"] = "(fmt,args)" defs["igTextV"][1]["cimguiname"] = "igTextV" defs["igTextV"][1]["defaults"] = {} defs["igTextV"][1]["funcname"] = "TextV" -defs["igTextV"][1]["location"] = "imgui:484" +defs["igTextV"][1]["location"] = "imgui:487" defs["igTextV"][1]["namespace"] = "ImGui" defs["igTextV"][1]["ov_cimguiname"] = "igTextV" defs["igTextV"][1]["ret"] = "void" @@ -14066,7 +14103,7 @@ defs["igTextWrapped"][1]["cimguiname"] = "igTextWrapped" defs["igTextWrapped"][1]["defaults"] = {} defs["igTextWrapped"][1]["funcname"] = "TextWrapped" defs["igTextWrapped"][1]["isvararg"] = "...)" -defs["igTextWrapped"][1]["location"] = "imgui:489" +defs["igTextWrapped"][1]["location"] = "imgui:492" defs["igTextWrapped"][1]["namespace"] = "ImGui" defs["igTextWrapped"][1]["ov_cimguiname"] = "igTextWrapped" defs["igTextWrapped"][1]["ret"] = "void" @@ -14088,7 +14125,7 @@ defs["igTextWrappedV"][1]["call_args"] = "(fmt,args)" defs["igTextWrappedV"][1]["cimguiname"] = "igTextWrappedV" defs["igTextWrappedV"][1]["defaults"] = {} defs["igTextWrappedV"][1]["funcname"] = "TextWrappedV" -defs["igTextWrappedV"][1]["location"] = "imgui:490" +defs["igTextWrappedV"][1]["location"] = "imgui:493" defs["igTextWrappedV"][1]["namespace"] = "ImGui" defs["igTextWrappedV"][1]["ov_cimguiname"] = "igTextWrappedV" defs["igTextWrappedV"][1]["ret"] = "void" @@ -14107,7 +14144,7 @@ defs["igTreeNode"][1]["call_args"] = "(label)" defs["igTreeNode"][1]["cimguiname"] = "igTreeNode" defs["igTreeNode"][1]["defaults"] = {} defs["igTreeNode"][1]["funcname"] = "TreeNode" -defs["igTreeNode"][1]["location"] = "imgui:597" +defs["igTreeNode"][1]["location"] = "imgui:600" defs["igTreeNode"][1]["namespace"] = "ImGui" defs["igTreeNode"][1]["ov_cimguiname"] = "igTreeNodeStr" defs["igTreeNode"][1]["ret"] = "bool" @@ -14131,7 +14168,7 @@ defs["igTreeNode"][2]["cimguiname"] = "igTreeNode" defs["igTreeNode"][2]["defaults"] = {} defs["igTreeNode"][2]["funcname"] = "TreeNode" defs["igTreeNode"][2]["isvararg"] = "...)" -defs["igTreeNode"][2]["location"] = "imgui:598" +defs["igTreeNode"][2]["location"] = "imgui:601" defs["igTreeNode"][2]["namespace"] = "ImGui" defs["igTreeNode"][2]["ov_cimguiname"] = "igTreeNodeStrStr" defs["igTreeNode"][2]["ret"] = "bool" @@ -14155,7 +14192,7 @@ defs["igTreeNode"][3]["cimguiname"] = "igTreeNode" defs["igTreeNode"][3]["defaults"] = {} defs["igTreeNode"][3]["funcname"] = "TreeNode" defs["igTreeNode"][3]["isvararg"] = "...)" -defs["igTreeNode"][3]["location"] = "imgui:599" +defs["igTreeNode"][3]["location"] = "imgui:602" defs["igTreeNode"][3]["namespace"] = "ImGui" defs["igTreeNode"][3]["ov_cimguiname"] = "igTreeNodePtr" defs["igTreeNode"][3]["ret"] = "bool" @@ -14180,7 +14217,7 @@ defs["igTreeNodeEx"][1]["cimguiname"] = "igTreeNodeEx" defs["igTreeNodeEx"][1]["defaults"] = {} defs["igTreeNodeEx"][1]["defaults"]["flags"] = "0" defs["igTreeNodeEx"][1]["funcname"] = "TreeNodeEx" -defs["igTreeNodeEx"][1]["location"] = "imgui:602" +defs["igTreeNodeEx"][1]["location"] = "imgui:605" defs["igTreeNodeEx"][1]["namespace"] = "ImGui" defs["igTreeNodeEx"][1]["ov_cimguiname"] = "igTreeNodeExStr" defs["igTreeNodeEx"][1]["ret"] = "bool" @@ -14207,7 +14244,7 @@ defs["igTreeNodeEx"][2]["cimguiname"] = "igTreeNodeEx" defs["igTreeNodeEx"][2]["defaults"] = {} defs["igTreeNodeEx"][2]["funcname"] = "TreeNodeEx" defs["igTreeNodeEx"][2]["isvararg"] = "...)" -defs["igTreeNodeEx"][2]["location"] = "imgui:603" +defs["igTreeNodeEx"][2]["location"] = "imgui:606" defs["igTreeNodeEx"][2]["namespace"] = "ImGui" defs["igTreeNodeEx"][2]["ov_cimguiname"] = "igTreeNodeExStrStr" defs["igTreeNodeEx"][2]["ret"] = "bool" @@ -14234,7 +14271,7 @@ defs["igTreeNodeEx"][3]["cimguiname"] = "igTreeNodeEx" defs["igTreeNodeEx"][3]["defaults"] = {} defs["igTreeNodeEx"][3]["funcname"] = "TreeNodeEx" defs["igTreeNodeEx"][3]["isvararg"] = "...)" -defs["igTreeNodeEx"][3]["location"] = "imgui:604" +defs["igTreeNodeEx"][3]["location"] = "imgui:607" defs["igTreeNodeEx"][3]["namespace"] = "ImGui" defs["igTreeNodeEx"][3]["ov_cimguiname"] = "igTreeNodeExPtr" defs["igTreeNodeEx"][3]["ret"] = "bool" @@ -14264,7 +14301,7 @@ defs["igTreeNodeExV"][1]["call_args"] = "(str_id,flags,fmt,args)" defs["igTreeNodeExV"][1]["cimguiname"] = "igTreeNodeExV" defs["igTreeNodeExV"][1]["defaults"] = {} defs["igTreeNodeExV"][1]["funcname"] = "TreeNodeExV" -defs["igTreeNodeExV"][1]["location"] = "imgui:605" +defs["igTreeNodeExV"][1]["location"] = "imgui:608" defs["igTreeNodeExV"][1]["namespace"] = "ImGui" defs["igTreeNodeExV"][1]["ov_cimguiname"] = "igTreeNodeExVStr" defs["igTreeNodeExV"][1]["ret"] = "bool" @@ -14290,7 +14327,7 @@ defs["igTreeNodeExV"][2]["call_args"] = "(ptr_id,flags,fmt,args)" defs["igTreeNodeExV"][2]["cimguiname"] = "igTreeNodeExV" defs["igTreeNodeExV"][2]["defaults"] = {} defs["igTreeNodeExV"][2]["funcname"] = "TreeNodeExV" -defs["igTreeNodeExV"][2]["location"] = "imgui:606" +defs["igTreeNodeExV"][2]["location"] = "imgui:609" defs["igTreeNodeExV"][2]["namespace"] = "ImGui" defs["igTreeNodeExV"][2]["ov_cimguiname"] = "igTreeNodeExVPtr" defs["igTreeNodeExV"][2]["ret"] = "bool" @@ -14316,7 +14353,7 @@ defs["igTreeNodeV"][1]["call_args"] = "(str_id,fmt,args)" defs["igTreeNodeV"][1]["cimguiname"] = "igTreeNodeV" defs["igTreeNodeV"][1]["defaults"] = {} defs["igTreeNodeV"][1]["funcname"] = "TreeNodeV" -defs["igTreeNodeV"][1]["location"] = "imgui:600" +defs["igTreeNodeV"][1]["location"] = "imgui:603" defs["igTreeNodeV"][1]["namespace"] = "ImGui" defs["igTreeNodeV"][1]["ov_cimguiname"] = "igTreeNodeVStr" defs["igTreeNodeV"][1]["ret"] = "bool" @@ -14339,7 +14376,7 @@ defs["igTreeNodeV"][2]["call_args"] = "(ptr_id,fmt,args)" defs["igTreeNodeV"][2]["cimguiname"] = "igTreeNodeV" defs["igTreeNodeV"][2]["defaults"] = {} defs["igTreeNodeV"][2]["funcname"] = "TreeNodeV" -defs["igTreeNodeV"][2]["location"] = "imgui:601" +defs["igTreeNodeV"][2]["location"] = "imgui:604" defs["igTreeNodeV"][2]["namespace"] = "ImGui" defs["igTreeNodeV"][2]["ov_cimguiname"] = "igTreeNodeVPtr" defs["igTreeNodeV"][2]["ret"] = "bool" @@ -14356,7 +14393,7 @@ defs["igTreePop"][1]["call_args"] = "()" defs["igTreePop"][1]["cimguiname"] = "igTreePop" defs["igTreePop"][1]["defaults"] = {} defs["igTreePop"][1]["funcname"] = "TreePop" -defs["igTreePop"][1]["location"] = "imgui:609" +defs["igTreePop"][1]["location"] = "imgui:612" defs["igTreePop"][1]["namespace"] = "ImGui" defs["igTreePop"][1]["ov_cimguiname"] = "igTreePop" defs["igTreePop"][1]["ret"] = "void" @@ -14375,7 +14412,7 @@ defs["igTreePush"][1]["call_args"] = "(str_id)" defs["igTreePush"][1]["cimguiname"] = "igTreePush" defs["igTreePush"][1]["defaults"] = {} defs["igTreePush"][1]["funcname"] = "TreePush" -defs["igTreePush"][1]["location"] = "imgui:607" +defs["igTreePush"][1]["location"] = "imgui:610" defs["igTreePush"][1]["namespace"] = "ImGui" defs["igTreePush"][1]["ov_cimguiname"] = "igTreePushStr" defs["igTreePush"][1]["ret"] = "void" @@ -14393,7 +14430,7 @@ defs["igTreePush"][2]["cimguiname"] = "igTreePush" defs["igTreePush"][2]["defaults"] = {} defs["igTreePush"][2]["defaults"]["ptr_id"] = "NULL" defs["igTreePush"][2]["funcname"] = "TreePush" -defs["igTreePush"][2]["location"] = "imgui:608" +defs["igTreePush"][2]["location"] = "imgui:611" defs["igTreePush"][2]["namespace"] = "ImGui" defs["igTreePush"][2]["ov_cimguiname"] = "igTreePushPtr" defs["igTreePush"][2]["ret"] = "void" @@ -14414,7 +14451,7 @@ defs["igUnindent"][1]["cimguiname"] = "igUnindent" defs["igUnindent"][1]["defaults"] = {} defs["igUnindent"][1]["defaults"]["indent_w"] = "0.0f" defs["igUnindent"][1]["funcname"] = "Unindent" -defs["igUnindent"][1]["location"] = "imgui:443" +defs["igUnindent"][1]["location"] = "imgui:446" defs["igUnindent"][1]["namespace"] = "ImGui" defs["igUnindent"][1]["ov_cimguiname"] = "igUnindent" defs["igUnindent"][1]["ret"] = "void" @@ -14453,7 +14490,7 @@ defs["igVSliderFloat"][1]["defaults"] = {} defs["igVSliderFloat"][1]["defaults"]["flags"] = "0" defs["igVSliderFloat"][1]["defaults"]["format"] = "\"%.3f\"" defs["igVSliderFloat"][1]["funcname"] = "VSliderFloat" -defs["igVSliderFloat"][1]["location"] = "imgui:563" +defs["igVSliderFloat"][1]["location"] = "imgui:566" defs["igVSliderFloat"][1]["namespace"] = "ImGui" defs["igVSliderFloat"][1]["ov_cimguiname"] = "igVSliderFloat" defs["igVSliderFloat"][1]["ret"] = "bool" @@ -14492,7 +14529,7 @@ defs["igVSliderInt"][1]["defaults"] = {} defs["igVSliderInt"][1]["defaults"]["flags"] = "0" defs["igVSliderInt"][1]["defaults"]["format"] = "\"%d\"" defs["igVSliderInt"][1]["funcname"] = "VSliderInt" -defs["igVSliderInt"][1]["location"] = "imgui:564" +defs["igVSliderInt"][1]["location"] = "imgui:567" defs["igVSliderInt"][1]["namespace"] = "ImGui" defs["igVSliderInt"][1]["ov_cimguiname"] = "igVSliderInt" defs["igVSliderInt"][1]["ret"] = "bool" @@ -14534,7 +14571,7 @@ defs["igVSliderScalar"][1]["defaults"] = {} defs["igVSliderScalar"][1]["defaults"]["flags"] = "0" defs["igVSliderScalar"][1]["defaults"]["format"] = "NULL" defs["igVSliderScalar"][1]["funcname"] = "VSliderScalar" -defs["igVSliderScalar"][1]["location"] = "imgui:565" +defs["igVSliderScalar"][1]["location"] = "imgui:568" defs["igVSliderScalar"][1]["namespace"] = "ImGui" defs["igVSliderScalar"][1]["ov_cimguiname"] = "igVSliderScalar" defs["igVSliderScalar"][1]["ret"] = "bool" @@ -14556,7 +14593,7 @@ defs["igValue"][1]["call_args"] = "(prefix,b)" defs["igValue"][1]["cimguiname"] = "igValue" defs["igValue"][1]["defaults"] = {} defs["igValue"][1]["funcname"] = "Value" -defs["igValue"][1]["location"] = "imgui:641" +defs["igValue"][1]["location"] = "imgui:644" defs["igValue"][1]["namespace"] = "ImGui" defs["igValue"][1]["ov_cimguiname"] = "igValueBool" defs["igValue"][1]["ret"] = "void" @@ -14576,7 +14613,7 @@ defs["igValue"][2]["call_args"] = "(prefix,v)" defs["igValue"][2]["cimguiname"] = "igValue" defs["igValue"][2]["defaults"] = {} defs["igValue"][2]["funcname"] = "Value" -defs["igValue"][2]["location"] = "imgui:642" +defs["igValue"][2]["location"] = "imgui:645" defs["igValue"][2]["namespace"] = "ImGui" defs["igValue"][2]["ov_cimguiname"] = "igValueInt" defs["igValue"][2]["ret"] = "void" @@ -14596,7 +14633,7 @@ defs["igValue"][3]["call_args"] = "(prefix,v)" defs["igValue"][3]["cimguiname"] = "igValue" defs["igValue"][3]["defaults"] = {} defs["igValue"][3]["funcname"] = "Value" -defs["igValue"][3]["location"] = "imgui:643" +defs["igValue"][3]["location"] = "imgui:646" defs["igValue"][3]["namespace"] = "ImGui" defs["igValue"][3]["ov_cimguiname"] = "igValueUint" defs["igValue"][3]["ret"] = "void" @@ -14620,7 +14657,7 @@ defs["igValue"][4]["cimguiname"] = "igValue" defs["igValue"][4]["defaults"] = {} defs["igValue"][4]["defaults"]["float_format"] = "NULL" defs["igValue"][4]["funcname"] = "Value" -defs["igValue"][4]["location"] = "imgui:644" +defs["igValue"][4]["location"] = "imgui:647" defs["igValue"][4]["namespace"] = "ImGui" defs["igValue"][4]["ov_cimguiname"] = "igValueFloat" defs["igValue"][4]["ret"] = "void" diff --git a/imgui-sys/third-party/imgui-master/structs_and_enums.json b/imgui-sys/third-party/imgui-master/structs_and_enums.json index 13b07df9d..79ff009a5 100644 --- a/imgui-sys/third-party/imgui-master/structs_and_enums.json +++ b/imgui-sys/third-party/imgui-master/structs_and_enums.json @@ -887,6 +887,11 @@ "name": "ImGuiFocusedFlags_AnyWindow", "value": "1 << 2" }, + { + "calc_value": 8, + "name": "ImGuiFocusedFlags_NoPopupHierarchy", + "value": "1 << 3" + }, { "calc_value": 3, "name": "ImGuiFocusedFlags_RootAndChildWindows", @@ -916,26 +921,31 @@ }, { "calc_value": 8, - "name": "ImGuiHoveredFlags_AllowWhenBlockedByPopup", + "name": "ImGuiHoveredFlags_NoPopupHierarchy", "value": "1 << 3" }, { "calc_value": 32, - "name": "ImGuiHoveredFlags_AllowWhenBlockedByActiveItem", + "name": "ImGuiHoveredFlags_AllowWhenBlockedByPopup", "value": "1 << 5" }, { - "calc_value": 64, + "calc_value": 128, + "name": "ImGuiHoveredFlags_AllowWhenBlockedByActiveItem", + "value": "1 << 7" + }, + { + "calc_value": 256, "name": "ImGuiHoveredFlags_AllowWhenOverlapped", - "value": "1 << 6" + "value": "1 << 8" }, { - "calc_value": 128, + "calc_value": 512, "name": "ImGuiHoveredFlags_AllowWhenDisabled", - "value": "1 << 7" + "value": "1 << 9" }, { - "calc_value": 104, + "calc_value": 416, "name": "ImGuiHoveredFlags_RectOnly", "value": "ImGuiHoveredFlags_AllowWhenBlockedByPopup | ImGuiHoveredFlags_AllowWhenBlockedByActiveItem | ImGuiHoveredFlags_AllowWhenOverlapped" }, @@ -2373,72 +2383,72 @@ }, "enumtypes": [], "locations": { - "ImColor": "imgui:2226", - "ImDrawChannel": "imgui:2316", - "ImDrawCmd": "imgui:2275", - "ImDrawCmdHeader": "imgui:2308", - "ImDrawData": "imgui:2506", - "ImDrawFlags_": "imgui:2342", - "ImDrawList": "imgui:2380", - "ImDrawListFlags_": "imgui:2362", - "ImDrawListSplitter": "imgui:2325", - "ImDrawVert": "imgui:2293", - "ImFont": "imgui:2724", - "ImFontAtlas": "imgui:2622", - "ImFontAtlasCustomRect": "imgui:2584", - "ImFontAtlasFlags_": "imgui:2597", - "ImFontConfig": "imgui:2528", - "ImFontGlyph": "imgui:2557", - "ImFontGlyphRangesBuilder": "imgui:2569", - "ImGuiBackendFlags_": "imgui:1434", - "ImGuiButtonFlags_": "imgui:1541", - "ImGuiCol_": "imgui:1444", - "ImGuiColorEditFlags_": "imgui:1554", - "ImGuiComboFlags_": "imgui:1072", - "ImGuiCond_": "imgui:1646", - "ImGuiConfigFlags_": "imgui:1418", - "ImGuiDataType_": "imgui:1311", - "ImGuiDir_": "imgui:1327", - "ImGuiDragDropFlags_": "imgui:1289", - "ImGuiFocusedFlags_": "imgui:1261", - "ImGuiHoveredFlags_": "imgui:1273", - "ImGuiIO": "imgui:1812", - "ImGuiInputTextCallbackData": "imgui:1956", - "ImGuiInputTextFlags_": "imgui:985", - "ImGuiKeyModFlags_": "imgui:1374", - "ImGuiKey_": "imgui:1346", - "ImGuiListClipper": "imgui:2177", - "ImGuiMouseButton_": "imgui:1618", - "ImGuiMouseCursor_": "imgui:1628", - "ImGuiNavInput_": "imgui:1387", - "ImGuiOnceUponAFrame": "imgui:2055", - "ImGuiPayload": "imgui:1996", - "ImGuiPopupFlags_": "imgui:1045", - "ImGuiSelectableFlags_": "imgui:1061", - "ImGuiSizeCallbackData": "imgui:1987", - "ImGuiSliderFlags_": "imgui:1601", - "ImGuiSortDirection_": "imgui:1338", - "ImGuiStorage": "imgui:2117", - "ImGuiStoragePair": "imgui:2120", - "ImGuiStyle": "imgui:1757", - "ImGuiStyleVar_": "imgui:1509", - "ImGuiTabBarFlags_": "imgui:1086", - "ImGuiTabItemFlags_": "imgui:1102", - "ImGuiTableBgTarget_": "imgui:1252", - "ImGuiTableColumnFlags_": "imgui:1195", - "ImGuiTableColumnSortSpecs": "imgui:2018", - "ImGuiTableFlags_": "imgui:1138", - "ImGuiTableRowFlags_": "imgui:1237", - "ImGuiTableSortSpecs": "imgui:2032", - "ImGuiTextBuffer": "imgui:2090", - "ImGuiTextFilter": "imgui:2063", - "ImGuiTextRange": "imgui:2073", - "ImGuiTreeNodeFlags_": "imgui:1016", - "ImGuiViewport": "imgui:2795", - "ImGuiViewportFlags_": "imgui:2780", - "ImGuiWindowFlags_": "imgui:945", - "ImVec2": "imgui:256", - "ImVec4": "imgui:269" + "ImColor": "imgui:2241", + "ImDrawChannel": "imgui:2331", + "ImDrawCmd": "imgui:2290", + "ImDrawCmdHeader": "imgui:2323", + "ImDrawData": "imgui:2521", + "ImDrawFlags_": "imgui:2357", + "ImDrawList": "imgui:2395", + "ImDrawListFlags_": "imgui:2377", + "ImDrawListSplitter": "imgui:2340", + "ImDrawVert": "imgui:2308", + "ImFont": "imgui:2739", + "ImFontAtlas": "imgui:2637", + "ImFontAtlasCustomRect": "imgui:2599", + "ImFontAtlasFlags_": "imgui:2612", + "ImFontConfig": "imgui:2543", + "ImFontGlyph": "imgui:2572", + "ImFontGlyphRangesBuilder": "imgui:2584", + "ImGuiBackendFlags_": "imgui:1442", + "ImGuiButtonFlags_": "imgui:1549", + "ImGuiCol_": "imgui:1452", + "ImGuiColorEditFlags_": "imgui:1562", + "ImGuiComboFlags_": "imgui:1076", + "ImGuiCond_": "imgui:1654", + "ImGuiConfigFlags_": "imgui:1426", + "ImGuiDataType_": "imgui:1319", + "ImGuiDir_": "imgui:1335", + "ImGuiDragDropFlags_": "imgui:1297", + "ImGuiFocusedFlags_": "imgui:1265", + "ImGuiHoveredFlags_": "imgui:1279", + "ImGuiIO": "imgui:1820", + "ImGuiInputTextCallbackData": "imgui:1969", + "ImGuiInputTextFlags_": "imgui:989", + "ImGuiKeyModFlags_": "imgui:1382", + "ImGuiKey_": "imgui:1354", + "ImGuiListClipper": "imgui:2193", + "ImGuiMouseButton_": "imgui:1626", + "ImGuiMouseCursor_": "imgui:1636", + "ImGuiNavInput_": "imgui:1395", + "ImGuiOnceUponAFrame": "imgui:2068", + "ImGuiPayload": "imgui:2009", + "ImGuiPopupFlags_": "imgui:1049", + "ImGuiSelectableFlags_": "imgui:1065", + "ImGuiSizeCallbackData": "imgui:2000", + "ImGuiSliderFlags_": "imgui:1609", + "ImGuiSortDirection_": "imgui:1346", + "ImGuiStorage": "imgui:2130", + "ImGuiStoragePair": "imgui:2133", + "ImGuiStyle": "imgui:1765", + "ImGuiStyleVar_": "imgui:1517", + "ImGuiTabBarFlags_": "imgui:1090", + "ImGuiTabItemFlags_": "imgui:1106", + "ImGuiTableBgTarget_": "imgui:1256", + "ImGuiTableColumnFlags_": "imgui:1199", + "ImGuiTableColumnSortSpecs": "imgui:2031", + "ImGuiTableFlags_": "imgui:1142", + "ImGuiTableRowFlags_": "imgui:1241", + "ImGuiTableSortSpecs": "imgui:2045", + "ImGuiTextBuffer": "imgui:2103", + "ImGuiTextFilter": "imgui:2076", + "ImGuiTextRange": "imgui:2086", + "ImGuiTreeNodeFlags_": "imgui:1020", + "ImGuiViewport": "imgui:2810", + "ImGuiViewportFlags_": "imgui:2795", + "ImGuiWindowFlags_": "imgui:949", + "ImVec2": "imgui:259", + "ImVec4": "imgui:272" }, "structs": { "ImColor": [ @@ -3220,6 +3230,10 @@ "name": "MouseDelta", "type": "ImVec2" }, + { + "name": "WantCaptureMouseUnlessPopupClose", + "type": "bool" + }, { "name": "KeyMods", "type": "ImGuiKeyModFlags" @@ -3252,6 +3266,16 @@ "size": 5, "type": "bool" }, + { + "name": "MouseClickedCount[5]", + "size": 5, + "type": "ImU16" + }, + { + "name": "MouseClickedLastCount[5]", + "size": 5, + "type": "ImU16" + }, { "name": "MouseReleased[5]", "size": 5, @@ -3263,7 +3287,7 @@ "type": "bool" }, { - "name": "MouseDownWasDoubleClick[5]", + "name": "MouseDownOwnedUnlessPopupClose[5]", "size": 5, "type": "bool" }, @@ -3311,6 +3335,10 @@ "name": "PenPressure", "type": "float" }, + { + "name": "AppFocusLost", + "type": "bool" + }, { "name": "InputQueueSurrogate", "type": "ImWchar16" @@ -3384,14 +3412,6 @@ "name": "ItemsCount", "type": "int" }, - { - "name": "StepNo", - "type": "int" - }, - { - "name": "ItemsFrozen", - "type": "int" - }, { "name": "ItemsHeight", "type": "float" @@ -3399,6 +3419,10 @@ { "name": "StartPosY", "type": "float" + }, + { + "name": "TempData", + "type": "void*" } ], "ImGuiOnceUponAFrame": [ diff --git a/imgui-sys/third-party/imgui-master/structs_and_enums.lua b/imgui-sys/third-party/imgui-master/structs_and_enums.lua index b1c9a8966..ffe103e56 100644 --- a/imgui-sys/third-party/imgui-master/structs_and_enums.lua +++ b/imgui-sys/third-party/imgui-master/structs_and_enums.lua @@ -703,9 +703,13 @@ defs["enums"]["ImGuiFocusedFlags_"][4]["calc_value"] = 4 defs["enums"]["ImGuiFocusedFlags_"][4]["name"] = "ImGuiFocusedFlags_AnyWindow" defs["enums"]["ImGuiFocusedFlags_"][4]["value"] = "1 << 2" defs["enums"]["ImGuiFocusedFlags_"][5] = {} -defs["enums"]["ImGuiFocusedFlags_"][5]["calc_value"] = 3 -defs["enums"]["ImGuiFocusedFlags_"][5]["name"] = "ImGuiFocusedFlags_RootAndChildWindows" -defs["enums"]["ImGuiFocusedFlags_"][5]["value"] = "ImGuiFocusedFlags_RootWindow | ImGuiFocusedFlags_ChildWindows" +defs["enums"]["ImGuiFocusedFlags_"][5]["calc_value"] = 8 +defs["enums"]["ImGuiFocusedFlags_"][5]["name"] = "ImGuiFocusedFlags_NoPopupHierarchy" +defs["enums"]["ImGuiFocusedFlags_"][5]["value"] = "1 << 3" +defs["enums"]["ImGuiFocusedFlags_"][6] = {} +defs["enums"]["ImGuiFocusedFlags_"][6]["calc_value"] = 3 +defs["enums"]["ImGuiFocusedFlags_"][6]["name"] = "ImGuiFocusedFlags_RootAndChildWindows" +defs["enums"]["ImGuiFocusedFlags_"][6]["value"] = "ImGuiFocusedFlags_RootWindow | ImGuiFocusedFlags_ChildWindows" defs["enums"]["ImGuiHoveredFlags_"] = {} defs["enums"]["ImGuiHoveredFlags_"][1] = {} defs["enums"]["ImGuiHoveredFlags_"][1]["calc_value"] = 0 @@ -725,28 +729,32 @@ defs["enums"]["ImGuiHoveredFlags_"][4]["name"] = "ImGuiHoveredFlags_AnyWindow" defs["enums"]["ImGuiHoveredFlags_"][4]["value"] = "1 << 2" defs["enums"]["ImGuiHoveredFlags_"][5] = {} defs["enums"]["ImGuiHoveredFlags_"][5]["calc_value"] = 8 -defs["enums"]["ImGuiHoveredFlags_"][5]["name"] = "ImGuiHoveredFlags_AllowWhenBlockedByPopup" +defs["enums"]["ImGuiHoveredFlags_"][5]["name"] = "ImGuiHoveredFlags_NoPopupHierarchy" defs["enums"]["ImGuiHoveredFlags_"][5]["value"] = "1 << 3" defs["enums"]["ImGuiHoveredFlags_"][6] = {} defs["enums"]["ImGuiHoveredFlags_"][6]["calc_value"] = 32 -defs["enums"]["ImGuiHoveredFlags_"][6]["name"] = "ImGuiHoveredFlags_AllowWhenBlockedByActiveItem" +defs["enums"]["ImGuiHoveredFlags_"][6]["name"] = "ImGuiHoveredFlags_AllowWhenBlockedByPopup" defs["enums"]["ImGuiHoveredFlags_"][6]["value"] = "1 << 5" defs["enums"]["ImGuiHoveredFlags_"][7] = {} -defs["enums"]["ImGuiHoveredFlags_"][7]["calc_value"] = 64 -defs["enums"]["ImGuiHoveredFlags_"][7]["name"] = "ImGuiHoveredFlags_AllowWhenOverlapped" -defs["enums"]["ImGuiHoveredFlags_"][7]["value"] = "1 << 6" +defs["enums"]["ImGuiHoveredFlags_"][7]["calc_value"] = 128 +defs["enums"]["ImGuiHoveredFlags_"][7]["name"] = "ImGuiHoveredFlags_AllowWhenBlockedByActiveItem" +defs["enums"]["ImGuiHoveredFlags_"][7]["value"] = "1 << 7" defs["enums"]["ImGuiHoveredFlags_"][8] = {} -defs["enums"]["ImGuiHoveredFlags_"][8]["calc_value"] = 128 -defs["enums"]["ImGuiHoveredFlags_"][8]["name"] = "ImGuiHoveredFlags_AllowWhenDisabled" -defs["enums"]["ImGuiHoveredFlags_"][8]["value"] = "1 << 7" +defs["enums"]["ImGuiHoveredFlags_"][8]["calc_value"] = 256 +defs["enums"]["ImGuiHoveredFlags_"][8]["name"] = "ImGuiHoveredFlags_AllowWhenOverlapped" +defs["enums"]["ImGuiHoveredFlags_"][8]["value"] = "1 << 8" defs["enums"]["ImGuiHoveredFlags_"][9] = {} -defs["enums"]["ImGuiHoveredFlags_"][9]["calc_value"] = 104 -defs["enums"]["ImGuiHoveredFlags_"][9]["name"] = "ImGuiHoveredFlags_RectOnly" -defs["enums"]["ImGuiHoveredFlags_"][9]["value"] = "ImGuiHoveredFlags_AllowWhenBlockedByPopup | ImGuiHoveredFlags_AllowWhenBlockedByActiveItem | ImGuiHoveredFlags_AllowWhenOverlapped" +defs["enums"]["ImGuiHoveredFlags_"][9]["calc_value"] = 512 +defs["enums"]["ImGuiHoveredFlags_"][9]["name"] = "ImGuiHoveredFlags_AllowWhenDisabled" +defs["enums"]["ImGuiHoveredFlags_"][9]["value"] = "1 << 9" defs["enums"]["ImGuiHoveredFlags_"][10] = {} -defs["enums"]["ImGuiHoveredFlags_"][10]["calc_value"] = 3 -defs["enums"]["ImGuiHoveredFlags_"][10]["name"] = "ImGuiHoveredFlags_RootAndChildWindows" -defs["enums"]["ImGuiHoveredFlags_"][10]["value"] = "ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_ChildWindows" +defs["enums"]["ImGuiHoveredFlags_"][10]["calc_value"] = 416 +defs["enums"]["ImGuiHoveredFlags_"][10]["name"] = "ImGuiHoveredFlags_RectOnly" +defs["enums"]["ImGuiHoveredFlags_"][10]["value"] = "ImGuiHoveredFlags_AllowWhenBlockedByPopup | ImGuiHoveredFlags_AllowWhenBlockedByActiveItem | ImGuiHoveredFlags_AllowWhenOverlapped" +defs["enums"]["ImGuiHoveredFlags_"][11] = {} +defs["enums"]["ImGuiHoveredFlags_"][11]["calc_value"] = 3 +defs["enums"]["ImGuiHoveredFlags_"][11]["name"] = "ImGuiHoveredFlags_RootAndChildWindows" +defs["enums"]["ImGuiHoveredFlags_"][11]["value"] = "ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_ChildWindows" defs["enums"]["ImGuiInputTextFlags_"] = {} defs["enums"]["ImGuiInputTextFlags_"][1] = {} defs["enums"]["ImGuiInputTextFlags_"][1]["calc_value"] = 0 @@ -1877,72 +1885,72 @@ defs["enums"]["ImGuiWindowFlags_"][30]["name"] = "ImGuiWindowFlags_ChildMenu" defs["enums"]["ImGuiWindowFlags_"][30]["value"] = "1 << 28" defs["enumtypes"] = {} defs["locations"] = {} -defs["locations"]["ImColor"] = "imgui:2226" -defs["locations"]["ImDrawChannel"] = "imgui:2316" -defs["locations"]["ImDrawCmd"] = "imgui:2275" -defs["locations"]["ImDrawCmdHeader"] = "imgui:2308" -defs["locations"]["ImDrawData"] = "imgui:2506" -defs["locations"]["ImDrawFlags_"] = "imgui:2342" -defs["locations"]["ImDrawList"] = "imgui:2380" -defs["locations"]["ImDrawListFlags_"] = "imgui:2362" -defs["locations"]["ImDrawListSplitter"] = "imgui:2325" -defs["locations"]["ImDrawVert"] = "imgui:2293" -defs["locations"]["ImFont"] = "imgui:2724" -defs["locations"]["ImFontAtlas"] = "imgui:2622" -defs["locations"]["ImFontAtlasCustomRect"] = "imgui:2584" -defs["locations"]["ImFontAtlasFlags_"] = "imgui:2597" -defs["locations"]["ImFontConfig"] = "imgui:2528" -defs["locations"]["ImFontGlyph"] = "imgui:2557" -defs["locations"]["ImFontGlyphRangesBuilder"] = "imgui:2569" -defs["locations"]["ImGuiBackendFlags_"] = "imgui:1434" -defs["locations"]["ImGuiButtonFlags_"] = "imgui:1541" -defs["locations"]["ImGuiCol_"] = "imgui:1444" -defs["locations"]["ImGuiColorEditFlags_"] = "imgui:1554" -defs["locations"]["ImGuiComboFlags_"] = "imgui:1072" -defs["locations"]["ImGuiCond_"] = "imgui:1646" -defs["locations"]["ImGuiConfigFlags_"] = "imgui:1418" -defs["locations"]["ImGuiDataType_"] = "imgui:1311" -defs["locations"]["ImGuiDir_"] = "imgui:1327" -defs["locations"]["ImGuiDragDropFlags_"] = "imgui:1289" -defs["locations"]["ImGuiFocusedFlags_"] = "imgui:1261" -defs["locations"]["ImGuiHoveredFlags_"] = "imgui:1273" -defs["locations"]["ImGuiIO"] = "imgui:1812" -defs["locations"]["ImGuiInputTextCallbackData"] = "imgui:1956" -defs["locations"]["ImGuiInputTextFlags_"] = "imgui:985" -defs["locations"]["ImGuiKeyModFlags_"] = "imgui:1374" -defs["locations"]["ImGuiKey_"] = "imgui:1346" -defs["locations"]["ImGuiListClipper"] = "imgui:2177" -defs["locations"]["ImGuiMouseButton_"] = "imgui:1618" -defs["locations"]["ImGuiMouseCursor_"] = "imgui:1628" -defs["locations"]["ImGuiNavInput_"] = "imgui:1387" -defs["locations"]["ImGuiOnceUponAFrame"] = "imgui:2055" -defs["locations"]["ImGuiPayload"] = "imgui:1996" -defs["locations"]["ImGuiPopupFlags_"] = "imgui:1045" -defs["locations"]["ImGuiSelectableFlags_"] = "imgui:1061" -defs["locations"]["ImGuiSizeCallbackData"] = "imgui:1987" -defs["locations"]["ImGuiSliderFlags_"] = "imgui:1601" -defs["locations"]["ImGuiSortDirection_"] = "imgui:1338" -defs["locations"]["ImGuiStorage"] = "imgui:2117" -defs["locations"]["ImGuiStoragePair"] = "imgui:2120" -defs["locations"]["ImGuiStyle"] = "imgui:1757" -defs["locations"]["ImGuiStyleVar_"] = "imgui:1509" -defs["locations"]["ImGuiTabBarFlags_"] = "imgui:1086" -defs["locations"]["ImGuiTabItemFlags_"] = "imgui:1102" -defs["locations"]["ImGuiTableBgTarget_"] = "imgui:1252" -defs["locations"]["ImGuiTableColumnFlags_"] = "imgui:1195" -defs["locations"]["ImGuiTableColumnSortSpecs"] = "imgui:2018" -defs["locations"]["ImGuiTableFlags_"] = "imgui:1138" -defs["locations"]["ImGuiTableRowFlags_"] = "imgui:1237" -defs["locations"]["ImGuiTableSortSpecs"] = "imgui:2032" -defs["locations"]["ImGuiTextBuffer"] = "imgui:2090" -defs["locations"]["ImGuiTextFilter"] = "imgui:2063" -defs["locations"]["ImGuiTextRange"] = "imgui:2073" -defs["locations"]["ImGuiTreeNodeFlags_"] = "imgui:1016" -defs["locations"]["ImGuiViewport"] = "imgui:2795" -defs["locations"]["ImGuiViewportFlags_"] = "imgui:2780" -defs["locations"]["ImGuiWindowFlags_"] = "imgui:945" -defs["locations"]["ImVec2"] = "imgui:256" -defs["locations"]["ImVec4"] = "imgui:269" +defs["locations"]["ImColor"] = "imgui:2241" +defs["locations"]["ImDrawChannel"] = "imgui:2331" +defs["locations"]["ImDrawCmd"] = "imgui:2290" +defs["locations"]["ImDrawCmdHeader"] = "imgui:2323" +defs["locations"]["ImDrawData"] = "imgui:2521" +defs["locations"]["ImDrawFlags_"] = "imgui:2357" +defs["locations"]["ImDrawList"] = "imgui:2395" +defs["locations"]["ImDrawListFlags_"] = "imgui:2377" +defs["locations"]["ImDrawListSplitter"] = "imgui:2340" +defs["locations"]["ImDrawVert"] = "imgui:2308" +defs["locations"]["ImFont"] = "imgui:2739" +defs["locations"]["ImFontAtlas"] = "imgui:2637" +defs["locations"]["ImFontAtlasCustomRect"] = "imgui:2599" +defs["locations"]["ImFontAtlasFlags_"] = "imgui:2612" +defs["locations"]["ImFontConfig"] = "imgui:2543" +defs["locations"]["ImFontGlyph"] = "imgui:2572" +defs["locations"]["ImFontGlyphRangesBuilder"] = "imgui:2584" +defs["locations"]["ImGuiBackendFlags_"] = "imgui:1442" +defs["locations"]["ImGuiButtonFlags_"] = "imgui:1549" +defs["locations"]["ImGuiCol_"] = "imgui:1452" +defs["locations"]["ImGuiColorEditFlags_"] = "imgui:1562" +defs["locations"]["ImGuiComboFlags_"] = "imgui:1076" +defs["locations"]["ImGuiCond_"] = "imgui:1654" +defs["locations"]["ImGuiConfigFlags_"] = "imgui:1426" +defs["locations"]["ImGuiDataType_"] = "imgui:1319" +defs["locations"]["ImGuiDir_"] = "imgui:1335" +defs["locations"]["ImGuiDragDropFlags_"] = "imgui:1297" +defs["locations"]["ImGuiFocusedFlags_"] = "imgui:1265" +defs["locations"]["ImGuiHoveredFlags_"] = "imgui:1279" +defs["locations"]["ImGuiIO"] = "imgui:1820" +defs["locations"]["ImGuiInputTextCallbackData"] = "imgui:1969" +defs["locations"]["ImGuiInputTextFlags_"] = "imgui:989" +defs["locations"]["ImGuiKeyModFlags_"] = "imgui:1382" +defs["locations"]["ImGuiKey_"] = "imgui:1354" +defs["locations"]["ImGuiListClipper"] = "imgui:2193" +defs["locations"]["ImGuiMouseButton_"] = "imgui:1626" +defs["locations"]["ImGuiMouseCursor_"] = "imgui:1636" +defs["locations"]["ImGuiNavInput_"] = "imgui:1395" +defs["locations"]["ImGuiOnceUponAFrame"] = "imgui:2068" +defs["locations"]["ImGuiPayload"] = "imgui:2009" +defs["locations"]["ImGuiPopupFlags_"] = "imgui:1049" +defs["locations"]["ImGuiSelectableFlags_"] = "imgui:1065" +defs["locations"]["ImGuiSizeCallbackData"] = "imgui:2000" +defs["locations"]["ImGuiSliderFlags_"] = "imgui:1609" +defs["locations"]["ImGuiSortDirection_"] = "imgui:1346" +defs["locations"]["ImGuiStorage"] = "imgui:2130" +defs["locations"]["ImGuiStoragePair"] = "imgui:2133" +defs["locations"]["ImGuiStyle"] = "imgui:1765" +defs["locations"]["ImGuiStyleVar_"] = "imgui:1517" +defs["locations"]["ImGuiTabBarFlags_"] = "imgui:1090" +defs["locations"]["ImGuiTabItemFlags_"] = "imgui:1106" +defs["locations"]["ImGuiTableBgTarget_"] = "imgui:1256" +defs["locations"]["ImGuiTableColumnFlags_"] = "imgui:1199" +defs["locations"]["ImGuiTableColumnSortSpecs"] = "imgui:2031" +defs["locations"]["ImGuiTableFlags_"] = "imgui:1142" +defs["locations"]["ImGuiTableRowFlags_"] = "imgui:1241" +defs["locations"]["ImGuiTableSortSpecs"] = "imgui:2045" +defs["locations"]["ImGuiTextBuffer"] = "imgui:2103" +defs["locations"]["ImGuiTextFilter"] = "imgui:2076" +defs["locations"]["ImGuiTextRange"] = "imgui:2086" +defs["locations"]["ImGuiTreeNodeFlags_"] = "imgui:1020" +defs["locations"]["ImGuiViewport"] = "imgui:2810" +defs["locations"]["ImGuiViewportFlags_"] = "imgui:2795" +defs["locations"]["ImGuiWindowFlags_"] = "imgui:949" +defs["locations"]["ImVec2"] = "imgui:259" +defs["locations"]["ImVec4"] = "imgui:272" defs["structs"] = {} defs["structs"]["ImColor"] = {} defs["structs"]["ImColor"][1] = {} @@ -2529,84 +2537,98 @@ defs["structs"]["ImGuiIO"][60] = {} defs["structs"]["ImGuiIO"][60]["name"] = "MouseDelta" defs["structs"]["ImGuiIO"][60]["type"] = "ImVec2" defs["structs"]["ImGuiIO"][61] = {} -defs["structs"]["ImGuiIO"][61]["name"] = "KeyMods" -defs["structs"]["ImGuiIO"][61]["type"] = "ImGuiKeyModFlags" +defs["structs"]["ImGuiIO"][61]["name"] = "WantCaptureMouseUnlessPopupClose" +defs["structs"]["ImGuiIO"][61]["type"] = "bool" defs["structs"]["ImGuiIO"][62] = {} -defs["structs"]["ImGuiIO"][62]["name"] = "KeyModsPrev" +defs["structs"]["ImGuiIO"][62]["name"] = "KeyMods" defs["structs"]["ImGuiIO"][62]["type"] = "ImGuiKeyModFlags" defs["structs"]["ImGuiIO"][63] = {} -defs["structs"]["ImGuiIO"][63]["name"] = "MousePosPrev" -defs["structs"]["ImGuiIO"][63]["type"] = "ImVec2" +defs["structs"]["ImGuiIO"][63]["name"] = "KeyModsPrev" +defs["structs"]["ImGuiIO"][63]["type"] = "ImGuiKeyModFlags" defs["structs"]["ImGuiIO"][64] = {} -defs["structs"]["ImGuiIO"][64]["name"] = "MouseClickedPos[5]" -defs["structs"]["ImGuiIO"][64]["size"] = 5 +defs["structs"]["ImGuiIO"][64]["name"] = "MousePosPrev" defs["structs"]["ImGuiIO"][64]["type"] = "ImVec2" defs["structs"]["ImGuiIO"][65] = {} -defs["structs"]["ImGuiIO"][65]["name"] = "MouseClickedTime[5]" +defs["structs"]["ImGuiIO"][65]["name"] = "MouseClickedPos[5]" defs["structs"]["ImGuiIO"][65]["size"] = 5 -defs["structs"]["ImGuiIO"][65]["type"] = "double" +defs["structs"]["ImGuiIO"][65]["type"] = "ImVec2" defs["structs"]["ImGuiIO"][66] = {} -defs["structs"]["ImGuiIO"][66]["name"] = "MouseClicked[5]" +defs["structs"]["ImGuiIO"][66]["name"] = "MouseClickedTime[5]" defs["structs"]["ImGuiIO"][66]["size"] = 5 -defs["structs"]["ImGuiIO"][66]["type"] = "bool" +defs["structs"]["ImGuiIO"][66]["type"] = "double" defs["structs"]["ImGuiIO"][67] = {} -defs["structs"]["ImGuiIO"][67]["name"] = "MouseDoubleClicked[5]" +defs["structs"]["ImGuiIO"][67]["name"] = "MouseClicked[5]" defs["structs"]["ImGuiIO"][67]["size"] = 5 defs["structs"]["ImGuiIO"][67]["type"] = "bool" defs["structs"]["ImGuiIO"][68] = {} -defs["structs"]["ImGuiIO"][68]["name"] = "MouseReleased[5]" +defs["structs"]["ImGuiIO"][68]["name"] = "MouseDoubleClicked[5]" defs["structs"]["ImGuiIO"][68]["size"] = 5 defs["structs"]["ImGuiIO"][68]["type"] = "bool" defs["structs"]["ImGuiIO"][69] = {} -defs["structs"]["ImGuiIO"][69]["name"] = "MouseDownOwned[5]" +defs["structs"]["ImGuiIO"][69]["name"] = "MouseClickedCount[5]" defs["structs"]["ImGuiIO"][69]["size"] = 5 -defs["structs"]["ImGuiIO"][69]["type"] = "bool" +defs["structs"]["ImGuiIO"][69]["type"] = "ImU16" defs["structs"]["ImGuiIO"][70] = {} -defs["structs"]["ImGuiIO"][70]["name"] = "MouseDownWasDoubleClick[5]" +defs["structs"]["ImGuiIO"][70]["name"] = "MouseClickedLastCount[5]" defs["structs"]["ImGuiIO"][70]["size"] = 5 -defs["structs"]["ImGuiIO"][70]["type"] = "bool" +defs["structs"]["ImGuiIO"][70]["type"] = "ImU16" defs["structs"]["ImGuiIO"][71] = {} -defs["structs"]["ImGuiIO"][71]["name"] = "MouseDownDuration[5]" +defs["structs"]["ImGuiIO"][71]["name"] = "MouseReleased[5]" defs["structs"]["ImGuiIO"][71]["size"] = 5 -defs["structs"]["ImGuiIO"][71]["type"] = "float" +defs["structs"]["ImGuiIO"][71]["type"] = "bool" defs["structs"]["ImGuiIO"][72] = {} -defs["structs"]["ImGuiIO"][72]["name"] = "MouseDownDurationPrev[5]" +defs["structs"]["ImGuiIO"][72]["name"] = "MouseDownOwned[5]" defs["structs"]["ImGuiIO"][72]["size"] = 5 -defs["structs"]["ImGuiIO"][72]["type"] = "float" +defs["structs"]["ImGuiIO"][72]["type"] = "bool" defs["structs"]["ImGuiIO"][73] = {} -defs["structs"]["ImGuiIO"][73]["name"] = "MouseDragMaxDistanceAbs[5]" +defs["structs"]["ImGuiIO"][73]["name"] = "MouseDownOwnedUnlessPopupClose[5]" defs["structs"]["ImGuiIO"][73]["size"] = 5 -defs["structs"]["ImGuiIO"][73]["type"] = "ImVec2" +defs["structs"]["ImGuiIO"][73]["type"] = "bool" defs["structs"]["ImGuiIO"][74] = {} -defs["structs"]["ImGuiIO"][74]["name"] = "MouseDragMaxDistanceSqr[5]" +defs["structs"]["ImGuiIO"][74]["name"] = "MouseDownDuration[5]" defs["structs"]["ImGuiIO"][74]["size"] = 5 defs["structs"]["ImGuiIO"][74]["type"] = "float" defs["structs"]["ImGuiIO"][75] = {} -defs["structs"]["ImGuiIO"][75]["name"] = "KeysDownDuration[512]" -defs["structs"]["ImGuiIO"][75]["size"] = 512 +defs["structs"]["ImGuiIO"][75]["name"] = "MouseDownDurationPrev[5]" +defs["structs"]["ImGuiIO"][75]["size"] = 5 defs["structs"]["ImGuiIO"][75]["type"] = "float" defs["structs"]["ImGuiIO"][76] = {} -defs["structs"]["ImGuiIO"][76]["name"] = "KeysDownDurationPrev[512]" -defs["structs"]["ImGuiIO"][76]["size"] = 512 -defs["structs"]["ImGuiIO"][76]["type"] = "float" +defs["structs"]["ImGuiIO"][76]["name"] = "MouseDragMaxDistanceAbs[5]" +defs["structs"]["ImGuiIO"][76]["size"] = 5 +defs["structs"]["ImGuiIO"][76]["type"] = "ImVec2" defs["structs"]["ImGuiIO"][77] = {} -defs["structs"]["ImGuiIO"][77]["name"] = "NavInputsDownDuration[ImGuiNavInput_COUNT]" -defs["structs"]["ImGuiIO"][77]["size"] = 20 +defs["structs"]["ImGuiIO"][77]["name"] = "MouseDragMaxDistanceSqr[5]" +defs["structs"]["ImGuiIO"][77]["size"] = 5 defs["structs"]["ImGuiIO"][77]["type"] = "float" defs["structs"]["ImGuiIO"][78] = {} -defs["structs"]["ImGuiIO"][78]["name"] = "NavInputsDownDurationPrev[ImGuiNavInput_COUNT]" -defs["structs"]["ImGuiIO"][78]["size"] = 20 +defs["structs"]["ImGuiIO"][78]["name"] = "KeysDownDuration[512]" +defs["structs"]["ImGuiIO"][78]["size"] = 512 defs["structs"]["ImGuiIO"][78]["type"] = "float" defs["structs"]["ImGuiIO"][79] = {} -defs["structs"]["ImGuiIO"][79]["name"] = "PenPressure" +defs["structs"]["ImGuiIO"][79]["name"] = "KeysDownDurationPrev[512]" +defs["structs"]["ImGuiIO"][79]["size"] = 512 defs["structs"]["ImGuiIO"][79]["type"] = "float" defs["structs"]["ImGuiIO"][80] = {} -defs["structs"]["ImGuiIO"][80]["name"] = "InputQueueSurrogate" -defs["structs"]["ImGuiIO"][80]["type"] = "ImWchar16" +defs["structs"]["ImGuiIO"][80]["name"] = "NavInputsDownDuration[ImGuiNavInput_COUNT]" +defs["structs"]["ImGuiIO"][80]["size"] = 20 +defs["structs"]["ImGuiIO"][80]["type"] = "float" defs["structs"]["ImGuiIO"][81] = {} -defs["structs"]["ImGuiIO"][81]["name"] = "InputQueueCharacters" -defs["structs"]["ImGuiIO"][81]["template_type"] = "ImWchar" -defs["structs"]["ImGuiIO"][81]["type"] = "ImVector_ImWchar" +defs["structs"]["ImGuiIO"][81]["name"] = "NavInputsDownDurationPrev[ImGuiNavInput_COUNT]" +defs["structs"]["ImGuiIO"][81]["size"] = 20 +defs["structs"]["ImGuiIO"][81]["type"] = "float" +defs["structs"]["ImGuiIO"][82] = {} +defs["structs"]["ImGuiIO"][82]["name"] = "PenPressure" +defs["structs"]["ImGuiIO"][82]["type"] = "float" +defs["structs"]["ImGuiIO"][83] = {} +defs["structs"]["ImGuiIO"][83]["name"] = "AppFocusLost" +defs["structs"]["ImGuiIO"][83]["type"] = "bool" +defs["structs"]["ImGuiIO"][84] = {} +defs["structs"]["ImGuiIO"][84]["name"] = "InputQueueSurrogate" +defs["structs"]["ImGuiIO"][84]["type"] = "ImWchar16" +defs["structs"]["ImGuiIO"][85] = {} +defs["structs"]["ImGuiIO"][85]["name"] = "InputQueueCharacters" +defs["structs"]["ImGuiIO"][85]["template_type"] = "ImWchar" +defs["structs"]["ImGuiIO"][85]["type"] = "ImVector_ImWchar" defs["structs"]["ImGuiInputTextCallbackData"] = {} defs["structs"]["ImGuiInputTextCallbackData"][1] = {} defs["structs"]["ImGuiInputTextCallbackData"][1]["name"] = "EventFlag" @@ -2655,17 +2677,14 @@ defs["structs"]["ImGuiListClipper"][3] = {} defs["structs"]["ImGuiListClipper"][3]["name"] = "ItemsCount" defs["structs"]["ImGuiListClipper"][3]["type"] = "int" defs["structs"]["ImGuiListClipper"][4] = {} -defs["structs"]["ImGuiListClipper"][4]["name"] = "StepNo" -defs["structs"]["ImGuiListClipper"][4]["type"] = "int" +defs["structs"]["ImGuiListClipper"][4]["name"] = "ItemsHeight" +defs["structs"]["ImGuiListClipper"][4]["type"] = "float" defs["structs"]["ImGuiListClipper"][5] = {} -defs["structs"]["ImGuiListClipper"][5]["name"] = "ItemsFrozen" -defs["structs"]["ImGuiListClipper"][5]["type"] = "int" +defs["structs"]["ImGuiListClipper"][5]["name"] = "StartPosY" +defs["structs"]["ImGuiListClipper"][5]["type"] = "float" defs["structs"]["ImGuiListClipper"][6] = {} -defs["structs"]["ImGuiListClipper"][6]["name"] = "ItemsHeight" -defs["structs"]["ImGuiListClipper"][6]["type"] = "float" -defs["structs"]["ImGuiListClipper"][7] = {} -defs["structs"]["ImGuiListClipper"][7]["name"] = "StartPosY" -defs["structs"]["ImGuiListClipper"][7]["type"] = "float" +defs["structs"]["ImGuiListClipper"][6]["name"] = "TempData" +defs["structs"]["ImGuiListClipper"][6]["type"] = "void*" defs["structs"]["ImGuiOnceUponAFrame"] = {} defs["structs"]["ImGuiOnceUponAFrame"][1] = {} defs["structs"]["ImGuiOnceUponAFrame"][1]["name"] = "RefFrame" From dac88186a1625d2bbb392d16dcb70bc36d4041a2 Mon Sep 17 00:00:00 2001 From: dbr Date: Tue, 11 Jan 2022 15:17:40 +1100 Subject: [PATCH 119/200] Run bindgen --- imgui-sys/src/bindings.rs | 62 ++- imgui-sys/src/docking_bindings.rs | 539 ++++++++++++++++++----- imgui-sys/src/wasm_bindings.rs | 68 ++- imgui-sys/src/wasm_docking_bindings.rs | 575 ++++++++++++++++++++----- 4 files changed, 974 insertions(+), 270 deletions(-) diff --git a/imgui-sys/src/bindings.rs b/imgui-sys/src/bindings.rs index 8f8d86b5b..495362adc 100644 --- a/imgui-sys/src/bindings.rs +++ b/imgui-sys/src/bindings.rs @@ -136,6 +136,7 @@ pub type ImDrawIdx = cty::c_ushort; pub type ImGuiID = cty::c_uint; pub type ImU8 = cty::c_uchar; pub type ImS16 = cty::c_short; +pub type ImU16 = cty::c_ushort; pub type ImU32 = cty::c_uint; pub type ImWchar16 = cty::c_ushort; pub type ImWchar32 = cty::c_uint; @@ -638,17 +639,19 @@ pub const ImGuiFocusedFlags_None: ImGuiFocusedFlags_ = 0; pub const ImGuiFocusedFlags_ChildWindows: ImGuiFocusedFlags_ = 1; pub const ImGuiFocusedFlags_RootWindow: ImGuiFocusedFlags_ = 2; pub const ImGuiFocusedFlags_AnyWindow: ImGuiFocusedFlags_ = 4; +pub const ImGuiFocusedFlags_NoPopupHierarchy: ImGuiFocusedFlags_ = 8; pub const ImGuiFocusedFlags_RootAndChildWindows: ImGuiFocusedFlags_ = 3; pub type ImGuiFocusedFlags_ = cty::c_uint; pub const ImGuiHoveredFlags_None: ImGuiHoveredFlags_ = 0; pub const ImGuiHoveredFlags_ChildWindows: ImGuiHoveredFlags_ = 1; pub const ImGuiHoveredFlags_RootWindow: ImGuiHoveredFlags_ = 2; pub const ImGuiHoveredFlags_AnyWindow: ImGuiHoveredFlags_ = 4; -pub const ImGuiHoveredFlags_AllowWhenBlockedByPopup: ImGuiHoveredFlags_ = 8; -pub const ImGuiHoveredFlags_AllowWhenBlockedByActiveItem: ImGuiHoveredFlags_ = 32; -pub const ImGuiHoveredFlags_AllowWhenOverlapped: ImGuiHoveredFlags_ = 64; -pub const ImGuiHoveredFlags_AllowWhenDisabled: ImGuiHoveredFlags_ = 128; -pub const ImGuiHoveredFlags_RectOnly: ImGuiHoveredFlags_ = 104; +pub const ImGuiHoveredFlags_NoPopupHierarchy: ImGuiHoveredFlags_ = 8; +pub const ImGuiHoveredFlags_AllowWhenBlockedByPopup: ImGuiHoveredFlags_ = 32; +pub const ImGuiHoveredFlags_AllowWhenBlockedByActiveItem: ImGuiHoveredFlags_ = 128; +pub const ImGuiHoveredFlags_AllowWhenOverlapped: ImGuiHoveredFlags_ = 256; +pub const ImGuiHoveredFlags_AllowWhenDisabled: ImGuiHoveredFlags_ = 512; +pub const ImGuiHoveredFlags_RectOnly: ImGuiHoveredFlags_ = 416; pub const ImGuiHoveredFlags_RootAndChildWindows: ImGuiHoveredFlags_ = 3; pub type ImGuiHoveredFlags_ = cty::c_uint; pub const ImGuiDragDropFlags_None: ImGuiDragDropFlags_ = 0; @@ -1026,6 +1029,7 @@ pub struct ImGuiIO { pub MetricsActiveWindows: cty::c_int, pub MetricsActiveAllocations: cty::c_int, pub MouseDelta: ImVec2, + pub WantCaptureMouseUnlessPopupClose: bool, pub KeyMods: ImGuiKeyModFlags, pub KeyModsPrev: ImGuiKeyModFlags, pub MousePosPrev: ImVec2, @@ -1033,9 +1037,11 @@ pub struct ImGuiIO { pub MouseClickedTime: [f64; 5usize], pub MouseClicked: [bool; 5usize], pub MouseDoubleClicked: [bool; 5usize], + pub MouseClickedCount: [ImU16; 5usize], + pub MouseClickedLastCount: [ImU16; 5usize], pub MouseReleased: [bool; 5usize], pub MouseDownOwned: [bool; 5usize], - pub MouseDownWasDoubleClick: [bool; 5usize], + pub MouseDownOwnedUnlessPopupClose: [bool; 5usize], pub MouseDownDuration: [f32; 5usize], pub MouseDownDurationPrev: [f32; 5usize], pub MouseDragMaxDistanceAbs: [ImVec2; 5usize], @@ -1045,6 +1051,7 @@ pub struct ImGuiIO { pub NavInputsDownDuration: [f32; 20usize], pub NavInputsDownDurationPrev: [f32; 20usize], pub PenPressure: f32, + pub AppFocusLost: bool, pub InputQueueSurrogate: ImWchar16, pub InputQueueCharacters: ImVector_ImWchar, } @@ -1280,15 +1287,23 @@ impl Default for ImGuiStorage { } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq)] +#[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiListClipper { pub DisplayStart: cty::c_int, pub DisplayEnd: cty::c_int, pub ItemsCount: cty::c_int, - pub StepNo: cty::c_int, - pub ItemsFrozen: cty::c_int, pub ItemsHeight: f32, pub StartPosY: f32, + pub TempData: *mut cty::c_void, +} +impl Default for ImGuiListClipper { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } } #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] @@ -1715,6 +1730,9 @@ extern "C" { extern "C" { pub fn igShowMetricsWindow(p_open: *mut bool); } +extern "C" { + pub fn igShowStackToolWindow(p_open: *mut bool); +} extern "C" { pub fn igShowAboutWindow(p_open: *mut bool); } @@ -1855,9 +1873,6 @@ extern "C" { extern "C" { pub fn igGetWindowContentRegionMax(pOut: *mut ImVec2); } -extern "C" { - pub fn igGetWindowContentRegionWidth() -> f32; -} extern "C" { pub fn igGetScrollX() -> f32; } @@ -3166,14 +3181,6 @@ extern "C" { extern "C" { pub fn igGetStateStorage() -> *mut ImGuiStorage; } -extern "C" { - pub fn igCalcListClipping( - items_count: cty::c_int, - items_height: f32, - out_items_display_start: *mut cty::c_int, - out_items_display_end: *mut cty::c_int, - ); -} extern "C" { pub fn igBeginChildFrame(id: ImGuiID, size: ImVec2, flags: ImGuiWindowFlags) -> bool; } @@ -3246,6 +3253,9 @@ extern "C" { extern "C" { pub fn igIsMouseDoubleClicked(button: ImGuiMouseButton) -> bool; } +extern "C" { + pub fn igGetMouseClickedCount(button: ImGuiMouseButton) -> cty::c_int; +} extern "C" { pub fn igIsMouseHoveringRect(r_min: ImVec2, r_max: ImVec2, clip: bool) -> bool; } @@ -3346,11 +3356,14 @@ extern "C" { extern "C" { pub fn ImGuiIO_AddInputCharactersUTF8(self_: *mut ImGuiIO, str_: *const cty::c_char); } +extern "C" { + pub fn ImGuiIO_AddFocusEvent(self_: *mut ImGuiIO, focused: bool); +} extern "C" { pub fn ImGuiIO_ClearInputCharacters(self_: *mut ImGuiIO); } extern "C" { - pub fn ImGuiIO_AddFocusEvent(self_: *mut ImGuiIO, focused: bool); + pub fn ImGuiIO_ClearInputKeys(self_: *mut ImGuiIO); } extern "C" { pub fn ImGuiIO_ImGuiIO() -> *mut ImGuiIO; @@ -3616,6 +3629,13 @@ extern "C" { extern "C" { pub fn ImGuiListClipper_Step(self_: *mut ImGuiListClipper) -> bool; } +extern "C" { + pub fn ImGuiListClipper_ForceDisplayRangeByIndices( + self_: *mut ImGuiListClipper, + item_min: cty::c_int, + item_max: cty::c_int, + ); +} extern "C" { pub fn ImColor_ImColorNil() -> *mut ImColor; } diff --git a/imgui-sys/src/docking_bindings.rs b/imgui-sys/src/docking_bindings.rs index d982365dd..6c131a2d2 100644 --- a/imgui-sys/src/docking_bindings.rs +++ b/imgui-sys/src/docking_bindings.rs @@ -221,8 +221,8 @@ pub type ImDrawCallback = ::core::option::Option< >; pub type ImGuiDataAuthority = cty::c_int; pub type ImGuiLayoutType = cty::c_int; +pub type ImGuiActivateFlags = cty::c_int; pub type ImGuiItemFlags = cty::c_int; -pub type ImGuiItemAddFlags = cty::c_int; pub type ImGuiItemStatusFlags = cty::c_int; pub type ImGuiOldColumnFlags = cty::c_int; pub type ImGuiNavHighlightFlags = cty::c_int; @@ -230,6 +230,7 @@ pub type ImGuiNavDirSourceFlags = cty::c_int; pub type ImGuiNavMoveFlags = cty::c_int; pub type ImGuiNextItemDataFlags = cty::c_int; pub type ImGuiNextWindowDataFlags = cty::c_int; +pub type ImGuiScrollFlags = cty::c_int; pub type ImGuiSeparatorFlags = cty::c_int; pub type ImGuiTextFlags = cty::c_int; pub type ImGuiTooltipFlags = cty::c_int; @@ -606,6 +607,38 @@ impl Default for ImVector_ImGuiItemFlags { } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImGuiListClipperData { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImGuiListClipperData, +} +impl Default for ImVector_ImGuiListClipperData { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImGuiListClipperRange { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImGuiListClipperRange, +} +impl Default for ImVector_ImGuiListClipperRange { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImVector_ImGuiOldColumnData { pub Size: cty::c_int, pub Capacity: cty::c_int, @@ -718,6 +751,22 @@ impl Default for ImVector_ImGuiShrinkWidthItem { } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImGuiStackLevelInfo { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImGuiStackLevelInfo, +} +impl Default for ImVector_ImGuiStackLevelInfo { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImVector_ImGuiStoragePair { pub Size: cty::c_int, pub Capacity: cty::c_int, @@ -1234,17 +1283,21 @@ pub const ImGuiFocusedFlags_None: ImGuiFocusedFlags_ = 0; pub const ImGuiFocusedFlags_ChildWindows: ImGuiFocusedFlags_ = 1; pub const ImGuiFocusedFlags_RootWindow: ImGuiFocusedFlags_ = 2; pub const ImGuiFocusedFlags_AnyWindow: ImGuiFocusedFlags_ = 4; +pub const ImGuiFocusedFlags_NoPopupHierarchy: ImGuiFocusedFlags_ = 8; +pub const ImGuiFocusedFlags_DockHierarchy: ImGuiFocusedFlags_ = 16; pub const ImGuiFocusedFlags_RootAndChildWindows: ImGuiFocusedFlags_ = 3; pub type ImGuiFocusedFlags_ = cty::c_uint; pub const ImGuiHoveredFlags_None: ImGuiHoveredFlags_ = 0; pub const ImGuiHoveredFlags_ChildWindows: ImGuiHoveredFlags_ = 1; pub const ImGuiHoveredFlags_RootWindow: ImGuiHoveredFlags_ = 2; pub const ImGuiHoveredFlags_AnyWindow: ImGuiHoveredFlags_ = 4; -pub const ImGuiHoveredFlags_AllowWhenBlockedByPopup: ImGuiHoveredFlags_ = 8; -pub const ImGuiHoveredFlags_AllowWhenBlockedByActiveItem: ImGuiHoveredFlags_ = 32; -pub const ImGuiHoveredFlags_AllowWhenOverlapped: ImGuiHoveredFlags_ = 64; -pub const ImGuiHoveredFlags_AllowWhenDisabled: ImGuiHoveredFlags_ = 128; -pub const ImGuiHoveredFlags_RectOnly: ImGuiHoveredFlags_ = 104; +pub const ImGuiHoveredFlags_NoPopupHierarchy: ImGuiHoveredFlags_ = 8; +pub const ImGuiHoveredFlags_DockHierarchy: ImGuiHoveredFlags_ = 16; +pub const ImGuiHoveredFlags_AllowWhenBlockedByPopup: ImGuiHoveredFlags_ = 32; +pub const ImGuiHoveredFlags_AllowWhenBlockedByActiveItem: ImGuiHoveredFlags_ = 128; +pub const ImGuiHoveredFlags_AllowWhenOverlapped: ImGuiHoveredFlags_ = 256; +pub const ImGuiHoveredFlags_AllowWhenDisabled: ImGuiHoveredFlags_ = 512; +pub const ImGuiHoveredFlags_RectOnly: ImGuiHoveredFlags_ = 416; pub const ImGuiHoveredFlags_RootAndChildWindows: ImGuiHoveredFlags_ = 3; pub type ImGuiHoveredFlags_ = cty::c_uint; pub const ImGuiDockNodeFlags_None: ImGuiDockNodeFlags_ = 0; @@ -1594,6 +1647,7 @@ pub struct ImGuiIO { pub FontDefault: *mut ImFont, pub DisplayFramebufferScale: ImVec2, pub ConfigDockingNoSplit: bool, + pub ConfigDockingWithShift: bool, pub ConfigDockingAlwaysTabBar: bool, pub ConfigDockingTransparentPayload: bool, pub ConfigViewportsNoAutoMerge: bool, @@ -1652,10 +1706,11 @@ pub struct ImGuiIO { pub MouseClickedTime: [f64; 5usize], pub MouseClicked: [bool; 5usize], pub MouseDoubleClicked: [bool; 5usize], + pub MouseClickedCount: [ImU16; 5usize], + pub MouseClickedLastCount: [ImU16; 5usize], pub MouseReleased: [bool; 5usize], pub MouseDownOwned: [bool; 5usize], pub MouseDownOwnedUnlessPopupClose: [bool; 5usize], - pub MouseDownWasDoubleClick: [bool; 5usize], pub MouseDownDuration: [f32; 5usize], pub MouseDownDurationPrev: [f32; 5usize], pub MouseDragMaxDistanceAbs: [ImVec2; 5usize], @@ -1977,15 +2032,23 @@ impl Default for ImPool_ImGuiTable { } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq)] +#[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiListClipper { pub DisplayStart: cty::c_int, pub DisplayEnd: cty::c_int, pub ItemsCount: cty::c_int, - pub StepNo: cty::c_int, - pub ItemsFrozen: cty::c_int, pub ItemsHeight: f32, pub StartPosY: f32, + pub TempData: *mut cty::c_void, +} +impl Default for ImGuiListClipper { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } } #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] @@ -2610,10 +2673,8 @@ pub const ImGuiItemFlags_NoNavDefaultFocus: ImGuiItemFlags_ = 16; pub const ImGuiItemFlags_SelectableDontClosePopup: ImGuiItemFlags_ = 32; pub const ImGuiItemFlags_MixedValue: ImGuiItemFlags_ = 64; pub const ImGuiItemFlags_ReadOnly: ImGuiItemFlags_ = 128; +pub const ImGuiItemFlags_Inputable: ImGuiItemFlags_ = 256; pub type ImGuiItemFlags_ = cty::c_uint; -pub const ImGuiItemAddFlags_None: ImGuiItemAddFlags_ = 0; -pub const ImGuiItemAddFlags_Focusable: ImGuiItemAddFlags_ = 1; -pub type ImGuiItemAddFlags_ = cty::c_uint; pub const ImGuiItemStatusFlags_None: ImGuiItemStatusFlags_ = 0; pub const ImGuiItemStatusFlags_HoveredRect: ImGuiItemStatusFlags_ = 1; pub const ImGuiItemStatusFlags_HasDisplayRect: ImGuiItemStatusFlags_ = 2; @@ -2623,9 +2684,7 @@ pub const ImGuiItemStatusFlags_ToggledOpen: ImGuiItemStatusFlags_ = 16; pub const ImGuiItemStatusFlags_HasDeactivated: ImGuiItemStatusFlags_ = 32; pub const ImGuiItemStatusFlags_Deactivated: ImGuiItemStatusFlags_ = 64; pub const ImGuiItemStatusFlags_HoveredWindow: ImGuiItemStatusFlags_ = 128; -pub const ImGuiItemStatusFlags_FocusedByCode: ImGuiItemStatusFlags_ = 256; -pub const ImGuiItemStatusFlags_FocusedByTabbing: ImGuiItemStatusFlags_ = 512; -pub const ImGuiItemStatusFlags_Focused: ImGuiItemStatusFlags_ = 768; +pub const ImGuiItemStatusFlags_FocusedByTabbing: ImGuiItemStatusFlags_ = 256; pub type ImGuiItemStatusFlags_ = cty::c_uint; pub const ImGuiInputTextFlags_Multiline: ImGuiInputTextFlagsPrivate_ = 67108864; pub const ImGuiInputTextFlags_NoMarkEdited: ImGuiInputTextFlagsPrivate_ = 134217728; @@ -2842,8 +2901,6 @@ pub struct ImGuiInputTextState { pub SelectedAllMouseLock: bool, pub Edited: bool, pub Flags: ImGuiInputTextFlags, - pub UserCallback: ImGuiInputTextCallback, - pub UserCallbackData: *mut cty::c_void, } impl Default for ImGuiInputTextState { fn default() -> Self { @@ -2940,13 +2997,28 @@ pub struct ImGuiLastItemData { pub InFlags: ImGuiItemFlags, pub StatusFlags: ImGuiItemStatusFlags, pub Rect: ImRect, + pub NavRect: ImRect, pub DisplayRect: ImRect, } #[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiStackSizes { + pub SizeOfIDStack: cty::c_short, + pub SizeOfColorStack: cty::c_short, + pub SizeOfStyleVarStack: cty::c_short, + pub SizeOfFontStack: cty::c_short, + pub SizeOfFocusScopeStack: cty::c_short, + pub SizeOfGroupStack: cty::c_short, + pub SizeOfItemFlagsStack: cty::c_short, + pub SizeOfBeginPopupStack: cty::c_short, + pub SizeOfDisabledStack: cty::c_short, +} +#[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiWindowStackData { pub Window: *mut ImGuiWindow, pub ParentLastItemDataBackup: ImGuiLastItemData, + pub StackSizesOnBegin: ImGuiStackSizes, } impl Default for ImGuiWindowStackData { fn default() -> Self { @@ -2978,6 +3050,49 @@ impl Default for ImGuiPtrOrIndex { } } } +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiListClipperRange { + pub Min: cty::c_int, + pub Max: cty::c_int, + pub PosToIndexConvert: bool, + pub PosToIndexOffsetMin: ImS8, + pub PosToIndexOffsetMax: ImS8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone, PartialEq)] +pub struct ImGuiListClipperData { + pub ListClipper: *mut ImGuiListClipper, + pub LossynessOffset: f32, + pub StepNo: cty::c_int, + pub ItemsFrozen: cty::c_int, + pub Ranges: ImVector_ImGuiListClipperRange, +} +impl Default for ImGuiListClipperData { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const ImGuiActivateFlags_None: ImGuiActivateFlags_ = 0; +pub const ImGuiActivateFlags_PreferInput: ImGuiActivateFlags_ = 1; +pub const ImGuiActivateFlags_PreferTweak: ImGuiActivateFlags_ = 2; +pub const ImGuiActivateFlags_TryToPreserveState: ImGuiActivateFlags_ = 4; +pub type ImGuiActivateFlags_ = cty::c_uint; +pub const ImGuiScrollFlags_None: ImGuiScrollFlags_ = 0; +pub const ImGuiScrollFlags_KeepVisibleEdgeX: ImGuiScrollFlags_ = 1; +pub const ImGuiScrollFlags_KeepVisibleEdgeY: ImGuiScrollFlags_ = 2; +pub const ImGuiScrollFlags_KeepVisibleCenterX: ImGuiScrollFlags_ = 4; +pub const ImGuiScrollFlags_KeepVisibleCenterY: ImGuiScrollFlags_ = 8; +pub const ImGuiScrollFlags_AlwaysCenterX: ImGuiScrollFlags_ = 16; +pub const ImGuiScrollFlags_AlwaysCenterY: ImGuiScrollFlags_ = 32; +pub const ImGuiScrollFlags_NoScrollParent: ImGuiScrollFlags_ = 64; +pub const ImGuiScrollFlags_MaskX_: ImGuiScrollFlags_ = 21; +pub const ImGuiScrollFlags_MaskY_: ImGuiScrollFlags_ = 42; +pub type ImGuiScrollFlags_ = cty::c_uint; pub const ImGuiNavHighlightFlags_None: ImGuiNavHighlightFlags_ = 0; pub const ImGuiNavHighlightFlags_TypeDefault: ImGuiNavHighlightFlags_ = 1; pub const ImGuiNavHighlightFlags_TypeThin: ImGuiNavHighlightFlags_ = 2; @@ -2985,9 +3100,10 @@ pub const ImGuiNavHighlightFlags_AlwaysDraw: ImGuiNavHighlightFlags_ = 4; pub const ImGuiNavHighlightFlags_NoRounding: ImGuiNavHighlightFlags_ = 8; pub type ImGuiNavHighlightFlags_ = cty::c_uint; pub const ImGuiNavDirSourceFlags_None: ImGuiNavDirSourceFlags_ = 0; -pub const ImGuiNavDirSourceFlags_Keyboard: ImGuiNavDirSourceFlags_ = 1; -pub const ImGuiNavDirSourceFlags_PadDPad: ImGuiNavDirSourceFlags_ = 2; -pub const ImGuiNavDirSourceFlags_PadLStick: ImGuiNavDirSourceFlags_ = 4; +pub const ImGuiNavDirSourceFlags_RawKeyboard: ImGuiNavDirSourceFlags_ = 1; +pub const ImGuiNavDirSourceFlags_Keyboard: ImGuiNavDirSourceFlags_ = 2; +pub const ImGuiNavDirSourceFlags_PadDPad: ImGuiNavDirSourceFlags_ = 4; +pub const ImGuiNavDirSourceFlags_PadLStick: ImGuiNavDirSourceFlags_ = 8; pub type ImGuiNavDirSourceFlags_ = cty::c_uint; pub const ImGuiNavMoveFlags_None: ImGuiNavMoveFlags_ = 0; pub const ImGuiNavMoveFlags_LoopX: ImGuiNavMoveFlags_ = 1; @@ -2996,8 +3112,13 @@ pub const ImGuiNavMoveFlags_WrapX: ImGuiNavMoveFlags_ = 4; pub const ImGuiNavMoveFlags_WrapY: ImGuiNavMoveFlags_ = 8; pub const ImGuiNavMoveFlags_AllowCurrentNavId: ImGuiNavMoveFlags_ = 16; pub const ImGuiNavMoveFlags_AlsoScoreVisibleSet: ImGuiNavMoveFlags_ = 32; -pub const ImGuiNavMoveFlags_ScrollToEdge: ImGuiNavMoveFlags_ = 64; +pub const ImGuiNavMoveFlags_ScrollToEdgeY: ImGuiNavMoveFlags_ = 64; pub const ImGuiNavMoveFlags_Forwarded: ImGuiNavMoveFlags_ = 128; +pub const ImGuiNavMoveFlags_DebugNoResult: ImGuiNavMoveFlags_ = 256; +pub const ImGuiNavMoveFlags_FocusApi: ImGuiNavMoveFlags_ = 512; +pub const ImGuiNavMoveFlags_Tabbing: ImGuiNavMoveFlags_ = 1024; +pub const ImGuiNavMoveFlags_Activate: ImGuiNavMoveFlags_ = 2048; +pub const ImGuiNavMoveFlags_DontSetNavHighlight: ImGuiNavMoveFlags_ = 4096; pub type ImGuiNavMoveFlags_ = cty::c_uint; pub const ImGuiNavLayer_Main: ImGuiNavLayer = 0; pub const ImGuiNavLayer_Menu: ImGuiNavLayer = 1; @@ -3010,6 +3131,7 @@ pub struct ImGuiNavItemData { pub ID: ImGuiID, pub FocusScopeId: ImGuiID, pub RectRel: ImRect, + pub InFlags: ImGuiItemFlags, pub DistBox: f32, pub DistCenter: f32, pub DistAxial: f32, @@ -3115,10 +3237,12 @@ pub struct ImGuiDockNode { pub SizeRef: ImVec2, pub SplitAxis: ImGuiAxis, pub WindowClass: ImGuiWindowClass, + pub LastBgColor: ImU32, pub HostWindow: *mut ImGuiWindow, pub VisibleWindow: *mut ImGuiWindow, pub CentralNode: *mut ImGuiDockNode, pub OnlyNodeWithWindows: *mut ImGuiDockNode, + pub CountNodeWithWindows: cty::c_int, pub LastFrameAlive: cty::c_int, pub LastFrameActive: cty::c_int, pub LastFrameFocused: cty::c_int, @@ -3127,7 +3251,7 @@ pub struct ImGuiDockNode { pub WantCloseTabId: ImGuiID, pub _bitfield_align_1: [u8; 0], pub _bitfield_1: __BindgenBitfieldUnit<[u8; 3usize]>, - pub __bindgen_padding_0: [u8; 5usize], + pub __bindgen_padding_0: u8, } impl Default for ImGuiDockNode { fn default() -> Self { @@ -3195,108 +3319,120 @@ impl ImGuiDockNode { } } #[inline] - pub fn HasCloseButton(&self) -> bool { + pub fn IsBgDrawnThisFrame(&self) -> bool { unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u8) } } #[inline] - pub fn set_HasCloseButton(&mut self, val: bool) { + pub fn set_IsBgDrawnThisFrame(&mut self, val: bool) { unsafe { let val: u8 = ::core::mem::transmute(val); self._bitfield_1.set(11usize, 1u8, val as u64) } } #[inline] - pub fn HasWindowMenuButton(&self) -> bool { + pub fn HasCloseButton(&self) -> bool { unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u8) } } #[inline] - pub fn set_HasWindowMenuButton(&mut self, val: bool) { + pub fn set_HasCloseButton(&mut self, val: bool) { unsafe { let val: u8 = ::core::mem::transmute(val); self._bitfield_1.set(12usize, 1u8, val as u64) } } #[inline] - pub fn WantCloseAll(&self) -> bool { + pub fn HasWindowMenuButton(&self) -> bool { unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u8) } } #[inline] - pub fn set_WantCloseAll(&mut self, val: bool) { + pub fn set_HasWindowMenuButton(&mut self, val: bool) { unsafe { let val: u8 = ::core::mem::transmute(val); self._bitfield_1.set(13usize, 1u8, val as u64) } } #[inline] - pub fn WantLockSizeOnce(&self) -> bool { + pub fn HasCentralNodeChild(&self) -> bool { unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u8) } } #[inline] - pub fn set_WantLockSizeOnce(&mut self, val: bool) { + pub fn set_HasCentralNodeChild(&mut self, val: bool) { unsafe { let val: u8 = ::core::mem::transmute(val); self._bitfield_1.set(14usize, 1u8, val as u64) } } #[inline] - pub fn WantMouseMove(&self) -> bool { + pub fn WantCloseAll(&self) -> bool { unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u8) } } #[inline] - pub fn set_WantMouseMove(&mut self, val: bool) { + pub fn set_WantCloseAll(&mut self, val: bool) { unsafe { let val: u8 = ::core::mem::transmute(val); self._bitfield_1.set(15usize, 1u8, val as u64) } } #[inline] - pub fn WantHiddenTabBarUpdate(&self) -> bool { + pub fn WantLockSizeOnce(&self) -> bool { unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 1u8) as u8) } } #[inline] - pub fn set_WantHiddenTabBarUpdate(&mut self, val: bool) { + pub fn set_WantLockSizeOnce(&mut self, val: bool) { unsafe { let val: u8 = ::core::mem::transmute(val); self._bitfield_1.set(16usize, 1u8, val as u64) } } #[inline] - pub fn WantHiddenTabBarToggle(&self) -> bool { + pub fn WantMouseMove(&self) -> bool { unsafe { ::core::mem::transmute(self._bitfield_1.get(17usize, 1u8) as u8) } } #[inline] - pub fn set_WantHiddenTabBarToggle(&mut self, val: bool) { + pub fn set_WantMouseMove(&mut self, val: bool) { unsafe { let val: u8 = ::core::mem::transmute(val); self._bitfield_1.set(17usize, 1u8, val as u64) } } #[inline] - pub fn MarkedForPosSizeWrite(&self) -> bool { + pub fn WantHiddenTabBarUpdate(&self) -> bool { unsafe { ::core::mem::transmute(self._bitfield_1.get(18usize, 1u8) as u8) } } #[inline] - pub fn set_MarkedForPosSizeWrite(&mut self, val: bool) { + pub fn set_WantHiddenTabBarUpdate(&mut self, val: bool) { unsafe { let val: u8 = ::core::mem::transmute(val); self._bitfield_1.set(18usize, 1u8, val as u64) } } #[inline] + pub fn WantHiddenTabBarToggle(&self) -> bool { + unsafe { ::core::mem::transmute(self._bitfield_1.get(19usize, 1u8) as u8) } + } + #[inline] + pub fn set_WantHiddenTabBarToggle(&mut self, val: bool) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(19usize, 1u8, val as u64) + } + } + #[inline] pub fn new_bitfield_1( AuthorityForPos: ImGuiDataAuthority, AuthorityForSize: ImGuiDataAuthority, AuthorityForViewport: ImGuiDataAuthority, IsVisible: bool, IsFocused: bool, + IsBgDrawnThisFrame: bool, HasCloseButton: bool, HasWindowMenuButton: bool, + HasCentralNodeChild: bool, WantCloseAll: bool, WantLockSizeOnce: bool, WantMouseMove: bool, WantHiddenTabBarUpdate: bool, WantHiddenTabBarToggle: bool, - MarkedForPosSizeWrite: bool, ) -> __BindgenBitfieldUnit<[u8; 3usize]> { let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 3usize]> = Default::default(); __bindgen_bitfield_unit.set(0usize, 3u8, { @@ -3320,40 +3456,43 @@ impl ImGuiDockNode { IsFocused as u64 }); __bindgen_bitfield_unit.set(11usize, 1u8, { + let IsBgDrawnThisFrame: u8 = unsafe { ::core::mem::transmute(IsBgDrawnThisFrame) }; + IsBgDrawnThisFrame as u64 + }); + __bindgen_bitfield_unit.set(12usize, 1u8, { let HasCloseButton: u8 = unsafe { ::core::mem::transmute(HasCloseButton) }; HasCloseButton as u64 }); - __bindgen_bitfield_unit.set(12usize, 1u8, { + __bindgen_bitfield_unit.set(13usize, 1u8, { let HasWindowMenuButton: u8 = unsafe { ::core::mem::transmute(HasWindowMenuButton) }; HasWindowMenuButton as u64 }); - __bindgen_bitfield_unit.set(13usize, 1u8, { + __bindgen_bitfield_unit.set(14usize, 1u8, { + let HasCentralNodeChild: u8 = unsafe { ::core::mem::transmute(HasCentralNodeChild) }; + HasCentralNodeChild as u64 + }); + __bindgen_bitfield_unit.set(15usize, 1u8, { let WantCloseAll: u8 = unsafe { ::core::mem::transmute(WantCloseAll) }; WantCloseAll as u64 }); - __bindgen_bitfield_unit.set(14usize, 1u8, { + __bindgen_bitfield_unit.set(16usize, 1u8, { let WantLockSizeOnce: u8 = unsafe { ::core::mem::transmute(WantLockSizeOnce) }; WantLockSizeOnce as u64 }); - __bindgen_bitfield_unit.set(15usize, 1u8, { + __bindgen_bitfield_unit.set(17usize, 1u8, { let WantMouseMove: u8 = unsafe { ::core::mem::transmute(WantMouseMove) }; WantMouseMove as u64 }); - __bindgen_bitfield_unit.set(16usize, 1u8, { + __bindgen_bitfield_unit.set(18usize, 1u8, { let WantHiddenTabBarUpdate: u8 = unsafe { ::core::mem::transmute(WantHiddenTabBarUpdate) }; WantHiddenTabBarUpdate as u64 }); - __bindgen_bitfield_unit.set(17usize, 1u8, { + __bindgen_bitfield_unit.set(19usize, 1u8, { let WantHiddenTabBarToggle: u8 = unsafe { ::core::mem::transmute(WantHiddenTabBarToggle) }; WantHiddenTabBarToggle as u64 }); - __bindgen_bitfield_unit.set(18usize, 1u8, { - let MarkedForPosSizeWrite: u8 = - unsafe { ::core::mem::transmute(MarkedForPosSizeWrite) }; - MarkedForPosSizeWrite as u64 - }); __bindgen_bitfield_unit } } @@ -3486,6 +3625,7 @@ impl Default for ImGuiSettingsHandler { #[repr(C)] #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiMetricsConfig { + pub ShowStackTool: bool, pub ShowWindowsRects: bool, pub ShowWindowsBeginOrder: bool, pub ShowTablesRects: bool, @@ -3496,15 +3636,38 @@ pub struct ImGuiMetricsConfig { pub ShowTablesRectsType: cty::c_int, } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImGuiStackSizes { - pub SizeOfIDStack: cty::c_short, - pub SizeOfColorStack: cty::c_short, - pub SizeOfStyleVarStack: cty::c_short, - pub SizeOfFontStack: cty::c_short, - pub SizeOfFocusScopeStack: cty::c_short, - pub SizeOfGroupStack: cty::c_short, - pub SizeOfBeginPopupStack: cty::c_short, +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiStackLevelInfo { + pub ID: ImGuiID, + pub QueryFrameCount: ImS8, + pub QuerySuccess: bool, + pub Desc: [cty::c_char; 58usize], +} +impl Default for ImGuiStackLevelInfo { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiStackTool { + pub LastActiveFrame: cty::c_int, + pub StackLevel: cty::c_int, + pub QueryId: ImGuiID, + pub Results: ImVector_ImGuiStackLevelInfo, +} +impl Default for ImGuiStackTool { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } } pub const ImGuiContextHookType_NewFramePre: ImGuiContextHookType = 0; pub const ImGuiContextHookType_NewFramePost: ImGuiContextHookType = 1; @@ -3557,7 +3720,6 @@ pub struct ImGuiContext { pub WithinEndChild: bool, pub GcCompactAll: bool, pub TestEngineHookItems: bool, - pub TestEngineHookIdInfo: ImGuiID, pub TestEngine: *mut cty::c_void, pub Windows: ImVector_ImGuiWindowPtr, pub WindowsFocusOrder: ImVector_ImGuiWindowPtr, @@ -3574,6 +3736,7 @@ pub struct ImGuiContext { pub WheelingWindow: *mut ImGuiWindow, pub WheelingWindowRefMousePos: ImVec2, pub WheelingWindowTimer: f32, + pub DebugHookIdInfo: ImGuiID, pub HoveredId: ImGuiID, pub HoveredIdPreviousFrame: ImGuiID, pub HoveredIdAllowOverlap: bool, @@ -3617,6 +3780,7 @@ pub struct ImGuiContext { pub GroupStack: ImVector_ImGuiGroupData, pub OpenPopupStack: ImVector_ImGuiPopupData, pub BeginPopupStack: ImVector_ImGuiPopupData, + pub BeginMenuCount: cty::c_int, pub Viewports: ImVector_ImGuiViewportPPtr, pub CurrentDpiScale: f32, pub CurrentViewport: *mut ImGuiViewportP, @@ -3631,17 +3795,15 @@ pub struct ImGuiContext { pub NavActivateId: ImGuiID, pub NavActivateDownId: ImGuiID, pub NavActivatePressedId: ImGuiID, - pub NavInputId: ImGuiID, - pub NavJustTabbedId: ImGuiID, + pub NavActivateInputId: ImGuiID, + pub NavActivateFlags: ImGuiActivateFlags, pub NavJustMovedToId: ImGuiID, pub NavJustMovedToFocusScopeId: ImGuiID, pub NavJustMovedToKeyMods: ImGuiKeyModFlags, pub NavNextActivateId: ImGuiID, + pub NavNextActivateFlags: ImGuiActivateFlags, pub NavInputSource: ImGuiInputSource, - pub NavScoringRect: ImRect, - pub NavScoringCount: cty::c_int, pub NavLayer: ImGuiNavLayer, - pub NavIdTabCounter: cty::c_int, pub NavIdIsAlive: bool, pub NavMousePosDirty: bool, pub NavDisableHighlight: bool, @@ -3651,29 +3813,30 @@ pub struct ImGuiContext { pub NavInitRequestFromMove: bool, pub NavInitResultId: ImGuiID, pub NavInitResultRectRel: ImRect, - pub NavMoveRequest: bool, - pub NavMoveRequestForwardToNextFrame: bool, - pub NavMoveRequestFlags: ImGuiNavMoveFlags, - pub NavMoveRequestKeyMods: ImGuiKeyModFlags, + pub NavMoveSubmitted: bool, + pub NavMoveScoringItems: bool, + pub NavMoveForwardToNextFrame: bool, + pub NavMoveFlags: ImGuiNavMoveFlags, + pub NavMoveScrollFlags: ImGuiScrollFlags, + pub NavMoveKeyMods: ImGuiKeyModFlags, pub NavMoveDir: ImGuiDir, - pub NavMoveDirLast: ImGuiDir, + pub NavMoveDirForDebug: ImGuiDir, pub NavMoveClipDir: ImGuiDir, + pub NavScoringRect: ImRect, + pub NavScoringNoClipRect: ImRect, + pub NavScoringDebugCount: cty::c_int, + pub NavTabbingDir: cty::c_int, + pub NavTabbingCounter: cty::c_int, pub NavMoveResultLocal: ImGuiNavItemData, - pub NavMoveResultLocalVisibleSet: ImGuiNavItemData, + pub NavMoveResultLocalVisible: ImGuiNavItemData, pub NavMoveResultOther: ImGuiNavItemData, + pub NavTabbingResultFirst: ImGuiNavItemData, pub NavWindowingTarget: *mut ImGuiWindow, pub NavWindowingTargetAnim: *mut ImGuiWindow, pub NavWindowingListWindow: *mut ImGuiWindow, pub NavWindowingTimer: f32, pub NavWindowingHighlightAlpha: f32, pub NavWindowingToggleLayer: bool, - pub TabFocusRequestCurrWindow: *mut ImGuiWindow, - pub TabFocusRequestNextWindow: *mut ImGuiWindow, - pub TabFocusRequestCurrCounterRegular: cty::c_int, - pub TabFocusRequestCurrCounterTabStop: cty::c_int, - pub TabFocusRequestNextCounterRegular: cty::c_int, - pub TabFocusRequestNextCounterTabStop: cty::c_int, - pub TabFocusPressed: bool, pub DimBgRatio: f32, pub MouseCursor: ImGuiMouseCursor, pub DragDropActive: bool, @@ -3693,24 +3856,26 @@ pub struct ImGuiContext { pub DragDropHoldJustPressedId: ImGuiID, pub DragDropPayloadBufHeap: ImVector_unsigned_char, pub DragDropPayloadBufLocal: [cty::c_uchar; 16usize], + pub ClipperTempDataStacked: cty::c_int, + pub ClipperTempData: ImVector_ImGuiListClipperData, pub CurrentTable: *mut ImGuiTable, - pub CurrentTableStackIdx: cty::c_int, + pub TablesTempDataStacked: cty::c_int, + pub TablesTempData: ImVector_ImGuiTableTempData, pub Tables: ImPool_ImGuiTable, - pub TablesTempDataStack: ImVector_ImGuiTableTempData, pub TablesLastTimeActive: ImVector_float, pub DrawChannelsTempMergeBuffer: ImVector_ImDrawChannel, pub CurrentTabBar: *mut ImGuiTabBar, pub TabBars: ImPool_ImGuiTabBar, pub CurrentTabBarStack: ImVector_ImGuiPtrOrIndex, pub ShrinkWidthBuffer: ImVector_ImGuiShrinkWidthItem, - pub LastValidMousePos: ImVec2, + pub MouseLastValidPos: ImVec2, pub InputTextState: ImGuiInputTextState, pub InputTextPasswordFont: ImFont, pub TempInputId: ImGuiID, pub ColorEditOptions: ImGuiColorEditFlags, pub ColorEditLastHue: f32, pub ColorEditLastSat: f32, - pub ColorEditLastColor: [f32; 3usize], + pub ColorEditLastColor: ImU32, pub ColorPickerRef: ImVec4, pub ComboPreviewData: ImGuiComboPreviewData, pub SliderCurrentAccum: f32, @@ -3718,9 +3883,10 @@ pub struct ImGuiContext { pub DragCurrentAccumDirty: bool, pub DragCurrentAccum: f32, pub DragSpeedDefaultRatio: f32, - pub DisabledAlphaBackup: f32, pub ScrollbarClickDeltaToGrabCenter: f32, - pub TooltipOverrideCount: cty::c_int, + pub DisabledAlphaBackup: f32, + pub DisabledStackSize: cty::c_short, + pub TooltipOverrideCount: cty::c_short, pub TooltipSlowDelay: f32, pub ClipboardHandlerData: ImVector_char, pub MenusIdSubmittedThisFrame: ImVector_ImGuiID, @@ -3751,6 +3917,7 @@ pub struct ImGuiContext { pub DebugItemPickerActive: bool, pub DebugItemPickerBreakId: ImGuiID, pub DebugMetricsConfig: ImGuiMetricsConfig, + pub DebugStackTool: ImGuiStackTool, pub FramerateSecPerFrame: [f32; 120usize], pub FramerateSecPerFrameIdx: cty::c_int, pub FramerateSecPerFrameCount: cty::c_int, @@ -3784,6 +3951,7 @@ pub struct ImGuiWindowTempData { pub Indent: ImVec1, pub ColumnsOffset: ImVec1, pub GroupOffset: ImVec1, + pub CursorStartPosLossyness: ImVec2, pub NavLayerCurrent: ImGuiNavLayer, pub NavLayersActiveMask: cty::c_short, pub NavLayersActiveMaskNext: cty::c_short, @@ -3801,13 +3969,10 @@ pub struct ImGuiWindowTempData { pub CurrentTableIdx: cty::c_int, pub LayoutType: ImGuiLayoutType, pub ParentLayoutType: ImGuiLayoutType, - pub FocusCounterRegular: cty::c_int, - pub FocusCounterTabStop: cty::c_int, pub ItemWidth: f32, pub TextWrapPos: f32, pub ItemWidthStack: ImVector_float, pub TextWrapPosStack: ImVector_float, - pub StackSizesOnBegin: ImGuiStackSizes, } impl Default for ImGuiWindowTempData { fn default() -> Self { @@ -3860,6 +4025,7 @@ pub struct ImGuiWindow { pub Appearing: bool, pub Hidden: bool, pub IsFallbackWindow: bool, + pub IsExplicitChild: bool, pub HasCloseButton: bool, pub ResizeBorderHeld: cty::c_schar, pub BeginCount: cty::c_short, @@ -3903,7 +4069,9 @@ pub struct ImGuiWindow { pub DrawList: *mut ImDrawList, pub DrawListInst: ImDrawList, pub ParentWindow: *mut ImGuiWindow, + pub ParentWindowInBeginStack: *mut ImGuiWindow, pub RootWindow: *mut ImGuiWindow, + pub RootWindowPopupTree: *mut ImGuiWindow, pub RootWindowDockTree: *mut ImGuiWindow, pub RootWindowForTitleBarHighlight: *mut ImGuiWindow, pub RootWindowForNav: *mut ImGuiWindow, @@ -4583,6 +4751,9 @@ extern "C" { extern "C" { pub fn igShowMetricsWindow(p_open: *mut bool); } +extern "C" { + pub fn igShowStackToolWindow(p_open: *mut bool); +} extern "C" { pub fn igShowAboutWindow(p_open: *mut bool); } @@ -6073,14 +6244,6 @@ extern "C" { extern "C" { pub fn igGetStateStorage() -> *mut ImGuiStorage; } -extern "C" { - pub fn igCalcListClipping( - items_count: cty::c_int, - items_height: f32, - out_items_display_start: *mut cty::c_int, - out_items_display_end: *mut cty::c_int, - ); -} extern "C" { pub fn igBeginChildFrame(id: ImGuiID, size: ImVec2, flags: ImGuiWindowFlags) -> bool; } @@ -6153,6 +6316,9 @@ extern "C" { extern "C" { pub fn igIsMouseDoubleClicked(button: ImGuiMouseButton) -> bool; } +extern "C" { + pub fn igGetMouseClickedCount(button: ImGuiMouseButton) -> cty::c_int; +} extern "C" { pub fn igIsMouseHoveringRect(r_min: ImVec2, r_max: ImVec2, clip: bool) -> bool; } @@ -6553,6 +6719,13 @@ extern "C" { extern "C" { pub fn ImGuiListClipper_Step(self_: *mut ImGuiListClipper) -> bool; } +extern "C" { + pub fn ImGuiListClipper_ForceDisplayRangeByIndices( + self_: *mut ImGuiListClipper, + item_min: cty::c_int, + item_max: cty::c_int, + ); +} extern "C" { pub fn ImColor_ImColorNil() -> *mut ImColor; } @@ -7421,6 +7594,16 @@ extern "C" { extern "C" { pub fn igImHashStr(data: *const cty::c_char, data_size: usize, seed: ImU32) -> ImGuiID; } +extern "C" { + pub fn igImQsort( + base: *mut cty::c_void, + count: usize, + size_of_element: usize, + compare_func: ::core::option::Option< + unsafe extern "C" fn(arg1: *const cty::c_void, arg2: *const cty::c_void) -> cty::c_int, + >, + ); +} extern "C" { pub fn igImAlphaBlendColors(col_a: ImU32, col_b: ImU32) -> ImU32; } @@ -7687,6 +7870,9 @@ extern "C" { extern "C" { pub fn igImMul(pOut: *mut ImVec2, lhs: ImVec2, rhs: ImVec2); } +extern "C" { + pub fn igImIsFloatAboveGuaranteedIntegerPrecision(f: f32) -> bool; +} extern "C" { pub fn igImBezierCubicCalc( pOut: *mut ImVec2, @@ -8025,6 +8211,18 @@ extern "C" { extern "C" { pub fn ImGuiLastItemData_destroy(self_: *mut ImGuiLastItemData); } +extern "C" { + pub fn ImGuiStackSizes_ImGuiStackSizes() -> *mut ImGuiStackSizes; +} +extern "C" { + pub fn ImGuiStackSizes_destroy(self_: *mut ImGuiStackSizes); +} +extern "C" { + pub fn ImGuiStackSizes_SetToCurrentState(self_: *mut ImGuiStackSizes); +} +extern "C" { + pub fn ImGuiStackSizes_CompareWithCurrentState(self_: *mut ImGuiStackSizes); +} extern "C" { pub fn ImGuiPtrOrIndex_ImGuiPtrOrIndexPtr(ptr: *mut cty::c_void) -> *mut ImGuiPtrOrIndex; } @@ -8034,6 +8232,32 @@ extern "C" { extern "C" { pub fn ImGuiPtrOrIndex_ImGuiPtrOrIndexInt(index: cty::c_int) -> *mut ImGuiPtrOrIndex; } +extern "C" { + pub fn ImGuiListClipperRange_FromIndices( + min: cty::c_int, + max: cty::c_int, + ) -> ImGuiListClipperRange; +} +extern "C" { + pub fn ImGuiListClipperRange_FromPositions( + y1: f32, + y2: f32, + off_min: cty::c_int, + off_max: cty::c_int, + ) -> ImGuiListClipperRange; +} +extern "C" { + pub fn ImGuiListClipperData_ImGuiListClipperData() -> *mut ImGuiListClipperData; +} +extern "C" { + pub fn ImGuiListClipperData_destroy(self_: *mut ImGuiListClipperData); +} +extern "C" { + pub fn ImGuiListClipperData_Reset( + self_: *mut ImGuiListClipperData, + clipper: *mut ImGuiListClipper, + ); +} extern "C" { pub fn ImGuiNavItemData_ImGuiNavItemData() -> *mut ImGuiNavItemData; } @@ -8161,16 +8385,16 @@ extern "C" { pub fn ImGuiMetricsConfig_destroy(self_: *mut ImGuiMetricsConfig); } extern "C" { - pub fn ImGuiStackSizes_ImGuiStackSizes() -> *mut ImGuiStackSizes; + pub fn ImGuiStackLevelInfo_ImGuiStackLevelInfo() -> *mut ImGuiStackLevelInfo; } extern "C" { - pub fn ImGuiStackSizes_destroy(self_: *mut ImGuiStackSizes); + pub fn ImGuiStackLevelInfo_destroy(self_: *mut ImGuiStackLevelInfo); } extern "C" { - pub fn ImGuiStackSizes_SetToCurrentState(self_: *mut ImGuiStackSizes); + pub fn ImGuiStackTool_ImGuiStackTool() -> *mut ImGuiStackTool; } extern "C" { - pub fn ImGuiStackSizes_CompareWithCurrentState(self_: *mut ImGuiStackSizes); + pub fn ImGuiStackTool_destroy(self_: *mut ImGuiStackTool); } extern "C" { pub fn ImGuiContextHook_ImGuiContextHook() -> *mut ImGuiContextHook; @@ -8323,7 +8547,18 @@ extern "C" { pub fn igCalcWindowNextAutoFitSize(pOut: *mut ImVec2, window: *mut ImGuiWindow); } extern "C" { - pub fn igIsWindowChildOf(window: *mut ImGuiWindow, potential_parent: *mut ImGuiWindow) -> bool; + pub fn igIsWindowChildOf( + window: *mut ImGuiWindow, + potential_parent: *mut ImGuiWindow, + popup_hierarchy: bool, + dock_hierarchy: bool, + ) -> bool; +} +extern "C" { + pub fn igIsWindowWithinBeginStackOf( + window: *mut ImGuiWindow, + potential_parent: *mut ImGuiWindow, + ) -> bool; } extern "C" { pub fn igIsWindowAbove( @@ -8350,6 +8585,12 @@ extern "C" { extern "C" { pub fn igSetWindowHitTestHole(window: *mut ImGuiWindow, pos: ImVec2, size: ImVec2); } +extern "C" { + pub fn igWindowRectAbsToRel(pOut: *mut ImRect, window: *mut ImGuiWindow, r: ImRect); +} +extern "C" { + pub fn igWindowRectRelToAbs(pOut: *mut ImRect, window: *mut ImGuiWindow, r: ImRect); +} extern "C" { pub fn igFocusWindow(window: *mut ImGuiWindow); } @@ -8368,6 +8609,17 @@ extern "C" { extern "C" { pub fn igBringWindowToDisplayBack(window: *mut ImGuiWindow); } +extern "C" { + pub fn igBringWindowToDisplayBehind(window: *mut ImGuiWindow, above_window: *mut ImGuiWindow); +} +extern "C" { + pub fn igFindWindowDisplayIndex(window: *mut ImGuiWindow) -> cty::c_int; +} +extern "C" { + pub fn igFindBottomMostVisibleWindowWithinBeginStack( + window: *mut ImGuiWindow, + ) -> *mut ImGuiWindow; +} extern "C" { pub fn igSetCurrentFont(font: *mut ImFont); } @@ -8477,12 +8729,22 @@ extern "C" { ); } extern "C" { - pub fn igScrollToBringRectIntoView( + pub fn igScrollToItem(flags: ImGuiScrollFlags); +} +extern "C" { + pub fn igScrollToRect(window: *mut ImGuiWindow, rect: ImRect, flags: ImGuiScrollFlags); +} +extern "C" { + pub fn igScrollToRectEx( pOut: *mut ImVec2, window: *mut ImGuiWindow, - item_rect: ImRect, + rect: ImRect, + flags: ImGuiScrollFlags, ); } +extern "C" { + pub fn igScrollToBringRectIntoView(window: *mut ImGuiWindow, rect: ImRect); +} extern "C" { pub fn igGetItemID() -> ImGuiID; } @@ -8540,17 +8802,14 @@ extern "C" { bb: ImRect, id: ImGuiID, nav_bb: *const ImRect, - flags: ImGuiItemAddFlags, + extra_flags: ImGuiItemFlags, ) -> bool; } extern "C" { pub fn igItemHoverable(bb: ImRect, id: ImGuiID) -> bool; } extern "C" { - pub fn igItemFocusable(window: *mut ImGuiWindow, id: ImGuiID); -} -extern "C" { - pub fn igIsClippedEx(bb: ImRect, id: ImGuiID, clip_even_when_logged: bool) -> bool; + pub fn igIsClippedEx(bb: ImRect, id: ImGuiID) -> bool; } extern "C" { pub fn igSetLastItemData( @@ -8621,6 +8880,9 @@ extern "C" { restore_focus_to_window_under_popup: bool, ); } +extern "C" { + pub fn igClosePopupsExceptModals(); +} extern "C" { pub fn igIsPopupOpenID(id: ImGuiID, popup_flags: ImGuiPopupFlags) -> bool; } @@ -8628,7 +8890,7 @@ extern "C" { pub fn igBeginPopupEx(id: ImGuiID, extra_flags: ImGuiWindowFlags) -> bool; } extern "C" { - pub fn igBeginTooltipEx(extra_flags: ImGuiWindowFlags, tooltip_flags: ImGuiTooltipFlags); + pub fn igBeginTooltipEx(tooltip_flags: ImGuiTooltipFlags, extra_window_flags: ImGuiWindowFlags); } extern "C" { pub fn igGetPopupAllowedExtentRect(pOut: *mut ImRect, window: *mut ImGuiWindow); @@ -8636,6 +8898,9 @@ extern "C" { extern "C" { pub fn igGetTopMostPopupModal() -> *mut ImGuiWindow; } +extern "C" { + pub fn igGetTopMostAndVisiblePopupModal() -> *mut ImGuiWindow; +} extern "C" { pub fn igFindBestWindowPosForPopup(pOut: *mut ImVec2, window: *mut ImGuiWindow); } @@ -8687,16 +8952,31 @@ extern "C" { extern "C" { pub fn igNavInitWindow(window: *mut ImGuiWindow, force_reinit: bool); } +extern "C" { + pub fn igNavInitRequestApplyResult(); +} extern "C" { pub fn igNavMoveRequestButNoResultYet() -> bool; } +extern "C" { + pub fn igNavMoveRequestSubmit( + move_dir: ImGuiDir, + clip_dir: ImGuiDir, + move_flags: ImGuiNavMoveFlags, + scroll_flags: ImGuiScrollFlags, + ); +} extern "C" { pub fn igNavMoveRequestForward( move_dir: ImGuiDir, clip_dir: ImGuiDir, move_flags: ImGuiNavMoveFlags, + scroll_flags: ImGuiScrollFlags, ); } +extern "C" { + pub fn igNavMoveRequestResolveWithLastItem(result: *mut ImGuiNavItemData); +} extern "C" { pub fn igNavMoveRequestCancel(); } @@ -8801,6 +9081,9 @@ extern "C" { extern "C" { pub fn igDockContextNewFrameUpdateDocking(ctx: *mut ImGuiContext); } +extern "C" { + pub fn igDockContextEndFrame(ctx: *mut ImGuiContext); +} extern "C" { pub fn igDockContextGenNodeID(ctx: *mut ImGuiContext) -> ImGuiID; } @@ -8840,6 +9123,9 @@ extern "C" { extern "C" { pub fn igDockNodeGetRootNode(node: *mut ImGuiDockNode) -> *mut ImGuiDockNode; } +extern "C" { + pub fn igDockNodeIsInHierarchyOf(node: *mut ImGuiDockNode, parent: *mut ImGuiDockNode) -> bool; +} extern "C" { pub fn igDockNodeGetDepth(node: *const ImGuiDockNode) -> cty::c_int; } @@ -9341,6 +9627,13 @@ extern "C" { rounding: f32, ); } +extern "C" { + pub fn igCalcRoundingFlagsForRectInRect( + r_in: ImRect, + r_outer: ImRect, + threshold: f32, + ) -> ImDrawFlags; +} extern "C" { pub fn igTextEx(text: *const cty::c_char, text_end: *const cty::c_char, flags: ImGuiTextFlags); } @@ -9370,9 +9663,9 @@ extern "C" { bb: ImRect, id: ImGuiID, axis: ImGuiAxis, - p_scroll_v: *mut f32, - avail_v: f32, - contents_v: f32, + p_scroll_v: *mut ImS64, + avail_v: ImS64, + contents_v: ImS64, flags: ImDrawFlags, ) -> bool; } @@ -9462,6 +9755,7 @@ extern "C" { min_size2: f32, hover_extend: f32, hover_visibility_delay: f32, + bg_col: ImU32, ) -> bool; } extern "C" { @@ -9626,6 +9920,12 @@ extern "C" { user_data: *mut cty::c_void, ); } +extern "C" { + pub fn igErrorCheckEndWindowRecover( + log_callback: ImGuiErrorLogCallback, + user_data: *mut cty::c_void, + ); +} extern "C" { pub fn igDebugDrawItemRect(col: ImU32); } @@ -9635,6 +9935,14 @@ extern "C" { extern "C" { pub fn igShowFontAtlas(atlas: *mut ImFontAtlas); } +extern "C" { + pub fn igDebugHookIdInfo( + id: ImGuiID, + data_type: ImGuiDataType, + data_id: *const cty::c_void, + data_id_end: *const cty::c_void, + ); +} extern "C" { pub fn igDebugNodeColumns(columns: *mut ImGuiOldColumns); } @@ -9682,6 +9990,13 @@ extern "C" { extern "C" { pub fn igDebugNodeWindowsList(windows: *mut ImVector_ImGuiWindowPtr, label: *const cty::c_char); } +extern "C" { + pub fn igDebugNodeWindowsListByBeginStackParent( + windows: *mut *mut ImGuiWindow, + windows_size: cty::c_int, + parent_in_begin_stack: *mut ImGuiWindow, + ); +} extern "C" { pub fn igDebugNodeViewport(viewport: *mut ImGuiViewportP); } diff --git a/imgui-sys/src/wasm_bindings.rs b/imgui-sys/src/wasm_bindings.rs index 496d1afa0..c2e90efb3 100644 --- a/imgui-sys/src/wasm_bindings.rs +++ b/imgui-sys/src/wasm_bindings.rs @@ -136,6 +136,7 @@ pub type ImDrawIdx = cty::c_ushort; pub type ImGuiID = cty::c_uint; pub type ImU8 = cty::c_uchar; pub type ImS16 = cty::c_short; +pub type ImU16 = cty::c_ushort; pub type ImU32 = cty::c_uint; pub type ImWchar16 = cty::c_ushort; pub type ImWchar32 = cty::c_uint; @@ -638,17 +639,19 @@ pub const ImGuiFocusedFlags_None: ImGuiFocusedFlags_ = 0; pub const ImGuiFocusedFlags_ChildWindows: ImGuiFocusedFlags_ = 1; pub const ImGuiFocusedFlags_RootWindow: ImGuiFocusedFlags_ = 2; pub const ImGuiFocusedFlags_AnyWindow: ImGuiFocusedFlags_ = 4; +pub const ImGuiFocusedFlags_NoPopupHierarchy: ImGuiFocusedFlags_ = 8; pub const ImGuiFocusedFlags_RootAndChildWindows: ImGuiFocusedFlags_ = 3; pub type ImGuiFocusedFlags_ = cty::c_uint; pub const ImGuiHoveredFlags_None: ImGuiHoveredFlags_ = 0; pub const ImGuiHoveredFlags_ChildWindows: ImGuiHoveredFlags_ = 1; pub const ImGuiHoveredFlags_RootWindow: ImGuiHoveredFlags_ = 2; pub const ImGuiHoveredFlags_AnyWindow: ImGuiHoveredFlags_ = 4; -pub const ImGuiHoveredFlags_AllowWhenBlockedByPopup: ImGuiHoveredFlags_ = 8; -pub const ImGuiHoveredFlags_AllowWhenBlockedByActiveItem: ImGuiHoveredFlags_ = 32; -pub const ImGuiHoveredFlags_AllowWhenOverlapped: ImGuiHoveredFlags_ = 64; -pub const ImGuiHoveredFlags_AllowWhenDisabled: ImGuiHoveredFlags_ = 128; -pub const ImGuiHoveredFlags_RectOnly: ImGuiHoveredFlags_ = 104; +pub const ImGuiHoveredFlags_NoPopupHierarchy: ImGuiHoveredFlags_ = 8; +pub const ImGuiHoveredFlags_AllowWhenBlockedByPopup: ImGuiHoveredFlags_ = 32; +pub const ImGuiHoveredFlags_AllowWhenBlockedByActiveItem: ImGuiHoveredFlags_ = 128; +pub const ImGuiHoveredFlags_AllowWhenOverlapped: ImGuiHoveredFlags_ = 256; +pub const ImGuiHoveredFlags_AllowWhenDisabled: ImGuiHoveredFlags_ = 512; +pub const ImGuiHoveredFlags_RectOnly: ImGuiHoveredFlags_ = 416; pub const ImGuiHoveredFlags_RootAndChildWindows: ImGuiHoveredFlags_ = 3; pub type ImGuiHoveredFlags_ = cty::c_uint; pub const ImGuiDragDropFlags_None: ImGuiDragDropFlags_ = 0; @@ -1026,6 +1029,7 @@ pub struct ImGuiIO { pub MetricsActiveWindows: cty::c_int, pub MetricsActiveAllocations: cty::c_int, pub MouseDelta: ImVec2, + pub WantCaptureMouseUnlessPopupClose: bool, pub KeyMods: ImGuiKeyModFlags, pub KeyModsPrev: ImGuiKeyModFlags, pub MousePosPrev: ImVec2, @@ -1033,9 +1037,11 @@ pub struct ImGuiIO { pub MouseClickedTime: [f64; 5usize], pub MouseClicked: [bool; 5usize], pub MouseDoubleClicked: [bool; 5usize], + pub MouseClickedCount: [ImU16; 5usize], + pub MouseClickedLastCount: [ImU16; 5usize], pub MouseReleased: [bool; 5usize], pub MouseDownOwned: [bool; 5usize], - pub MouseDownWasDoubleClick: [bool; 5usize], + pub MouseDownOwnedUnlessPopupClose: [bool; 5usize], pub MouseDownDuration: [f32; 5usize], pub MouseDownDurationPrev: [f32; 5usize], pub MouseDragMaxDistanceAbs: [ImVec2; 5usize], @@ -1045,6 +1051,7 @@ pub struct ImGuiIO { pub NavInputsDownDuration: [f32; 20usize], pub NavInputsDownDurationPrev: [f32; 20usize], pub PenPressure: f32, + pub AppFocusLost: bool, pub InputQueueSurrogate: ImWchar16, pub InputQueueCharacters: ImVector_ImWchar, } @@ -1280,15 +1287,23 @@ impl Default for ImGuiStorage { } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq)] +#[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiListClipper { pub DisplayStart: cty::c_int, pub DisplayEnd: cty::c_int, pub ItemsCount: cty::c_int, - pub StepNo: cty::c_int, - pub ItemsFrozen: cty::c_int, pub ItemsHeight: f32, pub StartPosY: f32, + pub TempData: *mut cty::c_void, +} +impl Default for ImGuiListClipper { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } } #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] @@ -1734,6 +1749,10 @@ extern "C" { pub fn igShowMetricsWindow(p_open: *mut bool); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igShowStackToolWindow(p_open: *mut bool); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igShowAboutWindow(p_open: *mut bool); } @@ -1917,10 +1936,6 @@ extern "C" { pub fn igGetWindowContentRegionMax(pOut: *mut ImVec2); } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetWindowContentRegionWidth() -> f32; -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igGetScrollX() -> f32; } @@ -3492,15 +3507,6 @@ extern "C" { pub fn igGetStateStorage() -> *mut ImGuiStorage; } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igCalcListClipping( - items_count: cty::c_int, - items_height: f32, - out_items_display_start: *mut cty::c_int, - out_items_display_end: *mut cty::c_int, - ); -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igBeginChildFrame(id: ImGuiID, size: ImVec2, flags: ImGuiWindowFlags) -> bool; } @@ -3590,6 +3596,10 @@ extern "C" { pub fn igIsMouseDoubleClicked(button: ImGuiMouseButton) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetMouseClickedCount(button: ImGuiMouseButton) -> cty::c_int; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igIsMouseHoveringRect(r_min: ImVec2, r_max: ImVec2, clip: bool) -> bool; } @@ -3718,12 +3728,16 @@ extern "C" { pub fn ImGuiIO_AddInputCharactersUTF8(self_: *mut ImGuiIO, str_: *const cty::c_char); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiIO_AddFocusEvent(self_: *mut ImGuiIO, focused: bool); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiIO_ClearInputCharacters(self_: *mut ImGuiIO); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiIO_AddFocusEvent(self_: *mut ImGuiIO, focused: bool); + pub fn ImGuiIO_ClearInputKeys(self_: *mut ImGuiIO); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -4057,6 +4071,14 @@ extern "C" { pub fn ImGuiListClipper_Step(self_: *mut ImGuiListClipper) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiListClipper_ForceDisplayRangeByIndices( + self_: *mut ImGuiListClipper, + item_min: cty::c_int, + item_max: cty::c_int, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImColor_ImColorNil() -> *mut ImColor; } diff --git a/imgui-sys/src/wasm_docking_bindings.rs b/imgui-sys/src/wasm_docking_bindings.rs index ffd6db1ac..01373bd50 100644 --- a/imgui-sys/src/wasm_docking_bindings.rs +++ b/imgui-sys/src/wasm_docking_bindings.rs @@ -221,8 +221,8 @@ pub type ImDrawCallback = ::core::option::Option< >; pub type ImGuiDataAuthority = cty::c_int; pub type ImGuiLayoutType = cty::c_int; +pub type ImGuiActivateFlags = cty::c_int; pub type ImGuiItemFlags = cty::c_int; -pub type ImGuiItemAddFlags = cty::c_int; pub type ImGuiItemStatusFlags = cty::c_int; pub type ImGuiOldColumnFlags = cty::c_int; pub type ImGuiNavHighlightFlags = cty::c_int; @@ -230,6 +230,7 @@ pub type ImGuiNavDirSourceFlags = cty::c_int; pub type ImGuiNavMoveFlags = cty::c_int; pub type ImGuiNextItemDataFlags = cty::c_int; pub type ImGuiNextWindowDataFlags = cty::c_int; +pub type ImGuiScrollFlags = cty::c_int; pub type ImGuiSeparatorFlags = cty::c_int; pub type ImGuiTextFlags = cty::c_int; pub type ImGuiTooltipFlags = cty::c_int; @@ -606,6 +607,38 @@ impl Default for ImVector_ImGuiItemFlags { } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImGuiListClipperData { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImGuiListClipperData, +} +impl Default for ImVector_ImGuiListClipperData { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImGuiListClipperRange { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImGuiListClipperRange, +} +impl Default for ImVector_ImGuiListClipperRange { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImVector_ImGuiOldColumnData { pub Size: cty::c_int, pub Capacity: cty::c_int, @@ -718,6 +751,22 @@ impl Default for ImVector_ImGuiShrinkWidthItem { } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImGuiStackLevelInfo { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImGuiStackLevelInfo, +} +impl Default for ImVector_ImGuiStackLevelInfo { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImVector_ImGuiStoragePair { pub Size: cty::c_int, pub Capacity: cty::c_int, @@ -1234,17 +1283,21 @@ pub const ImGuiFocusedFlags_None: ImGuiFocusedFlags_ = 0; pub const ImGuiFocusedFlags_ChildWindows: ImGuiFocusedFlags_ = 1; pub const ImGuiFocusedFlags_RootWindow: ImGuiFocusedFlags_ = 2; pub const ImGuiFocusedFlags_AnyWindow: ImGuiFocusedFlags_ = 4; +pub const ImGuiFocusedFlags_NoPopupHierarchy: ImGuiFocusedFlags_ = 8; +pub const ImGuiFocusedFlags_DockHierarchy: ImGuiFocusedFlags_ = 16; pub const ImGuiFocusedFlags_RootAndChildWindows: ImGuiFocusedFlags_ = 3; pub type ImGuiFocusedFlags_ = cty::c_uint; pub const ImGuiHoveredFlags_None: ImGuiHoveredFlags_ = 0; pub const ImGuiHoveredFlags_ChildWindows: ImGuiHoveredFlags_ = 1; pub const ImGuiHoveredFlags_RootWindow: ImGuiHoveredFlags_ = 2; pub const ImGuiHoveredFlags_AnyWindow: ImGuiHoveredFlags_ = 4; -pub const ImGuiHoveredFlags_AllowWhenBlockedByPopup: ImGuiHoveredFlags_ = 8; -pub const ImGuiHoveredFlags_AllowWhenBlockedByActiveItem: ImGuiHoveredFlags_ = 32; -pub const ImGuiHoveredFlags_AllowWhenOverlapped: ImGuiHoveredFlags_ = 64; -pub const ImGuiHoveredFlags_AllowWhenDisabled: ImGuiHoveredFlags_ = 128; -pub const ImGuiHoveredFlags_RectOnly: ImGuiHoveredFlags_ = 104; +pub const ImGuiHoveredFlags_NoPopupHierarchy: ImGuiHoveredFlags_ = 8; +pub const ImGuiHoveredFlags_DockHierarchy: ImGuiHoveredFlags_ = 16; +pub const ImGuiHoveredFlags_AllowWhenBlockedByPopup: ImGuiHoveredFlags_ = 32; +pub const ImGuiHoveredFlags_AllowWhenBlockedByActiveItem: ImGuiHoveredFlags_ = 128; +pub const ImGuiHoveredFlags_AllowWhenOverlapped: ImGuiHoveredFlags_ = 256; +pub const ImGuiHoveredFlags_AllowWhenDisabled: ImGuiHoveredFlags_ = 512; +pub const ImGuiHoveredFlags_RectOnly: ImGuiHoveredFlags_ = 416; pub const ImGuiHoveredFlags_RootAndChildWindows: ImGuiHoveredFlags_ = 3; pub type ImGuiHoveredFlags_ = cty::c_uint; pub const ImGuiDockNodeFlags_None: ImGuiDockNodeFlags_ = 0; @@ -1594,6 +1647,7 @@ pub struct ImGuiIO { pub FontDefault: *mut ImFont, pub DisplayFramebufferScale: ImVec2, pub ConfigDockingNoSplit: bool, + pub ConfigDockingWithShift: bool, pub ConfigDockingAlwaysTabBar: bool, pub ConfigDockingTransparentPayload: bool, pub ConfigViewportsNoAutoMerge: bool, @@ -1652,10 +1706,11 @@ pub struct ImGuiIO { pub MouseClickedTime: [f64; 5usize], pub MouseClicked: [bool; 5usize], pub MouseDoubleClicked: [bool; 5usize], + pub MouseClickedCount: [ImU16; 5usize], + pub MouseClickedLastCount: [ImU16; 5usize], pub MouseReleased: [bool; 5usize], pub MouseDownOwned: [bool; 5usize], pub MouseDownOwnedUnlessPopupClose: [bool; 5usize], - pub MouseDownWasDoubleClick: [bool; 5usize], pub MouseDownDuration: [f32; 5usize], pub MouseDownDurationPrev: [f32; 5usize], pub MouseDragMaxDistanceAbs: [ImVec2; 5usize], @@ -1977,15 +2032,23 @@ impl Default for ImPool_ImGuiTable { } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq)] +#[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiListClipper { pub DisplayStart: cty::c_int, pub DisplayEnd: cty::c_int, pub ItemsCount: cty::c_int, - pub StepNo: cty::c_int, - pub ItemsFrozen: cty::c_int, pub ItemsHeight: f32, pub StartPosY: f32, + pub TempData: *mut cty::c_void, +} +impl Default for ImGuiListClipper { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } } #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] @@ -2610,10 +2673,8 @@ pub const ImGuiItemFlags_NoNavDefaultFocus: ImGuiItemFlags_ = 16; pub const ImGuiItemFlags_SelectableDontClosePopup: ImGuiItemFlags_ = 32; pub const ImGuiItemFlags_MixedValue: ImGuiItemFlags_ = 64; pub const ImGuiItemFlags_ReadOnly: ImGuiItemFlags_ = 128; +pub const ImGuiItemFlags_Inputable: ImGuiItemFlags_ = 256; pub type ImGuiItemFlags_ = cty::c_uint; -pub const ImGuiItemAddFlags_None: ImGuiItemAddFlags_ = 0; -pub const ImGuiItemAddFlags_Focusable: ImGuiItemAddFlags_ = 1; -pub type ImGuiItemAddFlags_ = cty::c_uint; pub const ImGuiItemStatusFlags_None: ImGuiItemStatusFlags_ = 0; pub const ImGuiItemStatusFlags_HoveredRect: ImGuiItemStatusFlags_ = 1; pub const ImGuiItemStatusFlags_HasDisplayRect: ImGuiItemStatusFlags_ = 2; @@ -2623,9 +2684,7 @@ pub const ImGuiItemStatusFlags_ToggledOpen: ImGuiItemStatusFlags_ = 16; pub const ImGuiItemStatusFlags_HasDeactivated: ImGuiItemStatusFlags_ = 32; pub const ImGuiItemStatusFlags_Deactivated: ImGuiItemStatusFlags_ = 64; pub const ImGuiItemStatusFlags_HoveredWindow: ImGuiItemStatusFlags_ = 128; -pub const ImGuiItemStatusFlags_FocusedByCode: ImGuiItemStatusFlags_ = 256; -pub const ImGuiItemStatusFlags_FocusedByTabbing: ImGuiItemStatusFlags_ = 512; -pub const ImGuiItemStatusFlags_Focused: ImGuiItemStatusFlags_ = 768; +pub const ImGuiItemStatusFlags_FocusedByTabbing: ImGuiItemStatusFlags_ = 256; pub type ImGuiItemStatusFlags_ = cty::c_uint; pub const ImGuiInputTextFlags_Multiline: ImGuiInputTextFlagsPrivate_ = 67108864; pub const ImGuiInputTextFlags_NoMarkEdited: ImGuiInputTextFlagsPrivate_ = 134217728; @@ -2842,8 +2901,6 @@ pub struct ImGuiInputTextState { pub SelectedAllMouseLock: bool, pub Edited: bool, pub Flags: ImGuiInputTextFlags, - pub UserCallback: ImGuiInputTextCallback, - pub UserCallbackData: *mut cty::c_void, } impl Default for ImGuiInputTextState { fn default() -> Self { @@ -2940,13 +2997,28 @@ pub struct ImGuiLastItemData { pub InFlags: ImGuiItemFlags, pub StatusFlags: ImGuiItemStatusFlags, pub Rect: ImRect, + pub NavRect: ImRect, pub DisplayRect: ImRect, } #[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiStackSizes { + pub SizeOfIDStack: cty::c_short, + pub SizeOfColorStack: cty::c_short, + pub SizeOfStyleVarStack: cty::c_short, + pub SizeOfFontStack: cty::c_short, + pub SizeOfFocusScopeStack: cty::c_short, + pub SizeOfGroupStack: cty::c_short, + pub SizeOfItemFlagsStack: cty::c_short, + pub SizeOfBeginPopupStack: cty::c_short, + pub SizeOfDisabledStack: cty::c_short, +} +#[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiWindowStackData { pub Window: *mut ImGuiWindow, pub ParentLastItemDataBackup: ImGuiLastItemData, + pub StackSizesOnBegin: ImGuiStackSizes, } impl Default for ImGuiWindowStackData { fn default() -> Self { @@ -2978,6 +3050,49 @@ impl Default for ImGuiPtrOrIndex { } } } +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiListClipperRange { + pub Min: cty::c_int, + pub Max: cty::c_int, + pub PosToIndexConvert: bool, + pub PosToIndexOffsetMin: ImS8, + pub PosToIndexOffsetMax: ImS8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone, PartialEq)] +pub struct ImGuiListClipperData { + pub ListClipper: *mut ImGuiListClipper, + pub LossynessOffset: f32, + pub StepNo: cty::c_int, + pub ItemsFrozen: cty::c_int, + pub Ranges: ImVector_ImGuiListClipperRange, +} +impl Default for ImGuiListClipperData { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const ImGuiActivateFlags_None: ImGuiActivateFlags_ = 0; +pub const ImGuiActivateFlags_PreferInput: ImGuiActivateFlags_ = 1; +pub const ImGuiActivateFlags_PreferTweak: ImGuiActivateFlags_ = 2; +pub const ImGuiActivateFlags_TryToPreserveState: ImGuiActivateFlags_ = 4; +pub type ImGuiActivateFlags_ = cty::c_uint; +pub const ImGuiScrollFlags_None: ImGuiScrollFlags_ = 0; +pub const ImGuiScrollFlags_KeepVisibleEdgeX: ImGuiScrollFlags_ = 1; +pub const ImGuiScrollFlags_KeepVisibleEdgeY: ImGuiScrollFlags_ = 2; +pub const ImGuiScrollFlags_KeepVisibleCenterX: ImGuiScrollFlags_ = 4; +pub const ImGuiScrollFlags_KeepVisibleCenterY: ImGuiScrollFlags_ = 8; +pub const ImGuiScrollFlags_AlwaysCenterX: ImGuiScrollFlags_ = 16; +pub const ImGuiScrollFlags_AlwaysCenterY: ImGuiScrollFlags_ = 32; +pub const ImGuiScrollFlags_NoScrollParent: ImGuiScrollFlags_ = 64; +pub const ImGuiScrollFlags_MaskX_: ImGuiScrollFlags_ = 21; +pub const ImGuiScrollFlags_MaskY_: ImGuiScrollFlags_ = 42; +pub type ImGuiScrollFlags_ = cty::c_uint; pub const ImGuiNavHighlightFlags_None: ImGuiNavHighlightFlags_ = 0; pub const ImGuiNavHighlightFlags_TypeDefault: ImGuiNavHighlightFlags_ = 1; pub const ImGuiNavHighlightFlags_TypeThin: ImGuiNavHighlightFlags_ = 2; @@ -2985,9 +3100,10 @@ pub const ImGuiNavHighlightFlags_AlwaysDraw: ImGuiNavHighlightFlags_ = 4; pub const ImGuiNavHighlightFlags_NoRounding: ImGuiNavHighlightFlags_ = 8; pub type ImGuiNavHighlightFlags_ = cty::c_uint; pub const ImGuiNavDirSourceFlags_None: ImGuiNavDirSourceFlags_ = 0; -pub const ImGuiNavDirSourceFlags_Keyboard: ImGuiNavDirSourceFlags_ = 1; -pub const ImGuiNavDirSourceFlags_PadDPad: ImGuiNavDirSourceFlags_ = 2; -pub const ImGuiNavDirSourceFlags_PadLStick: ImGuiNavDirSourceFlags_ = 4; +pub const ImGuiNavDirSourceFlags_RawKeyboard: ImGuiNavDirSourceFlags_ = 1; +pub const ImGuiNavDirSourceFlags_Keyboard: ImGuiNavDirSourceFlags_ = 2; +pub const ImGuiNavDirSourceFlags_PadDPad: ImGuiNavDirSourceFlags_ = 4; +pub const ImGuiNavDirSourceFlags_PadLStick: ImGuiNavDirSourceFlags_ = 8; pub type ImGuiNavDirSourceFlags_ = cty::c_uint; pub const ImGuiNavMoveFlags_None: ImGuiNavMoveFlags_ = 0; pub const ImGuiNavMoveFlags_LoopX: ImGuiNavMoveFlags_ = 1; @@ -2996,8 +3112,13 @@ pub const ImGuiNavMoveFlags_WrapX: ImGuiNavMoveFlags_ = 4; pub const ImGuiNavMoveFlags_WrapY: ImGuiNavMoveFlags_ = 8; pub const ImGuiNavMoveFlags_AllowCurrentNavId: ImGuiNavMoveFlags_ = 16; pub const ImGuiNavMoveFlags_AlsoScoreVisibleSet: ImGuiNavMoveFlags_ = 32; -pub const ImGuiNavMoveFlags_ScrollToEdge: ImGuiNavMoveFlags_ = 64; +pub const ImGuiNavMoveFlags_ScrollToEdgeY: ImGuiNavMoveFlags_ = 64; pub const ImGuiNavMoveFlags_Forwarded: ImGuiNavMoveFlags_ = 128; +pub const ImGuiNavMoveFlags_DebugNoResult: ImGuiNavMoveFlags_ = 256; +pub const ImGuiNavMoveFlags_FocusApi: ImGuiNavMoveFlags_ = 512; +pub const ImGuiNavMoveFlags_Tabbing: ImGuiNavMoveFlags_ = 1024; +pub const ImGuiNavMoveFlags_Activate: ImGuiNavMoveFlags_ = 2048; +pub const ImGuiNavMoveFlags_DontSetNavHighlight: ImGuiNavMoveFlags_ = 4096; pub type ImGuiNavMoveFlags_ = cty::c_uint; pub const ImGuiNavLayer_Main: ImGuiNavLayer = 0; pub const ImGuiNavLayer_Menu: ImGuiNavLayer = 1; @@ -3010,6 +3131,7 @@ pub struct ImGuiNavItemData { pub ID: ImGuiID, pub FocusScopeId: ImGuiID, pub RectRel: ImRect, + pub InFlags: ImGuiItemFlags, pub DistBox: f32, pub DistCenter: f32, pub DistAxial: f32, @@ -3115,10 +3237,12 @@ pub struct ImGuiDockNode { pub SizeRef: ImVec2, pub SplitAxis: ImGuiAxis, pub WindowClass: ImGuiWindowClass, + pub LastBgColor: ImU32, pub HostWindow: *mut ImGuiWindow, pub VisibleWindow: *mut ImGuiWindow, pub CentralNode: *mut ImGuiDockNode, pub OnlyNodeWithWindows: *mut ImGuiDockNode, + pub CountNodeWithWindows: cty::c_int, pub LastFrameAlive: cty::c_int, pub LastFrameActive: cty::c_int, pub LastFrameFocused: cty::c_int, @@ -3127,7 +3251,7 @@ pub struct ImGuiDockNode { pub WantCloseTabId: ImGuiID, pub _bitfield_align_1: [u8; 0], pub _bitfield_1: __BindgenBitfieldUnit<[u8; 3usize]>, - pub __bindgen_padding_0: [u8; 5usize], + pub __bindgen_padding_0: u8, } impl Default for ImGuiDockNode { fn default() -> Self { @@ -3195,108 +3319,120 @@ impl ImGuiDockNode { } } #[inline] - pub fn HasCloseButton(&self) -> bool { + pub fn IsBgDrawnThisFrame(&self) -> bool { unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u8) } } #[inline] - pub fn set_HasCloseButton(&mut self, val: bool) { + pub fn set_IsBgDrawnThisFrame(&mut self, val: bool) { unsafe { let val: u8 = ::core::mem::transmute(val); self._bitfield_1.set(11usize, 1u8, val as u64) } } #[inline] - pub fn HasWindowMenuButton(&self) -> bool { + pub fn HasCloseButton(&self) -> bool { unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u8) } } #[inline] - pub fn set_HasWindowMenuButton(&mut self, val: bool) { + pub fn set_HasCloseButton(&mut self, val: bool) { unsafe { let val: u8 = ::core::mem::transmute(val); self._bitfield_1.set(12usize, 1u8, val as u64) } } #[inline] - pub fn WantCloseAll(&self) -> bool { + pub fn HasWindowMenuButton(&self) -> bool { unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u8) } } #[inline] - pub fn set_WantCloseAll(&mut self, val: bool) { + pub fn set_HasWindowMenuButton(&mut self, val: bool) { unsafe { let val: u8 = ::core::mem::transmute(val); self._bitfield_1.set(13usize, 1u8, val as u64) } } #[inline] - pub fn WantLockSizeOnce(&self) -> bool { + pub fn HasCentralNodeChild(&self) -> bool { unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u8) } } #[inline] - pub fn set_WantLockSizeOnce(&mut self, val: bool) { + pub fn set_HasCentralNodeChild(&mut self, val: bool) { unsafe { let val: u8 = ::core::mem::transmute(val); self._bitfield_1.set(14usize, 1u8, val as u64) } } #[inline] - pub fn WantMouseMove(&self) -> bool { + pub fn WantCloseAll(&self) -> bool { unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u8) } } #[inline] - pub fn set_WantMouseMove(&mut self, val: bool) { + pub fn set_WantCloseAll(&mut self, val: bool) { unsafe { let val: u8 = ::core::mem::transmute(val); self._bitfield_1.set(15usize, 1u8, val as u64) } } #[inline] - pub fn WantHiddenTabBarUpdate(&self) -> bool { + pub fn WantLockSizeOnce(&self) -> bool { unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 1u8) as u8) } } #[inline] - pub fn set_WantHiddenTabBarUpdate(&mut self, val: bool) { + pub fn set_WantLockSizeOnce(&mut self, val: bool) { unsafe { let val: u8 = ::core::mem::transmute(val); self._bitfield_1.set(16usize, 1u8, val as u64) } } #[inline] - pub fn WantHiddenTabBarToggle(&self) -> bool { + pub fn WantMouseMove(&self) -> bool { unsafe { ::core::mem::transmute(self._bitfield_1.get(17usize, 1u8) as u8) } } #[inline] - pub fn set_WantHiddenTabBarToggle(&mut self, val: bool) { + pub fn set_WantMouseMove(&mut self, val: bool) { unsafe { let val: u8 = ::core::mem::transmute(val); self._bitfield_1.set(17usize, 1u8, val as u64) } } #[inline] - pub fn MarkedForPosSizeWrite(&self) -> bool { + pub fn WantHiddenTabBarUpdate(&self) -> bool { unsafe { ::core::mem::transmute(self._bitfield_1.get(18usize, 1u8) as u8) } } #[inline] - pub fn set_MarkedForPosSizeWrite(&mut self, val: bool) { + pub fn set_WantHiddenTabBarUpdate(&mut self, val: bool) { unsafe { let val: u8 = ::core::mem::transmute(val); self._bitfield_1.set(18usize, 1u8, val as u64) } } #[inline] + pub fn WantHiddenTabBarToggle(&self) -> bool { + unsafe { ::core::mem::transmute(self._bitfield_1.get(19usize, 1u8) as u8) } + } + #[inline] + pub fn set_WantHiddenTabBarToggle(&mut self, val: bool) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(19usize, 1u8, val as u64) + } + } + #[inline] pub fn new_bitfield_1( AuthorityForPos: ImGuiDataAuthority, AuthorityForSize: ImGuiDataAuthority, AuthorityForViewport: ImGuiDataAuthority, IsVisible: bool, IsFocused: bool, + IsBgDrawnThisFrame: bool, HasCloseButton: bool, HasWindowMenuButton: bool, + HasCentralNodeChild: bool, WantCloseAll: bool, WantLockSizeOnce: bool, WantMouseMove: bool, WantHiddenTabBarUpdate: bool, WantHiddenTabBarToggle: bool, - MarkedForPosSizeWrite: bool, ) -> __BindgenBitfieldUnit<[u8; 3usize]> { let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 3usize]> = Default::default(); __bindgen_bitfield_unit.set(0usize, 3u8, { @@ -3320,40 +3456,43 @@ impl ImGuiDockNode { IsFocused as u64 }); __bindgen_bitfield_unit.set(11usize, 1u8, { + let IsBgDrawnThisFrame: u8 = unsafe { ::core::mem::transmute(IsBgDrawnThisFrame) }; + IsBgDrawnThisFrame as u64 + }); + __bindgen_bitfield_unit.set(12usize, 1u8, { let HasCloseButton: u8 = unsafe { ::core::mem::transmute(HasCloseButton) }; HasCloseButton as u64 }); - __bindgen_bitfield_unit.set(12usize, 1u8, { + __bindgen_bitfield_unit.set(13usize, 1u8, { let HasWindowMenuButton: u8 = unsafe { ::core::mem::transmute(HasWindowMenuButton) }; HasWindowMenuButton as u64 }); - __bindgen_bitfield_unit.set(13usize, 1u8, { + __bindgen_bitfield_unit.set(14usize, 1u8, { + let HasCentralNodeChild: u8 = unsafe { ::core::mem::transmute(HasCentralNodeChild) }; + HasCentralNodeChild as u64 + }); + __bindgen_bitfield_unit.set(15usize, 1u8, { let WantCloseAll: u8 = unsafe { ::core::mem::transmute(WantCloseAll) }; WantCloseAll as u64 }); - __bindgen_bitfield_unit.set(14usize, 1u8, { + __bindgen_bitfield_unit.set(16usize, 1u8, { let WantLockSizeOnce: u8 = unsafe { ::core::mem::transmute(WantLockSizeOnce) }; WantLockSizeOnce as u64 }); - __bindgen_bitfield_unit.set(15usize, 1u8, { + __bindgen_bitfield_unit.set(17usize, 1u8, { let WantMouseMove: u8 = unsafe { ::core::mem::transmute(WantMouseMove) }; WantMouseMove as u64 }); - __bindgen_bitfield_unit.set(16usize, 1u8, { + __bindgen_bitfield_unit.set(18usize, 1u8, { let WantHiddenTabBarUpdate: u8 = unsafe { ::core::mem::transmute(WantHiddenTabBarUpdate) }; WantHiddenTabBarUpdate as u64 }); - __bindgen_bitfield_unit.set(17usize, 1u8, { + __bindgen_bitfield_unit.set(19usize, 1u8, { let WantHiddenTabBarToggle: u8 = unsafe { ::core::mem::transmute(WantHiddenTabBarToggle) }; WantHiddenTabBarToggle as u64 }); - __bindgen_bitfield_unit.set(18usize, 1u8, { - let MarkedForPosSizeWrite: u8 = - unsafe { ::core::mem::transmute(MarkedForPosSizeWrite) }; - MarkedForPosSizeWrite as u64 - }); __bindgen_bitfield_unit } } @@ -3486,6 +3625,7 @@ impl Default for ImGuiSettingsHandler { #[repr(C)] #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiMetricsConfig { + pub ShowStackTool: bool, pub ShowWindowsRects: bool, pub ShowWindowsBeginOrder: bool, pub ShowTablesRects: bool, @@ -3496,15 +3636,38 @@ pub struct ImGuiMetricsConfig { pub ShowTablesRectsType: cty::c_int, } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImGuiStackSizes { - pub SizeOfIDStack: cty::c_short, - pub SizeOfColorStack: cty::c_short, - pub SizeOfStyleVarStack: cty::c_short, - pub SizeOfFontStack: cty::c_short, - pub SizeOfFocusScopeStack: cty::c_short, - pub SizeOfGroupStack: cty::c_short, - pub SizeOfBeginPopupStack: cty::c_short, +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiStackLevelInfo { + pub ID: ImGuiID, + pub QueryFrameCount: ImS8, + pub QuerySuccess: bool, + pub Desc: [cty::c_char; 58usize], +} +impl Default for ImGuiStackLevelInfo { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiStackTool { + pub LastActiveFrame: cty::c_int, + pub StackLevel: cty::c_int, + pub QueryId: ImGuiID, + pub Results: ImVector_ImGuiStackLevelInfo, +} +impl Default for ImGuiStackTool { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } } pub const ImGuiContextHookType_NewFramePre: ImGuiContextHookType = 0; pub const ImGuiContextHookType_NewFramePost: ImGuiContextHookType = 1; @@ -3557,7 +3720,6 @@ pub struct ImGuiContext { pub WithinEndChild: bool, pub GcCompactAll: bool, pub TestEngineHookItems: bool, - pub TestEngineHookIdInfo: ImGuiID, pub TestEngine: *mut cty::c_void, pub Windows: ImVector_ImGuiWindowPtr, pub WindowsFocusOrder: ImVector_ImGuiWindowPtr, @@ -3574,6 +3736,7 @@ pub struct ImGuiContext { pub WheelingWindow: *mut ImGuiWindow, pub WheelingWindowRefMousePos: ImVec2, pub WheelingWindowTimer: f32, + pub DebugHookIdInfo: ImGuiID, pub HoveredId: ImGuiID, pub HoveredIdPreviousFrame: ImGuiID, pub HoveredIdAllowOverlap: bool, @@ -3617,6 +3780,7 @@ pub struct ImGuiContext { pub GroupStack: ImVector_ImGuiGroupData, pub OpenPopupStack: ImVector_ImGuiPopupData, pub BeginPopupStack: ImVector_ImGuiPopupData, + pub BeginMenuCount: cty::c_int, pub Viewports: ImVector_ImGuiViewportPPtr, pub CurrentDpiScale: f32, pub CurrentViewport: *mut ImGuiViewportP, @@ -3631,17 +3795,15 @@ pub struct ImGuiContext { pub NavActivateId: ImGuiID, pub NavActivateDownId: ImGuiID, pub NavActivatePressedId: ImGuiID, - pub NavInputId: ImGuiID, - pub NavJustTabbedId: ImGuiID, + pub NavActivateInputId: ImGuiID, + pub NavActivateFlags: ImGuiActivateFlags, pub NavJustMovedToId: ImGuiID, pub NavJustMovedToFocusScopeId: ImGuiID, pub NavJustMovedToKeyMods: ImGuiKeyModFlags, pub NavNextActivateId: ImGuiID, + pub NavNextActivateFlags: ImGuiActivateFlags, pub NavInputSource: ImGuiInputSource, - pub NavScoringRect: ImRect, - pub NavScoringCount: cty::c_int, pub NavLayer: ImGuiNavLayer, - pub NavIdTabCounter: cty::c_int, pub NavIdIsAlive: bool, pub NavMousePosDirty: bool, pub NavDisableHighlight: bool, @@ -3651,29 +3813,30 @@ pub struct ImGuiContext { pub NavInitRequestFromMove: bool, pub NavInitResultId: ImGuiID, pub NavInitResultRectRel: ImRect, - pub NavMoveRequest: bool, - pub NavMoveRequestForwardToNextFrame: bool, - pub NavMoveRequestFlags: ImGuiNavMoveFlags, - pub NavMoveRequestKeyMods: ImGuiKeyModFlags, + pub NavMoveSubmitted: bool, + pub NavMoveScoringItems: bool, + pub NavMoveForwardToNextFrame: bool, + pub NavMoveFlags: ImGuiNavMoveFlags, + pub NavMoveScrollFlags: ImGuiScrollFlags, + pub NavMoveKeyMods: ImGuiKeyModFlags, pub NavMoveDir: ImGuiDir, - pub NavMoveDirLast: ImGuiDir, + pub NavMoveDirForDebug: ImGuiDir, pub NavMoveClipDir: ImGuiDir, + pub NavScoringRect: ImRect, + pub NavScoringNoClipRect: ImRect, + pub NavScoringDebugCount: cty::c_int, + pub NavTabbingDir: cty::c_int, + pub NavTabbingCounter: cty::c_int, pub NavMoveResultLocal: ImGuiNavItemData, - pub NavMoveResultLocalVisibleSet: ImGuiNavItemData, + pub NavMoveResultLocalVisible: ImGuiNavItemData, pub NavMoveResultOther: ImGuiNavItemData, + pub NavTabbingResultFirst: ImGuiNavItemData, pub NavWindowingTarget: *mut ImGuiWindow, pub NavWindowingTargetAnim: *mut ImGuiWindow, pub NavWindowingListWindow: *mut ImGuiWindow, pub NavWindowingTimer: f32, pub NavWindowingHighlightAlpha: f32, pub NavWindowingToggleLayer: bool, - pub TabFocusRequestCurrWindow: *mut ImGuiWindow, - pub TabFocusRequestNextWindow: *mut ImGuiWindow, - pub TabFocusRequestCurrCounterRegular: cty::c_int, - pub TabFocusRequestCurrCounterTabStop: cty::c_int, - pub TabFocusRequestNextCounterRegular: cty::c_int, - pub TabFocusRequestNextCounterTabStop: cty::c_int, - pub TabFocusPressed: bool, pub DimBgRatio: f32, pub MouseCursor: ImGuiMouseCursor, pub DragDropActive: bool, @@ -3693,24 +3856,26 @@ pub struct ImGuiContext { pub DragDropHoldJustPressedId: ImGuiID, pub DragDropPayloadBufHeap: ImVector_unsigned_char, pub DragDropPayloadBufLocal: [cty::c_uchar; 16usize], + pub ClipperTempDataStacked: cty::c_int, + pub ClipperTempData: ImVector_ImGuiListClipperData, pub CurrentTable: *mut ImGuiTable, - pub CurrentTableStackIdx: cty::c_int, + pub TablesTempDataStacked: cty::c_int, + pub TablesTempData: ImVector_ImGuiTableTempData, pub Tables: ImPool_ImGuiTable, - pub TablesTempDataStack: ImVector_ImGuiTableTempData, pub TablesLastTimeActive: ImVector_float, pub DrawChannelsTempMergeBuffer: ImVector_ImDrawChannel, pub CurrentTabBar: *mut ImGuiTabBar, pub TabBars: ImPool_ImGuiTabBar, pub CurrentTabBarStack: ImVector_ImGuiPtrOrIndex, pub ShrinkWidthBuffer: ImVector_ImGuiShrinkWidthItem, - pub LastValidMousePos: ImVec2, + pub MouseLastValidPos: ImVec2, pub InputTextState: ImGuiInputTextState, pub InputTextPasswordFont: ImFont, pub TempInputId: ImGuiID, pub ColorEditOptions: ImGuiColorEditFlags, pub ColorEditLastHue: f32, pub ColorEditLastSat: f32, - pub ColorEditLastColor: [f32; 3usize], + pub ColorEditLastColor: ImU32, pub ColorPickerRef: ImVec4, pub ComboPreviewData: ImGuiComboPreviewData, pub SliderCurrentAccum: f32, @@ -3718,9 +3883,10 @@ pub struct ImGuiContext { pub DragCurrentAccumDirty: bool, pub DragCurrentAccum: f32, pub DragSpeedDefaultRatio: f32, - pub DisabledAlphaBackup: f32, pub ScrollbarClickDeltaToGrabCenter: f32, - pub TooltipOverrideCount: cty::c_int, + pub DisabledAlphaBackup: f32, + pub DisabledStackSize: cty::c_short, + pub TooltipOverrideCount: cty::c_short, pub TooltipSlowDelay: f32, pub ClipboardHandlerData: ImVector_char, pub MenusIdSubmittedThisFrame: ImVector_ImGuiID, @@ -3751,6 +3917,7 @@ pub struct ImGuiContext { pub DebugItemPickerActive: bool, pub DebugItemPickerBreakId: ImGuiID, pub DebugMetricsConfig: ImGuiMetricsConfig, + pub DebugStackTool: ImGuiStackTool, pub FramerateSecPerFrame: [f32; 120usize], pub FramerateSecPerFrameIdx: cty::c_int, pub FramerateSecPerFrameCount: cty::c_int, @@ -3784,6 +3951,7 @@ pub struct ImGuiWindowTempData { pub Indent: ImVec1, pub ColumnsOffset: ImVec1, pub GroupOffset: ImVec1, + pub CursorStartPosLossyness: ImVec2, pub NavLayerCurrent: ImGuiNavLayer, pub NavLayersActiveMask: cty::c_short, pub NavLayersActiveMaskNext: cty::c_short, @@ -3801,13 +3969,10 @@ pub struct ImGuiWindowTempData { pub CurrentTableIdx: cty::c_int, pub LayoutType: ImGuiLayoutType, pub ParentLayoutType: ImGuiLayoutType, - pub FocusCounterRegular: cty::c_int, - pub FocusCounterTabStop: cty::c_int, pub ItemWidth: f32, pub TextWrapPos: f32, pub ItemWidthStack: ImVector_float, pub TextWrapPosStack: ImVector_float, - pub StackSizesOnBegin: ImGuiStackSizes, } impl Default for ImGuiWindowTempData { fn default() -> Self { @@ -3860,6 +4025,7 @@ pub struct ImGuiWindow { pub Appearing: bool, pub Hidden: bool, pub IsFallbackWindow: bool, + pub IsExplicitChild: bool, pub HasCloseButton: bool, pub ResizeBorderHeld: cty::c_schar, pub BeginCount: cty::c_short, @@ -3903,7 +4069,9 @@ pub struct ImGuiWindow { pub DrawList: *mut ImDrawList, pub DrawListInst: ImDrawList, pub ParentWindow: *mut ImGuiWindow, + pub ParentWindowInBeginStack: *mut ImGuiWindow, pub RootWindow: *mut ImGuiWindow, + pub RootWindowPopupTree: *mut ImGuiWindow, pub RootWindowDockTree: *mut ImGuiWindow, pub RootWindowForTitleBarHighlight: *mut ImGuiWindow, pub RootWindowForNav: *mut ImGuiWindow, @@ -4602,6 +4770,10 @@ extern "C" { pub fn igShowMetricsWindow(p_open: *mut bool); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igShowStackToolWindow(p_open: *mut bool); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igShowAboutWindow(p_open: *mut bool); } @@ -6409,15 +6581,6 @@ extern "C" { pub fn igGetStateStorage() -> *mut ImGuiStorage; } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igCalcListClipping( - items_count: cty::c_int, - items_height: f32, - out_items_display_start: *mut cty::c_int, - out_items_display_end: *mut cty::c_int, - ); -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igBeginChildFrame(id: ImGuiID, size: ImVec2, flags: ImGuiWindowFlags) -> bool; } @@ -6507,6 +6670,10 @@ extern "C" { pub fn igIsMouseDoubleClicked(button: ImGuiMouseButton) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetMouseClickedCount(button: ImGuiMouseButton) -> cty::c_int; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igIsMouseHoveringRect(r_min: ImVec2, r_max: ImVec2, clip: bool) -> bool; } @@ -7013,6 +7180,14 @@ extern "C" { pub fn ImGuiListClipper_Step(self_: *mut ImGuiListClipper) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiListClipper_ForceDisplayRangeByIndices( + self_: *mut ImGuiListClipper, + item_min: cty::c_int, + item_max: cty::c_int, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImColor_ImColorNil() -> *mut ImColor; } @@ -8040,6 +8215,17 @@ extern "C" { pub fn igImHashStr(data: *const cty::c_char, data_size: usize, seed: ImU32) -> ImGuiID; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igImQsort( + base: *mut cty::c_void, + count: usize, + size_of_element: usize, + compare_func: ::core::option::Option< + unsafe extern "C" fn(arg1: *const cty::c_void, arg2: *const cty::c_void) -> cty::c_int, + >, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igImAlphaBlendColors(col_a: ImU32, col_b: ImU32) -> ImU32; } @@ -8371,6 +8557,10 @@ extern "C" { pub fn igImMul(pOut: *mut ImVec2, lhs: ImVec2, rhs: ImVec2); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igImIsFloatAboveGuaranteedIntegerPrecision(f: f32) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igImBezierCubicCalc( pOut: *mut ImVec2, @@ -8807,6 +8997,22 @@ extern "C" { pub fn ImGuiLastItemData_destroy(self_: *mut ImGuiLastItemData); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiStackSizes_ImGuiStackSizes() -> *mut ImGuiStackSizes; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiStackSizes_destroy(self_: *mut ImGuiStackSizes); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiStackSizes_SetToCurrentState(self_: *mut ImGuiStackSizes); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiStackSizes_CompareWithCurrentState(self_: *mut ImGuiStackSizes); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiPtrOrIndex_ImGuiPtrOrIndexPtr(ptr: *mut cty::c_void) -> *mut ImGuiPtrOrIndex; } @@ -8819,6 +9025,37 @@ extern "C" { pub fn ImGuiPtrOrIndex_ImGuiPtrOrIndexInt(index: cty::c_int) -> *mut ImGuiPtrOrIndex; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiListClipperRange_FromIndices( + min: cty::c_int, + max: cty::c_int, + ) -> ImGuiListClipperRange; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiListClipperRange_FromPositions( + y1: f32, + y2: f32, + off_min: cty::c_int, + off_max: cty::c_int, + ) -> ImGuiListClipperRange; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiListClipperData_ImGuiListClipperData() -> *mut ImGuiListClipperData; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiListClipperData_destroy(self_: *mut ImGuiListClipperData); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiListClipperData_Reset( + self_: *mut ImGuiListClipperData, + clipper: *mut ImGuiListClipper, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiNavItemData_ImGuiNavItemData() -> *mut ImGuiNavItemData; } @@ -8985,19 +9222,19 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiStackSizes_ImGuiStackSizes() -> *mut ImGuiStackSizes; + pub fn ImGuiStackLevelInfo_ImGuiStackLevelInfo() -> *mut ImGuiStackLevelInfo; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiStackSizes_destroy(self_: *mut ImGuiStackSizes); + pub fn ImGuiStackLevelInfo_destroy(self_: *mut ImGuiStackLevelInfo); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiStackSizes_SetToCurrentState(self_: *mut ImGuiStackSizes); + pub fn ImGuiStackTool_ImGuiStackTool() -> *mut ImGuiStackTool; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiStackSizes_CompareWithCurrentState(self_: *mut ImGuiStackSizes); + pub fn ImGuiStackTool_destroy(self_: *mut ImGuiStackTool); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -9193,7 +9430,19 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igIsWindowChildOf(window: *mut ImGuiWindow, potential_parent: *mut ImGuiWindow) -> bool; + pub fn igIsWindowChildOf( + window: *mut ImGuiWindow, + potential_parent: *mut ImGuiWindow, + popup_hierarchy: bool, + dock_hierarchy: bool, + ) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igIsWindowWithinBeginStackOf( + window: *mut ImGuiWindow, + potential_parent: *mut ImGuiWindow, + ) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -9227,6 +9476,14 @@ extern "C" { pub fn igSetWindowHitTestHole(window: *mut ImGuiWindow, pos: ImVec2, size: ImVec2); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igWindowRectAbsToRel(pOut: *mut ImRect, window: *mut ImGuiWindow, r: ImRect); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igWindowRectRelToAbs(pOut: *mut ImRect, window: *mut ImGuiWindow, r: ImRect); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igFocusWindow(window: *mut ImGuiWindow); } @@ -9250,6 +9507,20 @@ extern "C" { pub fn igBringWindowToDisplayBack(window: *mut ImGuiWindow); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igBringWindowToDisplayBehind(window: *mut ImGuiWindow, above_window: *mut ImGuiWindow); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igFindWindowDisplayIndex(window: *mut ImGuiWindow) -> cty::c_int; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igFindBottomMostVisibleWindowWithinBeginStack( + window: *mut ImGuiWindow, + ) -> *mut ImGuiWindow; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igSetCurrentFont(font: *mut ImFont); } @@ -9389,13 +9660,26 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igScrollToBringRectIntoView( + pub fn igScrollToItem(flags: ImGuiScrollFlags); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igScrollToRect(window: *mut ImGuiWindow, rect: ImRect, flags: ImGuiScrollFlags); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igScrollToRectEx( pOut: *mut ImVec2, window: *mut ImGuiWindow, - item_rect: ImRect, + rect: ImRect, + flags: ImGuiScrollFlags, ); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igScrollToBringRectIntoView(window: *mut ImGuiWindow, rect: ImRect); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igGetItemID() -> ImGuiID; } @@ -9469,7 +9753,7 @@ extern "C" { bb: ImRect, id: ImGuiID, nav_bb: *const ImRect, - flags: ImGuiItemAddFlags, + extra_flags: ImGuiItemFlags, ) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] @@ -9478,11 +9762,7 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igItemFocusable(window: *mut ImGuiWindow, id: ImGuiID); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igIsClippedEx(bb: ImRect, id: ImGuiID, clip_even_when_logged: bool) -> bool; + pub fn igIsClippedEx(bb: ImRect, id: ImGuiID) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -9571,6 +9851,10 @@ extern "C" { ); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igClosePopupsExceptModals(); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igIsPopupOpenID(id: ImGuiID, popup_flags: ImGuiPopupFlags) -> bool; } @@ -9580,7 +9864,7 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igBeginTooltipEx(extra_flags: ImGuiWindowFlags, tooltip_flags: ImGuiTooltipFlags); + pub fn igBeginTooltipEx(tooltip_flags: ImGuiTooltipFlags, extra_window_flags: ImGuiWindowFlags); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -9591,6 +9875,10 @@ extern "C" { pub fn igGetTopMostPopupModal() -> *mut ImGuiWindow; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetTopMostAndVisiblePopupModal() -> *mut ImGuiWindow; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igFindBestWindowPosForPopup(pOut: *mut ImVec2, window: *mut ImGuiWindow); } @@ -9651,18 +9939,36 @@ extern "C" { pub fn igNavInitWindow(window: *mut ImGuiWindow, force_reinit: bool); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igNavInitRequestApplyResult(); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igNavMoveRequestButNoResultYet() -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igNavMoveRequestSubmit( + move_dir: ImGuiDir, + clip_dir: ImGuiDir, + move_flags: ImGuiNavMoveFlags, + scroll_flags: ImGuiScrollFlags, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igNavMoveRequestForward( move_dir: ImGuiDir, clip_dir: ImGuiDir, move_flags: ImGuiNavMoveFlags, + scroll_flags: ImGuiScrollFlags, ); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igNavMoveRequestResolveWithLastItem(result: *mut ImGuiNavItemData); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igNavMoveRequestCancel(); } @@ -9795,6 +10101,10 @@ extern "C" { pub fn igDockContextNewFrameUpdateDocking(ctx: *mut ImGuiContext); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igDockContextEndFrame(ctx: *mut ImGuiContext); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igDockContextGenNodeID(ctx: *mut ImGuiContext) -> ImGuiID; } @@ -9842,6 +10152,10 @@ extern "C" { pub fn igDockNodeGetRootNode(node: *mut ImGuiDockNode) -> *mut ImGuiDockNode; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igDockNodeIsInHierarchyOf(node: *mut ImGuiDockNode, parent: *mut ImGuiDockNode) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igDockNodeGetDepth(node: *const ImGuiDockNode) -> cty::c_int; } @@ -10454,6 +10768,14 @@ extern "C" { ); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igCalcRoundingFlagsForRectInRect( + r_in: ImRect, + r_outer: ImRect, + threshold: f32, + ) -> ImDrawFlags; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igTextEx(text: *const cty::c_char, text_end: *const cty::c_char, flags: ImGuiTextFlags); } @@ -10489,9 +10811,9 @@ extern "C" { bb: ImRect, id: ImGuiID, axis: ImGuiAxis, - p_scroll_v: *mut f32, - avail_v: f32, - contents_v: f32, + p_scroll_v: *mut ImS64, + avail_v: ImS64, + contents_v: ImS64, flags: ImDrawFlags, ) -> bool; } @@ -10593,6 +10915,7 @@ extern "C" { min_size2: f32, hover_extend: f32, hover_visibility_delay: f32, + bg_col: ImU32, ) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] @@ -10782,6 +11105,13 @@ extern "C" { ); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igErrorCheckEndWindowRecover( + log_callback: ImGuiErrorLogCallback, + user_data: *mut cty::c_void, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igDebugDrawItemRect(col: ImU32); } @@ -10794,6 +11124,15 @@ extern "C" { pub fn igShowFontAtlas(atlas: *mut ImFontAtlas); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igDebugHookIdInfo( + id: ImGuiID, + data_type: ImGuiDataType, + data_id: *const cty::c_void, + data_id_end: *const cty::c_void, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igDebugNodeColumns(columns: *mut ImGuiOldColumns); } @@ -10853,6 +11192,14 @@ extern "C" { pub fn igDebugNodeWindowsList(windows: *mut ImVector_ImGuiWindowPtr, label: *const cty::c_char); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igDebugNodeWindowsListByBeginStackParent( + windows: *mut *mut ImGuiWindow, + windows_size: cty::c_int, + parent_in_begin_stack: *mut ImGuiWindow, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igDebugNodeViewport(viewport: *mut ImGuiViewportP); } From d52177dc6c8175beb3bf80aedcbc26015d7fdf89 Mon Sep 17 00:00:00 2001 From: dbr Date: Tue, 11 Jan 2022 18:10:52 +1100 Subject: [PATCH 120/200] Fix up Io fields for imgui 1.86 A few things in the "docking" were actually just post-1.84 changes which were present in the docking branch --- imgui/src/io.rs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/imgui/src/io.rs b/imgui/src/io.rs index 1e31a844d..46f9af463 100644 --- a/imgui/src/io.rs +++ b/imgui/src/io.rs @@ -314,7 +314,6 @@ pub struct Io { /// f32::MAX]), so a disappearing/reappearing mouse won't have a huge delta. pub mouse_delta: [f32; 2], - #[cfg(feature = "docking")] pub want_capture_mouse_unless_popup_close: bool, key_mods: sys::ImGuiKeyModFlags, @@ -324,11 +323,11 @@ pub struct Io { mouse_clicked_time: [f64; 5], mouse_clicked: [bool; 5], mouse_double_clicked: [bool; 5], + mouse_clicked_count: [u16; 5], + mouse_clicked_last_count: [u16; 5], mouse_released: [bool; 5], mouse_down_owned: [bool; 5], - #[cfg(feature = "docking")] mouse_down_owned_unless_popup_close: [bool; 5], - mouse_down_was_double_click: [bool; 5], mouse_down_duration: [f32; 5], mouse_down_duration_prev: [f32; 5], mouse_drag_max_distance_abs: [[f32; 2]; 5], @@ -338,7 +337,6 @@ pub struct Io { nav_inputs_down_duration: [f32; NavInput::COUNT + NavInput::INTERNAL_COUNT], nav_inputs_down_duration_prev: [f32; NavInput::COUNT + NavInput::INTERNAL_COUNT], pen_pressure: f32, - #[cfg(feature = "docking")] app_focus_lost: bool, input_queue_surrogate: sys::ImWchar16, input_queue_characters: ImVector, @@ -516,9 +514,10 @@ fn test_io_memory_layout() { assert_field_offset!(mouse_clicked_time, MouseClickedTime); assert_field_offset!(mouse_clicked, MouseClicked); assert_field_offset!(mouse_double_clicked, MouseDoubleClicked); + assert_field_offset!(mouse_clicked_count, MouseClickedCount); + assert_field_offset!(mouse_clicked_last_count, MouseClickedLastCount); assert_field_offset!(mouse_released, MouseReleased); assert_field_offset!(mouse_down_owned, MouseDownOwned); - assert_field_offset!(mouse_down_was_double_click, MouseDownWasDoubleClick); assert_field_offset!(mouse_down_duration, MouseDownDuration); assert_field_offset!(mouse_down_duration_prev, MouseDownDurationPrev); assert_field_offset!(mouse_drag_max_distance_abs, MouseDragMaxDistanceAbs); From 680d92341ca7e0df8e1b9cd1782f27c3238494ad Mon Sep 17 00:00:00 2001 From: dbr Date: Tue, 11 Jan 2022 18:12:28 +1100 Subject: [PATCH 121/200] Tidy --- imgui-sys/third-party/_update-imgui.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/imgui-sys/third-party/_update-imgui.sh b/imgui-sys/third-party/_update-imgui.sh index 544fbf673..48a1fe39b 100755 --- a/imgui-sys/third-party/_update-imgui.sh +++ b/imgui-sys/third-party/_update-imgui.sh @@ -32,5 +32,4 @@ cp "${CHECKOUT}"/*.{h,cpp} "${OUT_DIR}"/ cp -r "${CHECKOUT}"/misc/freetype/ "${OUT_DIR}"/misc/ # Clean up - rm -r "${CHECKOUT}" From adc31d6e9ddb7418c79ff5ec513c0f5cd3695848 Mon Sep 17 00:00:00 2001 From: dbr Date: Tue, 11 Jan 2022 18:41:31 +1100 Subject: [PATCH 122/200] Update changelog for 1.84->1.86 --- CHANGELOG.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown index 00be28a37..0bdb59e10 100644 --- a/CHANGELOG.markdown +++ b/CHANGELOG.markdown @@ -4,6 +4,8 @@ - MSRV is now **1.54**. We soft-updated to this in 0.8.0 with a feature `min-const-generics`, which has now been removed (and as such, we resume having no default features). +- Upgraded from Dear ImGui 1.84.2 to 1.86. See [the 1.85](https://github.com/ocornut/imgui/releases/tag/v1.85) and [the 1.86](https://github.com/ocornut/imgui/releases/tag/v1.86) release notes + - BREAKING: Removed `push_style_colors` and `push_style_vars`. Instead, use `push_style_color` in a loop. This was deprecated in `0.7.0` and should have been removed in `0.8.0`. This also removes their associated tokens. - BREAKING: Ui now does not have a lifetime associated with it, but is only ever given to users in the form of `&mut Ui`. Additionally, the `render` function has been moved to the `Context` instead of `Ui`. From 95cb7c7fe692eda12f519355969b4d42cddc2a50 Mon Sep 17 00:00:00 2001 From: dbr Date: Tue, 11 Jan 2022 18:41:55 +1100 Subject: [PATCH 123/200] Minor/unrelated tweaks to CHANGELOG --- CHANGELOG.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown index 0bdb59e10..9fa442413 100644 --- a/CHANGELOG.markdown +++ b/CHANGELOG.markdown @@ -12,7 +12,7 @@ - BREAKING: `SharedFontAtlas` now hides an `Rc` within its wrapper -- this simplifies the codebase and more accurately reflects how we expect `SharedFontAtlas` to be used (ie, you're probably going to set it up once, and then give it around, rather than constantly edit it). `SharedFontAtlas` users, if this change is very bad for you, please let us know with issues! -- BREAKING: `Id` is now a simpler facade, but requires the `Ui` struct to generate. `push_id`, equally, has been split into multiple functions for simplicity. +- BREAKING: `Id` is now a simpler facade, but requires the `Ui` struct to generate. `push_id`, equally, has been split into multiple functions for simplicity. New example `imgui-examples/examples/id_wrangling.rs` shows some of the `push_id` usage - Added `imgui-sdl2-support` to provide a simple ImGui platform wrapper. Please give it a try! Thank you to @NightShade256 for [implementing this here](https://github.com/imgui-rs/imgui-rs/pull/541) @@ -32,7 +32,7 @@ - `MenuItem` should be made with `ui.menu_item` or `ui.menu_item_config`. - `DragDropSource` and `DragDropTarget` should be made with `ui.drag_drop_source_config` or `ui.drag_drop_target`. Both of these methods, and the DragDrop API in general, are likely to change. -- Added `docking` feature which builds against the upstream docking branch. Only basic API is exposed currently, just enough to enable the docking `imgui_context.io_mut().config_flags |= imgui::ConfigFlags::DOCKING_ENABLE;` - API for programtically docking windows and so on will be added later. +- Added `docking` feature which builds against the upstream docking branch. Only basic API is exposed currently, just enough to enable the docking `imgui_context.io_mut().config_flags |= imgui::ConfigFlags::DOCKING_ENABLE;` - a safe API for programtically docking windows and so on will be added later (until then the internal docking API can be accessed, `imgui::sys::igDockBuilderDockWindow` and so on) ## [0.8.0] - 2021-09-17 From 641370ea22b191685f1e1d7d783de9aa446093a3 Mon Sep 17 00:00:00 2001 From: dbr Date: Tue, 11 Jan 2022 18:56:02 +1100 Subject: [PATCH 124/200] Update updating-imgui docs --- docs/upgrading-imgui.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/upgrading-imgui.md b/docs/upgrading-imgui.md index c707a1e7d..f8ea5c11b 100644 --- a/docs/upgrading-imgui.md +++ b/docs/upgrading-imgui.md @@ -21,7 +21,7 @@ In short, there are a few steps: We trim some of the "unrequired" parts of imgui, such as it's `.github` directory, the `backends` and `docs`. We are mainly just interested in the main `.cpp` and `.h` files, as well as `misc/freetype/` support files. - Note this step could benefit from some automation (maybe `cargo xtask update-imgui 1.99`) + There's a simple shell script to perform the updates at `imgui-sys/third-party/update-imgui.sh` - this also serves as documentation of what revision was used. 2. Ensure `luajit` is installed, as this is required by cimgui's generator. From b345152ddbfef02b96ebb0ae1bbdcfc2363a2ea0 Mon Sep 17 00:00:00 2001 From: dbr Date: Wed, 12 Jan 2022 12:02:28 +1100 Subject: [PATCH 125/200] Document some things --- imgui/src/clipboard.rs | 2 +- imgui/src/color.rs | 1 + imgui/src/input/keyboard.rs | 2 ++ imgui/src/list_clipper.rs | 13 +++++++++ imgui/src/style.rs | 56 ++++++++++++++++++++++++++++++++++++- 5 files changed, 72 insertions(+), 2 deletions(-) diff --git a/imgui/src/clipboard.rs b/imgui/src/clipboard.rs index f1abb0dae..13c38634a 100644 --- a/imgui/src/clipboard.rs +++ b/imgui/src/clipboard.rs @@ -40,7 +40,7 @@ impl ClipboardContext { } } } - +/// Non-functioning placeholder pub struct DummyClipboardContext; impl ClipboardBackend for DummyClipboardContext { fn get(&mut self) -> Option { diff --git a/imgui/src/color.rs b/imgui/src/color.rs index 1d2015711..0ebdda7f9 100644 --- a/imgui/src/color.rs +++ b/imgui/src/color.rs @@ -164,6 +164,7 @@ impl std::fmt::Debug for ImColor32 { #[repr(C, align(4))] // Should this be #[non_exhaustive] to discourage direct use? #[rustfmt::skip] +#[allow(missing_docs)] pub struct ImColor32Fields { #[cfg(target_endian = "little")] pub r: u8, #[cfg(target_endian = "little")] pub g: u8, diff --git a/imgui/src/input/keyboard.rs b/imgui/src/input/keyboard.rs index b425d9cb8..ec0879aea 100644 --- a/imgui/src/input/keyboard.rs +++ b/imgui/src/input/keyboard.rs @@ -4,6 +4,7 @@ use crate::Ui; /// A key identifier #[repr(u32)] #[derive(Copy, Clone, Debug, Hash, Eq, PartialEq)] +#[allow(missing_docs)] // Self-describing pub enum Key { Tab = sys::ImGuiKey_Tab, LeftArrow = sys::ImGuiKey_LeftArrow, @@ -188,6 +189,7 @@ impl Ui { self.key_index_pressed_amount(key_index, repeat_delay, rate) } + /// Same as [`key_pressed_amount`] but takes a key index. #[inline] #[doc(alias = "GetKeyPressedAmount")] pub fn key_index_pressed_amount(&self, key_index: i32, repeat_delay: f32, rate: f32) -> u32 { diff --git a/imgui/src/list_clipper.rs b/imgui/src/list_clipper.rs index 64a852e1b..cfe4ff5e0 100644 --- a/imgui/src/list_clipper.rs +++ b/imgui/src/list_clipper.rs @@ -4,6 +4,18 @@ use std::thread; use crate::sys; use crate::Ui; +/// Used to render only the visible items when displaying a +/// long list of items in a scrollable area. +/// +/// For example, you can have a huge list of checkboxes. +/// Without the clipper you have to call `ui.checkbox(...)` +/// for every one, even if 99% of of them are not visible in +/// the current frame. Using the `ListClipper`, you can only +/// call `ui.checkbox(...)` for the currently visible items. +/// +/// Note the efficiency of list clipper relies on the height +/// of each item being cheaply calculated. The current rust +/// bindings only works with a fixed height for all items. pub struct ListClipper { items_count: i32, items_height: f32, @@ -17,6 +29,7 @@ impl ListClipper { } } + /// Manually set item height. If not set, the height of the first item is used for all subsequent rows. pub const fn items_height(mut self, items_height: f32) -> Self { self.items_height = items_height; self diff --git a/imgui/src/style.rs b/imgui/src/style.rs index 73ff84fdb..376d0148b 100644 --- a/imgui/src/style.rs +++ b/imgui/src/style.rs @@ -205,11 +205,17 @@ impl IndexMut for Style { } } -/// A color identifier for styling +/// A color identifier for styling. +/// +/// The use of some colours can sometimes be be unobvious. A good way to find a particular color is to use +/// the [`Ui::show_default_style_editor`] window, set a color to a very bright color, and explore the +/// [`Ui::show_demo_window`] until you spot it #[repr(u32)] #[derive(Copy, Clone, Debug, Hash, Eq, PartialEq)] pub enum StyleColor { + /// Default color of text througout application Text = sys::ImGuiCol_Text, + /// Text in areas disabled e.g via [`Ui::begin_disable`] TextDisabled = sys::ImGuiCol_TextDisabled, /// Background of normal windows WindowBg = sys::ImGuiCol_WindowBg, @@ -217,56 +223,104 @@ pub enum StyleColor { ChildBg = sys::ImGuiCol_ChildBg, /// Background of popups, menus, tooltips windows PopupBg = sys::ImGuiCol_PopupBg, + /// Border around windows, frames, etc Border = sys::ImGuiCol_Border, + /// Used for a drop-shadow/emboss style effect wherever `Border` is used BorderShadow = sys::ImGuiCol_BorderShadow, /// Background of checkbox, radio button, plot, slider, text input FrameBg = sys::ImGuiCol_FrameBg, + /// Same as `FrameBg` but when mouse is hovering over the widget FrameBgHovered = sys::ImGuiCol_FrameBgHovered, + /// Same as `FrameBg` but when the mouse is active (e.g mouse is down) FrameBgActive = sys::ImGuiCol_FrameBgActive, + /// Window title for inactive windows. Also used as the "docked window tab area" when docking is enabled. TitleBg = sys::ImGuiCol_TitleBg, + /// Window title for active windows. TitleBgActive = sys::ImGuiCol_TitleBgActive, + /// Color of a floating window when it is "rolled up" TitleBgCollapsed = sys::ImGuiCol_TitleBgCollapsed, + /// Main menu bar background, see [`Ui::main_menu_bar`] MenuBarBg = sys::ImGuiCol_MenuBarBg, + /// Background area of scrollbar ScrollbarBg = sys::ImGuiCol_ScrollbarBg, + /// Movable area of scollbar when "idle" ScrollbarGrab = sys::ImGuiCol_ScrollbarGrab, + /// Moveable area of scrollbar when mouse is over it ScrollbarGrabHovered = sys::ImGuiCol_ScrollbarGrabHovered, + /// Moveable area of scollbar when it is being clicked on ScrollbarGrabActive = sys::ImGuiCol_ScrollbarGrabActive, + /// The color of the tick character inside the checkbox CheckMark = sys::ImGuiCol_CheckMark, + /// Color of interactive handle inside various slider widgets SliderGrab = sys::ImGuiCol_SliderGrab, + /// Interactive handle when being clicked on SliderGrabActive = sys::ImGuiCol_SliderGrabActive, + /// Main frame color of default button Button = sys::ImGuiCol_Button, + /// Button when mouse hovers over it ButtonHovered = sys::ImGuiCol_ButtonHovered, + /// Button when mouse is down ButtonActive = sys::ImGuiCol_ButtonActive, + /// Inactive color for header sections, such as [`Ui::collapsing_header`] Header = sys::ImGuiCol_Header, + /// As with `Header` but when hovered HeaderHovered = sys::ImGuiCol_HeaderHovered, + /// As with `Header` but when mouse is down HeaderActive = sys::ImGuiCol_HeaderActive, + /// Dividing line, e.g [`Ui::separator`] Separator = sys::ImGuiCol_Separator, + /// Dividing line when mouse hovered SeparatorHovered = sys::ImGuiCol_SeparatorHovered, + /// Dividing line when mouse button down SeparatorActive = sys::ImGuiCol_SeparatorActive, + /// Resize handle on windows ResizeGrip = sys::ImGuiCol_ResizeGrip, + /// Resize handle when mouse hovered over handle ResizeGripHovered = sys::ImGuiCol_ResizeGripHovered, + /// Resize handle when mouse button down ResizeGripActive = sys::ImGuiCol_ResizeGripActive, + /// Inactive tab color. Applies to both tab widgets and docked windows Tab = sys::ImGuiCol_Tab, + /// Hovered tab (applies regardless if tab is active, or is in the active window) TabHovered = sys::ImGuiCol_TabHovered, + /// Color of currently selected tab TabActive = sys::ImGuiCol_TabActive, + /// Non-selected, when in an unfocused window TabUnfocused = sys::ImGuiCol_TabUnfocused, + /// Selected tab, in an unfocused window TabUnfocusedActive = sys::ImGuiCol_TabUnfocusedActive, + /// Color of widget which appears when moving windows around, allowing splitting/etc of dock areas #[cfg(feature = "docking")] DockingPreview = sys::ImGuiCol_DockingPreview, + /// Colour when black area is present in docking setup (e.g while dragging a window away from a split area, leaving it temporarily empty) #[cfg(feature = "docking")] DockingEmptyBg = sys::ImGuiCol_DockingEmptyBg, + /// Lines in [`Ui::plot_lines`] PlotLines = sys::ImGuiCol_PlotLines, + /// `PlotLines` when hovered PlotLinesHovered = sys::ImGuiCol_PlotLinesHovered, + /// Used for [`Ui::plot_histogram`] PlotHistogram = sys::ImGuiCol_PlotHistogram, + /// `PlotHistogram` when hovered PlotHistogramHovered = sys::ImGuiCol_PlotHistogramHovered, + + /// Background color of header rows in table widget TableHeaderBg = sys::ImGuiCol_TableHeaderBg, + /// Main border color for table, used around whole table and around header cells TableBorderStrong = sys::ImGuiCol_TableBorderStrong, + /// Used within border to separate cells TableBorderLight = sys::ImGuiCol_TableBorderLight, + /// Background of cells in table TableRowBg = sys::ImGuiCol_TableRowBg, + /// Used for alternating row colors, if enabled by `TableFlags::ROW_BG` TableRowBgAlt = sys::ImGuiCol_TableRowBgAlt, + + /// The highlight color used for selection in text inputs TextSelectedBg = sys::ImGuiCol_TextSelectedBg, + + /// Used for drag-and-drop system DragDropTarget = sys::ImGuiCol_DragDropTarget, /// Gamepad/keyboard: current highlighted item NavHighlight = sys::ImGuiCol_NavHighlight, From 2a237795328cc47c0fc83c5b18416d05f88ffdfc Mon Sep 17 00:00:00 2001 From: dbr Date: Wed, 12 Jan 2022 14:44:05 +1100 Subject: [PATCH 126/200] Fix interlinking --- imgui/src/input/keyboard.rs | 2 +- imgui/src/style.rs | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/imgui/src/input/keyboard.rs b/imgui/src/input/keyboard.rs index ec0879aea..6158745ec 100644 --- a/imgui/src/input/keyboard.rs +++ b/imgui/src/input/keyboard.rs @@ -189,7 +189,7 @@ impl Ui { self.key_index_pressed_amount(key_index, repeat_delay, rate) } - /// Same as [`key_pressed_amount`] but takes a key index. + /// Same as [`crate::Ui::key_pressed_amount`] but takes a key index. #[inline] #[doc(alias = "GetKeyPressedAmount")] pub fn key_index_pressed_amount(&self, key_index: i32, repeat_delay: f32, rate: f32) -> u32 { diff --git a/imgui/src/style.rs b/imgui/src/style.rs index 376d0148b..f6effbf6d 100644 --- a/imgui/src/style.rs +++ b/imgui/src/style.rs @@ -207,15 +207,15 @@ impl IndexMut for Style { /// A color identifier for styling. /// -/// The use of some colours can sometimes be be unobvious. A good way to find a particular color is to use -/// the [`Ui::show_default_style_editor`] window, set a color to a very bright color, and explore the -/// [`Ui::show_demo_window`] until you spot it +/// Which color does what can sometimes be be unobvious. A good way to find a particular color is to use +/// the [`crate::Ui::show_default_style_editor`] window, set a color to a very bright color, and explore the +/// [`crate::Ui::show_demo_window`] until you spot it #[repr(u32)] #[derive(Copy, Clone, Debug, Hash, Eq, PartialEq)] pub enum StyleColor { /// Default color of text througout application Text = sys::ImGuiCol_Text, - /// Text in areas disabled e.g via [`Ui::begin_disable`] + /// Text in areas disabled e.g via [`crate::Ui::begin_disabled`] TextDisabled = sys::ImGuiCol_TextDisabled, /// Background of normal windows WindowBg = sys::ImGuiCol_WindowBg, @@ -239,7 +239,7 @@ pub enum StyleColor { TitleBgActive = sys::ImGuiCol_TitleBgActive, /// Color of a floating window when it is "rolled up" TitleBgCollapsed = sys::ImGuiCol_TitleBgCollapsed, - /// Main menu bar background, see [`Ui::main_menu_bar`] + /// Main menu bar background, see [`crate::Ui::main_menu_bar`] MenuBarBg = sys::ImGuiCol_MenuBarBg, /// Background area of scrollbar ScrollbarBg = sys::ImGuiCol_ScrollbarBg, @@ -261,13 +261,13 @@ pub enum StyleColor { ButtonHovered = sys::ImGuiCol_ButtonHovered, /// Button when mouse is down ButtonActive = sys::ImGuiCol_ButtonActive, - /// Inactive color for header sections, such as [`Ui::collapsing_header`] + /// Inactive color for header sections, such as [`crate::Ui::collapsing_header`] Header = sys::ImGuiCol_Header, /// As with `Header` but when hovered HeaderHovered = sys::ImGuiCol_HeaderHovered, /// As with `Header` but when mouse is down HeaderActive = sys::ImGuiCol_HeaderActive, - /// Dividing line, e.g [`Ui::separator`] + /// Dividing line, e.g [`crate::Ui::separator`] Separator = sys::ImGuiCol_Separator, /// Dividing line when mouse hovered SeparatorHovered = sys::ImGuiCol_SeparatorHovered, @@ -297,11 +297,11 @@ pub enum StyleColor { #[cfg(feature = "docking")] DockingEmptyBg = sys::ImGuiCol_DockingEmptyBg, - /// Lines in [`Ui::plot_lines`] + /// Lines in [`crate::Ui::plot_lines`] PlotLines = sys::ImGuiCol_PlotLines, /// `PlotLines` when hovered PlotLinesHovered = sys::ImGuiCol_PlotLinesHovered, - /// Used for [`Ui::plot_histogram`] + /// Used for [`crate::Ui::plot_histogram`] PlotHistogram = sys::ImGuiCol_PlotHistogram, /// `PlotHistogram` when hovered PlotHistogramHovered = sys::ImGuiCol_PlotHistogramHovered, From b09b50e72c75131ce7d9d5c49cf976ff76cdd3af Mon Sep 17 00:00:00 2001 From: dbr Date: Wed, 12 Jan 2022 14:47:43 +1100 Subject: [PATCH 127/200] Remove incorrect docs --- imgui/src/stacks.rs | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/imgui/src/stacks.rs b/imgui/src/stacks.rs index 81e3425a8..4980ac656 100644 --- a/imgui/src/stacks.rs +++ b/imgui/src/stacks.rs @@ -291,41 +291,29 @@ pub enum ItemFlag { } create_token!( - /// Tracks a window that can be ended by calling `.end()` - /// or by dropping. pub struct ItemWidthStackToken<'ui>; - /// Ends a window #[doc(alias = "PopItemWidth")] drop { sys::igPopItemWidth() } ); create_token!( - /// Tracks a window that can be ended by calling `.end()` - /// or by dropping. pub struct TextWrapPosStackToken<'ui>; - /// Ends a window #[doc(alias = "PopTextWrapPos")] drop { sys::igPopTextWrapPos() } ); create_token!( - /// Tracks a window that can be ended by calling `.end()` - /// or by dropping. pub struct PushAllowKeyboardFocusToken<'ui>; - /// Ends a window #[doc(alias = "PopAllowKeyboardFocus")] drop { sys::igPopAllowKeyboardFocus() } ); create_token!( - /// Tracks a window that can be ended by calling `.end()` - /// or by dropping. pub struct PushButtonRepeatToken<'ui>; - /// Ends a window #[doc(alias = "PopButtonRepeat")] drop { sys::igPopButtonRepeat() } ); From 35342a0c8255a26d0f7aad99eb6498a796b92f32 Mon Sep 17 00:00:00 2001 From: dbr Date: Wed, 12 Jan 2022 14:50:49 +1100 Subject: [PATCH 128/200] Slightly better doc for push_id --- imgui/src/stacks.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/imgui/src/stacks.rs b/imgui/src/stacks.rs index 4980ac656..a256c590f 100644 --- a/imgui/src/stacks.rs +++ b/imgui/src/stacks.rs @@ -356,7 +356,7 @@ impl Drop for ItemFlagsStackToken<'_> { create_token!( /// Tracks an ID pushed to the ID stack that can be popped by calling `.pop()` - /// or by dropping. + /// or by dropping. See [`crate::Ui::push_id`] for more details. pub struct IdStackToken<'ui>; /// Pops a change from the ID stack @@ -442,8 +442,12 @@ impl<'ui> Ui { /// { /// // Same for second callback. If we didn't do this, clicking the "Click" button /// // would trigger both println statements! - /// let _id2 = ui.push_id("second"); + /// let id2 = ui.push_id("second"); /// callback2(&ui); + /// // Here we manually end the scope. Typically letting it drop is neater + /// // but sometimes it's useful to end the scope earlier + /// id2.end(); + /// ui.text("We can do other things, outside of the id2 scope"); /// } /// }); /// ``` From 2eb0950a85e430cfafd1b8a7bb37d79ed553906e Mon Sep 17 00:00:00 2001 From: dbr Date: Wed, 12 Jan 2022 17:36:54 +1100 Subject: [PATCH 129/200] Add new Io field for docking branch --- imgui/src/io.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/imgui/src/io.rs b/imgui/src/io.rs index 46f9af463..2362c312e 100644 --- a/imgui/src/io.rs +++ b/imgui/src/io.rs @@ -180,6 +180,8 @@ pub struct Io { #[cfg(feature = "docking")] pub config_docking_no_split: bool, #[cfg(feature = "docking")] + pub config_docking_with_shift: bool, + #[cfg(feature = "docking")] pub config_docking_always_tab_bar: bool, #[cfg(feature = "docking")] pub config_docking_transparent_payload: bool, From dd061d4ad45016d6db06e3e3920e0d40fa35bd12 Mon Sep 17 00:00:00 2001 From: dbr Date: Mon, 17 Jan 2022 12:51:55 +1100 Subject: [PATCH 130/200] Make ui.popup* methods consistent [#454] Closes #592 --- imgui-examples/examples/test_window_impl.rs | 6 ++--- imgui/src/popups.rs | 26 ++++++++++++--------- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/imgui-examples/examples/test_window_impl.rs b/imgui-examples/examples/test_window_impl.rs index d9fac4da9..b10bacde5 100644 --- a/imgui-examples/examples/test_window_impl.rs +++ b/imgui-examples/examples/test_window_impl.rs @@ -773,7 +773,7 @@ CTRL+click on individual component to input value.\n", if ui.button("Delete..") { ui.open_popup("Delete?"); } - PopupModal::new("Delete?").always_auto_resize(true).build(ui, || { + ui.popup_modal("Delete?").always_auto_resize(true).build(|| { ui.text("All those beautiful files will be deleted.\nThis operation cannot be undone!\n\n"); ui.separator(); let style = ui.push_style_var(StyleVar::FramePadding([0.0, 0.0])); @@ -792,7 +792,7 @@ CTRL+click on individual component to input value.\n", if ui.button("Stacked modals..") { ui.open_popup("Stacked 1"); } - PopupModal::new("Stacked 1").build(ui, || { + ui.popup_modal("Stacked 1").build(|| { ui.text( "Hello from Stacked The First\n\ Using style[StyleColor::ModalWindowDarkening] for darkening." @@ -806,7 +806,7 @@ CTRL+click on individual component to input value.\n", if ui.button("Add another modal..") { ui.open_popup("Stacked 2") ; } - PopupModal::new("Stacked 2").build(ui, || { + ui.popup_modal("Stacked 2").build(|| { ui.text("Hello from Stacked The Second"); if ui.button("Close") { ui.close_current_popup(); diff --git a/imgui/src/popups.rs b/imgui/src/popups.rs index d4185c5b8..c44d42ca7 100644 --- a/imgui/src/popups.rs +++ b/imgui/src/popups.rs @@ -14,7 +14,7 @@ use crate::Ui; /// if ui.button(im_str!("Show modal")) { /// ui.open_popup(im_str!("modal")); /// } -/// if let Some(_token) = PopupModal::new(im_str!("modal")).begin_popup(&ui) { +/// if let Some(_token) = ui.popup_modal("modal").begin_popup() { /// ui.text("Content of my modal"); /// if ui.button(im_str!("OK")) { /// ui.close_current_popup(); @@ -22,15 +22,18 @@ use crate::Ui; /// }; /// ``` #[must_use] -pub struct PopupModal<'p, Label> { +pub struct PopupModal<'ui, 'p, Label> { + ui: &'ui Ui, label: Label, opened: Option<&'p mut bool>, flags: WindowFlags, } -impl<'p, Label: AsRef> PopupModal<'p, Label> { - pub fn new(label: Label) -> Self { +impl<'ui, 'p, Label: AsRef> PopupModal<'ui, 'p, Label> { + #[deprecated(since = "0.9.0", note = "Use `ui.popup_modal(...)` instead")] + pub fn new(ui: &'ui Ui, label: Label) -> Self { PopupModal { + ui, label, opened: None, flags: WindowFlags::empty(), @@ -118,8 +121,8 @@ impl<'p, Label: AsRef> PopupModal<'p, Label> { /// Consume and draw the PopupModal. /// Returns the result of the closure, if it is called. #[doc(alias = "BeginPopupModal")] - pub fn build T>(self, ui: &Ui, f: F) -> Option { - self.begin_popup(ui).map(|_popup| f()) + pub fn build T>(self, f: F) -> Option { + self.begin_popup().map(|_popup| f()) } /// Consume and draw the PopupModal. @@ -128,10 +131,10 @@ impl<'p, Label: AsRef> PopupModal<'p, Label> { /// This should be called *per frame*, whereas [`Ui::open_popup`] /// should be called *once* when you want to actual create the popup. #[doc(alias = "BeginPopupModal")] - pub fn begin_popup(self, ui: &Ui) -> Option> { + pub fn begin_popup(self) -> Option> { let render = unsafe { sys::igBeginPopupModal( - ui.scratch_txt(self.label), + self.ui.scratch_txt(self.label), self.opened .map(|x| x as *mut bool) .unwrap_or(ptr::null_mut()), @@ -140,7 +143,7 @@ impl<'p, Label: AsRef> PopupModal<'p, Label> { }; if render { - Some(PopupToken::new(ui)) + Some(PopupToken::new(self.ui)) } else { None } @@ -192,8 +195,9 @@ impl Ui { } /// Creates a PopupModal directly. - pub fn popup_modal<'p, Label: AsRef>(&self, str_id: Label) -> PopupModal<'p, Label> { - PopupModal::new(str_id) + pub fn popup_modal<'ui, 'p, Label: AsRef>(&self, str_id: Label) -> PopupModal<'_, '_, Label> { + #[allow(deprecated)] + PopupModal::new(self, str_id) } /// Close a popup. Should be called within the closure given as argument to From 10eba1c25e461542864838c315b084a7a9457255 Mon Sep 17 00:00:00 2001 From: dbr Date: Mon, 17 Jan 2022 13:09:18 +1100 Subject: [PATCH 131/200] fmt --- imgui/src/popups.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/imgui/src/popups.rs b/imgui/src/popups.rs index c44d42ca7..fde191b26 100644 --- a/imgui/src/popups.rs +++ b/imgui/src/popups.rs @@ -195,7 +195,10 @@ impl Ui { } /// Creates a PopupModal directly. - pub fn popup_modal<'ui, 'p, Label: AsRef>(&self, str_id: Label) -> PopupModal<'_, '_, Label> { + pub fn popup_modal<'ui, 'p, Label: AsRef>( + &self, + str_id: Label, + ) -> PopupModal<'_, '_, Label> { #[allow(deprecated)] PopupModal::new(self, str_id) } From 4bbbc459f16c1c3aacf8bcc5c78397446222e341 Mon Sep 17 00:00:00 2001 From: dbr Date: Mon, 17 Jan 2022 14:35:07 +1100 Subject: [PATCH 132/200] clippy yelling --- imgui/src/popups.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/imgui/src/popups.rs b/imgui/src/popups.rs index fde191b26..75d8e499c 100644 --- a/imgui/src/popups.rs +++ b/imgui/src/popups.rs @@ -195,7 +195,7 @@ impl Ui { } /// Creates a PopupModal directly. - pub fn popup_modal<'ui, 'p, Label: AsRef>( + pub fn popup_modal>( &self, str_id: Label, ) -> PopupModal<'_, '_, Label> { From 45c7e2dd922d613c886a3118094590623bbd665c Mon Sep 17 00:00:00 2001 From: dbr Date: Mon, 17 Jan 2022 14:47:17 +1100 Subject: [PATCH 133/200] ...and once more --- imgui/src/popups.rs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/imgui/src/popups.rs b/imgui/src/popups.rs index 75d8e499c..50c4a7594 100644 --- a/imgui/src/popups.rs +++ b/imgui/src/popups.rs @@ -195,10 +195,7 @@ impl Ui { } /// Creates a PopupModal directly. - pub fn popup_modal>( - &self, - str_id: Label, - ) -> PopupModal<'_, '_, Label> { + pub fn popup_modal>(&self, str_id: Label) -> PopupModal<'_, '_, Label> { #[allow(deprecated)] PopupModal::new(self, str_id) } From d05827258fac63f0a57693bb51275c9bb483aef4 Mon Sep 17 00:00:00 2001 From: Gabe Weiner Date: Fri, 28 Jan 2022 11:36:22 -0500 Subject: [PATCH 134/200] refactored Slider to match the new Ui based architecture --- imgui-examples/examples/slider.rs | 29 ++++----- imgui-examples/examples/test_window_impl.rs | 8 +-- imgui/src/widget/slider.rs | 65 ++++++++++++++++----- 3 files changed, 66 insertions(+), 36 deletions(-) diff --git a/imgui-examples/examples/slider.rs b/imgui-examples/examples/slider.rs index d91cd2cc5..cdaf48747 100644 --- a/imgui-examples/examples/slider.rs +++ b/imgui-examples/examples/slider.rs @@ -44,13 +44,11 @@ fn example_1(ui: &Ui, state: &mut State) { ui.text("Floats: f32 f64"); // Full ranges can be specified with Rust's `::MIN/MAX` constants - Slider::new("u8 value", u8::MIN, u8::MAX) - .build(ui, &mut state.u8_value); + ui.slider("u8 value", u8::MIN, u8::MAX, &mut state.u8_value); // However for larger data-types, it's usually best to specify // a much smaller range. The following slider is hard to use. - Slider::new("Full range f32 value", f32::MIN/2.0, f32::MAX/2.0) - .build(ui, &mut state.f32_value); + ui.slider("Full range f32 value", f32::MIN/2.0, f32::MAX/2.0, &mut state.f32_value); // Note the `... / 2.0` - anything larger is not supported by // the upstream C++ library ui.text("Note that for 32-bit/64-bit types, sliders are always limited to half of the natural type range!"); @@ -58,24 +56,16 @@ fn example_1(ui: &Ui, state: &mut State) { // Most of the time, it's best to specify the range ui.separator(); ui.text("Slider range can be limited:"); - Slider::new("i32 value with range", -999, 999) - .build(ui, &mut state.i32_value); - Slider::new("f32 value", -10.0, 10.0) - .build(ui, &mut state.f32_value); + ui.slider("i32 value with range", -999, 999, &mut state.i32_value); + ui.slider("f32 value", -10.0, 10.0, &mut state.f32_value); ui.separator(); ui.text("Value formatting can be customized with a C-style printf string:"); - Slider::new("f64 value with custom formatting", -999_999_999.0, 999_999_999.0) - .display_format("%09.0f") - .build(ui, &mut state.f64_formatted); + ui.slider_config("f64 value with custom formatting", -999_999_999.0, 999_999_999.0).display_format("%09.0f").build(&mut state.f64_formatted); // The display format changes the increments the slider operates in: - Slider::new("f32 with %.01f", 0.0, 1.0) - .display_format("%.01f") - .build(ui, &mut state.f32_value); - Slider::new("Same f32 with %.05f", 0.0, 1.0) - .display_format("%.05f") - .build(ui, &mut state.f32_value); + ui.slider_config("f32 with %.01f", 0.0, 1.0).display_format("%.01f").build(&mut state.f32_value); + ui.slider_config("Same f32 with %.05f", 0.0, 1.0).display_format("%.05f").build(&mut state.f32_value); ui.separator(); ui.text("Vertical sliders require a size parameter but otherwise work in a similar way:"); @@ -91,11 +81,12 @@ fn example_2(ui: &Ui, state: &mut State) { .position([20.0, 120.0], Condition::Appearing); w.build(|| { ui.text("You can easily build a slider group from an array of values:"); - Slider::new("[u8; 4]", 0, u8::MAX).build_array(ui, &mut state.array); + ui.slider_config("[u8; 4]", 0, u8::MAX) + .build_array(&mut state.array); ui.text("You don't need to use arrays with known length; arbitrary slices can be used:"); let slice: &mut [u8] = &mut state.array[1..=2]; - Slider::new("subslice", 0, u8::MAX).build_array(ui, slice); + ui.slider_config("subslice", 0, u8::MAX).build_array(slice); }); } diff --git a/imgui-examples/examples/test_window_impl.rs b/imgui-examples/examples/test_window_impl.rs index b10bacde5..43fff996a 100644 --- a/imgui-examples/examples/test_window_impl.rs +++ b/imgui-examples/examples/test_window_impl.rs @@ -433,9 +433,9 @@ fn show_test_window(ui: &Ui, state: &mut State, opened: &mut bool) { ); ui.spacing(); - Slider::new("Wrap width", -20.0, 600.0) + ui.slider_config("Wrap width", -20.0, 600.0) .display_format("%.0f") - .build(ui, &mut state.wrap_width); + .build(&mut state.wrap_width); ui.text("Test paragraph 1:"); // TODO @@ -877,7 +877,7 @@ fn show_example_menu_file(ui: &Ui, state: &mut FileMenuState) { ui.text(format!("Scrolling Text {}", i)); } }); - Slider::new("Value", 0.0, 1.0).build(ui, &mut state.f); + ui.slider("Value", 0.0, 1.0, &mut state.f); ui.input_float("Input", &mut state.f).step(0.1).build(); let items = ["Yes", "No", "Maybe"]; @@ -904,7 +904,7 @@ fn show_example_app_auto_resize(ui: &Ui, state: &mut AutoResizeState, opened: &m Note that you probably don't want to query the window size to output your content because that would create a feedback loop.", ); - Slider::new("Number of lines", 1, 20).build(ui, &mut state.lines); + ui.slider("Number of lines", 1, 20, &mut state.lines); for i in 0..state.lines { ui.text(format!("{:2$}This is line {}", "", i, i as usize * 4)); } diff --git a/imgui/src/widget/slider.rs b/imgui/src/widget/slider.rs index 743239020..9da91d39a 100644 --- a/imgui/src/widget/slider.rs +++ b/imgui/src/widget/slider.rs @@ -23,32 +23,65 @@ bitflags!( } ); +impl Ui { + /// Creates a new slider widget. Returns true if the value has been edited. + pub fn slider, K: DataTypeKind>( + &self, + label: T, + min: K, + max: K, + value: &mut K, + ) -> bool { + self.slider_config(label, min, max).build(value) + } + + /// Creates an new ubuilt Slider. + pub fn slider_config, K: DataTypeKind>( + &self, + label: T, + min: K, + max: K, + ) -> Slider<'_, T, K> { + Slider { + label, + min, + max, + display_format: Option::<&'static str>::None, + flags: SliderFlags::empty(), + ui: self, + } + } +} + /// Builder for a slider widget. #[derive(Copy, Clone, Debug)] #[must_use] -pub struct Slider { +pub struct Slider<'ui, Label, Data, Format = &'static str> { label: Label, min: Data, max: Data, display_format: Option, flags: SliderFlags, + ui: &'ui Ui, } -impl, K: DataTypeKind> Slider { +impl<'ui, T: AsRef, K: DataTypeKind> Slider<'ui, T, K> { /// Constructs a new slider builder with the given range. #[doc(alias = "SliderScalar", alias = "SliderScalarN")] - pub fn new(label: T, min: K, max: K) -> Self { + #[deprecated(note = "Use `Ui::slider` or `Ui::slider_config`.", since = "0.9.0")] + pub fn new(ui: &'ui Ui, label: T, min: K, max: K) -> Self { Slider { label, min, max, display_format: None, flags: SliderFlags::empty(), + ui, } } } -impl Slider +impl<'ui, Label, Data, Format> Slider<'ui, Label, Data, Format> where Label: AsRef, Data: DataTypeKind, @@ -57,11 +90,12 @@ where /// Sets the range inclusively, such that both values given /// are valid values which the slider can be dragged to. /// - /// ```rust - /// # use imgui::im_str; - /// imgui::Slider::new(im_str!("Example"), i8::MIN, i8::MAX) + /// ```no_run + /// # let mut ctx = imgui::Context::create(); + /// # let ui = ctx.frame(); + /// ui.slider_config("Example", i8::MIN, i8::MAX) /// .range(4, 8) - /// // Remember to call .build(&ui) + /// // Remember to call .build() /// ; /// ``` /// @@ -83,13 +117,14 @@ where pub fn display_format>( self, display_format: Format2, - ) -> Slider { + ) -> Slider<'ui, Label, Data, Format2> { Slider { label: self.label, min: self.min, max: self.max, display_format: Some(display_format), flags: self.flags, + ui: self.ui, } } /// Replaces all current settings with the given flags @@ -101,9 +136,11 @@ where /// Builds a slider that is bound to the given value. /// /// Returns true if the slider value was changed. - pub fn build(self, ui: &Ui, value: &mut Data) -> bool { + pub fn build(self, value: &mut Data) -> bool { unsafe { - let (label, display_format) = ui.scratch_txt_with_opt(self.label, self.display_format); + let (label, display_format) = self + .ui + .scratch_txt_with_opt(self.label, self.display_format); sys::igSliderScalar( label, @@ -119,9 +156,11 @@ where /// Builds a horizontal array of multiple sliders attached to the given slice. /// /// Returns true if any slider value was changed. - pub fn build_array(self, ui: &Ui, values: &mut [Data]) -> bool { + pub fn build_array(self, values: &mut [Data]) -> bool { unsafe { - let (label, display_format) = ui.scratch_txt_with_opt(self.label, self.display_format); + let (label, display_format) = self + .ui + .scratch_txt_with_opt(self.label, self.display_format); sys::igSliderScalarN( label, From 6dfa0a9533fc68c60ee8177c1f01d40f22b3531a Mon Sep 17 00:00:00 2001 From: dbr Date: Thu, 27 Jan 2022 21:14:42 +1100 Subject: [PATCH 135/200] More docs around combo methods Add example to begin_combo doc --- imgui/src/widget/combo_box.rs | 52 +++++++++++++++++++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/imgui/src/widget/combo_box.rs b/imgui/src/widget/combo_box.rs index 17de6cdd3..cdf1df520 100644 --- a/imgui/src/widget/combo_box.rs +++ b/imgui/src/widget/combo_box.rs @@ -178,7 +178,21 @@ create_token!( /// # Convenience functions impl Ui { - /// Creates a combo box which can be appended to with `Selectable::new`. + /// Begins flexibly creating a combo box. + /// + /// You provide a preview string, which is displayed on the widget + /// before it is opened. If the function returns `Some(_token)` you + /// can then begin creating the widgets inside the combo popup area. + /// + /// A standard looking combo is made by using [selectable + /// items](`Ui::selectable`), however you can create almost + /// anything inside if desired (for example using + /// [`Ui::separator`] and [`Ui::text`] to create sections with + /// headings). + /// + /// See the simpler [`Ui::combo_simple_string`] if you have a list + /// of strings plus a "currently selected item index", or + /// [`Ui::combo`] /// /// If you do not want to provide a preview, use [`begin_combo_no_preview`]. If you want /// to pass flags, use [`begin_combo_with_flags`]. @@ -187,6 +201,29 @@ impl Ui { /// /// [`begin_combo_no_preview`]: Ui::begin_combo_no_preview /// [`begin_combo_with_flags`]: Ui::begin_combo_with_flags + /// + /// # Example + /// + /// ```rust,no_run + /// let items = vec!["Example 1", "Example 2"]; + /// let mut selected = &items[0]; + /// if let Some(cb) = ui.begin_combo("example_combo") { + /// for cur in &items { + /// if selected == cur { + /// // Auto-scroll to selected item + /// ui.set_item_default_focus(); + /// } + /// // Create a "selectable" + /// let clicked = ui.selectable_config(cur) + /// .selected(selected == cur) + /// .build(); + /// // When item is clicked, store it + /// if clicked { + /// selected = cur; + /// } + /// } + /// } + /// ``` #[must_use] #[doc(alias = "BeginCombo")] pub fn begin_combo( @@ -271,7 +308,10 @@ impl Ui { None } } - /// Builds a simple combo box for choosing from a slice of values + /// Builds a simple combo box for choosing from a slice of values. + /// + /// See [`Ui::begin_combo`] for a more "immediate mode" style API + /// for creating dynamic combo boxes #[doc(alias = "Combo")] pub fn combo( &self, @@ -303,7 +343,13 @@ impl Ui { result } - /// Builds a simple combo box for choosing from a slice of values + /// Builds a simple combo box for choosing from a slice of strings + /// + /// This is useful if you already have a list of strings to choose + /// from, along with a currently selected idnex value. In cases + /// where you have a list of non-string objects, instead of + /// allocating a `Vec` to use this method try using + /// [`Ui::begin_combo`] instead #[doc(alias = "Combo")] pub fn combo_simple_string( &self, From 69fb34f0f8682ada766f7623c5ca626c219d9991 Mon Sep 17 00:00:00 2001 From: dbr Date: Thu, 10 Feb 2022 11:07:04 +1100 Subject: [PATCH 136/200] Fix up running of begin_combo doctest --- imgui/src/widget/combo_box.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/imgui/src/widget/combo_box.rs b/imgui/src/widget/combo_box.rs index cdf1df520..6ca4b3583 100644 --- a/imgui/src/widget/combo_box.rs +++ b/imgui/src/widget/combo_box.rs @@ -205,9 +205,12 @@ impl Ui { /// # Example /// /// ```rust,no_run + /// # let mut ctx = imgui::Context::create(); + /// # {let ui = ctx.frame(); + /// /// let items = vec!["Example 1", "Example 2"]; /// let mut selected = &items[0]; - /// if let Some(cb) = ui.begin_combo("example_combo") { + /// if let Some(cb) = ui.begin_combo("example_combo", format!("Selected item: {}", selected)) { /// for cur in &items { /// if selected == cur { /// // Auto-scroll to selected item @@ -223,6 +226,7 @@ impl Ui { /// } /// } /// } + /// # }; /// ``` #[must_use] #[doc(alias = "BeginCombo")] From 32cf2b9e6c174539a640d455ca9b32e47c5baec8 Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Thu, 10 Feb 2022 14:31:19 -0500 Subject: [PATCH 137/200] clippy stop yelling at me --- imgui-examples/examples/support/mod.rs | 4 ++-- imgui/src/internal.rs | 8 ++++++++ imgui/src/tables.rs | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/imgui-examples/examples/support/mod.rs b/imgui-examples/examples/support/mod.rs index af26bc2f8..44e88259a 100644 --- a/imgui-examples/examples/support/mod.rs +++ b/imgui-examples/examples/support/mod.rs @@ -137,10 +137,10 @@ impl System { gl_window.window().request_redraw(); } Event::RedrawRequested(_) => { - let mut ui = imgui.frame(); + let ui = imgui.frame(); let mut run = true; - run_ui(&mut run, &mut ui); + run_ui(&mut run, ui); if !run { *control_flow = ControlFlow::Exit; } diff --git a/imgui/src/internal.rs b/imgui/src/internal.rs index a34613e34..0af90a11e 100644 --- a/imgui/src/internal.rs +++ b/imgui/src/internal.rs @@ -65,6 +65,11 @@ pub trait RawWrapper { } /// Casting from/to a raw type that has the same layout and alignment as the target type +/// +/// # Safety +/// +/// Each function outlines its own safety contract, which generally is +/// that the cast from `T` to `Self` is valid. pub unsafe trait RawCast: Sized { /// Casts an immutable reference from the raw type /// @@ -124,6 +129,9 @@ pub enum DataType { /// /// If this trait is implemented for a type, it is assumed to have *exactly* the same /// representation in memory as the primitive value described by the associated `KIND` constant. +/// +/// # Safety +/// The `DataType` *must* have the same representation as the primitive value of `KIND`. pub unsafe trait DataTypeKind: Copy { const KIND: DataType; } diff --git a/imgui/src/tables.rs b/imgui/src/tables.rs index a49cc5e06..5d9b49070 100644 --- a/imgui/src/tables.rs +++ b/imgui/src/tables.rs @@ -840,7 +840,7 @@ pub struct Specs<'a>(&'a [sys::ImGuiTableColumnSortSpecs]); impl<'a> Specs<'a> { pub fn iter(self) -> impl Iterator> { - self.0.iter().map(|v| TableColumnSortSpecs(v)) + self.0.iter().map(TableColumnSortSpecs) } } From 169403c526513184025d1926ad1aff9521e78446 Mon Sep 17 00:00:00 2001 From: Philippe Renon Date: Tue, 1 Feb 2022 11:59:58 +0100 Subject: [PATCH 138/200] winit-support: fix dpi handling in attach_window() when not in default mode attach_window() was using the imgui scale factor when converting winit physical size to logical size instead of the winit scale factor. This would cause the imgui display size to be incorrect when not using the HiDpiMode::Default mode (in default mode the imgui and winit scale factors are the same and the issue goes unnoticed). Note that handle_window_event() has similar (and correct) logic when handling WindowEvent::Resized events. This also explain why the issue went mostly undiscovered as winit tends to generate quite a bunch of resize events that would hide the miscalculation done in attach_window(). A similar issue was also fixed in the WindowEvent::ScaleFactorChanged handling code. should fix https://github.com/imgui-rs/imgui-rs/issues/441 --- CHANGELOG.markdown | 2 ++ imgui-winit-support/src/lib.rs | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown index 9fa442413..c6784be26 100644 --- a/CHANGELOG.markdown +++ b/CHANGELOG.markdown @@ -34,6 +34,8 @@ - Added `docking` feature which builds against the upstream docking branch. Only basic API is exposed currently, just enough to enable the docking `imgui_context.io_mut().config_flags |= imgui::ConfigFlags::DOCKING_ENABLE;` - a safe API for programtically docking windows and so on will be added later (until then the internal docking API can be accessed, `imgui::sys::igDockBuilderDockWindow` and so on) +- Fixed dpi related issues when not in `HiDpiMode::Default` mode. The wrong scale factor was used when converting winit physical size to logical size, causing the imgui display size to be incorrect. + ## [0.8.0] - 2021-09-17 Welcome to the `0.8.0` update. This is one of the largest updates imgui-rs has ever seen; it will generate errors in a `0.7` project, but hopefully it should be both quick to fix, and enjoyable to update. See our [release page](https://github.com/imgui-rs/imgui-rs/releases/tag/v0.8.0) for more information and a list of contributors to this cycle. Thank you to everyone who uses `imgui-rs`, files issues, and spend their time and effort to PR new changes into the codebase. Because of all that effort, this is by far the best `imgui-rs` has looked! diff --git a/imgui-winit-support/src/lib.rs b/imgui-winit-support/src/lib.rs index 985c8c304..72f96896a 100644 --- a/imgui-winit-support/src/lib.rs +++ b/imgui-winit-support/src/lib.rs @@ -535,7 +535,7 @@ impl WinitPlatform { self.hidpi_mode = hidpi_mode; self.hidpi_factor = hidpi_factor; io.display_framebuffer_scale = [hidpi_factor as f32, hidpi_factor as f32]; - let logical_size = window.inner_size().to_logical(hidpi_factor); + let logical_size = window.inner_size().to_logical(window.scale_factor()); let logical_size = self.scale_size_from_winit(window, logical_size); io.display_size = [logical_size.width as f32, logical_size.height as f32]; } @@ -976,7 +976,7 @@ impl WinitPlatform { self.hidpi_factor = hidpi_factor; io.display_framebuffer_scale = [hidpi_factor as f32, hidpi_factor as f32]; // Window size might change too if we are using DPI rounding - let logical_size = window.inner_size().to_logical(scale_factor); + let logical_size = window.inner_size().to_logical(window.scale_factor()); let logical_size = self.scale_size_from_winit(window, logical_size); io.display_size = [logical_size.width as f32, logical_size.height as f32]; } @@ -1084,7 +1084,7 @@ impl WinitPlatform { self.hidpi_factor = hidpi_factor; io.display_framebuffer_scale = [hidpi_factor as f32, hidpi_factor as f32]; // Window size might change too if we are using DPI rounding - let logical_size = window.inner_size().to_logical(scale_factor); + let logical_size = window.inner_size().to_logical(window.scale_factor()); let logical_size = self.scale_size_from_winit(window, logical_size); io.display_size = [logical_size.width as f32, logical_size.height as f32]; } From d6037316a076d5934ab09c2ecb2e31d441127b2b Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Sun, 20 Feb 2022 16:24:00 -0500 Subject: [PATCH 139/200] updated modal popup funtimes --- imgui-examples/examples/test_window_impl.rs | 6 +- imgui/src/popups.rs | 65 +++++++++++++++++---- 2 files changed, 56 insertions(+), 15 deletions(-) diff --git a/imgui-examples/examples/test_window_impl.rs b/imgui-examples/examples/test_window_impl.rs index 43fff996a..aa204a77c 100644 --- a/imgui-examples/examples/test_window_impl.rs +++ b/imgui-examples/examples/test_window_impl.rs @@ -773,7 +773,7 @@ CTRL+click on individual component to input value.\n", if ui.button("Delete..") { ui.open_popup("Delete?"); } - ui.popup_modal("Delete?").always_auto_resize(true).build(|| { + ui.modal_popup_config("Delete?").always_auto_resize(true).build(|| { ui.text("All those beautiful files will be deleted.\nThis operation cannot be undone!\n\n"); ui.separator(); let style = ui.push_style_var(StyleVar::FramePadding([0.0, 0.0])); @@ -792,7 +792,7 @@ CTRL+click on individual component to input value.\n", if ui.button("Stacked modals..") { ui.open_popup("Stacked 1"); } - ui.popup_modal("Stacked 1").build(|| { + ui.modal_popup_config("Stacked 1").build(|| { ui.text( "Hello from Stacked The First\n\ Using style[StyleColor::ModalWindowDarkening] for darkening." @@ -806,7 +806,7 @@ CTRL+click on individual component to input value.\n", if ui.button("Add another modal..") { ui.open_popup("Stacked 2") ; } - ui.popup_modal("Stacked 2").build(|| { + ui.modal_popup_config("Stacked 2").build(|| { ui.text("Hello from Stacked The Second"); if ui.button("Close") { ui.close_current_popup(); diff --git a/imgui/src/popups.rs b/imgui/src/popups.rs index 50c4a7594..2e4cb9fce 100644 --- a/imgui/src/popups.rs +++ b/imgui/src/popups.rs @@ -30,7 +30,7 @@ pub struct PopupModal<'ui, 'p, Label> { } impl<'ui, 'p, Label: AsRef> PopupModal<'ui, 'p, Label> { - #[deprecated(since = "0.9.0", note = "Use `ui.popup_modal(...)` instead")] + #[deprecated(since = "0.9.0", note = "Use `ui.modal_popup_config(...)` instead")] pub fn new(ui: &'ui Ui, label: Label) -> Self { PopupModal { ui, @@ -152,12 +152,16 @@ impl<'ui, 'p, Label: AsRef> PopupModal<'ui, 'p, Label> { // Widgets: Popups impl Ui { - /// Instructs ImGui to open a popup, which must be began with either [`begin_popup`](Self::begin_popup) - /// or [`popup`](Self::popup). You also use this function to begin [PopupModal]. + /// Instructs ImGui that a popup is open. /// - /// The confusing aspect to popups is that ImGui holds "control" over the popup fundamentally, so that ImGui - /// can also force close a popup when a user clicks outside a popup. If you do not want users to be - /// able to close a popup without selected an option, use [`PopupModal`]. + /// You should **call this function once** while calling any of the following per-frame: + /// + /// - [`begin_popup`](Self::begin_popup) + /// - [`popup`](Self::popup) + /// - [`modal_popup`](Self::modal_popup) + /// - [`modal_popup_config`](Self::modal_popup_config) + /// + /// The confusing aspect to popups is that ImGui holds control over the popup itself. #[doc(alias = "OpenPopup")] pub fn open_popup(&self, str_id: impl AsRef) { unsafe { sys::igOpenPopupStr(self.scratch_txt(str_id), 0) }; @@ -166,7 +170,7 @@ impl Ui { /// Construct a popup that can have any kind of content. /// /// This should be called *per frame*, whereas [`open_popup`](Self::open_popup) should be called *once* - /// when you want to actual create the popup. + /// to signal that this popup is active. #[doc(alias = "BeginPopup")] pub fn begin_popup(&self, str_id: impl AsRef) -> Option> { let render = unsafe { @@ -183,7 +187,7 @@ impl Ui { /// Construct a popup that can have any kind of content. /// /// This should be called *per frame*, whereas [`open_popup`](Self::open_popup) should be called *once* - /// when you want to actual create the popup. + /// to signal that this popup is active. #[doc(alias = "BeginPopup")] pub fn popup(&self, str_id: impl AsRef, f: F) where @@ -194,10 +198,47 @@ impl Ui { } } - /// Creates a PopupModal directly. - pub fn popup_modal>(&self, str_id: Label) -> PopupModal<'_, '_, Label> { - #[allow(deprecated)] - PopupModal::new(self, str_id) + /// Creates a [PopupModal], and runs a closure on it. + /// + /// To customize the behavior of this [PopupModal], use [`modal_popup_config`](Self::modal_popup_config). + pub fn modal_popup(&self, str_id: Label, f: Func) -> Option + where + Label: AsRef, + Func: FnOnce() -> R, + { + PopupModal { + ui: self, + label: str_id, + opened: None, + flags: WindowFlags::empty(), + } + .build(f) + } + + /// Creates a [PopupModal], returning a drop token. + /// + /// To customize the behavior of this [PopupModal], use [`modal_popup_config`](Self::modal_popup_config). + pub fn begin_modal_popup>(&self, str_id: Label) -> Option> { + PopupModal { + ui: self, + label: str_id, + opened: None, + flags: WindowFlags::empty(), + } + .begin_popup() + } + + /// Creates a [PopupModal] builder. + pub fn modal_popup_config>( + &self, + str_id: Label, + ) -> PopupModal<'_, '_, Label> { + PopupModal { + ui: self, + label: str_id, + opened: None, + flags: WindowFlags::empty(), + } } /// Close a popup. Should be called within the closure given as argument to From f334bfb106a5308dd0f765a0cdf01f7f7872c482 Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Sun, 20 Feb 2022 17:23:27 -0500 Subject: [PATCH 140/200] init --- imgui-examples/examples/color_button.rs | 36 +-- imgui-examples/examples/test_window_impl.rs | 33 +-- imgui/src/widget/color_editors.rs | 263 +++++++++++++++++--- 3 files changed, 267 insertions(+), 65 deletions(-) diff --git a/imgui-examples/examples/color_button.rs b/imgui-examples/examples/color_button.rs index b8f04840d..12be39498 100644 --- a/imgui-examples/examples/color_button.rs +++ b/imgui-examples/examples/color_button.rs @@ -47,27 +47,29 @@ fn example_1(ui: &Ui, state: &mut State) { ui.text(state.notify_text); ui.text("This button is black:"); - if ColorButton::new("Black color", [0.0, 0.0, 0.0, 1.0]).build(ui) { + if ui.color_button("Black color", [0.0, 0.0, 0.0, 1.0]) { state.notify_text = "*** Black button was clicked"; } ui.text("This button is red:"); - if ColorButton::new("Red color", [1.0, 0.0, 0.0, 1.0]).build(ui) { + if ui.color_button("Red color", [1.0, 0.0, 0.0, 1.0]) { state.notify_text = "*** Red button was clicked"; } ui.text("This button is BIG because it has a custom size:"); - if ColorButton::new("Green color", [0.0, 1.0, 0.0, 1.0]) + if ui + .color_button_config("Green color", [0.0, 1.0, 0.0, 1.0]) .size([100.0, 50.0]) - .build(ui) + .build() { state.notify_text = "*** BIG button was clicked"; } ui.text("This button doesn't use the tooltip at all:"); - if ColorButton::new("No tooltip", [0.0, 0.0, 1.0, 1.0]) + if ui + .color_button_config("No tooltip", [0.0, 0.0, 1.0, 1.0]) .tooltip(false) - .build(ui) + .build() { state.notify_text = "*** No tooltip button was clicked"; } @@ -87,9 +89,9 @@ fn example_2(ui: &Ui) { ); ui.text("This button ignores the alpha component:"); - ColorButton::new("Red color", [1.0, 0.0, 0.0, 0.5]) + ui.color_button_config("Red color", [1.0, 0.0, 0.0, 0.5]) .alpha(false) - .build(ui); + .build(); ui.spacing(); ui.spacing(); @@ -101,27 +103,27 @@ fn example_2(ui: &Ui) { ui.separator(); ui.text_wrapped("ColorPreview::Opaque (default) doesn't show the alpha component at all"); - ColorButton::new("Red + ColorPreview::Opaque", [1.0, 0.0, 0.0, 0.5]) + ui.color_button_config("Red + ColorPreview::Opaque", [1.0, 0.0, 0.0, 0.5]) .preview(ColorPreview::Opaque) - .build(ui); + .build(); ui.separator(); ui.text_wrapped( "ColorPreview::HalfAlpha divides the color area into two halves and uses a \ checkerboard pattern in one half to illustrate the alpha component", ); - ColorButton::new("Red + ColorPreview::HalfAlpha", [1.0, 0.0, 0.0, 0.5]) + ui.color_button_config("Red + ColorPreview::HalfAlpha", [1.0, 0.0, 0.0, 0.5]) .preview(ColorPreview::HalfAlpha) - .build(ui); + .build(); ui.separator(); ui.text_wrapped( "ColorPreview::Alpha uses a checkerboard pattern in the entire color area to \ illustrate the alpha component", ); - ColorButton::new("Red + ColorPreview::Alpha", [1.0, 0.0, 0.0, 0.5]) + ui.color_button_config("Red + ColorPreview::Alpha", [1.0, 0.0, 0.0, 0.5]) .preview(ColorPreview::Alpha) - .build(ui); + .build(); }); } @@ -132,13 +134,13 @@ fn example_3(ui: &Ui) { .position([20.0, 140.0], Condition::Appearing); w.build(|| { ui.text("This button interprets the input value [1.0, 0.0, 0.0, 1.0] as RGB(A) (default):"); - ColorButton::new("RGBA red", [1.0, 0.0, 0.0, 1.0]).build(ui); + ui.color_button("RGBA red", [1.0, 0.0, 0.0, 1.0]); ui.separator(); ui.text("This button interprets the input value [1.0, 0.0, 0.0, 1.0] as HSV(A):"); - ColorButton::new("HSVA black", [1.0, 0.0, 0.0, 1.0]) + ui.color_button_config("HSVA black", [1.0, 0.0, 0.0, 1.0]) .input_mode(ColorEditInputMode::HSV) - .build(ui); + .build(); }); } diff --git a/imgui-examples/examples/test_window_impl.rs b/imgui-examples/examples/test_window_impl.rs index aa204a77c..c89f06835 100644 --- a/imgui-examples/examples/test_window_impl.rs +++ b/imgui-examples/examples/test_window_impl.rs @@ -533,8 +533,9 @@ fn show_test_window(ui: &Ui, state: &mut State, opened: &mut bool) { Drag::new("drag float").range(-1.0, 1.0).speed(0.001).build(ui, &mut state.f0); ui.input_float3("input float3", &mut state.vec3f) .build(); - ColorEdit3::new("color 1", &mut state.col1).build(ui); - ColorEdit4::new("color 2", &mut state.col2).build(ui); + + ui.color_edit3("color 1", &mut state.col1); + ui.color_edit4("color 2", &mut state.col2); ui.input_scalar("input scalar i64", &mut state.u0).build(); ui.input_scalar("input scalar f64", &mut state.d0).build(); @@ -595,22 +596,22 @@ fn show_test_window(ui: &Ui, state: &mut State, opened: &mut bool) { "Click on the colored square to open a color picker. CTRL+click on individual component to input value.\n", ); - ColorEdit4::new("MyColor##1", &mut s.color) + ui.color_edit4_config("MyColor##1", &mut s.color) .flags(misc_flags) .alpha(false) - .build(ui); + .build(); ui.text("Color widget HSV with Alpha:"); - ColorEdit4::new("MyColor##2", &mut s.color) + ui.color_edit4_config("MyColor##2", &mut s.color) .flags(misc_flags) .input_mode(ColorEditInputMode::HSV) - .build(ui); + .build(); ui.text("Color widget with Float Display:"); - ColorEdit4::new("MyColor##2f", &mut s.color) + ui.color_edit4_config("MyColor##2f", &mut s.color) .flags(misc_flags) .format(ColorFormat::Float) - .build(ui); + .build(); ui.text("Color button with Picker:"); ui.same_line(); @@ -621,11 +622,11 @@ CTRL+click on individual component to input value.\n", With the label(false) function you can pass a non-empty label which \ will only be used for the tooltip and picker popup.", ); - ColorEdit4::new("MyColor##3", &mut s.color) + ui.color_edit4_config("MyColor##3", &mut s.color) .flags(misc_flags) .inputs(false) .label(false) - .build(ui); + .build(); ui.text("Color picker:"); ui.checkbox("With Alpha", &mut s.alpha); @@ -636,13 +637,13 @@ CTRL+click on individual component to input value.\n", ui.checkbox("With Ref Color", &mut s.ref_color); if s.ref_color { ui.same_line(); - ColorEdit4::new("##RefColor", &mut s.ref_color_v) + ui.color_edit4_config("##RefColor", &mut s.ref_color_v) .flags(misc_flags) .inputs(false) - .build(ui); + .build(); } } - let mut b = ColorPicker4::new + let mut b = ui.color_picker4_config ("MyColor##4", &mut s.color) .flags(misc_flags) .alpha(s.alpha) @@ -653,7 +654,7 @@ CTRL+click on individual component to input value.\n", if s.ref_color { b = b.reference_color(s.ref_color_v) } - b.build(ui); + b.build(); } } @@ -801,7 +802,7 @@ CTRL+click on individual component to input value.\n", let items = &["aaaa", "bbbb", "cccc", "dddd", "eeee"]; ui.combo_simple_string("Combo", &mut state.stacked_modals_item, items); - ColorEdit4::new("color", &mut state.stacked_modals_color).build(ui); + ui.color_edit4_config("color", &mut state.stacked_modals_color).build(); if ui.button("Add another modal..") { ui.open_popup("Stacked 2") ; @@ -970,7 +971,7 @@ fn show_example_app_custom_rendering(ui: &Ui, state: &mut CustomRenderingState, .build(|| { ui.text("Primitives"); // TODO: Add DragFloat to change value of sz - ColorEdit3::new("Color", &mut state.col).build(ui); + ui.color_edit3("Color", &mut state.col); let draw_list = ui.get_window_draw_list(); let p = ui.cursor_screen_pos(); let spacing = 8.0; diff --git a/imgui/src/widget/color_editors.rs b/imgui/src/widget/color_editors.rs index c99fe34fc..6b7a6cf5b 100644 --- a/imgui/src/widget/color_editors.rs +++ b/imgui/src/widget/color_editors.rs @@ -186,25 +186,27 @@ bitflags! { /// ``` #[derive(Debug)] #[must_use] -pub struct ColorEdit3<'a, T, C> { - label: T, +pub struct ColorEdit3<'ui, 'a, Label, C> { + label: Label, value: &'a mut C, flags: ColorEditFlags, + ui: &'ui Ui, } -impl<'a, T, C> ColorEdit3<'a, T, C> +impl<'ui, 'a, Label, C> ColorEdit3<'ui, 'a, Label, C> where - T: AsRef, + Label: AsRef, C: Copy + Into, MintVec3: Into + Into<[f32; 3]>, { /// Constructs a new color editor builder. - #[doc(alias = "ColorEdit3")] - pub fn new(label: T, value: &'a mut C) -> Self { + #[deprecated(since = "0.9.0", note = "Use `ui.color_edit3(...)` instead")] + pub fn new(ui: &'ui Ui, label: Label, value: &'a mut C) -> Self { ColorEdit3 { label, value, flags: ColorEditFlags::empty(), + ui, } } /// Replaces all current settings with the given flags. @@ -326,8 +328,7 @@ where /// Builds the color editor. /// /// Returns true if the color value was changed. - pub fn build(mut self, ui: &Ui) -> bool { - // if let EditableColor::Float3(_) = self.value { + pub fn build(mut self) -> bool { self.flags.insert(ColorEditFlags::NO_ALPHA); let as_vec3: MintVec3 = (*self.value).into(); @@ -335,7 +336,7 @@ where let changed = unsafe { sys::igColorEdit3( - ui.scratch_txt(self.label), + self.ui.scratch_txt(self.label), as_vec3.as_mut_ptr(), self.flags.bits() as _, ) @@ -352,6 +353,44 @@ where } } +impl Ui { + /// Edits a color of 3 channels. Use [color_edit3_config](Self::color_edit3_config) + /// for a builder to customize this widget. + pub fn color_edit3(&self, label: Label, value: &mut C) -> bool + where + Label: AsRef, + C: Copy + Into, + MintVec3: Into + Into<[f32; 3]>, + { + ColorEdit3 { + label, + value, + flags: ColorEditFlags::empty(), + ui: self, + } + .build() + } + + /// Constructs a new color editor builder. + pub fn color_edit3_config<'a, Label, C>( + &self, + label: Label, + value: &'a mut C, + ) -> ColorEdit3<'_, 'a, Label, C> + where + Label: AsRef, + C: Copy + Into, + MintVec3: Into + Into<[f32; 3]>, + { + ColorEdit3 { + label, + value, + flags: ColorEditFlags::empty(), + ui: self, + } + } +} + /// Builder for a color editor widget. /// /// # Examples @@ -368,25 +407,27 @@ where /// ``` #[derive(Debug)] #[must_use] -pub struct ColorEdit4<'a, T, C> { +pub struct ColorEdit4<'ui, 'a, T, C> { label: T, value: &'a mut C, flags: ColorEditFlags, + ui: &'ui Ui, } -impl<'a, T, C> ColorEdit4<'a, T, C> +impl<'ui, 'a, T, C> ColorEdit4<'ui, 'a, T, C> where T: AsRef, C: Copy + Into, MintVec4: Into + Into<[f32; 4]>, { /// Constructs a new color editor builder. - #[doc(alias = "ColorEdit4")] - pub fn new(label: T, value: &'a mut C) -> Self { + #[deprecated(since = "0.9.0", note = "Use `ui.color_edit4(...)` instead")] + pub fn new(ui: &'ui Ui, label: T, value: &'a mut C) -> Self { Self { label, value, flags: ColorEditFlags::empty(), + ui, } } /// Replaces all current settings with the given flags. @@ -508,13 +549,13 @@ where /// Builds the color editor. /// /// Returns true if the color value was changed. - pub fn build(self, ui: &Ui) -> bool { + pub fn build(self) -> bool { let as_vec4: MintVec4 = (*self.value).into(); let mut as_vec4: [f32; 4] = as_vec4.into(); let changed = unsafe { sys::igColorEdit4( - ui.scratch_txt(self.label), + self.ui.scratch_txt(self.label), as_vec4.as_mut_ptr(), self.flags.bits() as _, ) @@ -531,6 +572,44 @@ where } } +impl Ui { + /// Edits a color of 4 channels. Use [color_edit4_config](Self::color_edit4_config) + /// for a builder to customize this widget. + pub fn color_edit4(&self, label: Label, value: &mut C) -> bool + where + Label: AsRef, + C: Copy + Into, + MintVec4: Into + Into<[f32; 4]>, + { + ColorEdit4 { + label, + value, + flags: ColorEditFlags::empty(), + ui: self, + } + .build() + } + + /// Constructs a new color editor builder. + pub fn color_edit4_config<'a, Label, C>( + &self, + label: Label, + value: &'a mut C, + ) -> ColorEdit4<'_, 'a, Label, C> + where + Label: AsRef, + C: Copy + Into, + MintVec4: Into + Into<[f32; 4]>, + { + ColorEdit4 { + label, + value, + flags: ColorEditFlags::empty(), + ui: self, + } + } +} + /// Builder for a color picker widget. /// /// # Examples @@ -547,25 +626,27 @@ where /// ``` #[derive(Debug)] #[must_use] -pub struct ColorPicker3<'a, Label, Color> { +pub struct ColorPicker3<'ui, 'a, Label, Color> { label: Label, value: &'a mut Color, flags: ColorEditFlags, + ui: &'ui Ui, } -impl<'a, Label, Color> ColorPicker3<'a, Label, Color> +impl<'ui, 'a, Label, Color> ColorPicker3<'ui, 'a, Label, Color> where Label: AsRef, Color: Copy + Into, MintVec3: Into + Into<[f32; 3]>, { /// Constructs a new color picker builder. - #[doc(alias = "ColorPicker3")] - pub fn new(label: Label, value: &'a mut Color) -> Self { + #[deprecated(since = "0.9.0", note = "Use `ui.color_picker3(...)` instead")] + pub fn new(ui: &'ui Ui, label: Label, value: &'a mut Color) -> Self { ColorPicker3 { label, value, flags: ColorEditFlags::empty(), + ui, } } /// Replaces all current settings with the given flags. @@ -694,12 +775,12 @@ where /// Builds the color picker. /// /// Returns true if the color value was changed. - pub fn build(mut self, ui: &Ui) -> bool { + pub fn build(mut self) -> bool { self.flags.insert(ColorEditFlags::NO_ALPHA); let mut value: [f32; 3] = (*self.value).into().into(); let changed = unsafe { sys::igColorPicker3( - ui.scratch_txt(self.label), + self.ui.scratch_txt(self.label), value.as_mut_ptr(), self.flags.bits() as _, ) @@ -715,6 +796,44 @@ where } } +impl Ui { + /// Edits a color of 3 channels. Use [color_picker3](Self::color_picker3) + /// for a builder to customize this widget. + pub fn color_picker3(&self, label: Label, value: &mut C) -> bool + where + Label: AsRef, + C: Copy + Into, + MintVec3: Into + Into<[f32; 3]>, + { + ColorPicker3 { + label, + value, + flags: ColorEditFlags::empty(), + ui: self, + } + .build() + } + + /// Constructs a new color picker editor builder. + pub fn color_picker3_config<'a, Label, C>( + &self, + label: Label, + value: &'a mut C, + ) -> ColorPicker3<'_, 'a, Label, C> + where + Label: AsRef, + C: Copy + Into, + MintVec3: Into + Into<[f32; 3]>, + { + ColorPicker3 { + label, + value, + flags: ColorEditFlags::empty(), + ui: self, + } + } +} + // Builder for a color picker widget. /// /// # Examples @@ -731,27 +850,29 @@ where /// ``` #[derive(Debug)] #[must_use] -pub struct ColorPicker4<'a, Label, Color> { +pub struct ColorPicker4<'ui, 'a, Label, Color> { label: Label, value: &'a mut Color, flags: ColorEditFlags, ref_color: Option<[f32; 4]>, + ui: &'ui Ui, } -impl<'a, Label, Color> ColorPicker4<'a, Label, Color> +impl<'ui, 'a, Label, Color> ColorPicker4<'ui, 'a, Label, Color> where Label: AsRef, Color: Copy + Into, MintVec4: Into + Into<[f32; 4]>, { /// Constructs a new color picker builder. - #[doc(alias = "ColorPicker4")] - pub fn new(label: Label, value: &'a mut Color) -> Self { + #[deprecated(since = "0.9.0", note = "Use `ui.color_picker4(...)` instead")] + pub fn new(ui: &'ui Ui, label: Label, value: &'a mut Color) -> Self { Self { label, value, flags: ColorEditFlags::empty(), ref_color: None, + ui, } } /// Replaces all current settings with the given flags. @@ -886,13 +1007,13 @@ where /// Builds the color picker. /// /// Returns true if the color value was changed. - pub fn build(self, ui: &Ui) -> bool { + pub fn build(self) -> bool { let mut value: [f32; 4] = (*self.value).into().into(); let ref_color = self.ref_color.map(|c| c.as_ptr()).unwrap_or(ptr::null()); let changed = unsafe { sys::igColorPicker4( - ui.scratch_txt(self.label), + self.ui.scratch_txt(self.label), value.as_mut_ptr(), self.flags.bits() as _, ref_color, @@ -909,6 +1030,46 @@ where } } +impl Ui { + /// Edits a color of 4 channels. Use [color_picker4_config](Self::color_picker4_config) + /// for a builder to customize this widget. + pub fn color_picker4(&self, label: Label, value: &mut C) -> bool + where + Label: AsRef, + C: Copy + Into, + MintVec4: Into + Into<[f32; 4]>, + { + ColorPicker4 { + label, + value, + flags: ColorEditFlags::empty(), + ref_color: None, + ui: self, + } + .build() + } + + /// Constructs a new color picker editor builder. + pub fn color_picker4_config<'a, Label, C>( + &self, + label: Label, + value: &'a mut C, + ) -> ColorPicker4<'_, 'a, Label, C> + where + Label: AsRef, + C: Copy + Into, + MintVec4: Into + Into<[f32; 4]>, + { + ColorPicker4 { + label, + value, + flags: ColorEditFlags::empty(), + ref_color: None, + ui: self, + } + } +} + /// Builder for a color button widget. /// /// # Examples @@ -922,21 +1083,24 @@ where /// ``` #[derive(Copy, Clone, Debug)] #[must_use] -pub struct ColorButton { +pub struct ColorButton<'ui, T> { desc_id: T, color: [f32; 4], flags: ColorEditFlags, size: [f32; 2], + ui: &'ui Ui, } -impl> ColorButton { +impl<'ui, T: AsRef> ColorButton<'ui, T> { /// Constructs a new color button builder. - pub fn new(desc_id: T, color: impl Into) -> Self { + #[deprecated(since = "0.9.0", note = "Use `ui.color_button_config(...)` instead")] + pub fn new(ui: &'ui Ui, desc_id: T, color: impl Into) -> Self { ColorButton { desc_id, color: color.into().into(), flags: ColorEditFlags::empty(), size: [0.0, 0.0], + ui, } } /// Replaces all current settings with the given flags. @@ -1008,10 +1172,10 @@ impl> ColorButton { /// Builds the color button. /// /// Returns true if this color button was clicked. - pub fn build(self, ui: &Ui) -> bool { + pub fn build(self) -> bool { unsafe { sys::igColorButton( - ui.scratch_txt(self.desc_id), + self.ui.scratch_txt(self.desc_id), self.color.into(), self.flags.bits() as _, self.size.into(), @@ -1020,6 +1184,41 @@ impl> ColorButton { } } +impl Ui { + /// Builds a [ColorButton]. + /// + /// Returns true if this color button was clicked. + pub fn color_button>( + &self, + desc_id: Label, + color: impl Into, + ) -> bool { + ColorButton { + desc_id, + color: color.into().into(), + flags: ColorEditFlags::empty(), + size: [0.0, 0.0], + ui: self, + } + .build() + } + + /// Returns a [ColorButton] builder. + pub fn color_button_config>( + &self, + desc_id: Label, + color: impl Into, + ) -> ColorButton<'_, Label> { + ColorButton { + desc_id, + color: color.into().into(), + flags: ColorEditFlags::empty(), + size: [0.0, 0.0], + ui: self, + } + } +} + /// # Widgets: Color Editor/Picker impl Ui { /// Initializes current color editor/picker options (generally on application startup) if you From 4bb300e39377a952ef516d682aa07dc8752f7dac Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Mon, 21 Feb 2022 17:05:27 -0500 Subject: [PATCH 141/200] color edits --- imgui/src/popups.rs | 8 ++++---- imgui/src/widget/color_editors.rs | 17 +++++++---------- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/imgui/src/popups.rs b/imgui/src/popups.rs index 2e4cb9fce..4b5ebb340 100644 --- a/imgui/src/popups.rs +++ b/imgui/src/popups.rs @@ -11,12 +11,12 @@ use crate::Ui; /// # use imgui::*; /// # let mut imgui = Context::create(); /// # let ui = imgui.frame(); -/// if ui.button(im_str!("Show modal")) { -/// ui.open_popup(im_str!("modal")); +/// if ui.button("Show modal") { +/// ui.open_popup("modal"); /// } -/// if let Some(_token) = ui.popup_modal("modal").begin_popup() { +/// if let Some(_token) = ui.begin_modal_popup("modal") { /// ui.text("Content of my modal"); -/// if ui.button(im_str!("OK")) { +/// if ui.button("OK") { /// ui.close_current_popup(); /// } /// }; diff --git a/imgui/src/widget/color_editors.rs b/imgui/src/widget/color_editors.rs index 6b7a6cf5b..44480ca03 100644 --- a/imgui/src/widget/color_editors.rs +++ b/imgui/src/widget/color_editors.rs @@ -179,8 +179,7 @@ bitflags! { /// # let mut imgui = Context::create(); /// # let ui = imgui.frame(); /// # let mut color = [0.0, 0.0, 0.0, 1.0]; -/// let ce = ColorEdit4::new("color_edit", &mut color); -/// if ce.build(&ui) { +/// if ui.color_edit4("color_edit", &mut color) { /// println!("The color was changed"); /// } /// ``` @@ -400,8 +399,7 @@ impl Ui { /// # let mut imgui = Context::create(); /// # let ui = imgui.frame(); /// # let mut color = [0.0, 0.0, 0.0, 1.0]; -/// let ce = ColorEdit4::new("color_edit", &mut color); -/// if ce.build(&ui) { +/// if ui.color_edit4("color_edit", &mut color) { /// println!("The color was changed"); /// } /// ``` @@ -619,8 +617,7 @@ impl Ui { /// # let mut imgui = Context::create(); /// # let ui = imgui.frame(); /// # let mut color = [0.0, 0.0, 0.0, 1.0]; -/// let cp = ColorPicker4::new("color_picker", &mut color); -/// if cp.build(&ui) { +/// if ui.color_picker4("color_picker", &mut color) { /// println!("A color was picked"); /// } /// ``` @@ -843,8 +840,7 @@ impl Ui { /// # let mut imgui = Context::create(); /// # let ui = imgui.frame(); /// # let mut color = [0.0, 0.0, 0.0, 1.0]; -/// let cp = ColorPicker4::new("color_picker", &mut color); -/// if cp.build(&ui) { +/// if ui.color_picker4("color_picker", &mut color) { /// println!("A color was picked"); /// } /// ``` @@ -1078,8 +1074,9 @@ impl Ui { /// # use imgui::*; /// # let mut imgui = Context::create(); /// # let ui = imgui.frame(); -/// ColorButton::new(im_str!("color_button"), [1.0, 0.0, 0.0, 1.0]) -/// .build(&ui); +/// if ui.color_button("color_button", [1.0, 0.0, 0.0, 1.0]) { +/// println!("pressed!"); +/// } /// ``` #[derive(Copy, Clone, Debug)] #[must_use] From 396512a982448691293cc53381a3d34dff691121 Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Mon, 21 Feb 2022 17:18:22 -0500 Subject: [PATCH 142/200] lint --- imgui/src/popups.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/imgui/src/popups.rs b/imgui/src/popups.rs index 4b5ebb340..401bfbce0 100644 --- a/imgui/src/popups.rs +++ b/imgui/src/popups.rs @@ -242,7 +242,7 @@ impl Ui { } /// Close a popup. Should be called within the closure given as argument to - /// [`Ui::popup`] or [`Ui::popup_modal`]. + /// [`Ui::popup`] or [`Ui::modal_popup`]. #[doc(alias = "CloseCurrentPopup")] pub fn close_current_popup(&self) { unsafe { sys::igCloseCurrentPopup() }; From 8dea2edcfaf8858fde82c73c040acda4314abfbf Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Mon, 21 Feb 2022 18:01:27 -0500 Subject: [PATCH 143/200] init. copying other work --- imgui-examples/Cargo.toml | 2 +- imgui-glium-renderer/Cargo.toml | 2 +- imgui-glow-renderer/Cargo.toml | 2 +- imgui-winit-support/Cargo.toml | 2 +- imgui-winit-support/src/lib.rs | 20 +++++++++++--------- 5 files changed, 15 insertions(+), 13 deletions(-) diff --git a/imgui-examples/Cargo.toml b/imgui-examples/Cargo.toml index 87950d289..0f2fba6fb 100644 --- a/imgui-examples/Cargo.toml +++ b/imgui-examples/Cargo.toml @@ -11,7 +11,7 @@ publish = false [dev-dependencies] clipboard = "0.5" -glium = { version = "0.30", default-features = true } +glium = { version = "0.31", default-features = true } image = "0.23" imgui = { path = "../imgui", features = ["tables-api"] } imgui-glium-renderer = { path = "../imgui-glium-renderer" } diff --git a/imgui-glium-renderer/Cargo.toml b/imgui-glium-renderer/Cargo.toml index 68134f632..574b93a4e 100644 --- a/imgui-glium-renderer/Cargo.toml +++ b/imgui-glium-renderer/Cargo.toml @@ -10,5 +10,5 @@ license = "MIT/Apache-2.0" categories = ["gui", "rendering"] [dependencies] -glium = { version = "0.30", default-features = false } +glium = { version = "0.31", default-features = false } imgui = { version = "0.8.1-alpha.0", path = "../imgui" } diff --git a/imgui-glow-renderer/Cargo.toml b/imgui-glow-renderer/Cargo.toml index 3fbc013bc..a0df2bdec 100644 --- a/imgui-glow-renderer/Cargo.toml +++ b/imgui-glow-renderer/Cargo.toml @@ -15,7 +15,7 @@ glow = "0.10.0" memoffset = "0.6.4" [dev-dependencies] -glutin = "0.27.0" +glutin = "0.28.0" imgui-winit-support = { version = "0.8.1-alpha.0", path = "../imgui-winit-support" } image = "0.23" diff --git a/imgui-winit-support/Cargo.toml b/imgui-winit-support/Cargo.toml index 668a9460d..e105b0e7f 100644 --- a/imgui-winit-support/Cargo.toml +++ b/imgui-winit-support/Cargo.toml @@ -20,7 +20,7 @@ winit-25 = { version = "0.25", package = "winit", default-features = false, opti winit-26 = { version = "0.26", package = "winit", default-features = false, optional = true } [features] -default = ["winit-25/default"] +default = ["winit-26/default"] test = ["winit-23/default", "winit-24/default", "winit-25/default", "winit-26/default"] # This is phrased as a negative (unlike most features) so that it needs to be diff --git a/imgui-winit-support/src/lib.rs b/imgui-winit-support/src/lib.rs index 72f96896a..46ffb17f1 100644 --- a/imgui-winit-support/src/lib.rs +++ b/imgui-winit-support/src/lib.rs @@ -79,9 +79,10 @@ //! //! The following versions are supported, controlled by the listed feature. //! -//! - The `winit-25` feature uses winit versions compatible with `0.25`. This is +//! - The `winit-26` feature uses winit versions compatible with `0.26`. This is //! on by default, so to use any other version you need to disable this crates //! default features. +//! - The `winit-25` feature supports winit versions `0.25`. //! - The `winit-24` feature supports winit versions `0.24`. //! - The `winit-23` feature uses winit versions compatible with `0.23`. //! - The `winit-22` feature uses winit versions compatible with `0.22`. @@ -95,7 +96,7 @@ //! feature, fixing the configuration, or disabling `debug_assertions`. //! //! Conversely, if no `winit-*` features are enabled, we will fail to compile. -//! This is not an issue generally, as by default we turn on `winit-25`. +//! This is not an issue generally, as by default we turn on `winit-26`. //! //! All of this is in attempt to preserve the additive nature of features (while //! still helping users notice project configuration issues), however it's done @@ -245,7 +246,8 @@ fn check_multiple_winits() { if cfg!(any(not(debug_assertions), feature = "no-warn-on-multiple")) { return; } - let winits_enabled = cfg!(feature = "winit-25") as usize + let winits_enabled = cfg!(feature = "winit-26") as usize + + cfg!(feature = "winit-25") as usize + cfg!(feature = "winit-24") as usize + cfg!(feature = "winit-23") as usize + cfg!(feature = "winit-22") as usize @@ -274,8 +276,8 @@ fn check_multiple_winits() { (this likely indicates misconfiguration, see documentation for details)." ); let feats = [ - ("winit-26", cfg!(feature = "winit-26"), ""), - ("winit-25", cfg!(feature = "winit-25"), " (default)"), + ("winit-26", cfg!(feature = "winit-26"), " (default)"), + ("winit-25", cfg!(feature = "winit-25"), ""), ("winit-24", cfg!(feature = "winit-24"), ""), ("winit-23", cfg!(feature = "winit-23"), ""), ("winit-22", cfg!(feature = "winit-22"), ""), @@ -535,7 +537,7 @@ impl WinitPlatform { self.hidpi_mode = hidpi_mode; self.hidpi_factor = hidpi_factor; io.display_framebuffer_scale = [hidpi_factor as f32, hidpi_factor as f32]; - let logical_size = window.inner_size().to_logical(window.scale_factor()); + let logical_size = window.inner_size().to_logical(hidpi_factor); let logical_size = self.scale_size_from_winit(window, logical_size); io.display_size = [logical_size.width as f32, logical_size.height as f32]; } @@ -976,7 +978,7 @@ impl WinitPlatform { self.hidpi_factor = hidpi_factor; io.display_framebuffer_scale = [hidpi_factor as f32, hidpi_factor as f32]; // Window size might change too if we are using DPI rounding - let logical_size = window.inner_size().to_logical(window.scale_factor()); + let logical_size = window.inner_size().to_logical(scale_factor); let logical_size = self.scale_size_from_winit(window, logical_size); io.display_size = [logical_size.width as f32, logical_size.height as f32]; } @@ -1084,7 +1086,7 @@ impl WinitPlatform { self.hidpi_factor = hidpi_factor; io.display_framebuffer_scale = [hidpi_factor as f32, hidpi_factor as f32]; // Window size might change too if we are using DPI rounding - let logical_size = window.inner_size().to_logical(window.scale_factor()); + let logical_size = window.inner_size().to_logical(scale_factor); let logical_size = self.scale_size_from_winit(window, logical_size); io.display_size = [logical_size.width as f32, logical_size.height as f32]; } @@ -1246,4 +1248,4 @@ impl WinitPlatform { } } } -} +} \ No newline at end of file From fadcd35c0a02350094bb4f48437aefa7d6224082 Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Mon, 21 Feb 2022 18:04:02 -0500 Subject: [PATCH 144/200] grumble --- imgui-winit-support/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/imgui-winit-support/src/lib.rs b/imgui-winit-support/src/lib.rs index 46ffb17f1..3c2c65d11 100644 --- a/imgui-winit-support/src/lib.rs +++ b/imgui-winit-support/src/lib.rs @@ -1248,4 +1248,4 @@ impl WinitPlatform { } } } -} \ No newline at end of file +} From 24ad9d526c1ce9c18eb47d3f78ab7bb85ecf5d71 Mon Sep 17 00:00:00 2001 From: Jack Mac Date: Mon, 21 Feb 2022 20:44:33 -0500 Subject: [PATCH 145/200] reworked the combo box to be less annoying --- imgui/src/widget/combo_box.rs | 82 ++++++++++++++++++----------------- 1 file changed, 42 insertions(+), 40 deletions(-) diff --git a/imgui/src/widget/combo_box.rs b/imgui/src/widget/combo_box.rs index 6ca4b3583..9b893f921 100644 --- a/imgui/src/widget/combo_box.rs +++ b/imgui/src/widget/combo_box.rs @@ -54,33 +54,37 @@ pub struct ComboBoxFlags: u32 { /// Builder for a combo box widget #[derive(Copy, Clone, Debug)] #[must_use] -pub struct ComboBox { - label: Label, - preview_value: Option, - flags: ComboBoxFlags, +pub struct ComboBox<'ui, Label, Preview = &'static str> { + pub label: Label, + pub preview_value: Option, + pub flags: ComboBoxFlags, + pub ui: &'ui Ui, } -impl> ComboBox