| 
									
										
										
										
											2014-07-21 16:38:06 +04:00
										 |  |  | /********************************************************************** | 
					
						
							|  |  |  | *  | 
					
						
							|  |  |  | * | 
					
						
							|  |  |  | * | 
					
						
							|  |  |  | **********************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-07-25 18:34:53 +04:00
										 |  |  | window.nodejs = (typeof(process) === 'object' && process.features.uv)  | 
					
						
							|  |  |  | 	? { | 
					
						
							|  |  |  | 		require: window.require, | 
					
						
							|  |  |  | 	}  | 
					
						
							|  |  |  | 	: null | 
					
						
							| 
									
										
										
										
											2014-07-21 16:38:06 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | define(function(require){ var module = {} | 
					
						
							|  |  |  | console.log('>>> ui') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //var DEBUG = DEBUG != null ? DEBUG : true
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-07-21 18:21:36 +04:00
										 |  |  | var keyboard = require('lib/keyboard') | 
					
						
							|  |  |  | var doc = keyboard.doc | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // compatibility...
 | 
					
						
							| 
									
										
										
										
											2014-07-21 16:38:06 +04:00
										 |  |  | var browser = require('browser') | 
					
						
							|  |  |  | var nw = require('nw') | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-07-21 18:21:36 +04:00
										 |  |  | // XXX load only the actualy used here modules...
 | 
					
						
							|  |  |  | var actions = require('actions') | 
					
						
							|  |  |  | var data = require('data') | 
					
						
							| 
									
										
										
										
											2014-07-21 18:33:31 +04:00
										 |  |  | var ribbons = require('ribbons') | 
					
						
							| 
									
										
										
										
											2014-07-21 16:38:06 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-08-15 06:03:36 +04:00
										 |  |  | // XXX 
 | 
					
						
							|  |  |  | var testing = require('testing') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-09-02 02:55:03 +04:00
										 |  |  | var client = require('client') | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-10-11 06:33:49 +04:00
										 |  |  | var viewer = require('viewer') | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-09-02 02:55:03 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-07-21 16:38:06 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | /*********************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-07-21 18:33:31 +04:00
										 |  |  | // XXX add this to the global doc...
 | 
					
						
							| 
									
										
										
										
											2014-07-22 17:09:25 +04:00
										 |  |  | module.GLOBAL_KEYBOARD = { | 
					
						
							| 
									
										
										
										
											2014-07-21 16:38:06 +04:00
										 |  |  | 	'Global bindings': { | 
					
						
							|  |  |  | 		doc: 'NOTE: binding priority is the same as the order of sections '+ | 
					
						
							|  |  |  | 			'on this page.', | 
					
						
							|  |  |  | 		pattern: '*', | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		F4: { | 
					
						
							| 
									
										
										
										
											2014-10-22 01:05:59 +04:00
										 |  |  | 			alt: 'close', | 
					
						
							|  |  |  | 			/* | 
					
						
							| 
									
										
										
										
											2014-07-21 16:38:06 +04:00
										 |  |  | 			alt: doc('Close viewer',  | 
					
						
							|  |  |  | 				function(){  | 
					
						
							| 
									
										
										
										
											2014-07-21 18:21:36 +04:00
										 |  |  | 					window.close()  | 
					
						
							| 
									
										
										
										
											2014-07-21 16:38:06 +04:00
										 |  |  | 					return false | 
					
						
							|  |  |  | 				}), | 
					
						
							| 
									
										
										
										
											2014-10-22 01:05:59 +04:00
										 |  |  | 			*/ | 
					
						
							| 
									
										
										
										
											2014-07-21 16:38:06 +04:00
										 |  |  | 		}, | 
					
						
							|  |  |  | 		F5: doc('Full reload viewer',  | 
					
						
							|  |  |  | 			function(){  | 
					
						
							|  |  |  | 				/* | 
					
						
							|  |  |  | 				killAllWorkers() | 
					
						
							|  |  |  | 					.done(function(){ | 
					
						
							|  |  |  | 						reload()  | 
					
						
							|  |  |  | 					}) | 
					
						
							|  |  |  | 				*/ | 
					
						
							| 
									
										
										
										
											2014-07-21 18:21:36 +04:00
										 |  |  | 				location.reload() | 
					
						
							| 
									
										
										
										
											2014-07-21 16:38:06 +04:00
										 |  |  | 				return false | 
					
						
							|  |  |  | 			}), | 
					
						
							| 
									
										
										
										
											2014-10-22 01:05:59 +04:00
										 |  |  | 		F12: 'showDevTools', | 
					
						
							| 
									
										
										
										
											2014-07-21 16:38:06 +04:00
										 |  |  | 		// NOTE: these are for systems where F** keys are not available 
 | 
					
						
							|  |  |  | 		// 		or do other stuff...
 | 
					
						
							|  |  |  | 		R: { | 
					
						
							| 
									
										
										
										
											2014-10-24 04:51:35 +04:00
										 |  |  | 			default: 'rotateCW', | 
					
						
							|  |  |  | 			shift: 'reverseImages', | 
					
						
							| 
									
										
										
										
											2014-10-22 01:05:59 +04:00
										 |  |  | 			ctrl: 'reload!', | 
					
						
							| 
									
										
										
										
											2014-07-21 16:38:06 +04:00
										 |  |  | 			'ctrl+shift': 'F5', | 
					
						
							|  |  |  | 		}, | 
					
						
							| 
									
										
										
										
											2014-10-24 04:51:35 +04:00
										 |  |  | 		L: 'rotateCCW', | 
					
						
							|  |  |  | 		H: 'flipHorizontal', | 
					
						
							|  |  |  | 		V: 'flipVertical', | 
					
						
							| 
									
										
										
										
											2014-07-21 16:38:06 +04:00
										 |  |  | 		P: { | 
					
						
							|  |  |  | 			'ctrl+shift': 'F12', | 
					
						
							|  |  |  | 		}, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		// NOTE: this is handled by the wrapper at this point, so we do 
 | 
					
						
							|  |  |  | 		// 		not have to do anything here...
 | 
					
						
							| 
									
										
										
										
											2014-10-22 01:23:56 +04:00
										 |  |  | 		F11: 'toggleFullScreen',  | 
					
						
							| 
									
										
										
										
											2014-07-21 16:38:06 +04:00
										 |  |  | 		F: { | 
					
						
							|  |  |  | 			ctrl: 'F11', | 
					
						
							|  |  |  | 		}, | 
					
						
							| 
									
										
										
										
											2014-10-12 03:14:29 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		// XXX testing...
 | 
					
						
							| 
									
										
										
										
											2014-10-22 13:11:26 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-11-06 03:56:54 +03:00
										 |  |  | 		Enter: 'toggleSingleImage', | 
					
						
							|  |  |  | 		B: 'toggleTheme', | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-10-21 21:17:44 +04:00
										 |  |  | 		Home: { | 
					
						
							|  |  |  | 			default: 'firstImage', | 
					
						
							| 
									
										
										
										
											2014-10-22 13:11:26 +04:00
										 |  |  | 			ctrl: 'firstGlobalImage', | 
					
						
							|  |  |  | 			shift: 'firstRibbon', | 
					
						
							| 
									
										
										
										
											2014-10-21 21:17:44 +04:00
										 |  |  | 		}, | 
					
						
							|  |  |  | 		End: { | 
					
						
							|  |  |  | 			default: 'lastImage', | 
					
						
							| 
									
										
										
										
											2014-10-22 13:11:26 +04:00
										 |  |  | 			ctrl: 'lastGlobalImage', | 
					
						
							|  |  |  | 			shift: 'lastRibbon', | 
					
						
							| 
									
										
										
										
											2014-10-21 21:17:44 +04:00
										 |  |  | 		}, | 
					
						
							| 
									
										
										
										
											2014-10-13 00:18:26 +04:00
										 |  |  | 		Left: { | 
					
						
							| 
									
										
										
										
											2014-10-20 06:52:13 +04:00
										 |  |  | 			default: 'prevImage', | 
					
						
							|  |  |  | 			alt: 'shiftImageLeft!', | 
					
						
							|  |  |  | 			ctrl: 'prevScreen', | 
					
						
							| 
									
										
										
										
											2014-10-13 00:18:26 +04:00
										 |  |  | 		}, | 
					
						
							| 
									
										
										
										
											2014-10-21 21:17:44 +04:00
										 |  |  | 		PgUp: 'prevScreen', | 
					
						
							|  |  |  | 		PgDown: 'nextScreen', | 
					
						
							| 
									
										
										
										
											2014-10-13 00:18:26 +04:00
										 |  |  | 		Right: { | 
					
						
							| 
									
										
										
										
											2014-10-20 06:52:13 +04:00
										 |  |  | 			default: 'nextImage', | 
					
						
							|  |  |  | 			alt: 'shiftImageRight!', | 
					
						
							|  |  |  | 			ctrl: 'nextScreen', | 
					
						
							| 
									
										
										
										
											2014-10-13 00:18:26 +04:00
										 |  |  | 		}, | 
					
						
							| 
									
										
										
										
											2014-10-20 06:52:13 +04:00
										 |  |  | 		'(': 'prevImageInOrder', | 
					
						
							|  |  |  | 		')': 'nextImageInOrder', | 
					
						
							| 
									
										
										
										
											2014-11-19 19:30:38 +03:00
										 |  |  | 		',': 'prevMarked', | 
					
						
							|  |  |  | 		'.': 'nextMarked', | 
					
						
							| 
									
										
										
										
											2014-10-12 03:14:29 +04:00
										 |  |  | 		Up: { | 
					
						
							| 
									
										
										
										
											2014-10-20 06:52:13 +04:00
										 |  |  | 			default: 'prevRibbon', | 
					
						
							|  |  |  | 			shift: 'shiftImageUp', | 
					
						
							|  |  |  | 			'ctrl+shift': 'shiftImageUpNewRibbon', | 
					
						
							| 
									
										
										
										
											2014-10-12 03:14:29 +04:00
										 |  |  | 		}, | 
					
						
							|  |  |  | 		Down: { | 
					
						
							| 
									
										
										
										
											2014-10-20 06:52:13 +04:00
										 |  |  | 			default: 'nextRibbon', | 
					
						
							|  |  |  | 			shift: 'shiftImageDown', | 
					
						
							|  |  |  | 			'ctrl+shift': 'shiftImageDownNewRibbon', | 
					
						
							| 
									
										
										
										
											2014-10-13 00:18:26 +04:00
										 |  |  | 		}, | 
					
						
							| 
									
										
										
										
											2014-10-20 16:38:26 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-10-20 06:52:13 +04:00
										 |  |  | 		'#0': 'fitMax', | 
					
						
							| 
									
										
										
										
											2014-10-18 17:32:41 +04:00
										 |  |  | 		'#1': { | 
					
						
							| 
									
										
										
										
											2014-10-20 06:52:13 +04:00
										 |  |  | 			default: 'fitImage', | 
					
						
							| 
									
										
										
										
											2014-11-05 03:26:29 +03:00
										 |  |  | 			shift: 'fitRibbon', | 
					
						
							| 
									
										
										
										
											2014-10-20 06:52:13 +04:00
										 |  |  | 			ctrl: 'fitOrig!', | 
					
						
							| 
									
										
										
										
											2014-10-18 17:32:41 +04:00
										 |  |  | 		}, | 
					
						
							| 
									
										
										
										
											2014-11-05 16:19:37 +03:00
										 |  |  | 		'#2': 'fitImage: 2', | 
					
						
							| 
									
										
										
										
											2014-11-05 01:09:06 +03:00
										 |  |  | 		'#3': { | 
					
						
							| 
									
										
										
										
											2014-11-05 16:19:37 +03:00
										 |  |  | 			default: 'fitImage: 3', | 
					
						
							| 
									
										
										
										
											2014-11-05 16:24:36 +03:00
										 |  |  | 			shift: 'fitRibbon: 3.5', | 
					
						
							| 
									
										
										
										
											2014-11-05 01:09:06 +03:00
										 |  |  | 		}, | 
					
						
							| 
									
										
										
										
											2014-11-05 16:24:36 +03:00
										 |  |  | 		'#4': 'fitImage: 4', | 
					
						
							| 
									
										
										
										
											2014-11-05 01:09:06 +03:00
										 |  |  | 		'#5': { | 
					
						
							| 
									
										
										
										
											2014-11-05 16:24:36 +03:00
										 |  |  | 			default: 'fitImage: 5', | 
					
						
							|  |  |  | 			shift: 'fitRibbon: 5.5', | 
					
						
							| 
									
										
										
										
											2014-11-05 01:09:06 +03:00
										 |  |  | 		}, | 
					
						
							| 
									
										
										
										
											2014-11-05 16:24:36 +03:00
										 |  |  | 		'#6': 'fitImage: 6', | 
					
						
							|  |  |  | 		'#7': 'fitImage: 7', | 
					
						
							|  |  |  | 		'#8':'fitImage: 8', | 
					
						
							|  |  |  | 		'#9': 'fitImage: 9', | 
					
						
							| 
									
										
										
										
											2014-10-13 00:18:26 +04:00
										 |  |  | 		 | 
					
						
							| 
									
										
										
										
											2014-10-20 06:52:13 +04:00
										 |  |  | 		'+': 'zoomIn', | 
					
						
							| 
									
										
										
										
											2014-10-18 17:32:41 +04:00
										 |  |  | 		'=': '+', | 
					
						
							| 
									
										
										
										
											2014-10-20 06:52:13 +04:00
										 |  |  | 		'-': 'zoomOut', | 
					
						
							| 
									
										
										
										
											2014-10-22 05:49:11 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		F2: { | 
					
						
							|  |  |  | 			default: 'cropRibbon', | 
					
						
							|  |  |  | 			shift: 'cropRibbonAndAbove', | 
					
						
							|  |  |  | 		}, | 
					
						
							|  |  |  | 		Esc: { | 
					
						
							|  |  |  | 			default: 'uncrop', | 
					
						
							|  |  |  | 			ctrl: 'uncropAll', | 
					
						
							|  |  |  | 		}, | 
					
						
							| 
									
										
										
										
											2014-10-18 17:32:41 +04:00
										 |  |  | 		 | 
					
						
							| 
									
										
										
										
											2014-07-21 16:38:06 +04:00
										 |  |  | 	}, | 
					
						
							|  |  |  | }	 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-10-20 06:52:13 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-07-21 16:38:06 +04:00
										 |  |  | /*********************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | $(function(){ | 
					
						
							| 
									
										
										
										
											2014-10-20 06:52:13 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-11-09 19:39:57 +03:00
										 |  |  | 	// XXX
 | 
					
						
							| 
									
										
										
										
											2014-10-20 06:52:13 +04:00
										 |  |  | 	window.a = testing.setupActions() | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-11-11 03:07:14 +03:00
										 |  |  | 	viewer.Features.setup(a, [ | 
					
						
							|  |  |  | 		// XXX I do not fully understand it yet, but PartialRibbons must be 
 | 
					
						
							|  |  |  | 		// 		setup BEFORE AlignRibbonsTo*, otherwise the later will break
 | 
					
						
							|  |  |  | 		// 		on shifting an image to a new ribbon...
 | 
					
						
							|  |  |  | 		// 			To reproduce:
 | 
					
						
							|  |  |  | 		// 				- setupe RibbonAlignToFirst first
 | 
					
						
							|  |  |  | 		// 				- go to top ribbon
 | 
					
						
							|  |  |  | 		// 				- shift image up
 | 
					
						
							|  |  |  | 		'ui-partial-ribbons', | 
					
						
							|  |  |  | 		'ui-ribbon-align-to-order', | 
					
						
							|  |  |  | 		'ui-single-image-view', | 
					
						
							|  |  |  | 		'ui-animation', | 
					
						
							|  |  |  | 		'ui-bounds-indicators', | 
					
						
							|  |  |  | 		'ui-current-image-indicator', | 
					
						
							| 
									
										
										
										
											2014-11-19 06:49:03 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		'image-marks', | 
					
						
							|  |  |  | 		'image-bookmarks', | 
					
						
							| 
									
										
										
										
											2014-11-11 03:07:14 +03:00
										 |  |  | 	]) | 
					
						
							| 
									
										
										
										
											2014-10-20 06:52:13 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// this publishes all the actions...
 | 
					
						
							|  |  |  | 	//module.GLOBAL_KEYBOARD.__proto__ = a
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-11-08 16:18:20 +03:00
										 |  |  | 	// load some testing data...
 | 
					
						
							|  |  |  | 	a.load({ | 
					
						
							|  |  |  | 		data: data.Data(testing.mock_data), | 
					
						
							|  |  |  | 		viewer: $('.viewer'), | 
					
						
							|  |  |  | 		images: testing.makeTestImages(), | 
					
						
							|  |  |  | 	}) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-07-21 18:21:36 +04:00
										 |  |  | 	// setup base keyboard for devel, in case something breaks...
 | 
					
						
							| 
									
										
										
										
											2014-07-21 16:38:06 +04:00
										 |  |  | 	$(document) | 
					
						
							|  |  |  | 		.keydown( | 
					
						
							|  |  |  | 			keyboard.makeKeyboardHandler( | 
					
						
							| 
									
										
										
										
											2014-07-22 17:09:25 +04:00
										 |  |  | 				module.GLOBAL_KEYBOARD, | 
					
						
							| 
									
										
										
										
											2014-07-21 16:38:06 +04:00
										 |  |  | 				function(k){ | 
					
						
							|  |  |  | 					window.DEBUG && console.log(k) | 
					
						
							| 
									
										
										
										
											2014-10-20 06:52:13 +04:00
										 |  |  | 				},  | 
					
						
							|  |  |  | 				a)) | 
					
						
							| 
									
										
										
										
											2014-07-21 16:38:06 +04:00
										 |  |  | }) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /********************************************************************** | 
					
						
							|  |  |  | * vim:set ts=4 sw=4 :                                                */ | 
					
						
							|  |  |  | return module }) |