jetpack.future.import("menu");
function init(){
jetpack.menu.context.page.remove("User Script Commands...");
var win = Components.classes["@mozilla.org/appshell/window-mediator;1"]
.getService(Components.interfaces.nsIWindowMediator)
.getMostRecentWindow("navigator:browser");
var commands = [],
suggestions = [],
menuitems = jQuery(win.document).find('#userscript-commands-sb > menupopup > menuitem').get();
for (var i = 0; i < menuitems.length; i++) {
var cmd = menuitems[i];
commands[cmd.getAttribute('label')] = cmd;
}
for (var cmd in commands) suggestions.push(cmd);
jetpack.menu.context.page.add(function(target)({
label: "User Script Commands...",
mnemonic: "C",
icon: "chrome://greasemonkey/content/icon_small.png",
menu: new jetpack.Menu( suggestions ),
command: function(menuitem){
var doc = target.document;
var win = target.window;
var inputString=win.getSelection().toString();
var script = doc.createElement("script");
script.innerHTML = "ubiquityGMInput=(<><![CDATA["+inputString+"]]></>).toString()";
doc.body.appendChild( script );
if ( commands[menuitem.label]._commandFuncWithString ) commands[menuitem.label]._commandFuncWithString( inputString );
else commands[menuitem.label]._commandFunc( inputString );
}
}));
}
jetpack.tabs.onFocus(init);
jetpack.tabs.onReady(init);