Another Gotcha
Bob Sneidar
bobs at twft.com
Thu Dec 29 20:18:33 EST 2011
S'not. ;-) It's the handler that builds contextual menus. By trapping it and doing your own thing you can make your own contextual menus, or add to existing ones. I have this in a frontScript which puts a few extra things at the top of the contextual menu if a field is the target:
on revHookBuildObjectEditorContextMenu pMenuTarget, pMenuName, @pMenu, tModifiedMenu
put the topstack into theCurrentStack
put the long name of this card of theCurrentStack into theCurrentCard
put the customproperties of theCurrentStack into theCustomProps
switch
case word 1 of pMenuTarget is not "field"
put "false" into valOn
break
case not theCustomProps is an array
put "false" into valOn
break
case "PreValidations" is among the keys of theCustomProps
put "true" into valOn
break
case "MidValidations" is among the keys of theCustomProps
put "true" into valOn
break
case "PostValidations" is among the keys of theCustomProps
put "true" into valOn
break
end switch
if valOn then
put "Data Type" into line 1 of theValMenu
put tab & "Text" into line 2 of theValMenu
put tab & "Number" into line 3 of theValMenu
put tab & "Date" into line 4 of theValMenu
put "-" into line 5 of theValMenu
put "Pre-Validations" into line 6 of theValMenu
put "Mid-Validations" into line 7 of theValMenu
put "Post-Validations" & lf & "-" & lf into line 8 of theValMenu
-- put the valMenu of me into theValMenu
put theValMenu before pMenu
put pMenu
end if
pass revHookBuildObjectEditorContextMenu
end revHookBuildObjectEditorContextMenu
function dispatchContextMenuPick pMenuName, pWhich
if "Data Type" is in pWhich or "Validations" is in pWhich then
send "initVal" && pWhich to the topstack in 0 seconds
exit to top
end if
pass dispatchContextMenuPick
end dispatchContextMenuPick
On Dec 29, 2011, at 4:04 PM, Richard Gaskin wrote:
> Bob Sneidar wrote:
>
>> I have been using a trick John Craig showed me for appending to a contextual menu which has been very handy for me. The gotcha is that instead of building the menu on the fly using "put theMenuItem into line 1 of theMenu" (or something like that) I decided to simply create a custom property with the additional menu items I wanted, and then put that property before pMenu in the revHookBuildObjectEditorContextMenu handler in my front script.
>
> "revHookBuildObjectEditorContextMenu"?
>
> Where is that documented?
>
> --
> Richard Gaskin
> Fourth World
> LiveCode training and consulting: http://www.fourthworld.com
> Webzine for LiveCode developers: http://www.LiveCodeJournal.com
> LiveCode Journal blog: http://LiveCodejournal.com/blog.irv
>
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
More information about the use-livecode
mailing list