summaryrefslogtreecommitdiff
path: root/client/widgets/listbox.cc
diff options
context:
space:
mode:
Diffstat (limited to 'client/widgets/listbox.cc')
-rw-r--r--client/widgets/listbox.cc72
1 files changed, 72 insertions, 0 deletions
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 <QListWidget>
#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;
+}