Browse Source

Migrated input handling code out of index.html

All input handling is now in Sidebar.Controls. In addition,
changed from using event.keyCode to event.key. This may cause
browser compatibility issues, but is more maintainable and
easier to read.
Tyler Lindberg 7 years ago
parent
commit
084a5cd2e2
3 changed files with 63 additions and 65 deletions
  1. 0 63
      editor/index.html
  2. 2 2
      editor/js/Config.js
  3. 61 0
      editor/js/Sidebar.Controls.js

+ 0 - 63
editor/index.html

@@ -164,8 +164,6 @@
 			window.URL = window.URL || window.webkitURL;
 			window.URL = window.URL || window.webkitURL;
 			window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;
 			window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;
 
 
-			const IS_MAC = navigator.platform.toUpperCase().indexOf( 'MAC' ) >= 0;
-
 			Number.prototype.format = function (){
 			Number.prototype.format = function (){
 				return this.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,");
 				return this.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,");
 			};
 			};
@@ -293,67 +291,6 @@
 
 
 			}, false );
 			}, false );
 
 
-			document.addEventListener( 'keydown', function ( event ) {
-
-				switch ( event.keyCode ) {
-
-					case 8: // backspace
-
-						event.preventDefault(); // prevent browser back
-
-					case 46: // delete
-
-						var object = editor.selected;
-
-						if ( confirm( 'Delete ' + object.name + '?' ) === false ) return;
-
-						var parent = object.parent;
-						if ( parent !== null ) editor.execute( new RemoveObjectCommand( object ) );
-
-						break;
-
-					case 90: // Register Ctrl-Z for Undo, Ctrl-Shift-Z for Redo
-
-						if ( IS_MAC ? event.metaKey : event.ctrlKey ) {
-
-							event.preventDefault(); // Prevent Safari from opening/closing tabs
-
-							if ( event.shiftKey ) {
-
-								editor.redo();
-
-							} else {
-
-								editor.undo();
-
-							}
-
-						}
-
-						break;
-
-					case 87: // Register W for translation transform mode
-
-						editor.signals.transformModeChanged.dispatch( 'translate' );
-
-						break;
-
-					case 69: // Register E for rotation transform mode
-
-						editor.signals.transformModeChanged.dispatch( 'rotate' );
-
-						break;
-
-					case 82: // Register R for scaling transform mode
-
-						editor.signals.transformModeChanged.dispatch( 'scale' );
-
-						break;
-
-				}
-
-			}, false );
-
 			function onWindowResize( event ) {
 			function onWindowResize( event ) {
 
 
 				editor.signals.windowResize.dispatch();
 				editor.signals.windowResize.dispatch();

+ 2 - 2
editor/js/Config.js

@@ -22,8 +22,8 @@ var Config = function ( name ) {
 		'settings/history': false,
 		'settings/history': false,
 
 
 		'controls/translate': 'w',
 		'controls/translate': 'w',
-		'controls/rotate': 'r',
-		'controls/scale': 'w'
+		'controls/rotate': 'e',
+		'controls/scale': 'r'
 	};
 	};
 
 
 	if ( window.localStorage[ name ] === undefined ) {
 	if ( window.localStorage[ name ] === undefined ) {

+ 61 - 0
editor/js/Sidebar.Controls.js

@@ -7,6 +7,8 @@ Sidebar.Controls = function ( editor ) {
 	var config = editor.config;
 	var config = editor.config;
 	var signals = editor.signals;
 	var signals = editor.signals;
 
 
+	const IS_MAC = navigator.platform.toUpperCase().indexOf( 'MAC' ) >= 0;
+
 	var container = new UI.Panel();
 	var container = new UI.Panel();
 	container.add( new UI.Text( 'CONTROLS' ) );
 	container.add( new UI.Text( 'CONTROLS' ) );
 
 
@@ -49,6 +51,65 @@ Sidebar.Controls = function ( editor ) {
 
 
 	}
 	}
 
 
+	document.addEventListener( 'keydown', function ( event ) {
+
+		switch ( event.key ) {
+
+			case 'Backspace':
+
+				event.preventDefault(); // prevent browser back
+
+			case 'Delete':
+
+				var object = editor.selected;
+
+				if ( confirm( 'Delete ' + object.name + '?' ) === false ) return;
+
+				var parent = object.parent;
+				if ( parent !== null ) editor.execute( new RemoveObjectCommand( object ) );
+
+				break;
+
+			case 'z': // Register Ctrl/Command-Z for Undo
+
+				if ( IS_MAC ? event.metaKey : event.ctrlKey ) {
+
+					editor.undo();
+
+				}
+
+				break;
+
+			case 'Z': // Register Ctrl/Command-Shift-Z for Redo
+
+				if ( IS_MAC ? event.metaKey : event.ctrlKey ) {
+
+					editor.redo();
+
+				}
+
+			case editor.config.getKey( 'controls/translate' ): // Translation transform mode
+
+				editor.signals.transformModeChanged.dispatch( 'translate' );
+
+				break;
+
+			case editor.config.getKey( 'controls/rotate' ): // Rotation transform mode
+
+				editor.signals.transformModeChanged.dispatch( 'rotate' );
+
+				break;
+
+			case editor.config.getKey( 'controls/scale' ): // Scaling transform mode
+
+				editor.signals.transformModeChanged.dispatch( 'scale' );
+
+				break;
+
+		}
+
+	}, false );
+
 	return container;
 	return container;
 
 
 };
 };