From ff28849d907f3b89f7002d62412f82e61514e302 Mon Sep 17 00:00:00 2001 From: Syping Date: Tue, 19 May 2020 17:16:08 +0200 Subject: [PATCH] add setCurrentStack --- src/luaenginegui/luaengine/LuaEngineGui.cpp | 19 ++++++++++++++++--- src/luaenginegui/luaengine/LuaEngineGui.h | 1 + 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/luaenginegui/luaengine/LuaEngineGui.cpp b/src/luaenginegui/luaengine/LuaEngineGui.cpp index 35e194e..2eddae4 100644 --- a/src/luaenginegui/luaengine/LuaEngineGui.cpp +++ b/src/luaenginegui/luaengine/LuaEngineGui.cpp @@ -167,6 +167,7 @@ void LuaEngineGui::pushClass(lua_State *L_p) pushFunction(L_p, "createStackSwitch", createStackSwitch); pushFunction(L_p, "createWidgetStack", createWidgetStack); pushFunction(L_p, "addWidgetAsStack", addWidgetAsStack); + pushFunction(L_p, "setCurrentStack", setCurrentStack); // Tab Bar pushFunction(L_p, "createTabBar", createTabBar); @@ -414,6 +415,18 @@ int LuaEngineGui::showWidget(lua_State *L_p) return 0; } +int LuaEngineGui::setCurrentStack(lua_State *L_p) +{ + if (getArgumentCount(L_p) >= 2) { + void *w_pointer = getPointer(L_p, 1); + void *s_pointer = getPointer(L_p, 2); + if (w_pointer != NULL && s_pointer != NULL && ((QObject*)w_pointer)->inherits("QWidget") && ((QObject*)s_pointer)->inherits("QStackedWidget")) { + ((QStackedWidget*)s_pointer)->setCurrentWidget((QWidget*)w_pointer); + } + } + return 0; +} + int LuaEngineGui::setLayoutMargins(lua_State *L_p) { if (getArgumentCount(L_p) >= 5) { @@ -822,9 +835,9 @@ int LuaEngineGui::addWidgetAsStack(lua_State *L_p) { if (getArgumentCount(L_p) >= 2) { void *w_pointer = getPointer(L_p, 1); - void *t_pointer = getPointer(L_p, 2); - if (w_pointer != NULL && t_pointer != NULL && ((QObject*)w_pointer)->inherits("QWidget") && ((QObject*)t_pointer)->inherits("QStackedWidget")) { - ((QStackedWidget*)t_pointer)->addWidget((QWidget*)w_pointer); + void *s_pointer = getPointer(L_p, 2); + if (w_pointer != NULL && s_pointer != NULL && ((QObject*)w_pointer)->inherits("QWidget") && ((QObject*)s_pointer)->inherits("QStackedWidget")) { + ((QStackedWidget*)s_pointer)->addWidget((QWidget*)w_pointer); } } return 0; diff --git a/src/luaenginegui/luaengine/LuaEngineGui.h b/src/luaenginegui/luaengine/LuaEngineGui.h index c11a2e6..fb64bca 100644 --- a/src/luaenginegui/luaengine/LuaEngineGui.h +++ b/src/luaenginegui/luaengine/LuaEngineGui.h @@ -38,6 +38,7 @@ public: static int closeWidget(lua_State *L_p); static int executeWidget(lua_State *L_p); static int showWidget(lua_State *L_p); + static int setCurrentStack(lua_State *L_p); static int setLayoutMargins(lua_State *L_p); static int setMenuShortcut(lua_State *L_p); static int setObjectImage(lua_State *L_p);