X-Git-Url: https://scm.cri.minesparis.psl.eu/git/PlinnDocument.git/blobdiff_plain/57a4d385a1d2806d5877f53b1fdb0bd94efa2dbb..3b91dbcbb0b99d3d796a01813018db0e540bd0ec:/Products/PlinnDocument/skins/dd_trigger.js diff --git a/Products/PlinnDocument/skins/dd_trigger.js b/Products/PlinnDocument/skins/dd_trigger.js new file mode 100644 index 0000000..b79f37e --- /dev/null +++ b/Products/PlinnDocument/skins/dd_trigger.js @@ -0,0 +1,69 @@ +// (c) Benoît PIN 2006-2007 +// http://plinn.org +// Licence GPL + +function ddEventDispatch() { + addListener(document, 'mousedown', raisemousedown); + addListener(document, 'mousemove', raisemousemove); + addListener(document, 'mouseup', raisemouseup); +} + + +function getRectangleNode() { + var docid = document.id; + docid = document.id.slice(DocPrefixLength); + var frameId = IFramePrefix + docid; + iframe = window.parent.document.getElementById(frameId); + if (!iframe) + iframe = window.parent.document.getElementById("EpozEditor"); + return iframe.parentNode; +} + +var raisemousedown, raisemousemove, raisemouseup; + +if (browser.isIE55 || browser.isIE6up) { + raisemousedown = function() { + var rect = getRectangleNode(); + rect.fireEvent('onmousedown', window.event); + }; + + raisemousemove = function() { + var rect = getRectangleNode(); + rect.fireEvent('onmousemove', window.event); + rect.fireEvent('onmouseover', window.event); + }; + + raisemouseup = function() { + var rect = getRectangleNode(); + rect.fireEvent('onmouseup', window.event); + }; +} +else if (browser.isDOM2Event) { + // initMouseEvent("eventType", bubblesFlas, cancelableFlag, view, detailVal, screenX, screenY, clientX, clientY, ctrlKeyFlag, altKeyFlag, shiftKeyFlag, metaKeyFlag, buttonCode, relatedTargetNodeRef) + + raisemousedown = function(e) { + var event = document.createEvent("MouseEvents"); + var rect = getRectangleNode() + event.initMouseEvent("mousedown", true, true, window.parent, e.detail, e.screenX, e.screenY, e.clientX, e.clientY, e.ctrlKey, e.altKey, e.shiftKey, e.metaKey, e.button, rect); + rect.dispatchEvent(event); + }; + + + raisemousemove = function(e) { + var overEvent = document.createEvent("MouseEvents"); + overEvent.initMouseEvent("mouseover", true, true, window.parent, e.detail, e.screenX, e.screenY, e.clientX, e.clientY, e.ctrlKey, e.altKey, e.shiftKey, e.metaKey, e.button, rect); + var event = document.createEvent("MouseEvents"); + var rect = getRectangleNode() + event.initMouseEvent("mousemove", true, true, window.parent, e.detail, e.screenX, e.screenY, e.clientX, e.clientY, e.ctrlKey, e.altKey, e.shiftKey, e.metaKey, e.button, rect); + rect.dispatchEvent(event); + rect.dispatchEvent(overEvent); + }; + + + raisemouseup = function(e) { + var event = document.createEvent("MouseEvents"); + var rect = getRectangleNode() + event.initMouseEvent("mouseup", true, true, window.parent, e.detail, e.screenX, e.screenY, e.clientX, e.clientY, e.ctrlKey, e.altKey, e.shiftKey, e.metaKey, e.button, rect); + rect.dispatchEvent(event); + }; +}