diff options
author | Pixel <pixel@nobis-crew.org> | 2009-11-04 11:56:41 -0800 |
---|---|---|
committer | Pixel <pixel@nobis-crew.org> | 2009-11-04 11:59:33 -0800 |
commit | d577d991b97ae2b5ee1af23641bcffc3f83af5b2 (patch) | |
tree | 590639d50205d1bcfaff2a7d2dc6ebf3f373c7ed /iup/srclua5/menu.lua |
Initial import. Contains the im, cd and iup librairies, and a "working" Makefile for them under linux.
Diffstat (limited to 'iup/srclua5/menu.lua')
-rwxr-xr-x | iup/srclua5/menu.lua | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/iup/srclua5/menu.lua b/iup/srclua5/menu.lua new file mode 100755 index 0000000..89cd241 --- /dev/null +++ b/iup/srclua5/menu.lua @@ -0,0 +1,55 @@ +------------------------------------------------------------------------------ +-- Menu class +------------------------------------------------------------------------------ +local ctrl = { + nick = "menu", + parent = BOX, + creation = "-", + callback = { + open_cb = "", + menuclose_cb = "", + } +} + +function ctrl.popup(handle, x, y) + Popup(handle, x, y) +end + +function ctrl.append(handle, elem) + Append(handle, elem) +end + +function ctrl.createElement(class, arg) + local n = #arg + for i=1,n do + if type(arg[i]) == "table" then + itemarg = {} + for u,v in pairs(arg[i]) do + if type(u) ~= "number" then + itemarg[u] = v + end + end + if type(arg[i][1]) == "string" and (type(arg[i][2]) == "function" or type(arg[i][2]) == "string") then + itemarg.title = arg[i][1] + itemarg.action = arg[i][2] + arg[i] = item(itemarg) + elseif type(arg[i][1]) == "string" and type(arg[i][2]) == "userdata" then + itemarg[1] = arg[i][2] + itemarg.title = arg[i][1] + arg[i] = submenu(itemarg) + end + end + end + return Menu() +end + +function ctrl.showxy(handle, x, y) + return ShowXY(handle, x, y) +end + +function ctrl.destroy(handle) + return Destroy(handle) +end + +iupRegisterWidget(ctrl) +iupSetClass(ctrl, "iup widget") |