UNPKG

@qooxdoo/framework

Version:

The JS Framework for Coders

132 lines (106 loc) 3.27 kB
/* ************************************************************************ qooxdoo - the new era of web development http://qooxdoo.org Copyright: 2004-2008 1&1 Internet AG, Germany, http://www.1und1.de License: MIT: https://opensource.org/licenses/MIT See the LICENSE file in the project's top-level directory for details. Authors: * Sebastian Werner (wpbasti) * Fabian Jakobs (fjakobs) ************************************************************************ */ /* ************************************************************************ ************************************************************************ */ /** * Native mouse events * @tag noPlayground * * @use(qx.event.handler.Input) */ qx.Class.define("qxl.demobrowser.demo.event.MouseEvent", { extend : qxl.demobrowser.demo.event.EventDemo, members : { main : function() { this.base(arguments); this._initLogger( ["Target", "Event", "button", "pageX", "pageY", "clientX", "clientY", "screenX", "screenY", "relatedTarget"], document.getElementById("logger"), 50 ); var mouseDiv = document.getElementById("mouse"); var events = ["mousedown", "mouseup", "click", "dblclick", "contextmenu", "mousemove", "mouseover", "mouseout"]; for (var i=0; i<events.length; i++) { var elem = document.getElementById("check_" + events[i]) if (elem.checked) { qx.bom.Element.addListener( mouseDiv, events[i], this.logMouseEvent, this ) } qx.bom.Element.addListener(elem, "change", this.__changeCheckbox, this); } var captureDiv = document.getElementById("capture"); captureDiv.checked = false; qx.bom.Element.addListener(captureDiv, "change", function(e) { var checked = e.getTarget().checked; if (checked) { qx.bom.Element.capture(mouseDiv); } else { qx.bom.Element.releaseCapture(mouseDiv); } }, this); qx.bom.Element.addListener( mouseDiv, "losecapture", function(e) { captureDiv.checked = false; }, this ); }, __changeCheckbox : function(e) { var type = e.getTarget().id.split("_")[1]; var checked = e.getTarget().checked; var mouseDiv = document.getElementById("mouse"); if (checked) { qx.bom.Element.addListener( mouseDiv, type, this.logMouseEvent, this ) } else { qx.bom.Element.removeListener( mouseDiv, type, this.logMouseEvent, this ) } }, logMouseEvent: function(mouseEvent) { mouseEvent.preventDefault(); this._log([ mouseEvent.getTarget().id, mouseEvent.getType(), mouseEvent.getButton(), mouseEvent.getDocumentLeft(), mouseEvent.getDocumentTop(), mouseEvent.getScreenLeft(), mouseEvent.getScreenTop(), mouseEvent.getViewportLeft(), mouseEvent.getViewportTop(), mouseEvent.getRelatedTarget() ? mouseEvent.getRelatedTarget().id : "" ]); } } });