From e7585a1a26cf6e7e4254c32ad6286706cb1e3319 Mon Sep 17 00:00:00 2001 From: Dmitry Senyushkin Date: Sat, 2 Dec 2023 10:13:25 +0300 Subject: [PATCH] Added set_keyboard_focus_here (#38) * Added SetKeyboardFocusHere function * Update extension_imgui.cpp * Fixed stack check value, used the function in example --- example/example.script | 3 +++ imgui/api/imgui.script_api | 8 ++++++++ imgui/src/extension_imgui.cpp | 10 ++++++++++ 3 files changed, 21 insertions(+) diff --git a/example/example.script b/example/example.script index 77b31af..7ab719c 100644 --- a/example/example.script +++ b/example/example.script @@ -238,6 +238,9 @@ local function update_tab2(self) imgui.separator() + if imgui.button("Push me to focus on test double") then + imgui.set_keyboard_focus_here(0) + end local testdbl = self.testdbl or 0 local changed, value = imgui.input_double("test double", testdbl, 0.0001, 0.01, 5) if changed then diff --git a/imgui/api/imgui.script_api b/imgui/api/imgui.script_api index f8d8baf..d4b42e5 100644 --- a/imgui/api/imgui.script_api +++ b/imgui/api/imgui.script_api @@ -1392,6 +1392,14 @@ - name: y type: number +#***************************************************************************************************** + + - name: set_keyboard_focus_here + type: function + + parameters: + - name: offset + type: number #***************************************************************************************************** #***** STYLE ***************************************************************************************** diff --git a/imgui/src/extension_imgui.cpp b/imgui/src/extension_imgui.cpp index 98e57b6..0c4a39d 100644 --- a/imgui/src/extension_imgui.cpp +++ b/imgui/src/extension_imgui.cpp @@ -1642,6 +1642,15 @@ static int imgui_GetItemRectMax(lua_State* L) return 2; } +static int imgui_SetKeyboardFocusHere(lua_State* L) +{ + DM_LUA_STACK_CHECK(L, 0); + imgui_NewFrame(); + int offset = luaL_checknumber(L, 1); + ImGui::SetKeyboardFocusHere(offset); + return 0; +} + // ---------------------------- // ----- STYLE ---------------- // ---------------------------- @@ -2284,6 +2293,7 @@ static const luaL_reg Module_methods[] = {"get_item_rect_max", imgui_GetItemRectMax}, {"is_mouse_clicked", imgui_IsMouseClicked}, {"is_mouse_double_clicked", imgui_IsMouseDoubleClicked}, + {"set_keyboard_focus_here", imgui_SetKeyboardFocusHere}, {"set_style_window_rounding", imgui_SetStyleWindowRounding}, {"set_style_window_bordersize", imgui_SetStyleWindowBorderSize},