mirror of
				https://github.com/flynx/ImageGrid.git
				synced 2025-11-04 05:10:07 +00:00 
			
		
		
		
	added keyboard help...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
		
							parent
							
								
									02eaae8cc4
								
							
						
					
					
						commit
						32e259a2ff
					
				@ -6,6 +6,7 @@
 | 
			
		||||
		| This is a tad complicated by:
 | 
			
		||||
		| 	- marks
 | 
			
		||||
		| 	- image elem proportions that can change
 | 
			
		||||
		[_] ASAP: import fav dirs...
 | 
			
		||||
		[_] BUG: sometimes duplicate images get loaded...
 | 
			
		||||
		| this happens when jumping back and forth on the mid ribbon until
 | 
			
		||||
		| the last element shows up and then moving left until the frame
 | 
			
		||||
 | 
			
		||||
@ -272,19 +272,77 @@ body {
 | 
			
		||||
 | 
			
		||||
/* XXX this is by no means final... */
 | 
			
		||||
.viewer,
 | 
			
		||||
.light.viewer {
 | 
			
		||||
.light.viewer,
 | 
			
		||||
.light.viewer .overlay-block .background {
 | 
			
		||||
	background: white;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.gray.viewer {
 | 
			
		||||
.gray.viewer,
 | 
			
		||||
.gray.viewer .overlay-block .background {
 | 
			
		||||
	background: #333;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.dark.viewer {
 | 
			
		||||
.dark.viewer,
 | 
			
		||||
.dark.viewer .overlay-block .background {
 | 
			
		||||
	background: #0a0a0a;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Overlay */
 | 
			
		||||
.overlay-block {
 | 
			
		||||
	display: none;
 | 
			
		||||
	position: absolute:
 | 
			
		||||
	top: 0px;
 | 
			
		||||
	left: 0px;
 | 
			
		||||
	height: 100%;
 | 
			
		||||
	width: 100%;
 | 
			
		||||
}
 | 
			
		||||
.viewer.overlay .overlay-block {
 | 
			
		||||
	display: block;
 | 
			
		||||
}
 | 
			
		||||
.overlay-block .content {
 | 
			
		||||
}
 | 
			
		||||
.overlay-block .background {
 | 
			
		||||
	position: absolute:
 | 
			
		||||
	top: 0px;
 | 
			
		||||
	left: 0px;
 | 
			
		||||
	height: 100%;
 | 
			
		||||
	width: 100%;
 | 
			
		||||
	opacity: 0.7;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* this is for sliding stuff */
 | 
			
		||||
.viewer {
 | 
			
		||||
	box-shadow: 0px 0px 50px 0px silver;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* help */
 | 
			
		||||
.keyboard-help {
 | 
			
		||||
	margin: 20px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.keyboard-help .section-doc {
 | 
			
		||||
	font-size: small;
 | 
			
		||||
	vertical-align: top;
 | 
			
		||||
	font-style: italic;
 | 
			
		||||
}
 | 
			
		||||
.keyboard-help th {
 | 
			
		||||
	text-align: left;
 | 
			
		||||
	height: 50px;
 | 
			
		||||
	vertical-align: bottom;
 | 
			
		||||
	border-bottom: solid gray 1px;
 | 
			
		||||
}
 | 
			
		||||
.keyboard-help tr:hover {
 | 
			
		||||
	background: #eee;
 | 
			
		||||
	vertical-align: top;
 | 
			
		||||
}
 | 
			
		||||
.keyboard-help tr td:first-child {
 | 
			
		||||
	color: gray;
 | 
			
		||||
	font-style: italic;
 | 
			
		||||
	padding-right: 20px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
</style>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -376,8 +434,6 @@ $(function(){
 | 
			
		||||
			updateImages()
 | 
			
		||||
		})
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -424,6 +480,10 @@ Populated
 | 
			
		||||
	<div class="down-indicator"></div>
 | 
			
		||||
	<div class="start-indicator"></div>
 | 
			
		||||
	<div class="end-indicator"></div>
 | 
			
		||||
	<div class="overlay-block">
 | 
			
		||||
		<div class="background"></div>
 | 
			
		||||
		<div class="content"></div>
 | 
			
		||||
	</div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -28,8 +28,19 @@ var KEYBOARD_CONFIG = {
 | 
			
		||||
			}),
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	'.overlay:visible':{
 | 
			
		||||
		title: 'Overlay',
 | 
			
		||||
		doc: 'NOTE: In this mode all other key bindings are disabled, except '+
 | 
			
		||||
			'the ones explicitly defined here.',
 | 
			
		||||
		ignore: '*',
 | 
			
		||||
		Esc: doc('Close overlay',
 | 
			
		||||
			function(){
 | 
			
		||||
				$('.overlay').click()
 | 
			
		||||
			}),
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	// general setup...
 | 
			
		||||
	'.viewer': {
 | 
			
		||||
	'.viewer:not(.overlay)': {
 | 
			
		||||
		title: 'Global',
 | 
			
		||||
 | 
			
		||||
		// Navigation...
 | 
			
		||||
@ -141,7 +152,7 @@ var KEYBOARD_CONFIG = {
 | 
			
		||||
						shiftImageDown(null, DIRECTION) 
 | 
			
		||||
						centerRibbons()
 | 
			
		||||
					}),
 | 
			
		||||
				'ctrl+shift': doc('Shift image up to empty ribbon',
 | 
			
		||||
				'ctrl+shift': doc('Shift image down to empty ribbon',
 | 
			
		||||
					function(){
 | 
			
		||||
						event.preventDefault()
 | 
			
		||||
						shiftImageDownNewRibbon(null, DIRECTION) 
 | 
			
		||||
@ -276,15 +287,71 @@ var KEYBOARD_CONFIG = {
 | 
			
		||||
 | 
			
		||||
		F4: doc('Open image in external software', openImage),
 | 
			
		||||
 | 
			
		||||
		// XXX STUB print this in an overlay...
 | 
			
		||||
		// '?'
 | 
			
		||||
		'/': {
 | 
			
		||||
				shift: doc('Show keyboard bindings',
 | 
			
		||||
		// XXX make this generic...
 | 
			
		||||
		H: {
 | 
			
		||||
				default: doc('Show keyboard bindings',
 | 
			
		||||
					function(){
 | 
			
		||||
						var body = $(document.body)
 | 
			
		||||
 | 
			
		||||
						// remove helo when we scroll to the top...
 | 
			
		||||
						var scroll_handler = function(){
 | 
			
		||||
							if(body.scrollTop() <= 0){
 | 
			
		||||
								$('.keyboard-help')
 | 
			
		||||
									.remove()
 | 
			
		||||
								$('.viewer')
 | 
			
		||||
									.removeClass('overlay')
 | 
			
		||||
								body
 | 
			
		||||
									.click()
 | 
			
		||||
								$(window)
 | 
			
		||||
									.off('scroll', scroll_handler)
 | 
			
		||||
							}
 | 
			
		||||
						}
 | 
			
		||||
 | 
			
		||||
						// prepare and cleanup...
 | 
			
		||||
						$('.keyboard-help').remove()
 | 
			
		||||
						$('.viewer').addClass('overlay')
 | 
			
		||||
 | 
			
		||||
						// build the help...
 | 
			
		||||
						var doc = buildKeybindingsHelpHTML(KEYBOARD_CONFIG)
 | 
			
		||||
						alert(doc.text())
 | 
			
		||||
							.css({
 | 
			
		||||
								cursor: 'hand',
 | 
			
		||||
							})
 | 
			
		||||
							.appendTo(body)
 | 
			
		||||
 | 
			
		||||
						// add exit by click...
 | 
			
		||||
						body
 | 
			
		||||
							.one('click', function(){
 | 
			
		||||
								body
 | 
			
		||||
									.animate({
 | 
			
		||||
										scrollTop: 0,
 | 
			
		||||
									}, function(){
 | 
			
		||||
										$('.keyboard-help')
 | 
			
		||||
											.remove()
 | 
			
		||||
										$('.viewer')
 | 
			
		||||
											.removeClass('overlay')
 | 
			
		||||
										$(window)
 | 
			
		||||
											.off('scroll', scroll_handler)
 | 
			
		||||
									})
 | 
			
		||||
							})
 | 
			
		||||
 | 
			
		||||
						// scroll to the help...
 | 
			
		||||
						// NOTE: need to set the scroll handler AFTER we 
 | 
			
		||||
						// 		scroll down, or it will be more of a 
 | 
			
		||||
						// 		tease than a help...
 | 
			
		||||
						var t = getRelativeVisualPosition($('.viewer'), doc).top
 | 
			
		||||
						body
 | 
			
		||||
							.animate({
 | 
			
		||||
								scrollTop: Math.abs(t) - 40,
 | 
			
		||||
							}, function(){
 | 
			
		||||
								$(window)
 | 
			
		||||
									.on('scroll', scroll_handler)
 | 
			
		||||
							})
 | 
			
		||||
					}),
 | 
			
		||||
			}
 | 
			
		||||
			},
 | 
			
		||||
		// '?'
 | 
			
		||||
		'/': { 
 | 
			
		||||
				shift: 'H', 
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user