//>>built
define("dojox/drawing/manager/keys",["dojo","../util/common"],function(_1,_2){
var _3=false;
var _4=true;
var _5="abcdefghijklmnopqrstuvwxyz";
var _6={arrowIncrement:1,arrowShiftIncrement:10,shift:false,ctrl:false,alt:false,cmmd:false,meta:false,onDelete:function(_7){
},onEsc:function(_8){
},onEnter:function(_9){
},onArrow:function(_a){
},onKeyDown:function(_b){
},onKeyUp:function(_c){
},listeners:[],register:function(_d){
var _e=_2.uid("listener");
this.listeners.push({handle:_e,scope:_d.scope||window,callback:_d.callback,keyCode:_d.keyCode});
},_getLetter:function(_f){
if(!_f.meta&&_f.keyCode>=65&&_f.keyCode<=90){
return _5.charAt(_f.keyCode-65);
}
return null;
},_mixin:function(evt){
evt.meta=this.meta;
evt.shift=this.shift;
evt.alt=this.alt;
evt.cmmd=this.cmmd;
evt.ctrl=this.ctrl;
evt.letter=this._getLetter(evt);
return evt;
},editMode:function(_10){
_3=_10;
},enable:function(_11){
_4=_11;
},scanForFields:function(){
if(this._fieldCons){
_1.forEach(this._fieldCons,_1.disconnect,_1);
}
this._fieldCons=[];
_1.query("input").forEach(function(n){
var a=_1.connect(n,"focus",this,function(evt){
this.enable(false);
});
var b=_1.connect(n,"blur",this,function(evt){
this.enable(true);
});
this._fieldCons.push(a);
this._fieldCons.push(b);
},this);
},init:function(){
setTimeout(_1.hitch(this,"scanForFields"),500);
_1.connect(document,"blur",this,function(evt){
this.meta=this.shift=this.ctrl=this.cmmd=this.alt=false;
});
_1.connect(document,"keydown",this,function(evt){
if(!_4){
return;
}
if(evt.keyCode==16){
this.shift=true;
}
if(evt.keyCode==17){
this.ctrl=true;
}
if(evt.keyCode==18){
this.alt=true;
}
if(evt.keyCode==224){
this.cmmd=true;
}
this.meta=this.shift||this.ctrl||this.cmmd||this.alt;
if(!_3){
this.onKeyDown(this._mixin(evt));
if(evt.keyCode==8||evt.keyCode==46){
_1.stopEvent(evt);
}
}
});
_1.connect(document,"keyup",this,function(evt){
if(!_4){
return;
}
var _12=false;
if(evt.keyCode==16){
this.shift=false;
}
if(evt.keyCode==17){
this.ctrl=false;
}
if(evt.keyCode==18){
this.alt=false;
}
if(evt.keyCode==224){
this.cmmd=false;
}
this.meta=this.shift||this.ctrl||this.cmmd||this.alt;
!_3&&this.onKeyUp(this._mixin(evt));
if(evt.keyCode==13){
console.warn("KEY ENTER");
this.onEnter(evt);
_12=true;
}
if(evt.keyCode==27){
this.onEsc(evt);
_12=true;
}
if(evt.keyCode==8||evt.keyCode==46){
this.onDelete(evt);
_12=true;
}
if(_12&&!_3){
_1.stopEvent(evt);
}
});
_1.connect(document,"keypress",this,function(evt){
if(!_4){
return;
}
var inc=this.shift?this.arrowIncrement*this.arrowShiftIncrement:this.arrowIncrement;
var x=0,y=0;
if(evt.keyCode==32&&!_3){
_1.stopEvent(evt);
}
if(evt.keyCode==37){
x=-inc;
}
if(evt.keyCode==38){
y=-inc;
}
if(evt.keyCode==39){
x=inc;
}
if(evt.keyCode==40){
y=inc;
}
if(x||y){
evt.x=x;
evt.y=y;
evt.shift=this.shift;
if(!_3){
this.onArrow(evt);
_1.stopEvent(evt);
}
}
});
}};
_1.addOnLoad(_6,"init");
return _6;
});
