]> CRI, Mines Paris - PSL - PlinnDocument.git/blobdiff - Products/PlinnDocument/skins/dd_trigger.js
eggification
[PlinnDocument.git] / 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 (file)
index 0000000..b79f37e
--- /dev/null
@@ -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);
+       };
+}