summaryrefslogtreecommitdiff
path: root/src/cat/LuaWindow.cpp
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2013-02-16 14:49:05 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2013-02-16 14:49:05 (GMT)
commit8d04b260a7966a31919e9b8dae8da852a47d9313 (patch)
treec2a9e7e2686a6e29a40076082eb8809c7fbb2a8c /src/cat/LuaWindow.cpp
parent01cd146ee910fb9e62859583842c9842b539565b (diff)
downloadpowder-8d04b260a7966a31919e9b8dae8da852a47d9313.zip
powder-8d04b260a7966a31919e9b8dae8da852a47d9313.tar.gz
Add missing removeComponent for Lua API
Diffstat (limited to 'src/cat/LuaWindow.cpp')
-rw-r--r--src/cat/LuaWindow.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/cat/LuaWindow.cpp b/src/cat/LuaWindow.cpp
index 433e4d1..502c7f1 100644
--- a/src/cat/LuaWindow.cpp
+++ b/src/cat/LuaWindow.cpp
@@ -25,6 +25,7 @@ Luna<LuaWindow>::RegType LuaWindow::methods[] = {
method(LuaWindow, position),
method(LuaWindow, size),
method(LuaWindow, addComponent),
+ method(LuaWindow, removeComponent),
method(LuaWindow, onInitialized),
method(LuaWindow, onExit),
method(LuaWindow, onTick),
@@ -122,6 +123,29 @@ int LuaWindow::addComponent(lua_State * l)
return 0;
}
+int LuaWindow::removeComponent(lua_State * l)
+{
+ void * luaComponent = NULL;
+ ui::Component * component = NULL;
+ if(luaComponent = Luna<LuaButton>::tryGet(l, 1))
+ component = Luna<LuaButton>::get(luaComponent)->GetComponent();
+ else if(luaComponent = Luna<LuaLabel>::tryGet(l, 1))
+ component = Luna<LuaLabel>::get(luaComponent)->GetComponent();
+ else if(luaComponent = Luna<LuaTextbox>::tryGet(l, 1))
+ component = Luna<LuaTextbox>::get(luaComponent)->GetComponent();
+ else if(luaComponent = Luna<LuaCheckbox>::tryGet(l, 1))
+ component = Luna<LuaCheckbox>::get(luaComponent)->GetComponent();
+ else if(luaComponent = Luna<LuaSlider>::tryGet(l, 1))
+ component = Luna<LuaSlider>::get(luaComponent)->GetComponent();
+ else if(luaComponent = Luna<LuaProgressBar>::tryGet(l, 1))
+ component = Luna<LuaProgressBar>::get(luaComponent)->GetComponent();
+ else
+ luaL_typerror(l, 1, "Component");
+ if(component)
+ window->RemoveComponent(component);
+ return 0;
+}
+
int LuaWindow::position(lua_State * l)
{
int args = lua_gettop(l);