mirror of
				https://github.com/flynx/ImageGrid.git
				synced 2025-10-29 18:30:09 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			124 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			124 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
| /**********************************************************************
 | |
| * 
 | |
| *
 | |
| *
 | |
| **********************************************************************/
 | |
| 
 | |
| //var DEBUG = DEBUG != null ? DEBUG : true
 | |
| 
 | |
| var PANEL_ROOT = '.viewer'
 | |
| 
 | |
| 
 | |
| /*********************************************************************/
 | |
| // 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($('.sub-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, .side-panel')
 | |
| 
 | |
| 			if(action == 'on'){
 | |
| 				// create the editor if this is first init...
 | |
| 				if(ed.length == 0){
 | |
| 					$('.viewer')
 | |
| 						.append(makeSidePanel('left'))
 | |
| 						.append(makeSidePanel('right'))
 | |
| 						.append(_setupPanel(openGroupedPanels([
 | |
| 									'Edit: Filters',
 | |
| 									'Edit: Snapshots'
 | |
| 								]))
 | |
| 							//.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
 | |
| 				// show the editor...
 | |
| 				} else {
 | |
| 					ed.show()
 | |
| 				}
 | |
| 
 | |
| 				// update the state...
 | |
| 				reloadControls('.current.image')
 | |
| 
 | |
| 			// hide...
 | |
| 			} else {
 | |
| 				ed.remove()
 | |
| 			}
 | |
| 		})
 | |
| 
 | |
| 
 | |
| 
 | |
| /**********************************************************************
 | |
| * Dialogs...
 | |
| */
 | |
| 
 | |
| function panelListDialog(){
 | |
| 	updateStatus('Open panel...').show()
 | |
| 
 | |
| 	cfg = {}
 | |
| 	// XXX indicate open panels...
 | |
| 	cfg['Open panel'] = Object.keys(PANELS).map(function(e){
 | |
| 		if(getPanel(e).length > 0){
 | |
| 			return e + ' (open)'
 | |
| 		}
 | |
| 		return e
 | |
| 	})
 | |
| 
 | |
| 	formDialog(null, '', 
 | |
| 			cfg,
 | |
| 			'OK', 
 | |
| 			'panelListDialog')
 | |
| 		.done(function(res){
 | |
| 
 | |
| 			var panel = res['Open panel'].split(' (open)')[0]
 | |
| 
 | |
| 			// toggle panel visibility on...
 | |
| 			// XXX 
 | |
| 
 | |
| 			openPanel(panel)
 | |
| 
 | |
| 			showStatusQ('Opening panel: '+panel+'...')
 | |
| 		})
 | |
| 		.fail(function(){
 | |
| 			showStatusQ('Opening panel: canceled.')
 | |
| 		})
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| /**********************************************************************
 | |
| * vim:set ts=4 sw=4 :                                                */
 |