From 6389aabffe198ece92b58ae34a905902c7eefe7c Mon Sep 17 00:00:00 2001 From: deva Date: Tue, 28 Jun 2011 06:38:10 +0000 Subject: Complete rewrite of the way lua widget methods, 'inheritance' in particular, are handled. --- client/widgets/listbox.cc | 72 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) (limited to 'client/widgets/listbox.cc') diff --git a/client/widgets/listbox.cc b/client/widgets/listbox.cc index b691650..3000f35 100644 --- a/client/widgets/listbox.cc +++ b/client/widgets/listbox.cc @@ -30,6 +30,7 @@ #include #include "common.h" +#include "luawidget.h" static QListWidgetItem *createItem(QDomElement &elem) { @@ -146,3 +147,74 @@ void ListBox::setWdgValid(bool valid) listwidget->setPalette(palette); } + +void ListBox::clear() +{ + listwidget->clear(); +} + +void ListBox::addItem(QString text, QString type) +{ + QDomDocument doc; + QDomElement elem = doc.createElement("item"); + elem.setAttribute("caption", text); + elem.setAttribute("value", text); + if(type != "") elem.setAttribute("type", type); + listwidget->addItem(createItem(elem)); +} + +int lst_clear(lua_State *L) +{ + wdg_userdata *wdgu; + + wdgu = (wdg_userdata *)lua_touserdata(L, 1); + luaL_argcheck(L, wdgu, 1, "listbox expected"); + + ListBox *lst = (ListBox*)wdgu->widget; + lst->clear(); + + return 0; +} + +int lst_add_item(lua_State *L) +{ + wdg_userdata *wdgu; + + wdgu = (wdg_userdata *)lua_touserdata(L, 1); + luaL_argcheck(L, wdgu, 1, "listbox expected"); + + QString val = luaL_checkstring(L, 2); + + ListBox *lst = (ListBox*)wdgu->widget; + lst->addItem(val, ""); + + return 0; +} + +int lst_add_header(lua_State *L) +{ + wdg_userdata *wdgu; + + wdgu = (wdg_userdata *)lua_touserdata(L, 1); + luaL_argcheck(L, wdgu, 1, "listbox expected"); + + QString val = luaL_checkstring(L, 2); + + ListBox *lst = (ListBox*)wdgu->widget; + lst->addItem(val, "header"); + + return 0; +} + +int lst_add_separator(lua_State *L) +{ + wdg_userdata *wdgu; + + wdgu = (wdg_userdata *)lua_touserdata(L, 1); + luaL_argcheck(L, wdgu, 1, "listbox expected"); + + ListBox *lst = (ListBox*)wdgu->widget; + lst->addItem("", "separator"); + + return 0; +} -- cgit v1.2.3