summaryrefslogtreecommitdiff
path: root/lib/dojo/robot.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/dojo/robot.js')
-rw-r--r--lib/dojo/robot.js89
1 files changed, 89 insertions, 0 deletions
diff --git a/lib/dojo/robot.js b/lib/dojo/robot.js
new file mode 100644
index 000000000..88af37cef
--- /dev/null
+++ b/lib/dojo/robot.js
@@ -0,0 +1,89 @@
+/*
+ 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.robot"]){
+dojo._hasResource["dojo.robot"]=true;
+dojo.provide("dojo.robot");
+dojo.experimental("dojo.robot");
+dojo.require("doh.robot");
+dojo.require("dojo.window");
+(function(){
+dojo.mixin(doh.robot,{_resolveNode:function(n){
+if(typeof n=="function"){
+n=n();
+}
+return n?dojo.byId(n):null;
+},_scrollIntoView:function(n){
+var d=dojo,dr=doh.robot,p=null;
+d.forEach(dr._getWindowChain(n),function(w){
+d.withGlobal(w,function(){
+var p2=d.position(n,false),b=d._getPadBorderExtents(n),_1=null;
+if(!p){
+p=p2;
+}else{
+_1=p;
+p={x:p.x+p2.x+b.l,y:p.y+p2.y+b.t,w:p.w,h:p.h};
+}
+dojo.window.scrollIntoView(n,p);
+p2=d.position(n,false);
+if(!_1){
+p=p2;
+}else{
+p={x:_1.x+p2.x+b.l,y:_1.y+p2.y+b.t,w:p.w,h:p.h};
+}
+n=w.frameElement;
+});
+});
+},_position:function(n){
+var d=dojo,p=null,M=Math.max,m=Math.min;
+d.forEach(doh.robot._getWindowChain(n),function(w){
+d.withGlobal(w,function(){
+var p2=d.position(n,false),b=d._getPadBorderExtents(n);
+if(!p){
+p=p2;
+}else{
+var _2;
+d.withGlobal(n.contentWindow,function(){
+_2=dojo.window.getBox();
+});
+p2.r=p2.x+_2.w;
+p2.b=p2.y+_2.h;
+p={x:M(p.x+p2.x,p2.x)+b.l,y:M(p.y+p2.y,p2.y)+b.t,r:m(p.x+p2.x+p.w,p2.r)+b.l,b:m(p.y+p2.y+p.h,p2.b)+b.t};
+p.w=p.r-p.x;
+p.h=p.b-p.y;
+}
+n=w.frameElement;
+});
+});
+return p;
+},_getWindowChain:function(n){
+var cW=dojo.window.get(n.ownerDocument);
+var _3=[cW];
+var f=cW.frameElement;
+return (cW==dojo.global||f==null)?_3:_3.concat(doh.robot._getWindowChain(f));
+},scrollIntoView:function(_4,_5){
+doh.robot.sequence(function(){
+doh.robot._scrollIntoView(doh.robot._resolveNode(_4));
+},_5);
+},mouseMoveAt:function(_6,_7,_8,_9,_a){
+doh.robot._assertRobot();
+_8=_8||100;
+this.sequence(function(){
+_6=doh.robot._resolveNode(_6);
+doh.robot._scrollIntoView(_6);
+var _b=doh.robot._position(_6);
+if(_a===undefined){
+_9=_b.w/2;
+_a=_b.h/2;
+}
+var x=_b.x+_9;
+var y=_b.y+_a;
+doh.robot._mouseMove(x,y,false,_8);
+},_7,_8);
+}});
+})();
+}