Files
FreeJ/scripts/mouse_layerctl.js
mrgoil 77d796ea48 great controller rework
* fixing -  *rval = INT_TO_JSVAL(intval) to JS_NewNumberValue(cx, intval, rval)
* fining -  requeue SDL_Events poll() -> [ poll_sdlevents() ] -> dispatch()

part1
part2 midi
part3 joy - TODO: Event walk, check if JS exists first
part4 new: poll_sdl_events for all SDL controller!
part5 removed env pointer from controller
part6 all the rest. puh!

git-svn-id: svn://dyne.org/rastasoft/freej/branches/Goil/freej_91@1084 383723c8-4afa-0310-b8a8-b1afb83214fc
2008-04-24 22:26:47 +02:00

42 lines
808 B
JavaScript

m = new MouseController();
register_controller(m);
m.zoomx = 1; m.zoomy = 1; m.maxzoom=4;
// MouseController.button(button, state, x, y)
m.button = function(b, s, x, y) {
echo("b"+b+" s"+s+" x"+x+" y"+y);
this.grab(s);
if (s == 1)
this.l=selected_layer();
else
delete this.l;
return true;
}
// MouseController.motion(buttonmask, x, y, xrel, yrel)
m.motion = function(b, x, y, dx, dy) {
echo("b"+b+" x"+x+" y"+y+" dx"+dx+" dy"+dy);
var l = this.l
if (!l)
return false;
if (b & 1) {
l.set_position(l.x() + dx, l.y() + dy);
}
if (b & 2) {
}
if (b & 4) {
this.zoomx += dx/100;
this.zoomy += dy/100;
if (Math.abs(this.zoomx)>this.maxzoom)
this.zoomx=this.maxzoom;
if (Math.abs(this.zoomy)>this.maxzoom)
this.zoomy=this.maxzoom;
l.zoom(this.zoomx, this.zoomy);
}
}