mirror of
				https://github.com/flynx/ImageGrid.git
				synced 2025-11-04 05:10:07 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			87 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
/**********************************************************************
 | 
						|
* 
 | 
						|
*
 | 
						|
*
 | 
						|
**********************************************************************/
 | 
						|
 | 
						|
//var DEBUG = DEBUG != null ? DEBUG : true
 | 
						|
 | 
						|
 | 
						|
/*********************************************************************/
 | 
						|
// XXX these are a bit too general... 
 | 
						|
// 		...the editor needs to speak in terms of the editor only...
 | 
						|
// 		right now the editor mode depends on presence of panels and not
 | 
						|
// 		the editor itself...
 | 
						|
 | 
						|
function _setupPanel(panel){
 | 
						|
	return panel
 | 
						|
		.on('panelClosing', function(){
 | 
						|
			if($('.panel').length <= 1){
 | 
						|
				// XXX when not only the editor is using the panels, this
 | 
						|
				// 		is not the correct way to go...
 | 
						|
				toggleEditor('off')
 | 
						|
			}
 | 
						|
		})
 | 
						|
		.on('newPanel', function(evt, panel){
 | 
						|
			_setupPanel(panel)
 | 
						|
		})
 | 
						|
		// make clicks on unfocusable elements remove focus...
 | 
						|
		.click(function(){
 | 
						|
			if(event.target != $('.panel :focus')[0]){
 | 
						|
				$('.panel :focus').blur()
 | 
						|
			}
 | 
						|
		})
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
var toggleEditor = createCSSClassToggler(
 | 
						|
		'.viewer', 
 | 
						|
		'.editor-visible',
 | 
						|
		function(action){
 | 
						|
			// XXX when not only the editor is using the panels, this
 | 
						|
			// 		is not the correct way to go...
 | 
						|
			var ed = $('.panel')
 | 
						|
 | 
						|
			if(action == 'on'){
 | 
						|
				// create the editor if this is first init...
 | 
						|
				if(ed.length == 0){
 | 
						|
					$('.viewer')
 | 
						|
						.append(_setupPanel(makeEditorControls('.current.image'))
 | 
						|
							//.draggable('option', 'snap', '.viewer')
 | 
						|
							.css({
 | 
						|
								// prevent the editor from moving under 
 | 
						|
								// the title bar, that will prevent us from
 | 
						|
								// ever moving it away or closing it...
 | 
						|
								'margin-top': '20px',
 | 
						|
								top: '50px',
 | 
						|
								left: '5px',
 | 
						|
							}))
 | 
						|
							// XXX add handlers for saving data to images...
 | 
						|
							// XXX
 | 
						|
						// setup the event to update the editor...
 | 
						|
						.on('focusingImage', function(){
 | 
						|
							if(toggleEditor('?') == 'on'){
 | 
						|
								// XXX save previous settings if changes...
 | 
						|
								// XXX
 | 
						|
								reloadControls('.current.image')
 | 
						|
							}
 | 
						|
						})
 | 
						|
				// show the editor...
 | 
						|
				} else {
 | 
						|
					ed.show()
 | 
						|
				}
 | 
						|
 | 
						|
				// update the state...
 | 
						|
				reloadControls('.current.image')
 | 
						|
 | 
						|
			// hide...
 | 
						|
			} else {
 | 
						|
				ed.remove()
 | 
						|
			}
 | 
						|
		})
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/**********************************************************************
 | 
						|
* vim:set ts=4 sw=4 :                                                */
 |