function elem(name){ return document.getElementById(name);} function addevent(elem, evt, handler){ elem.addEventListener(evt, handler, false);} /* this should not be necessary, but *//* addevent does not seem to let me *//* keep the F3 key event from propagating *//* on Firefox 20. */function setevent(elem, evt, handler){ elem["on" + evt] = handler;} var basetime;var cons;var mouse;var settings;var ninep; window.onload = function(){ var wsurl = Socket.wsurl(window.location.toString()); //var wsurl = Socket.wsurl("http://wd.9atom.org/9wd.html"); var webdraw = elem("webdraw"); var cover = elem("cover"); basetime = Date.now(); cons = new Cons(); mouse = new Mouse(elem("cursor")); settings = new Settings(); ninep = new NineP(wsurl, Draw9p, cons); /* XXX Draw9p should be instantiated and have a constructor. */ Draw9p.rootcanvas = webdraw; Draw9p.rootsz = { w: webdraw.width, h: webdraw.height }; Draw9p.imgnames["webdraw"] = Draw9p.RootImage(); Draw9p.label = "webdraw".toUTF8Array(); setevent(cover, "mousedown", function(e){ return mouse.handlebutton(e, 1); }); setevent(cover, "mouseup", function(e){ return mouse.handlebutton(e, 0); }); setevent(cover, "mousemove", function(e){ return mouse.handlemove(e); }); setevent(window, "keydown", function(e){ return cons.handlekeys(e, cons.kbd.down); }); setevent(window, "keypress", function(e){ return cons.handlekeys(e, cons.kbd.press); }); setevent(window, "keyup", function(e){ return cons.handlekeys(e, cons.kbd.up); }); setevent(cover, "contextmenu", function(e){ e.preventDefault(); e.stopPropagation(); return false; }); setevent(cover, "click", function(e){ e.preventDefault(); e.stopPropagation(); if( document.pointerLockElement !== cover && document.mozPointerLockElement !== cover && document.webkitPointerLockElement !== cover ){ cover.requestPointerLock = cover.requestPointerLock || cover.mozRequestPointerLock || cover.webkitRequestPointerLock; cover.requestPointerLock(); return false; }else{ return false; } });}
function elem(name){
return document.getElementById(name);
}
function addevent(elem, evt, handler){
elem.addEventListener(evt, handler, false);
}
/* this should not be necessary, but */
/* addevent does not seem to let me */
/* keep the F3 key event from propagating */
/* on Firefox 20. */
function setevent(elem, evt, handler){
elem["on" + evt] = handler;
}
var basetime;
var cons;
var mouse;
var settings;
var ninep;
window.onload = function(){
var wsurl = Socket.wsurl(window.location.toString());
//var wsurl = Socket.wsurl("http://wd.9atom.org/9wd.html");
var webdraw = elem("webdraw");
var cover = elem("cover");
basetime = Date.now();
cons = new Cons();
mouse = new Mouse(elem("cursor"));
settings = new Settings();
ninep = new NineP(wsurl, Draw9p, cons);
/* XXX Draw9p should be instantiated and have a constructor. */
Draw9p.rootcanvas = webdraw;
Draw9p.rootsz = {
w: webdraw.width,
h: webdraw.height
};
Draw9p.imgnames["webdraw"] = Draw9p.RootImage();
Draw9p.label = "webdraw".toUTF8Array();
setevent(cover, "mousedown", function(e){
return mouse.handlebutton(e, 1);
});
setevent(cover, "mouseup", function(e){
return mouse.handlebutton(e, 0);
});
setevent(cover, "mousemove", function(e){
return mouse.handlemove(e);
});
setevent(window, "keydown", function(e){
return cons.handlekeys(e, cons.kbd.down);
});
setevent(window, "keypress", function(e){
return cons.handlekeys(e, cons.kbd.press);
});
setevent(window, "keyup", function(e){
return cons.handlekeys(e, cons.kbd.up);
});
setevent(cover, "contextmenu", function(e){
e.preventDefault();
e.stopPropagation();
return false;
});
setevent(cover, "click", function(e){
e.preventDefault();
e.stopPropagation();
if(
document.pointerLockElement !== cover &&
document.mozPointerLockElement !== cover &&
document.webkitPointerLockElement !== cover
){
cover.requestPointerLock =
cover.requestPointerLock ||
cover.mozRequestPointerLock ||
cover.webkitRequestPointerLock;
cover.requestPointerLock();
return false;
}else{
return false;
}
});
}