From 2f01fe57a8d37767827d6db42850aef86a767c53 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Mon, 15 Nov 2010 10:39:52 +0300 Subject: add dijit/dojo stuff; initial ui mockup --- lib/dojo/_base/event.js | 359 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 359 insertions(+) create mode 100644 lib/dojo/_base/event.js (limited to 'lib/dojo/_base/event.js') diff --git a/lib/dojo/_base/event.js b/lib/dojo/_base/event.js new file mode 100644 index 000000000..1e6ef788a --- /dev/null +++ b/lib/dojo/_base/event.js @@ -0,0 +1,359 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dojo._base.event"]){ +dojo._hasResource["dojo._base.event"]=true; +dojo.provide("dojo._base.event"); +dojo.require("dojo._base.connect"); +(function(){ +var _1=(dojo._event_listener={add:function(_2,_3,fp){ +if(!_2){ +return; +} +_3=_1._normalizeEventName(_3); +fp=_1._fixCallback(_3,fp); +var _4=_3; +if(!dojo.isIE&&(_3=="mouseenter"||_3=="mouseleave")){ +var _5=fp; +_3=(_3=="mouseenter")?"mouseover":"mouseout"; +fp=function(e){ +if(!dojo.isDescendant(e.relatedTarget,_2)){ +return _5.call(this,e); +} +}; +} +_2.addEventListener(_3,fp,false); +return fp; +},remove:function(_6,_7,_8){ +if(_6){ +_7=_1._normalizeEventName(_7); +if(!dojo.isIE&&(_7=="mouseenter"||_7=="mouseleave")){ +_7=(_7=="mouseenter")?"mouseover":"mouseout"; +} +_6.removeEventListener(_7,_8,false); +} +},_normalizeEventName:function(_9){ +return _9.slice(0,2)=="on"?_9.slice(2):_9; +},_fixCallback:function(_a,fp){ +return _a!="keypress"?fp:function(e){ +return fp.call(this,_1._fixEvent(e,this)); +}; +},_fixEvent:function(_b,_c){ +switch(_b.type){ +case "keypress": +_1._setKeyChar(_b); +break; +} +return _b; +},_setKeyChar:function(_d){ +_d.keyChar=_d.charCode?String.fromCharCode(_d.charCode):""; +_d.charOrCode=_d.keyChar||_d.keyCode; +},_punctMap:{106:42,111:47,186:59,187:43,188:44,189:45,190:46,191:47,192:96,219:91,220:92,221:93,222:39}}); +dojo.fixEvent=function(_e,_f){ +return _1._fixEvent(_e,_f); +}; +dojo.stopEvent=function(evt){ +evt.preventDefault(); +evt.stopPropagation(); +}; +var _10=dojo._listener; +dojo._connect=function(obj,_11,_12,_13,_14){ +var _15=obj&&(obj.nodeType||obj.attachEvent||obj.addEventListener); +var lid=_15?(_14?2:1):0,l=[dojo._listener,_1,_10][lid]; +var h=l.add(obj,_11,dojo.hitch(_12,_13)); +return [obj,_11,h,lid]; +}; +dojo._disconnect=function(obj,_16,_17,_18){ +([dojo._listener,_1,_10][_18]).remove(obj,_16,_17); +}; +dojo.keys={BACKSPACE:8,TAB:9,CLEAR:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,META:dojo.isSafari?91:224,PAUSE:19,CAPS_LOCK:20,ESCAPE:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT_ARROW:37,UP_ARROW:38,RIGHT_ARROW:39,DOWN_ARROW:40,INSERT:45,DELETE:46,HELP:47,LEFT_WINDOW:91,RIGHT_WINDOW:92,SELECT:93,NUMPAD_0:96,NUMPAD_1:97,NUMPAD_2:98,NUMPAD_3:99,NUMPAD_4:100,NUMPAD_5:101,NUMPAD_6:102,NUMPAD_7:103,NUMPAD_8:104,NUMPAD_9:105,NUMPAD_MULTIPLY:106,NUMPAD_PLUS:107,NUMPAD_ENTER:108,NUMPAD_MINUS:109,NUMPAD_PERIOD:110,NUMPAD_DIVIDE:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,F13:124,F14:125,F15:126,NUM_LOCK:144,SCROLL_LOCK:145,copyKey:dojo.isMac&&!dojo.isAIR?(dojo.isSafari?91:224):17}; +var _19=dojo.isMac?"metaKey":"ctrlKey"; +dojo.isCopyKey=function(e){ +return e[_19]; +}; +if(dojo.isIE){ +dojo.mouseButtons={LEFT:1,MIDDLE:4,RIGHT:2,isButton:function(e,_1a){ +return e.button&_1a; +},isLeft:function(e){ +return e.button&1; +},isMiddle:function(e){ +return e.button&4; +},isRight:function(e){ +return e.button&2; +}}; +}else{ +dojo.mouseButtons={LEFT:0,MIDDLE:1,RIGHT:2,isButton:function(e,_1b){ +return e.button==_1b; +},isLeft:function(e){ +return e.button==0; +},isMiddle:function(e){ +return e.button==1; +},isRight:function(e){ +return e.button==2; +}}; +} +if(dojo.isIE){ +var _1c=function(e,_1d){ +try{ +return (e.keyCode=_1d); +} +catch(e){ +return 0; +} +}; +var iel=dojo._listener; +var _1e=(dojo._ieListenersName="_"+dojo._scopeName+"_listeners"); +if(!dojo.config._allow_leaks){ +_10=iel=dojo._ie_listener={handlers:[],add:function(_1f,_20,_21){ +_1f=_1f||dojo.global; +var f=_1f[_20]; +if(!f||!f[_1e]){ +var d=dojo._getIeDispatcher(); +d.target=f&&(ieh.push(f)-1); +d[_1e]=[]; +f=_1f[_20]=d; +} +return f[_1e].push(ieh.push(_21)-1); +},remove:function(_22,_23,_24){ +var f=(_22||dojo.global)[_23],l=f&&f[_1e]; +if(f&&l&&_24--){ +delete ieh[l[_24]]; +delete l[_24]; +} +}}; +var ieh=iel.handlers; +} +dojo.mixin(_1,{add:function(_25,_26,fp){ +if(!_25){ +return; +} +_26=_1._normalizeEventName(_26); +if(_26=="onkeypress"){ +var kd=_25.onkeydown; +if(!kd||!kd[_1e]||!kd._stealthKeydownHandle){ +var h=_1.add(_25,"onkeydown",_1._stealthKeyDown); +kd=_25.onkeydown; +kd._stealthKeydownHandle=h; +kd._stealthKeydownRefs=1; +}else{ +kd._stealthKeydownRefs++; +} +} +return iel.add(_25,_26,_1._fixCallback(fp)); +},remove:function(_27,_28,_29){ +_28=_1._normalizeEventName(_28); +iel.remove(_27,_28,_29); +if(_28=="onkeypress"){ +var kd=_27.onkeydown; +if(--kd._stealthKeydownRefs<=0){ +iel.remove(_27,"onkeydown",kd._stealthKeydownHandle); +delete kd._stealthKeydownHandle; +} +} +},_normalizeEventName:function(_2a){ +return _2a.slice(0,2)!="on"?"on"+_2a:_2a; +},_nop:function(){ +},_fixEvent:function(evt,_2b){ +if(!evt){ +var w=_2b&&(_2b.ownerDocument||_2b.document||_2b).parentWindow||window; +evt=w.event; +} +if(!evt){ +return (evt); +} +evt.target=evt.srcElement; +evt.currentTarget=(_2b||evt.srcElement); +evt.layerX=evt.offsetX; +evt.layerY=evt.offsetY; +var se=evt.srcElement,doc=(se&&se.ownerDocument)||document; +var _2c=((dojo.isIE<6)||(doc["compatMode"]=="BackCompat"))?doc.body:doc.documentElement; +var _2d=dojo._getIeDocumentElementOffset(); +evt.pageX=evt.clientX+dojo._fixIeBiDiScrollLeft(_2c.scrollLeft||0)-_2d.x; +evt.pageY=evt.clientY+(_2c.scrollTop||0)-_2d.y; +if(evt.type=="mouseover"){ +evt.relatedTarget=evt.fromElement; +} +if(evt.type=="mouseout"){ +evt.relatedTarget=evt.toElement; +} +evt.stopPropagation=_1._stopPropagation; +evt.preventDefault=_1._preventDefault; +return _1._fixKeys(evt); +},_fixKeys:function(evt){ +switch(evt.type){ +case "keypress": +var c=("charCode" in evt?evt.charCode:evt.keyCode); +if(c==10){ +c=0; +evt.keyCode=13; +}else{ +if(c==13||c==27){ +c=0; +}else{ +if(c==3){ +c=99; +} +} +} +evt.charCode=c; +_1._setKeyChar(evt); +break; +} +return evt; +},_stealthKeyDown:function(evt){ +var kp=evt.currentTarget.onkeypress; +if(!kp||!kp[_1e]){ +return; +} +var k=evt.keyCode; +var _2e=k!=13&&k!=32&&k!=27&&(k<48||k>90)&&(k<96||k>111)&&(k<186||k>192)&&(k<219||k>222); +if(_2e||evt.ctrlKey){ +var c=_2e?0:k; +if(evt.ctrlKey){ +if(k==3||k==13){ +return; +}else{ +if(c>95&&c<106){ +c-=48; +}else{ +if((!evt.shiftKey)&&(c>=65&&c<=90)){ +c+=32; +}else{ +c=_1._punctMap[c]||c; +} +} +} +} +var _2f=_1._synthesizeEvent(evt,{type:"keypress",faux:true,charCode:c}); +kp.call(evt.currentTarget,_2f); +evt.cancelBubble=_2f.cancelBubble; +evt.returnValue=_2f.returnValue; +_1c(evt,_2f.keyCode); +} +},_stopPropagation:function(){ +this.cancelBubble=true; +},_preventDefault:function(){ +this.bubbledKeyCode=this.keyCode; +if(this.ctrlKey){ +_1c(this,0); +} +this.returnValue=false; +}}); +dojo.stopEvent=function(evt){ +evt=evt||window.event; +_1._stopPropagation.call(evt); +_1._preventDefault.call(evt); +}; +} +_1._synthesizeEvent=function(evt,_30){ +var _31=dojo.mixin({},evt,_30); +_1._setKeyChar(_31); +_31.preventDefault=function(){ +evt.preventDefault(); +}; +_31.stopPropagation=function(){ +evt.stopPropagation(); +}; +return _31; +}; +if(dojo.isOpera){ +dojo.mixin(_1,{_fixEvent:function(evt,_32){ +switch(evt.type){ +case "keypress": +var c=evt.which; +if(c==3){ +c=99; +} +c=c<41&&!evt.shiftKey?0:c; +if(evt.ctrlKey&&!evt.shiftKey&&c>=65&&c<=90){ +c+=32; +} +return _1._synthesizeEvent(evt,{charCode:c}); +} +return evt; +}}); +} +if(dojo.isWebKit){ +_1._add=_1.add; +_1._remove=_1.remove; +dojo.mixin(_1,{add:function(_33,_34,fp){ +if(!_33){ +return; +} +var _35=_1._add(_33,_34,fp); +if(_1._normalizeEventName(_34)=="keypress"){ +_35._stealthKeyDownHandle=_1._add(_33,"keydown",function(evt){ +var k=evt.keyCode; +var _36=k!=13&&k!=32&&(k<48||k>90)&&(k<96||k>111)&&(k<186||k>192)&&(k<219||k>222); +if(_36||evt.ctrlKey){ +var c=_36?0:k; +if(evt.ctrlKey){ +if(k==3||k==13){ +return; +}else{ +if(c>95&&c<106){ +c-=48; +}else{ +if(!evt.shiftKey&&c>=65&&c<=90){ +c+=32; +}else{ +c=_1._punctMap[c]||c; +} +} +} +} +var _37=_1._synthesizeEvent(evt,{type:"keypress",faux:true,charCode:c}); +fp.call(evt.currentTarget,_37); +} +}); +} +return _35; +},remove:function(_38,_39,_3a){ +if(_38){ +if(_3a._stealthKeyDownHandle){ +_1._remove(_38,"keydown",_3a._stealthKeyDownHandle); +} +_1._remove(_38,_39,_3a); +} +},_fixEvent:function(evt,_3b){ +switch(evt.type){ +case "keypress": +if(evt.faux){ +return evt; +} +var c=evt.charCode; +c=c>=32?c:0; +return _1._synthesizeEvent(evt,{charCode:c,faux:true}); +} +return evt; +}}); +} +})(); +if(dojo.isIE){ +dojo._ieDispatcher=function(_3c,_3d){ +var ap=Array.prototype,h=dojo._ie_listener.handlers,c=_3c.callee,ls=c[dojo._ieListenersName],t=h[c.target]; +var r=t&&t.apply(_3d,_3c); +var lls=[].concat(ls); +for(var i in lls){ +var f=h[lls[i]]; +if(!(i in ap)&&f){ +f.apply(_3d,_3c); +} +} +return r; +}; +dojo._getIeDispatcher=function(){ +return new Function(dojo._scopeName+"._ieDispatcher(arguments, this)"); +}; +dojo._event_listener._fixCallback=function(fp){ +var f=dojo._event_listener._fixEvent; +return function(e){ +return fp.call(this,f(e,this)); +}; +}; +} +} -- cgit v1.2.3