Monday, November 08, 2010 at 12:00 AM.
scripting2Suite.editor.opRightClickCallback
on opRightClickCallback (adradrmenu) { <<Changes <<11/10/09; 8:07:36 AM by DW <<Created. Look at Frontier.tools.nodeTypes.callbacks.opRightClick for prior art. <<speaker.beep () if scripting2Suite.editor.isEditingWindow (address (window.frontmost ())) { local (menuname = "Right-Click Menu", atts, dir = right); op.attributes.getall (@atts); bundle { //don't include commands if cursor isn't on the summit of a blog post if not defined (atts.type) { return (false)}; if atts.type != "scripting2Post" { return (false)}}; Frontier.tools.nodeTypes.callbacks.opRightClick (adradrmenu); bundle { //add our commands to the menu local (oldtarget = target.set (adradrmenu^)); op.insert ("-", down); on booleanCommand (attname, string1, string2) { local (fl = false, scriptstring); if defined (atts.[attname]) { fl = boolean (atts.[attname])}; scriptstring = "scripting2Suite.editor.menuCommands.setPostAttribute (\"" + attname + "\", " + string (not fl) + ")"; if fl { menu.addMenuCommand (adrmenu, menuname, string1, scriptstring)} else { menu.addMenuCommand (adrmenu, menuname, string2, scriptstring)}}; booleanCommand ("flNotInChronology", "Make blog post", "Make standalone"); booleanCommand ("flLiveBlog", "Not live-blog", "Make live-blog"); booleanCommand ("flVisibleSubtext", "Hidden sub-text", "Visible sub-text"); op.insert ("-", down); bundle { //map domain command local (s); s = "scripting2Suite.editor.menuCommands.mapDomain ()"; <<s = "scripting2Suite.editor.menuCommands.setStringAttribute (\"domainToMap\", \"Domain to map?\")" menu.addMenuCommand (adrmenu, menuname, "Map domain...", s)}; target.set (oldtarget)}; adradrmenu^ = adrmenu; return (false)}; return (false)}; bundle { //test code local (adrmenu); opRightClickCallback (@adrmenu); dialog.alert (adrmenu)}
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.