mirror of
				https://github.com/flynx/ImageGrid.git
				synced 2025-10-30 10:50:08 +00:00 
			
		
		
		
	
		
			
	
	
		
			179 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			179 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | /********************************************************************** | ||
|  | *  | ||
|  | * | ||
|  | * | ||
|  | **********************************************************************/ | ||
|  | 
 | ||
|  | //var DEBUG = DEBUG != null ? DEBUG : true
 | ||
|  | 
 | ||
|  | 
 | ||
|  | /*********************************************************************/ | ||
|  | 
 | ||
|  | var STEPS_TO_CHANGE_DIRECTION = 2 | ||
|  | var _STEPS_LEFT_TO_CHANGE_DIRECTION = STEPS_TO_CHANGE_DIRECTION | ||
|  | // XXX code related to this needs testing...
 | ||
|  | var DIRECTION = 'next' | ||
|  | 
 | ||
|  | 
 | ||
|  | var KEYBOARD_CONFIG = { | ||
|  | 	// general setup...
 | ||
|  | 	'.viewer': { | ||
|  | 		// Navigation...
 | ||
|  | 		// XXX need to cancel the animation of the prev action...
 | ||
|  | 		Left: { | ||
|  | 				default: function(){  | ||
|  | 					if(DIRECTION != 'prev'){ | ||
|  | 						_STEPS_LEFT_TO_CHANGE_DIRECTION-- | ||
|  | 						if(_STEPS_LEFT_TO_CHANGE_DIRECTION == 0){ | ||
|  | 							DIRECTION = 'prev' | ||
|  | 							_STEPS_LEFT_TO_CHANGE_DIRECTION = 2 | ||
|  | 						} | ||
|  | 					} else { | ||
|  | 							_STEPS_LEFT_TO_CHANGE_DIRECTION = 2 | ||
|  | 					} | ||
|  | 					prevImage()  | ||
|  | 				}, | ||
|  | 				// XXX prevScreenImages...
 | ||
|  | 				ctrl: function(){  | ||
|  | 					console.log('NotImplemented: screen images back.') | ||
|  | 				}, | ||
|  | 				// XXX need to keep shift explicitly clear for editor...
 | ||
|  | 				/* | ||
|  | 				shift: function(){ | ||
|  | 					toggleImageMark() | ||
|  | 					prevImage() | ||
|  | 				}, | ||
|  | 				// XXX mark screen images...
 | ||
|  | 				'ctrl+shift': function(){ | ||
|  | 					console.log('NotImplemented: mark screen images back.') | ||
|  | 				} | ||
|  | 				*/ | ||
|  | 			}, | ||
|  | 		Right: { | ||
|  | 				default: function(){  | ||
|  | 					if(DIRECTION != 'next'){ | ||
|  | 						_STEPS_LEFT_TO_CHANGE_DIRECTION-- | ||
|  | 						if(_STEPS_LEFT_TO_CHANGE_DIRECTION == 0){ | ||
|  | 							DIRECTION = 'next' | ||
|  | 							_STEPS_LEFT_TO_CHANGE_DIRECTION = 2 | ||
|  | 						} | ||
|  | 					} else { | ||
|  | 							_STEPS_LEFT_TO_CHANGE_DIRECTION = 2 | ||
|  | 					} | ||
|  | 					nextImage()  | ||
|  | 				}, | ||
|  | 				// XXX nextScreenImages...
 | ||
|  | 				ctrl: function(){  | ||
|  | 					console.log('NotImplemented: screen images forward.') | ||
|  | 				}, | ||
|  | 				// XXX need to keep shift explicitly clear for editor...
 | ||
|  | 				/* | ||
|  | 				shift: function(){ | ||
|  | 					toggleImageMark() | ||
|  | 					nextImage() | ||
|  | 				}, | ||
|  | 				// XXX mark screen images...
 | ||
|  | 				'ctrl+shift': function(){ | ||
|  | 					console.log('NotImplemented: mark screen images forward.') | ||
|  | 				} | ||
|  | 				*/ | ||
|  | 			}, | ||
|  | 		Space: { | ||
|  | 				default: 'Right', | ||
|  | 				shift: 'Left', | ||
|  | 			}, | ||
|  | 		/* XXX for some reason this does not work,,, | ||
|  | 		// XXX for some odd reason, returning false does not cancel 
 | ||
|  | 		//		default behaviour here...
 | ||
|  | 		Backspace: { | ||
|  | 				default: 'Left', | ||
|  | 				shift: 'Right', | ||
|  | 			}, | ||
|  | 		*/ | ||
|  | 		Home: function(){ | ||
|  | 				firstImage() | ||
|  | 			}, | ||
|  | 		End: function(){ | ||
|  | 				lastImage() | ||
|  | 			}, | ||
|  | 		Up: { | ||
|  | 				default: function(){ prevRibbon(DIRECTION) }, | ||
|  | 				shift: function(){ shiftImageUp(null, DIRECTION) }, | ||
|  | 			}, | ||
|  | 		Down: { | ||
|  | 				default: function(){ nextRibbon(DIRECTION) }, | ||
|  | 				shift: function(){ shiftImageDown(null, DIRECTION) }, | ||
|  | 			}, | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 		// zooming...
 | ||
|  | 		'1': function(){ fitNImages(1) }, | ||
|  | 		'2': function(){ fitNImages(2) }, | ||
|  | 		'3': function(){ fitNImages(3) }, | ||
|  | 		'4': function(){ fitNImages(4) }, | ||
|  | 		'5': function(){ fitNImages(5) }, | ||
|  | 		'6': function(){ fitNImages(6) }, | ||
|  | 		'7': function(){ fitNImages(7) }, | ||
|  | 		// XXX for some reason this also hooks the Backspace key (80)...
 | ||
|  | 		'8': function(){ fitNImages(8) }, | ||
|  | 		'9': function(){ fitNImages(9) }, | ||
|  | 
 | ||
|  | 
 | ||
|  | 		// XXX this is temporary, combine this with single image mode...
 | ||
|  | 		// XXX this should only work on single image mode...
 | ||
|  | 		F: function(){ toggleImageProportions() }, | ||
|  | 
 | ||
|  | 
 | ||
|  | 		// marking...
 | ||
|  | 		// XXX not final, think of a better way to do this...
 | ||
|  | 		// XXX need mark navigation...
 | ||
|  | 		M: { | ||
|  | 				// NOTE: marking moves in the same direction as the last
 | ||
|  | 				//		move...
 | ||
|  | 				//		i.e. marking can change direction depending on where
 | ||
|  | 				//		we moved last...
 | ||
|  | 				// NOTE: marking does not change move direction...
 | ||
|  | 				default: function(){  | ||
|  | 					toggleImageMark() | ||
|  | 					if(DIRECTION == 'next'){ | ||
|  | 						nextImage() | ||
|  | 					} else { | ||
|  | 						prevImage() | ||
|  | 					} | ||
|  | 				}, | ||
|  | 				// same as default but in reverse direction...
 | ||
|  | 				shift: function(){ | ||
|  | 					toggleImageMark() | ||
|  | 					if(DIRECTION == 'prev'){ | ||
|  | 						nextImage() | ||
|  | 					} else { | ||
|  | 						prevImage() | ||
|  | 					} | ||
|  | 				}, | ||
|  | 				ctrl: function(){ toggleImageMark() }, | ||
|  | 			}, | ||
|  | 		I: { | ||
|  | 				ctrl: function(){ invertImageMarks() }, | ||
|  | 			}, | ||
|  | 		A: { | ||
|  | 				shift: function(){ toggleImageMarkBlock() }, | ||
|  | 				ctrl: function(){ markAll('ribbon') }, | ||
|  | 			}, | ||
|  | 		U: { | ||
|  | 				ctrl: function(){ removeImageMarks('ribbon') }, | ||
|  | 				shift: function(){ removeImageMarks('all') }, | ||
|  | 			}, | ||
|  | 		F2: function(){ toggleMarkedOnlyView() }, | ||
|  | 	} | ||
|  | } | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | /********************************************************************** | ||
|  | * vim:set ts=4 sw=4 :                                                */ |