Plua 菜单 |
|
-- SD 2006-10-20
Plua 允许您指定菜单项,它将这些菜单项附加到单个动态菜单。
您无法在顶部创建多个菜单 - 这据说是 Palm OS 的限制,它只允许一个动态菜单。
以下是使用资源编辑器来修改 PluaRuntime 的探索。
它功能齐全,但用途存疑,因为您需要修改 Plua 运行时(除非使用了一些捆绑技巧或签名更改)。
只要您为菜单项指定高于 Plua 范围的数字(例如:1021),它们就可以正常工作。
您的 pmenu 项将附加到新菜单的末尾,而不是正常位置。
有趣的是,当我附加第二个新菜单时,pmenu 项仍然出现在第一个菜单的末尾。我不确定这是否
完全可重复,因为有一段时间它们仍然出现在主菜单上。
我修改后的 Plua 副本中有两个新菜单:tst1 包含 t1 & t2(然后附加 pmenu 项)tst2 包含 t1-1 和 t1-2。
运行 menutest.lua,我得到一个菜单 ID
1 for the (resource-added) tst1 item t1 3 for the first item added below by pmenu 7 for the (resource-added) test2 item t1-1
即:从 pevent 返回的菜单 ID 只是从 1 开始的顺序,从 pmenu 项附加的菜单开始,忽略 MBAR 资源中设置的任何菜单 ID。
-- menutest.lua -- contact dent@o... -- reports menu ID's and demonstrates tables for event handling pdestroy() pclear() ptitle("Title") mnu01t = {"Quit","-","mnu01:1","mnu01:2","mnu01'3","mnu01:4"} mnu01=pmenu(mnu01t) local eh = {} eh[menuSelect] = function(mID) palert("menu id "..mID) end eh[penDown] = function(x,y) pset(x,y) end eh[penMove] = function(x,y) plineto(x,y) end -- handle events using table repeat e, e1,e2,e3,e4=pevent() local f=eh[e] if f then f(e1,e2,e3,e4) end until e==keyDown
-- AndyDent 2004-04-23