mirror of
				https://github.com/flynx/PortableMag.git
				synced 2025-10-31 20:10:13 +00:00 
			
		
		
		
	added an editor concept...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
		
							parent
							
								
									b23bdeda49
								
							
						
					
					
						commit
						06dc49b97a
					
				
							
								
								
									
										121
									
								
								index.html
									
									
									
									
									
								
							
							
						
						
									
										121
									
								
								index.html
									
									
									
									
									
								
							| @ -59,6 +59,25 @@ | |||||||
| 	display: block; | 	display: block; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  | .current-page-indicator { | ||||||
|  | 	position: absolute; | ||||||
|  | 	box-sizing:border-box; | ||||||
|  | 	opacity: 0.8; | ||||||
|  | 
 | ||||||
|  | 	/* | ||||||
|  | 	border: solid blue 10px; | ||||||
|  | 	*/ | ||||||
|  | 
 | ||||||
|  | 	/* | ||||||
|  | 	-webkit-transition: all 0.2s ease; | ||||||
|  | 	-moz-transition: all 0.2s ease; | ||||||
|  | 	-o-transition: all 0.2s ease; | ||||||
|  | 	-ms-transition: all 0.2s ease; | ||||||
|  | 	transition: all 0.2s ease; | ||||||
|  | 	*/ | ||||||
|  | } | ||||||
|  | 
 | ||||||
| </style> | </style> | ||||||
| 
 | 
 | ||||||
| <script src="ext-lib/jquery.js"></script> | <script src="ext-lib/jquery.js"></script> | ||||||
| @ -74,11 +93,49 @@ | |||||||
| <script src="magazine.js"></script> | <script src="magazine.js"></script> | ||||||
| <script src="layout.js"></script> | <script src="layout.js"></script> | ||||||
| <script src="navigator.js"></script> | <script src="navigator.js"></script> | ||||||
|  | <script src="editor.js"></script> | ||||||
| 
 | 
 | ||||||
| <script src="platform.js"></script> | <script src="platform.js"></script> | ||||||
| 
 | 
 | ||||||
| <script> | <script> | ||||||
| 
 | 
 | ||||||
|  | function setupEditor(){ | ||||||
|  | 	var indicator = $('.current-page-indicator') | ||||||
|  | 	// remove | ||||||
|  | 	$('<button>Remove</button>') | ||||||
|  | 		.appendTo(indicator) | ||||||
|  | 		.click(function(){ | ||||||
|  | 			removePage() | ||||||
|  | 		}) | ||||||
|  | 
 | ||||||
|  | 	$('<button>Shift Left</button>') | ||||||
|  | 		.appendTo(indicator) | ||||||
|  | 		.click(function(){ | ||||||
|  | 			shiftPageLeft() | ||||||
|  | 		}) | ||||||
|  | 	$('<button>Shift Right</button>') | ||||||
|  | 		.appendTo(indicator) | ||||||
|  | 		.click(function(){ | ||||||
|  | 			shiftPageRight() | ||||||
|  | 		}) | ||||||
|  | 
 | ||||||
|  | } | ||||||
|  | function clearEditor(){ | ||||||
|  | 	$('.current-page-indicator').children().remove() | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | var toggleEditor = createCSSClassToggler( | ||||||
|  | 	'.chrome',  | ||||||
|  | 	'editor',  | ||||||
|  | 	function(action){ | ||||||
|  | 		if(action == 'on'){ | ||||||
|  | 			setupEditor() | ||||||
|  | 		} else { | ||||||
|  | 			clearEditor() | ||||||
|  | 		} | ||||||
|  | 	}) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| $(document).ready(function(){ | $(document).ready(function(){ | ||||||
| 	// general window behavior... | 	// general window behavior... | ||||||
| 	$(window) | 	$(window) | ||||||
| @ -92,30 +149,29 @@ $(document).ready(function(){ | |||||||
| 				title: 'Global', | 				title: 'Global', | ||||||
| 				doc: '', | 				doc: '', | ||||||
| 
 | 
 | ||||||
| 				36: firstPage, 											//	Home | 				Home: firstPage, | ||||||
| 				35: lastPage, 											//	End | 				End: lastPage,  | ||||||
| 				37: { | 				Left: { | ||||||
| 					'default': prevPage,								//	Left | 					default: prevPage, | ||||||
| 					'ctrl': prevArticle,								//	ctrl-Left | 					ctrl: prevArticle, | ||||||
| 				}, | 				}, | ||||||
| 				39: { | 				Right: { | ||||||
| 					'default': nextPage,								//	Right | 					default: nextPage, | ||||||
| 					'ctrl': nextArticle,								//	ctrl-Right | 					ctrl: nextArticle, | ||||||
| 				}, | 				}, | ||||||
| 				32:	{ | 				Space:	{ | ||||||
| 					'default': nextPage,								//	Space | 					default: nextPage, | ||||||
| 					'shift': prevPage									//	shift-Space | 					shift: prevPage	 | ||||||
| 				}, | 				}, | ||||||
| 				// combined navigation with actions.. | 				// combined navigation with actions.. | ||||||
| 				38: function(){togglePageView()},						//	Up | 				Up: function(){togglePageView()}, | ||||||
| 				40: function(){togglePageView()},						//	Down | 				Down: function(){togglePageView()}, | ||||||
| 
 | 
 | ||||||
| 				70: function(){											//	F | 				F: function(){ togglePageFitMode() }, | ||||||
| 					togglePageFitMode() | 				E: function(){ toggleEditor() }, | ||||||
| 				}, | 				B: { | ||||||
| 				66: { | 					default: toggleBookmark, | ||||||
| 					'default': toggleBookmark,							//	B | 					ctrl: function(){ toggleThemes() }, | ||||||
| 					'ctrl': function(){toggleThemes()},					//	ctrl-B |  | ||||||
| 				}, | 				}, | ||||||
| 			} | 			} | ||||||
| 		},  | 		},  | ||||||
| @ -144,6 +200,24 @@ $(document).ready(function(){ | |||||||
| 		.on('magazineDataLoaded', loadMagazineChrome) | 		.on('magazineDataLoaded', loadMagazineChrome) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | 		// move the page indicator... | ||||||
|  | 		// NOTE: this is to be used for page-specific toolbars etc. | ||||||
|  | 		.on('pageChanged', function(){ | ||||||
|  | 			var cur = $('.current.page') | ||||||
|  | 			var indicator = $('.current-page-indicator') | ||||||
|  | 			var shift = getElementShift($('.magazine')) | ||||||
|  | 			// XXX this is a stub... | ||||||
|  | 			// reverse the align... | ||||||
|  | 			indicator | ||||||
|  | 				.width(cur.width()) | ||||||
|  | 				.height(cur.height()) | ||||||
|  | 				.css({ | ||||||
|  | 					left: getPageInMagazineOffset(cur), | ||||||
|  | 					top: 0, | ||||||
|  | 				}) | ||||||
|  | 		}) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| 	$('.viewer').css('overflow', 'hidden') | 	$('.viewer').css('overflow', 'hidden') | ||||||
| 
 | 
 | ||||||
| 	//loadState() | 	//loadState() | ||||||
| @ -161,7 +235,6 @@ $(document).ready(function(){ | |||||||
| 	toggleThemes('dark-viewer') | 	toggleThemes('dark-viewer') | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| 	// hide the splash... | 	// hide the splash... | ||||||
| 	setTimeout(function(){ | 	setTimeout(function(){ | ||||||
| 		$('.splash').fadeOut() | 		$('.splash').fadeOut() | ||||||
| @ -183,6 +256,7 @@ $(document).ready(function(){ | |||||||
| <div class="chrome"> | <div class="chrome"> | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
| <!-- Splash screen --> | <!-- Splash screen --> | ||||||
| <div class="splash noSwipe"> | <div class="splash noSwipe"> | ||||||
| 	<!-- XXX replace this with a background-image logo... --> | 	<!-- XXX replace this with a background-image logo... --> | ||||||
| @ -853,6 +927,13 @@ $(document).ready(function(){ | |||||||
| 				</div> | 				</div> | ||||||
| 			</div> | 			</div> | ||||||
| 		</div> | 		</div> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 		<!-- current indicator - used for the editor --> | ||||||
|  | 		<div class="current-page-indicator"></div> | ||||||
|  | 		<!-- current indicator (end)--> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| 	</div> | 	</div> | ||||||
| 
 | 
 | ||||||
| </div> | </div> | ||||||
|  | |||||||
							
								
								
									
										12
									
								
								layout.js
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								layout.js
									
									
									
									
									
								
							| @ -224,6 +224,17 @@ function handleScrollRelease(evt, data){ | |||||||
| 
 | 
 | ||||||
| /********************************************************* helpers ***/ | /********************************************************* helpers ***/ | ||||||
| 
 | 
 | ||||||
|  | function getPageInMagazineOffset(page, scale){ | ||||||
|  | 	if(page == null){ | ||||||
|  | 		page = $('.current.page')  | ||||||
|  | 	} else if(typeof(page) == typeof(7)){ | ||||||
|  | 		page = $($('.page')[page]) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return page.position().left / (scale == null ? getMagazineScale() : scale)  | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| // XXX there is something here that depends on scale that is either not 
 | // XXX there is something here that depends on scale that is either not 
 | ||||||
| // 		compensated, or is over compensated...
 | // 		compensated, or is over compensated...
 | ||||||
| function getMagazineOffset(page, scale, align){ | function getMagazineOffset(page, scale, align){ | ||||||
| @ -258,6 +269,7 @@ function getMagazineOffset(page, scale, align){ | |||||||
| 	// 		the viewer...
 | 	// 		the viewer...
 | ||||||
| 	var w = mag.outerWidth(true) | 	var w = mag.outerWidth(true) | ||||||
| 	// XXX this depends on scale...
 | 	// XXX this depends on scale...
 | ||||||
|  | 	//var pos = getPageInMagazineOffset(page, scale)
 | ||||||
| 	var pos = page.position().left//*scale
 | 	var pos = page.position().left//*scale
 | ||||||
| 
 | 
 | ||||||
| 	var l = 0 | 	var l = 0 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user