mirror of
				https://github.com/flynx/ImageGrid.git
				synced 2025-10-31 11:20:09 +00:00 
			
		
		
		
	added relative ribbon alignment, needs more testing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
		
							parent
							
								
									b2a8cc71fc
								
							
						
					
					
						commit
						7c140244be
					
				| @ -60,12 +60,14 @@ function getScreenWidthInImages(){ | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| // NOTE: in strict mode this will return null if no image is before the
 | ||||
| // 		target...
 | ||||
| // NOTE: if this can't find an image if an order less, it will return 
 | ||||
| // 		the first image in ribbon...
 | ||||
| // NOTE: this might return an empty target if the ribbon is empty...
 | ||||
| // XXX need tp make this loadable ribbon compatible -- the target may 
 | ||||
| // 		not be loaded...
 | ||||
| function getImageBefore(image, ribbon, mode){ | ||||
| function getImageBefore(image, ribbon, mode, strict){ | ||||
| 	if(mode == null){ | ||||
| 		mode = NAV_DEFAULT | ||||
| 	} | ||||
| @ -76,7 +78,7 @@ function getImageBefore(image, ribbon, mode){ | ||||
| 	var images = $(ribbon).find('.image').filter(mode) | ||||
| 	// XXX need to process/format this correctly...
 | ||||
| 	var order = JSON.parse(image.attr('order')) | ||||
| 	var prev = images.first() | ||||
| 	var prev = strict ? [] : images.first() | ||||
| 
 | ||||
| 	images.each(function(){ | ||||
| 		if(order < $(this).attr('order')){ | ||||
| @ -293,9 +295,9 @@ function centerImage(image, mode){ | ||||
| 
 | ||||
| 	// zero out top/left if set to anything other than a specific number...
 | ||||
| 	var t = parseFloat(ribbons.css('top')) | ||||
| 	t = t ? t : 0 | ||||
| 	t = !isNaN(t) ? t : 0 | ||||
| 	var l = parseFloat(ribbons.css('left')) | ||||
| 	l = l ? l : 0 | ||||
| 	l = !isNaN(l) ? l : 0 | ||||
| 
 | ||||
| 
 | ||||
| 	var res = { | ||||
| @ -312,6 +314,51 @@ function centerImage(image, mode){ | ||||
| 	return image | ||||
| } | ||||
| 
 | ||||
| // XXX this produces errors in marked-only mode...
 | ||||
| function centerRibbon(ribbon, mode){ | ||||
| 	if(mode == null){ | ||||
| 		//mode = 'css'
 | ||||
| 		mode = 'animate' | ||||
| 	} | ||||
| 	ribbon = $(ribbon) | ||||
| 	var cur = $('.current.image') | ||||
| 
 | ||||
| 	// if centering current ribbon, just center the image...
 | ||||
| 	if(ribbon.find('.current.image').length > 0){ | ||||
| 		centerImage(cur, mode) | ||||
| 		return ribbon | ||||
| 	} | ||||
| 
 | ||||
| 	var scale = getElementScale($('.ribbon-set')) | ||||
| 	var target = getImageBefore(null, ribbon, null, true) | ||||
| 
 | ||||
| 	if(target.length > 0){ | ||||
| 		var dl = getRelativeVisualPosition(target, $('.current.image')).left/scale | ||||
| 		var l = parseFloat(ribbon.css('left')) | ||||
| 		l = !isNaN(l) ? l : 0 | ||||
| 		l = {left: l + dl - ($('.image').outerWidth()/2)} | ||||
| 
 | ||||
| 	} else { | ||||
| 		var dl = getRelativeVisualPosition(ribbon.find('.image').filter(NAV_DEFAULT).first(), $('.current.image')).left/scale | ||||
| 		var l = parseFloat(ribbon.css('left')) | ||||
| 		l = !isNaN(l) ? l : 0 | ||||
| 		l = {left: l + dl + ($('.image').outerWidth()/2)} | ||||
| 	} | ||||
| 
 | ||||
| 	if(mode == 'animate'){ | ||||
| 		ribbon.stop().animate(l, 100, 'linear') | ||||
| 	} else { | ||||
| 		ribbons.css(res) | ||||
| 	} | ||||
| 
 | ||||
| 	return ribbon | ||||
| } | ||||
| 
 | ||||
| // a shorthand...
 | ||||
| function centerRibbons(mode){ | ||||
| 	return $('.ribbon').each(function(){ centerRibbon($(this), mode) }) | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| /********************************************************************** | ||||
|  | ||||
| @ -32,10 +32,12 @@ var KEYBOARD_CONFIG = { | ||||
| 							_STEPS_LEFT_TO_CHANGE_DIRECTION = 2 | ||||
| 					} | ||||
| 					prevImage()  | ||||
| 					centerRibbons() | ||||
| 				}, | ||||
| 				// XXX prevScreenImages...
 | ||||
| 				ctrl: function(){  | ||||
| 					prevScreenImages() | ||||
| 					centerRibbons() | ||||
| 				}, | ||||
| 				// XXX need to keep shift explicitly clear for editor...
 | ||||
| 				/* | ||||
| @ -61,10 +63,12 @@ var KEYBOARD_CONFIG = { | ||||
| 							_STEPS_LEFT_TO_CHANGE_DIRECTION = 2 | ||||
| 					} | ||||
| 					nextImage()  | ||||
| 					centerRibbons() | ||||
| 				}, | ||||
| 				// XXX nextScreenImages...
 | ||||
| 				ctrl: function(){  | ||||
| 					nextScreenImages() | ||||
| 					centerRibbons() | ||||
| 				}, | ||||
| 				// XXX need to keep shift explicitly clear for editor...
 | ||||
| 				/* | ||||
| @ -95,22 +99,42 @@ var KEYBOARD_CONFIG = { | ||||
| 		*/ | ||||
| 		Home: function(){ | ||||
| 				firstImage() | ||||
| 				centerRibbons() | ||||
| 			}, | ||||
| 		End: function(){ | ||||
| 				lastImage() | ||||
| 				centerRibbons() | ||||
| 			}, | ||||
| 
 | ||||
| 
 | ||||
| 		// combined navigation and editor actions...
 | ||||
| 		Up: { | ||||
| 				default: function(){ prevRibbon(DIRECTION) }, | ||||
| 				shift: function(){ shiftImageUp(null, DIRECTION) }, | ||||
| 				'ctrl+shift': function(){ shiftImageUpNewRibbon(null, DIRECTION) }, | ||||
| 				default: function(){  | ||||
| 					prevRibbon(DIRECTION)  | ||||
| 					centerRibbons() | ||||
| 				}, | ||||
| 				shift: function(){  | ||||
| 					shiftImageUp(null, DIRECTION)  | ||||
| 					centerRibbons() | ||||
| 				}, | ||||
| 				'ctrl+shift': function(){ | ||||
| 					shiftImageUpNewRibbon(null, DIRECTION)  | ||||
| 					centerRibbons() | ||||
| 				}, | ||||
| 			}, | ||||
| 		Down: { | ||||
| 				default: function(){ nextRibbon(DIRECTION) }, | ||||
| 				shift: function(){ shiftImageDown(null, DIRECTION) }, | ||||
| 				'ctrl+shift': function(){ shiftImageDownNewRibbon(null, DIRECTION) }, | ||||
| 				default: function(){ | ||||
| 					nextRibbon(DIRECTION)  | ||||
| 					centerRibbons() | ||||
| 				}, | ||||
| 				shift: function(){ | ||||
| 					shiftImageDown(null, DIRECTION)  | ||||
| 					centerRibbons() | ||||
| 				}, | ||||
| 				'ctrl+shift': function(){ | ||||
| 					shiftImageDownNewRibbon(null, DIRECTION)  | ||||
| 					centerRibbons() | ||||
| 				}, | ||||
| 			}, | ||||
| 
 | ||||
| 
 | ||||
| @ -130,7 +154,10 @@ var KEYBOARD_CONFIG = { | ||||
| 
 | ||||
| 		// XXX this is temporary, combine this with single image mode...
 | ||||
| 		// XXX this should only work on single image mode...
 | ||||
| 		F: function(){ toggleImageProportions() }, | ||||
| 		F: function(){  | ||||
| 				toggleImageProportions()  | ||||
| 				centerRibbons() | ||||
| 			}, | ||||
| 
 | ||||
| 
 | ||||
| 		// marking...
 | ||||
| @ -196,7 +223,10 @@ var KEYBOARD_CONFIG = { | ||||
| 				ctrl: function(){ removeImageMarks('ribbon') }, | ||||
| 				shift: function(){ removeImageMarks('all') }, | ||||
| 			}, | ||||
| 		F2: function(){ toggleMarkedOnlyView() }, | ||||
| 		F2: function(){  | ||||
| 				toggleMarkedOnlyView()  | ||||
| 				centerRibbons() | ||||
| 			}, | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user