mirror of
				https://github.com/flynx/ImageGrid.git
				synced 2025-11-04 13:20:10 +00:00 
			
		
		
		
	added info display...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
		
							parent
							
								
									f0b489dd52
								
							
						
					
					
						commit
						cdc352dbae
					
				@ -1,5 +1,5 @@
 | 
				
			|||||||
Priority work
 | 
					Priority work
 | 
				
			||||||
	[_] 87% Preview II
 | 
						[_] 88% Preview II
 | 
				
			||||||
		[_] 43% native client
 | 
							[_] 43% native client
 | 
				
			||||||
			[_] make cache generator accept command-line args...
 | 
								[_] make cache generator accept command-line args...
 | 
				
			||||||
			[_] 0% Generic
 | 
								[_] 0% Generic
 | 
				
			||||||
@ -43,6 +43,7 @@ Priority work
 | 
				
			|||||||
		[X] load sorted images from JSON data
 | 
							[X] load sorted images from JSON data
 | 
				
			||||||
		| curently the sort is as in file...
 | 
							| curently the sort is as in file...
 | 
				
			||||||
		[X] fix image ordering...
 | 
							[X] fix image ordering...
 | 
				
			||||||
 | 
							[X] add basic image info display...
 | 
				
			||||||
		[X] 100% dynamic loading of images
 | 
							[X] 100% dynamic loading of images
 | 
				
			||||||
			[X] 100% stream on navigate
 | 
								[X] 100% stream on navigate
 | 
				
			||||||
				| parameters that affect loading:
 | 
									| parameters that affect loading:
 | 
				
			||||||
 | 
				
			|||||||
@ -160,6 +160,14 @@ $(document).ready(setup);
 | 
				
			|||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						<!-- info display -->
 | 
				
			||||||
 | 
						<div class="info">
 | 
				
			||||||
 | 
							<div class="top-left"></div>
 | 
				
			||||||
 | 
							<div class="top-right"></div>
 | 
				
			||||||
 | 
							<div class="bottom-left"></div>
 | 
				
			||||||
 | 
							<div class="bottom-right"></div>
 | 
				
			||||||
 | 
						</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	<!-- button bars -->
 | 
						<!-- button bars -->
 | 
				
			||||||
	<div class="controller-mini left">
 | 
						<div class="controller-mini left">
 | 
				
			||||||
		<div class="screen-button show-controls">*</div>
 | 
							<div class="screen-button show-controls">*</div>
 | 
				
			||||||
 | 
				
			|||||||
@ -332,6 +332,23 @@ ImageGrid.GROUP('State',
 | 
				
			|||||||
				null
 | 
									null
 | 
				
			||||||
			]
 | 
								]
 | 
				
			||||||
		}),
 | 
							}),
 | 
				
			||||||
 | 
						ImageGrid.OPTION({
 | 
				
			||||||
 | 
								name: 'NORMAL_MODE_INFO',
 | 
				
			||||||
 | 
								display: false,
 | 
				
			||||||
 | 
								value: null,
 | 
				
			||||||
 | 
								doc: 'Info display in normal mode.',
 | 
				
			||||||
 | 
								set: function(){
 | 
				
			||||||
 | 
									if(ImageGrid.toggleSingleImageMode('?') == 'off'){
 | 
				
			||||||
 | 
										ImageGrid.toggleInfo(ImageGrid.option.NORMAL_MODE_INFO)
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								get: function(){
 | 
				
			||||||
 | 
									if(ImageGrid.toggleSingleImageMode('?') == 'on'){
 | 
				
			||||||
 | 
										return ImageGrid.option.NORMAL_MODE_INFO
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									return ImageGrid.toggleInfo('?')
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}),
 | 
				
			||||||
	ImageGrid.OPTION({
 | 
						ImageGrid.OPTION({
 | 
				
			||||||
			name: 'NORMAL_MODE_BG',
 | 
								name: 'NORMAL_MODE_BG',
 | 
				
			||||||
			display: false,
 | 
								display: false,
 | 
				
			||||||
@ -1051,6 +1068,31 @@ function alignRibbons(){
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/************************************************** Info Generators **/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function currentImageNumberInRibbon(){
 | 
				
			||||||
 | 
						// XXX use image_data intead of DOM as the later can be loaded partially...
 | 
				
			||||||
 | 
						return (
 | 
				
			||||||
 | 
							($('.current.ribbon').children('.image').index($('.current.image'))+1) 
 | 
				
			||||||
 | 
							+ '/' 
 | 
				
			||||||
 | 
							+ $('.current.ribbon').children('.image').length)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function currentImagePath(){
 | 
				
			||||||
 | 
						if($('.current.image').length == 0){
 | 
				
			||||||
 | 
							return ''
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return unescape(getImageData($('.current.image').attr('id')).path)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function updateInfo(){
 | 
				
			||||||
 | 
						$('.info .bottom-right')
 | 
				
			||||||
 | 
							.text(currentImageNumberInRibbon())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						//$('.info .bottom-left')
 | 
				
			||||||
 | 
						//	.text(currentImagePath())
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/************************************************** Setup Functions **/
 | 
					/************************************************** Setup Functions **/
 | 
				
			||||||
// XXX is this a correct place for these?
 | 
					// XXX is this a correct place for these?
 | 
				
			||||||
@ -1062,6 +1104,8 @@ function setDefaultInitialState(){
 | 
				
			|||||||
	if($('.current.image').length == 0){
 | 
						if($('.current.image').length == 0){
 | 
				
			||||||
		$('.current.ribbon').children('.image').first().addClass('current')
 | 
							$('.current.ribbon').children('.image').first().addClass('current')
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						updateInfo()
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1082,19 +1126,23 @@ function setupEvents(){
 | 
				
			|||||||
			function(){
 | 
								function(){
 | 
				
			||||||
				updated = true
 | 
									updated = true
 | 
				
			||||||
			})
 | 
								})
 | 
				
			||||||
		/*
 | 
					 | 
				
			||||||
		.on([
 | 
							.on([
 | 
				
			||||||
				// navigation events...
 | 
									// navigation events...
 | 
				
			||||||
				'nextImage prevImage', 
 | 
									'nextImage prevImage', 
 | 
				
			||||||
				'nextScreenImages', 
 | 
									'nextScreenImages', 
 | 
				
			||||||
				'prevScreenImages', 
 | 
									'prevScreenImages', 
 | 
				
			||||||
				'focusAboveRibbon', 
 | 
									'focusAboveRibbon', 
 | 
				
			||||||
				'focusBelowRibbon'
 | 
									'focusBelowRibbon',
 | 
				
			||||||
 | 
									'firstImage',
 | 
				
			||||||
 | 
									'lastImage'
 | 
				
			||||||
			].join(' '), 
 | 
								].join(' '), 
 | 
				
			||||||
			function(){
 | 
								function(){
 | 
				
			||||||
 | 
									/*
 | 
				
			||||||
				updated = true
 | 
									updated = true
 | 
				
			||||||
			})
 | 
					 | 
				
			||||||
				*/
 | 
									*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									updateInfo()
 | 
				
			||||||
 | 
								})
 | 
				
			||||||
	// zooming...
 | 
						// zooming...
 | 
				
			||||||
	$(document)
 | 
						$(document)
 | 
				
			||||||
		.on([
 | 
							.on([
 | 
				
			||||||
@ -1682,6 +1730,12 @@ ImageGrid.GROUP('Mode: All',
 | 
				
			|||||||
				}
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}),
 | 
							}),
 | 
				
			||||||
 | 
						ImageGrid.ACTION({
 | 
				
			||||||
 | 
								id: 'toggleInfo',
 | 
				
			||||||
 | 
								title: 'Single additional information',
 | 
				
			||||||
 | 
								type: 'toggle',
 | 
				
			||||||
 | 
							}, 
 | 
				
			||||||
 | 
							createCSSClassToggler('.viewer', 'display-info', updateInfo)),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ImageGrid.ACTION({
 | 
						ImageGrid.ACTION({
 | 
				
			||||||
			id: 'toggleControls',
 | 
								id: 'toggleControls',
 | 
				
			||||||
@ -1799,6 +1853,7 @@ ImageGrid.GROUP('Mode: Single Image',
 | 
				
			|||||||
			function(action){
 | 
								function(action){
 | 
				
			||||||
				if(action == 'on'){
 | 
									if(action == 'on'){
 | 
				
			||||||
					ImageGrid.option.NORMAL_MODE_BG = ImageGrid.getBackgroundMode()
 | 
										ImageGrid.option.NORMAL_MODE_BG = ImageGrid.getBackgroundMode()
 | 
				
			||||||
 | 
										ImageGrid.option.NORMAL_MODE_INFO = ImageGrid.toggleInfo('?')
 | 
				
			||||||
					ImageGrid.option.ORIGINAL_FIELD_SCALE = getElementScale($('.field'))
 | 
										ImageGrid.option.ORIGINAL_FIELD_SCALE = getElementScale($('.field'))
 | 
				
			||||||
				// do this only when coming out of single image mode...
 | 
									// do this only when coming out of single image mode...
 | 
				
			||||||
				} else if(ImageGrid.toggleSingleImageMode('?') == 'on'){
 | 
									} else if(ImageGrid.toggleSingleImageMode('?') == 'on'){
 | 
				
			||||||
@ -1810,9 +1865,11 @@ ImageGrid.GROUP('Mode: Single Image',
 | 
				
			|||||||
				if(action == 'on'){
 | 
									if(action == 'on'){
 | 
				
			||||||
					ImageGrid.fitImage()
 | 
										ImageGrid.fitImage()
 | 
				
			||||||
					ImageGrid.setBackgroundMode(ImageGrid.option.SINGLE_IMAGE_MODE_BG)
 | 
										ImageGrid.setBackgroundMode(ImageGrid.option.SINGLE_IMAGE_MODE_BG)
 | 
				
			||||||
 | 
										ImageGrid.toggleInfo('off')
 | 
				
			||||||
				} else {
 | 
									} else {
 | 
				
			||||||
					ImageGrid.setContainerScale(ImageGrid.option.ORIGINAL_FIELD_SCALE)
 | 
										ImageGrid.setContainerScale(ImageGrid.option.ORIGINAL_FIELD_SCALE)
 | 
				
			||||||
					ImageGrid.setBackgroundMode(ImageGrid.option.NORMAL_MODE_BG)
 | 
										ImageGrid.setBackgroundMode(ImageGrid.option.NORMAL_MODE_BG)
 | 
				
			||||||
 | 
										ImageGrid.toggleInfo(ImageGrid.option.NORMAL_MODE_INFO)
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				clickAfterTransitionsDone()
 | 
									clickAfterTransitionsDone()
 | 
				
			||||||
			})),
 | 
								})),
 | 
				
			||||||
 | 
				
			|||||||
@ -293,6 +293,48 @@
 | 
				
			|||||||
	height: 5%;
 | 
						height: 5%;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.info {
 | 
				
			||||||
 | 
						display: none;
 | 
				
			||||||
 | 
						position: absolute;
 | 
				
			||||||
 | 
						width: 100%;
 | 
				
			||||||
 | 
						height: 100%;
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						color: gray;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						opacity: 0.0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.display-info .info {
 | 
				
			||||||
 | 
						display: block;
 | 
				
			||||||
 | 
						opacity: 0.3;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.info .top-left {
 | 
				
			||||||
 | 
						position: absolute;
 | 
				
			||||||
 | 
						top: 0px;
 | 
				
			||||||
 | 
						left: 0px;
 | 
				
			||||||
 | 
						padding-left: 50px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.info .top-right {
 | 
				
			||||||
 | 
						position: absolute;
 | 
				
			||||||
 | 
						top: 0px;
 | 
				
			||||||
 | 
						right: 0px;
 | 
				
			||||||
 | 
						padding-right: 50px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.info .bottom-left {
 | 
				
			||||||
 | 
						position: absolute;
 | 
				
			||||||
 | 
						bottom: 0px;
 | 
				
			||||||
 | 
						left: 0px;
 | 
				
			||||||
 | 
						padding-left: 50px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.info .bottom-right {
 | 
				
			||||||
 | 
						position: absolute;
 | 
				
			||||||
 | 
						bottom: 0px;
 | 
				
			||||||
 | 
						right: 0px;
 | 
				
			||||||
 | 
						padding-right: 50px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.container {
 | 
					.container {
 | 
				
			||||||
	position: relative;
 | 
						position: relative;
 | 
				
			||||||
@ -352,7 +394,7 @@
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.dark .overlay *, .dark .splash * {
 | 
					.dark .overlay *, .dark .splash *, .dark .info * {
 | 
				
			||||||
	color: silver;
 | 
						color: silver;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -382,7 +424,7 @@
 | 
				
			|||||||
	background-color: black;
 | 
						background-color: black;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.black .overlay *, .black .splash * {
 | 
					.black .overlay *, .black .splash *, .black .info * {
 | 
				
			||||||
	color: silver;
 | 
						color: silver;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -27,6 +27,7 @@ var keybindings = {
 | 
				
			|||||||
		9:		ImageGrid.toggleControls,						//	tab
 | 
							9:		ImageGrid.toggleControls,						//	tab
 | 
				
			||||||
		66:		ImageGrid.toggleBackgroundModes,				//	b
 | 
							66:		ImageGrid.toggleBackgroundModes,				//	b
 | 
				
			||||||
		73:		ImageGrid.toggleCurrentRibbonOpacity,			//	i
 | 
							73:		ImageGrid.toggleCurrentRibbonOpacity,			//	i
 | 
				
			||||||
 | 
							78:		ImageGrid.toggleInfo,							//	n
 | 
				
			||||||
		77:		toggleMarkers,									//	m
 | 
							77:		toggleMarkers,									//	m
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		87:		ImageGrid.saveState,							//	w
 | 
							87:		ImageGrid.saveState,							//	w
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user