Plua 菜单

lua-users home
wiki

注意,此页面仅与 Plua 1.1 相关 (PluaPalmVersion)。Plua 2.0 中的语法已更改。

-- 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


最近更改 · 偏好设置
编辑 · 历史记录
最后编辑于 2006 年 10 月 21 日凌晨 3:00 GMT (差异)