//original file is from: /var/www/html/sand/web-dev/visualiz/3d/media-menu/app/app/core/vgraph/navigation.js
( function() {
var ANAME = "m-nest";
var app = window[ ANAME ] = window[ ANAME ] || {};
function doHandle( arg, event ) {
event.preventDefault();
//this.event.cancelBubble = true; //historical? https://developer.mozilla.org/en-US/docs/Web/API/Event/cancelBubble
//---------------------------------------------------------
//very good: https://javascript.info/bubbling-and-capturing
//event.stopPropagation();
event.stopImmediatePropagation();
//for legacy browsers: btb/dom-events.js
//---------------------------------------------------------
app.doMove( arg );
};
var keyHandler = function ( event )
{
//: configuration
const ANGLE_STEP = 8;
const X_STEP = 20;
const Y_STEP = 20;
const Z_STEP = 100;
if( event.altKey ) {
////MADE FOR CASE IF "APPLE" TAKES AWAY CTRL KEY
switch ( event.keyCode )
{
//arr up
case 38 : doHandle( { axis : "x", angle : ANGLE_STEP }, event );
break;
//arr down
case 40 : doHandle( { axis : "x", angle : -ANGLE_STEP }, event );
break;
//arr right
case 39 : doHandle( { axis : "y", angle : ANGLE_STEP }, event );
break;
//arr left
case 37 : doHandle( { axis : "y", angle : -ANGLE_STEP }, event );
break;
}
} else if( event.ctrlKey ) {
//// CAN BE BROKEN ON APPLE
//// Apparently "Mac. Lion" takes away Ctro+arrow up.
switch ( event.keyCode )
{
//arr up
case 38 : doHandle( { axis : "x", angle : ANGLE_STEP }, event );
break;
//arr down
case 40 : doHandle( { axis : "x", angle : -ANGLE_STEP }, event );
break;
//arr right
case 39 : doHandle( { axis : "y", angle : ANGLE_STEP }, event );
break;
//arr left
case 37 : doHandle( { axis : "y", angle : -ANGLE_STEP }, event );
break;
}
}else if( event.shiftKey ) {
switch ( event.keyCode )
{
//arr up
case 38 : doHandle( { travel : true, axis : "0", angle : ANGLE_STEP }, event );
break;
//arr down
case 40 : doHandle( { travel : true, axis : "0", angle : -ANGLE_STEP }, event );
break;
//arr right
case 39 : doHandle( { travel : true, axis : "1", angle : ANGLE_STEP }, event );
break;
//arr left
case 37 : doHandle( { travel : true, axis : "1", angle : -ANGLE_STEP }, event );
break;
}
}else{
switch ( event.keyCode )
{
//arr up
case 38 : doHandle( { move : 2, value : -Z_STEP }, event );
break;
//arr down
case 40 : doHandle( { move : 2, value : Z_STEP }, event );
break;
//arr right
case 39 : doHandle( { move : 0, value : -X_STEP }, event );
break;
//arr left
case 37 : doHandle( { move : 0, value : X_STEP }, event );
break;
//page up
case 33 : doHandle( { move : 1, value : Y_STEP }, event );
break;
//page down
case 34 : doHandle( { move : 1, value : -Y_STEP }, event );
break;
}
}
return false;
};
// $( document).bind ( 'keydown', keyHandler );
// $( document).bind ( 'keypress', keyHandler );
// fails in Chrome: $( document ).bind ( 'keypress', btb.throttledCallback( keyHandler ) );
//window.document.addEventListener ( 'keydown', btb.throttledCallback( keyHandler ) );
window.document.addEventListener ( 'keydown', keyHandler );
}) ();