- }\r
-\r
- return TinyMCE_ContextMenuPlugin._showContextMenu(tinyMCE.isMSIE ? targetInst.contentWindow.event : e, targetInst);\r
- }\r
- },\r
-\r
- _showContextMenu : function(e, inst) {\r
- if (e.ctrlKey)\r
- return true;\r
-\r
- function getAttrib(elm, name) {\r
- return elm.getAttribute(name) ? elm.getAttribute(name) : "";\r
- }\r
-\r
- var x, y, elm, contextMenu;\r
- var pos = tinyMCE.getAbsPosition(inst.iframeElement);\r
-\r
- x = tinyMCE.isMSIE ? e.screenX : pos.absLeft + (e.pageX - inst.getBody().scrollLeft);\r
- y = tinyMCE.isMSIE ? e.screenY : pos.absTop + (e.pageY - inst.getBody().scrollTop);\r
- elm = tinyMCE.isMSIE ? e.srcElement : e.target;\r
-\r
- contextMenu = this._contextMenu;\r
- contextMenu.inst = inst;\r
-\r
- // Mozilla needs some time\r
- window.setTimeout(function () {\r
- var theme = tinyMCE.getParam("theme");\r
-\r
- contextMenu.clearAll();\r
- var sel = inst.selection.getSelectedText().length != 0 || elm.nodeName == "IMG";\r
-\r
- // Default items\r
- contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/cut.gif", "$lang_cut_desc", "Cut", "", !sel);\r
- contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/copy.gif", "$lang_copy_desc", "Copy", "", !sel);\r
- contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/paste.gif", "$lang_paste_desc", "Paste", "", false);\r
-\r
- if (sel || (elm ? (elm.nodeName == 'A' && tinyMCE.getAttrib(elm, 'name') == '') || (elm.nodeName == 'IMG') : false)) {\r
- contextMenu.addSeparator();\r
- contextMenu.addItem(tinyMCE.baseURL + "/themes/advanced/images/link.gif", "$lang_link_desc", inst.hasPlugin("advlink") ? "mceAdvLink" : "mceLink");\r
- contextMenu.addItem(tinyMCE.baseURL + "/themes/advanced/images/unlink.gif", "$lang_unlink_desc", "unlink", "", (elm ? (elm.nodeName != 'A') && (elm.nodeName != 'IMG') : true));\r
- }\r
-\r
- // Get element\r
- elm = tinyMCE.getParentElement(elm, "img,table,td" + (inst.hasPlugin("advhr") ? ',hr' : ''));\r
- if (elm) {\r
- switch (elm.nodeName) {\r
- case "IMG":\r
- contextMenu.addSeparator();\r
-\r
- // If flash\r
- if (tinyMCE.hasPlugin('flash') && tinyMCE.getAttrib(elm, 'class').indexOf('mceItemFlash') != -1)\r
- contextMenu.addItem(tinyMCE.baseURL + "/plugins/flash/images/flash.gif", "$lang_flash_props", "mceFlash");\r
- else if (tinyMCE.hasPlugin('media') && /mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(tinyMCE.getAttrib(elm, 'class')))\r
- contextMenu.addItem(tinyMCE.baseURL + "/plugins/flash/images/flash.gif", "$lang_media_title", "mceMedia");\r
- else\r
- contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/image.gif", "$lang_image_props_desc", inst.hasPlugin("advimage") ? "mceAdvImage" : "mceImage");\r
- break;\r
-\r
- case "HR":\r
- contextMenu.addSeparator();\r
- contextMenu.addItem(tinyMCE.baseURL + "/plugins/advhr/images/advhr.gif", "$lang_insert_advhr_desc", "mceAdvancedHr");\r
- break;\r
-\r
- case "TABLE":\r
- case "TD":\r
- // Is table plugin loaded\r
- if (inst.hasPlugin("table")) {\r
- var colspan = (elm.nodeName == "TABLE") ? "" : getAttrib(elm, "colspan");\r
- var rowspan = (elm.nodeName == "TABLE") ? "" : getAttrib(elm, "rowspan");\r
-\r
- colspan = colspan == "" ? "1" : colspan;\r
- rowspan = rowspan == "" ? "1" : rowspan;\r
-\r
- contextMenu.addSeparator();\r
- contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/cut.gif", "$lang_table_cut_row_desc", "mceTableCutRow");\r
- contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/copy.gif", "$lang_table_copy_row_desc", "mceTableCopyRow");\r
- contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/paste.gif", "$lang_table_paste_row_before_desc", "mceTablePasteRowBefore", "", inst.tableRowClipboard == null);\r
- contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/paste.gif", "$lang_table_paste_row_after_desc", "mceTablePasteRowAfter", "", inst.tableRowClipboard == null);\r