Plua Menus |
|
-- SD 2006-10-20
Plua allows you to specify menu items which it attaches to a single dynamic menu.
You can't create a number of menus across the top - this is supposedly a limit of the Palm OS which allows only one dynamic menu.
The following was my exploration of using a resource editor to hack the PluaRuntime
It is functional but of arguable use, given that you'd have to hack the Plua runtime (unless some bundling trick was used or a change in signature).
Provided you give the menu items numbers above the Plua range (eg: 1021) then they work.
Your pmenu items are appended to the end of the new menu, NOT normal location.
Interestingly, when I appended a SECOND new menu, the pmenu items still appeared at the end of the first one. I'm not sure this is
wholly repeatable as for a while they were still appearing on the main Menu.
My hacked copy of Plua has two new menus in it: tst1 contains t1 & t2 (and then gets pmenu items appended) tst2 contains t1-1 and t1-2.
Running menutest.lua, I get a menu id of:
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
ie: the menu ID's returned from pevent are just sequential from 1, starting from the menu at which the pmenu items appended, ignoring any menu ID's set in the MBAR resource.
-- 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