messengercompose.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // Import any needed modules.
  2. var { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
  3. function onLoad(activatedWhileWindowOpen) {
  4. let xul = `<commandset id="composeCommands">
  5. <commandset id="attachFromClipboardCmds" commandupdater="true" events="clipboard" oncommandupdate="clipboardAttachment.updateCommand()">
  6. <command id="attachFromClipboardCmd" oncommand="clipboardAttachment.attachFromClipboard()" />
  7. </commandset>
  8. </commandset>
  9. <keyset id="tasksKeys">
  10. <keyset id="attachFromClipboardKeys">
  11. <key id="attachFromClipboardKey" modifiers="shift alt" key="v" command="attachFromClipboardCmd" />
  12. </keyset>
  13. </keyset>
  14. <menupopup id="button-attachPopup">
  15. <menuitem id="button-attachPopup_attachClipboard" insertafter="button-attachPopup_attachPageItem"
  16. label="&attachFromClipboard.label;" accesskey="&attachFromClipboard.accesskey;"
  17. command="attachFromClipboardCmd" />
  18. </menupopup>
  19. <menupopup id="menu_EditPopup">
  20. <menuitem id="menu_Attach_Clipboard" insertafter="menu_pasteNoFormatting" label="&attachFromClipboard.label;" accesskey="&attachFromClipboard.accesskey;"
  21. command="attachFromClipboardCmd" key="attachFromClipboardKey" position="4" />
  22. </menupopup>
  23. <menupopup id="msgComposeAttachmentListContext">
  24. <menuitem id="msgComposeAttachmentListContext_attachClipboard" insertafter="attachmentListContext_attachPageItem"
  25. label="&attachFromClipboardContextMenu.label;" accesskey="&attachFromClipboard.accesskey;"
  26. command="attachFromClipboardCmd" />
  27. </menupopup>`;
  28. WL.injectElements(xul, ["chrome://clipboard/locale/clipboard.dtd"]);
  29. Services.scriptloader.loadSubScript("chrome://clipboard/content/overlay.js", this, "UTF-8");
  30. }
  31. function onUnload(deactivatedWhileWindowOpen) {
  32. // Cleaning up the window UI is only needed when the
  33. // add-on is being deactivated/removed while the window
  34. // is still open. It can be skipped otherwise.
  35. if (!deactivatedWhileWindowOpen) {
  36. return
  37. }
  38. window.clipboardAttachment.unload();
  39. }