| 
									
										
										
										
											2016-03-12 06:24:35 +03:00
										 |  |  | /********************************************************************** | 
					
						
							|  |  |  | *  | 
					
						
							|  |  |  | * | 
					
						
							|  |  |  | * | 
					
						
							|  |  |  | **********************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | define(function(require){ var module = {} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //var DEBUG = DEBUG != null ? DEBUG : true
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | var toggler = require('lib/toggler') | 
					
						
							|  |  |  | var actions = require('lib/actions') | 
					
						
							|  |  |  | var features = require('lib/features') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | var core = require('features/core') | 
					
						
							|  |  |  | var base = require('features/base') | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-14 18:31:10 +03:00
										 |  |  | var widgets = require('features/ui-widgets') | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-29 03:09:31 +03:00
										 |  |  | var browse = require('lib/widget/browse') | 
					
						
							|  |  |  | var overlay = require('lib/widget/overlay') | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-12 06:24:35 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*********************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-30 15:24:01 +03:00
										 |  |  | // NOTE: this uses ui-chrome-hidden workspace to set the initial state
 | 
					
						
							|  |  |  | // 		of the slideshow workspace.
 | 
					
						
							|  |  |  | //
 | 
					
						
							| 
									
										
										
										
											2016-03-29 05:17:50 +03:00
										 |  |  | // XXX would be a good idea to add provision for a timer to indicate 
 | 
					
						
							|  |  |  | // 		slideshow progress/status... 
 | 
					
						
							| 
									
										
										
										
											2016-04-14 18:37:10 +03:00
										 |  |  | // 			- make this a separate feature with a toggler
 | 
					
						
							| 
									
										
										
										
											2016-03-12 06:24:35 +03:00
										 |  |  | var SlideshowActions = actions.Actions({ | 
					
						
							|  |  |  | 	config: { | 
					
						
							| 
									
										
										
										
											2016-03-29 05:22:36 +03:00
										 |  |  | 		'slideshow-looping': 'on', | 
					
						
							|  |  |  | 		'slideshow-direction': 'forward', | 
					
						
							|  |  |  | 		'slideshow-interval': '3s', | 
					
						
							| 
									
										
										
										
											2016-04-14 16:37:58 +03:00
										 |  |  | 		'slideshow-interval-max-count': 7, | 
					
						
							| 
									
										
										
										
											2016-03-27 20:07:48 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-29 05:22:36 +03:00
										 |  |  | 		'slideshow-intervals': [ | 
					
						
							| 
									
										
										
										
											2016-03-27 20:07:48 +03:00
										 |  |  | 			'0.2s', | 
					
						
							| 
									
										
										
										
											2016-03-29 03:09:31 +03:00
										 |  |  | 			'1s', | 
					
						
							| 
									
										
										
										
											2016-03-27 20:07:48 +03:00
										 |  |  | 			'3s', | 
					
						
							|  |  |  | 			'5s', | 
					
						
							|  |  |  | 			'7s', | 
					
						
							|  |  |  | 		], | 
					
						
							| 
									
										
										
										
											2016-03-12 06:24:35 +03:00
										 |  |  | 	}, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-16 03:41:45 +03:00
										 |  |  | 	// XXX use widgets.makeNestedConfigListEditor(...)???
 | 
					
						
							| 
									
										
										
										
											2016-04-30 03:38:52 +03:00
										 |  |  | 	slideshowIntervalDialog: ['Slideshow/Slideshow interval...', | 
					
						
							|  |  |  | 		// XXX using both widgets.makeUIDialog(..) and widgets.makeConfigListEditor(..)
 | 
					
						
							|  |  |  | 		// 		is a bit too complicated...
 | 
					
						
							|  |  |  | 		widgets.makeUIDialog(function(){ | 
					
						
							| 
									
										
										
										
											2016-04-16 01:36:55 +03:00
										 |  |  | 			var that = this | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			// suspend the timer if it's not suspended outside...
 | 
					
						
							|  |  |  | 			var suspended_timer = this.__slideshouw_timer == 'suspended' | 
					
						
							|  |  |  | 			suspended_timer || this.suspendSlideshowTimer() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			var button_text = 'New...' | 
					
						
							|  |  |  | 			var o = widgets.makeConfigListEditor(that, 'slideshow-intervals', { | 
					
						
							| 
									
										
										
										
											2016-04-30 19:59:29 +03:00
										 |  |  | 					path: that.config['slideshow-interval'], | 
					
						
							| 
									
										
										
										
											2016-04-16 01:36:55 +03:00
										 |  |  | 					new_button: button_text, | 
					
						
							|  |  |  | 					length_limit: that.config['slideshow-interval-max-count'], | 
					
						
							|  |  |  | 					check: Date.str2ms, | 
					
						
							|  |  |  | 					unique: Date.str2ms, | 
					
						
							|  |  |  | 					sort: function(a, b){ | 
					
						
							|  |  |  | 						return Date.str2ms(a) - Date.str2ms(b) }, | 
					
						
							|  |  |  | 					// NOTE: this is called when adding a new value and 
 | 
					
						
							|  |  |  | 					// 		list maximum length is reached...
 | 
					
						
							|  |  |  | 					callback: function(value){ | 
					
						
							|  |  |  | 						that.config['slideshow-interval'] = value | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-30 03:38:52 +03:00
										 |  |  | 						o.parent.close() | 
					
						
							| 
									
										
										
										
											2016-04-16 01:36:55 +03:00
										 |  |  | 					}, | 
					
						
							|  |  |  | 				}) | 
					
						
							| 
									
										
										
										
											2016-04-30 03:38:52 +03:00
										 |  |  | 				.on('close', function(){ | 
					
						
							| 
									
										
										
										
											2016-04-16 01:36:55 +03:00
										 |  |  | 					// reset the timer if it was not suspended outside...
 | 
					
						
							|  |  |  | 					suspended_timer || that.resetSlideshowTimer() | 
					
						
							|  |  |  | 				}) | 
					
						
							|  |  |  | 			return o | 
					
						
							| 
									
										
										
										
											2016-04-30 03:38:52 +03:00
										 |  |  | 		})], | 
					
						
							| 
									
										
										
										
											2016-03-29 03:09:31 +03:00
										 |  |  | 	// XXX BUG: there are still problems with focus...
 | 
					
						
							|  |  |  | 	// 		to reproduce:
 | 
					
						
							|  |  |  | 	// 			click on the first option with a mouse...
 | 
					
						
							|  |  |  | 	// 		result:
 | 
					
						
							|  |  |  | 	// 			the top dialog is not focused...
 | 
					
						
							| 
									
										
										
										
											2016-04-30 03:38:52 +03:00
										 |  |  | 	slideshowDialog: ['Slideshow/Slideshow settings and start...', | 
					
						
							|  |  |  | 		widgets.makeUIDialog(function(){ | 
					
						
							| 
									
										
										
										
											2016-03-29 03:09:31 +03:00
										 |  |  | 			var that = this | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-16 01:36:55 +03:00
										 |  |  | 			// suspend the timer if it's not suspended outside...
 | 
					
						
							|  |  |  | 			var suspended_timer = this.__slideshouw_timer == 'suspended' | 
					
						
							|  |  |  | 			suspended_timer || this.suspendSlideshowTimer() | 
					
						
							| 
									
										
										
										
											2016-03-29 03:09:31 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-15 23:32:33 +03:00
										 |  |  | 			// XXX might be a good idea to make this generic...
 | 
					
						
							|  |  |  | 			var _makeTogglHandler = function(toggler){ | 
					
						
							|  |  |  | 				return function(){ | 
					
						
							|  |  |  | 					var txt = $(this).find('.text').first().text() | 
					
						
							|  |  |  | 					that[toggler]() | 
					
						
							| 
									
										
										
										
											2016-04-30 03:38:52 +03:00
										 |  |  | 					o.update() | 
					
						
							|  |  |  | 						.then(function(){ o.select(txt) }) | 
					
						
							| 
									
										
										
										
											2016-04-15 23:32:33 +03:00
										 |  |  | 					that.toggleSlideshow('?') == 'on'  | 
					
						
							| 
									
										
										
										
											2016-04-30 03:38:52 +03:00
										 |  |  | 						&& o.parent.close() | 
					
						
							| 
									
										
										
										
											2016-04-15 23:32:33 +03:00
										 |  |  | 				} | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-30 03:38:52 +03:00
										 |  |  | 			var o = browse.makeLister(null, function(path, make){ | 
					
						
							| 
									
										
										
										
											2016-04-15 23:32:33 +03:00
										 |  |  | 					make(['Interval: ',  | 
					
						
							|  |  |  | 							function(){ return that.config['slideshow-interval'] }]) | 
					
						
							|  |  |  | 						.on('open', function(){ | 
					
						
							|  |  |  | 							var txt = $(this).find('.text').first().text() | 
					
						
							| 
									
										
										
										
											2016-03-29 03:09:31 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-16 01:36:55 +03:00
										 |  |  | 							var oo = that.slideshowIntervalDialog() | 
					
						
							| 
									
										
										
										
											2016-04-30 03:38:52 +03:00
										 |  |  | 								.on('close', function(){ | 
					
						
							| 
									
										
										
										
											2016-04-16 01:36:55 +03:00
										 |  |  | 									// slideshow is running -- close directly...
 | 
					
						
							|  |  |  | 									if(that.toggleSlideshow('?') == 'on'){ | 
					
						
							| 
									
										
										
										
											2016-04-30 03:38:52 +03:00
										 |  |  | 										o.parent.close() | 
					
						
							| 
									
										
										
										
											2016-04-14 18:31:10 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 									} else { | 
					
						
							| 
									
										
										
										
											2016-04-30 03:38:52 +03:00
										 |  |  | 										o.update() | 
					
						
							| 
									
										
										
										
											2016-04-16 01:36:55 +03:00
										 |  |  | 											.then(function(){ | 
					
						
							| 
									
										
										
										
											2016-04-30 03:38:52 +03:00
										 |  |  | 												o.select(txt) | 
					
						
							| 
									
										
										
										
											2016-04-16 01:36:55 +03:00
										 |  |  | 											}) | 
					
						
							| 
									
										
										
										
											2016-04-14 18:31:10 +03:00
										 |  |  | 									} | 
					
						
							|  |  |  | 								}) | 
					
						
							| 
									
										
										
										
											2016-04-30 04:03:41 +03:00
										 |  |  | 								// update slideshow menu...
 | 
					
						
							|  |  |  | 								.open(function(){ | 
					
						
							|  |  |  | 									o.update() | 
					
						
							|  |  |  | 										.then(function(){ | 
					
						
							|  |  |  | 											o.select(txt) | 
					
						
							|  |  |  | 										}) | 
					
						
							|  |  |  | 								}) | 
					
						
							| 
									
										
										
										
											2016-04-15 23:32:33 +03:00
										 |  |  | 						}) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 					make(['Direction: ',  | 
					
						
							|  |  |  | 							function(){ return that.config['slideshow-direction'] }]) | 
					
						
							|  |  |  | 						.on('open', _makeTogglHandler('toggleSlideshowDirection')) | 
					
						
							|  |  |  | 					make(['Looping: ',  | 
					
						
							|  |  |  | 							function(){ return that.config['slideshow-looping'] }]) | 
					
						
							|  |  |  | 						.on('open', _makeTogglHandler('toggleSlideshowLooping')) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 					// Start/stop...
 | 
					
						
							|  |  |  | 					make([function(){  | 
					
						
							|  |  |  | 							return that.toggleSlideshow('?') == 'on' ? 'Stop' : 'Start' }]) | 
					
						
							|  |  |  | 						.on('open', function(){ | 
					
						
							|  |  |  | 							that.toggleSlideshow() | 
					
						
							| 
									
										
										
										
											2016-04-30 03:38:52 +03:00
										 |  |  | 							o.parent.close() | 
					
						
							| 
									
										
										
										
											2016-04-15 23:32:33 +03:00
										 |  |  | 						}) | 
					
						
							| 
									
										
										
										
											2016-04-30 19:59:29 +03:00
										 |  |  | 						.addClass('selected') | 
					
						
							| 
									
										
										
										
											2016-04-30 03:38:52 +03:00
										 |  |  | 				}) | 
					
						
							|  |  |  | 				.on('close', function(){ | 
					
						
							| 
									
										
										
										
											2016-04-16 01:36:55 +03:00
										 |  |  | 					// reset the timer if it was not suspended outside...
 | 
					
						
							|  |  |  | 					suspended_timer || that.resetSlideshowTimer() | 
					
						
							| 
									
										
										
										
											2016-03-29 03:09:31 +03:00
										 |  |  | 				}) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-30 03:38:52 +03:00
										 |  |  | 			o.dom.addClass('metadata-view tail-action') | 
					
						
							| 
									
										
										
										
											2016-04-30 04:03:41 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-29 03:09:31 +03:00
										 |  |  | 			return o | 
					
						
							| 
									
										
										
										
											2016-04-30 03:38:52 +03:00
										 |  |  | 		})], | 
					
						
							| 
									
										
										
										
											2016-03-29 03:09:31 +03:00
										 |  |  | 	 | 
					
						
							| 
									
										
										
										
											2016-04-07 05:41:06 +03:00
										 |  |  | 	toggleSlideshowDirection: ['- Slideshow/Slideshow direction', | 
					
						
							| 
									
										
										
										
											2016-03-29 05:22:36 +03:00
										 |  |  | 		core.makeConfigToggler('slideshow-direction', ['forward', 'reverse'])], | 
					
						
							| 
									
										
										
										
											2016-04-07 05:41:06 +03:00
										 |  |  | 	toggleSlideshowLooping: ['- Slideshow/Slideshow looping', | 
					
						
							| 
									
										
										
										
											2016-03-29 05:22:36 +03:00
										 |  |  | 		core.makeConfigToggler('slideshow-looping', ['on', 'off'])], | 
					
						
							| 
									
										
										
										
											2016-03-29 00:31:50 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-07 05:41:06 +03:00
										 |  |  | 	toggleSlideshow: ['Slideshow/Slideshow quick toggle', | 
					
						
							| 
									
										
										
										
											2016-03-28 21:46:05 +03:00
										 |  |  | 		toggler.CSSClassToggler( | 
					
						
							|  |  |  | 			function(){ return this.ribbons.viewer },  | 
					
						
							|  |  |  | 			'slideshow-running', | 
					
						
							|  |  |  | 			function(state){ | 
					
						
							|  |  |  | 				// start...
 | 
					
						
							|  |  |  | 				if(state == 'on'){ | 
					
						
							|  |  |  | 					var that = this | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 					// reset the timer...
 | 
					
						
							|  |  |  | 					// NOTE: this means we were in a slideshow mode so we do not
 | 
					
						
							|  |  |  | 					// 		need to prepare...
 | 
					
						
							|  |  |  | 					if(this.__slideshouw_timer){ | 
					
						
							| 
									
										
										
										
											2016-03-29 03:09:31 +03:00
										 |  |  | 						this.__slideshouw_timer != 'suspended' | 
					
						
							|  |  |  | 							&& clearInterval(this.__slideshouw_timer) | 
					
						
							| 
									
										
										
										
											2016-03-28 21:46:05 +03:00
										 |  |  | 						delete this.__slideshouw_timer | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 					// prepare for the slideshow...
 | 
					
						
							|  |  |  | 					} else { | 
					
						
							| 
									
										
										
										
											2016-05-07 00:47:52 +03:00
										 |  |  | 						// single image mode...
 | 
					
						
							|  |  |  | 						this.toggleSingleImage('on') | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-29 00:31:50 +03:00
										 |  |  | 						// save current workspace...
 | 
					
						
							| 
									
										
										
										
											2016-05-07 00:47:52 +03:00
										 |  |  | 						this.pushWorkspace() | 
					
						
							| 
									
										
										
										
											2016-03-29 00:31:50 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-29 05:17:50 +03:00
										 |  |  | 						// construct the slideshow workspace if it does
 | 
					
						
							|  |  |  | 						// not exist...
 | 
					
						
							|  |  |  | 						//
 | 
					
						
							|  |  |  | 						// NOTE: this is partially redundant with the 
 | 
					
						
							|  |  |  | 						// 		loadWorkspace.pre handler in the feature...
 | 
					
						
							| 
									
										
										
										
											2016-03-29 00:31:50 +03:00
										 |  |  | 						if(this.workspaces['slideshow'] == null){ | 
					
						
							| 
									
										
										
										
											2016-03-30 15:24:01 +03:00
										 |  |  | 							this.loadWorkspace('ui-chrome-hidden')  | 
					
						
							| 
									
										
										
										
											2016-03-29 00:31:50 +03:00
										 |  |  | 							this.saveWorkspace('slideshow')  | 
					
						
							| 
									
										
										
										
											2016-03-29 05:17:50 +03:00
										 |  |  | 						} | 
					
						
							| 
									
										
										
										
											2016-03-29 00:31:50 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 						// load the slideshow workspace...
 | 
					
						
							| 
									
										
										
										
											2016-03-29 05:17:50 +03:00
										 |  |  | 						this.loadWorkspace('slideshow') | 
					
						
							| 
									
										
										
										
											2016-03-28 21:46:05 +03:00
										 |  |  | 					} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 					// start the timer... 
 | 
					
						
							|  |  |  | 					this.__slideshouw_timer = setInterval(function(){ | 
					
						
							|  |  |  | 						var cur = that.current | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 						// next step...
 | 
					
						
							| 
									
										
										
										
											2016-03-29 05:22:36 +03:00
										 |  |  | 						that.config['slideshow-direction'] == 'forward' ? | 
					
						
							| 
									
										
										
										
											2016-03-28 21:46:05 +03:00
										 |  |  | 							that.nextImage() | 
					
						
							|  |  |  | 							: that.prevImage() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 						// we have reached the end...
 | 
					
						
							| 
									
										
										
										
											2016-03-29 03:09:31 +03:00
										 |  |  | 						if(that.current == cur){ | 
					
						
							|  |  |  | 							// loop...
 | 
					
						
							| 
									
										
										
										
											2016-03-29 05:22:36 +03:00
										 |  |  | 							if(that.config['slideshow-looping'] == 'on'){ | 
					
						
							|  |  |  | 								that.config['slideshow-direction'] == 'forward' ? | 
					
						
							| 
									
										
										
										
											2016-03-29 03:09:31 +03:00
										 |  |  | 									that.firstImage() | 
					
						
							|  |  |  | 									: that.lastImage() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 							// stop...
 | 
					
						
							|  |  |  | 							} else { | 
					
						
							|  |  |  | 								that.toggleSlideshow('off') | 
					
						
							|  |  |  | 							} | 
					
						
							| 
									
										
										
										
											2016-03-28 21:46:05 +03:00
										 |  |  | 						} | 
					
						
							| 
									
										
										
										
											2016-03-29 05:22:36 +03:00
										 |  |  | 					}, Date.str2ms(this.config['slideshow-interval'] || '3s')) | 
					
						
							| 
									
										
										
										
											2016-03-28 21:46:05 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 				// stop...
 | 
					
						
							|  |  |  | 				} else { | 
					
						
							|  |  |  | 					// stop timer...
 | 
					
						
							| 
									
										
										
										
											2016-03-29 00:31:50 +03:00
										 |  |  | 					this.__slideshouw_timer | 
					
						
							| 
									
										
										
										
											2016-03-29 03:09:31 +03:00
										 |  |  | 						&& clearInterval(this.__slideshouw_timer) | 
					
						
							| 
									
										
										
										
											2016-03-28 21:46:05 +03:00
										 |  |  | 					delete this.__slideshouw_timer | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-29 05:17:50 +03:00
										 |  |  | 					// restore the original workspace...
 | 
					
						
							| 
									
										
										
										
											2016-05-07 00:47:52 +03:00
										 |  |  | 					this.popWorkspace() | 
					
						
							| 
									
										
										
										
											2016-03-27 20:07:48 +03:00
										 |  |  | 				} | 
					
						
							| 
									
										
										
										
											2016-03-28 21:46:05 +03:00
										 |  |  | 			})], | 
					
						
							| 
									
										
										
										
											2016-03-29 03:09:31 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// NOTE: these can be used as pause and resume...
 | 
					
						
							|  |  |  | 	resetSlideshowTimer: ['- Slideshow/', | 
					
						
							| 
									
										
										
										
											2016-03-27 20:07:48 +03:00
										 |  |  | 		function(){ | 
					
						
							| 
									
										
										
										
											2016-03-28 21:46:05 +03:00
										 |  |  | 			this.__slideshouw_timer && this.toggleSlideshow('on') | 
					
						
							| 
									
										
										
										
											2016-03-27 20:07:48 +03:00
										 |  |  | 		}], | 
					
						
							| 
									
										
										
										
											2016-03-29 03:09:31 +03:00
										 |  |  | 	suspendSlideshowTimer: ['- Slideshow/', | 
					
						
							|  |  |  | 		function(){ | 
					
						
							|  |  |  | 			if(this.__slideshouw_timer){ | 
					
						
							|  |  |  | 				clearInterval(this.__slideshouw_timer) | 
					
						
							|  |  |  | 				this.__slideshouw_timer = 'suspended' | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 		}], | 
					
						
							| 
									
										
										
										
											2016-03-12 06:24:35 +03:00
										 |  |  | }) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | var Slideshow =  | 
					
						
							|  |  |  | module.Slideshow = core.ImageGridFeatures.Feature({ | 
					
						
							|  |  |  | 	title: '', | 
					
						
							|  |  |  | 	doc: '', | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	tag: 'ui-slideshow', | 
					
						
							|  |  |  | 	depends: [ | 
					
						
							|  |  |  | 		'ui', | 
					
						
							| 
									
										
										
										
											2016-04-26 04:08:02 +03:00
										 |  |  | 		'ui-single-image', | 
					
						
							| 
									
										
										
										
											2016-03-12 06:24:35 +03:00
										 |  |  | 	], | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	actions: SlideshowActions, | 
					
						
							| 
									
										
										
										
											2016-03-29 00:31:50 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	handlers: [ | 
					
						
							| 
									
										
										
										
											2016-03-29 05:17:50 +03:00
										 |  |  | 		// add a placeholder for slideshow workspace, this is to make the
 | 
					
						
							|  |  |  | 		// workspace toggler show it as one of the options...
 | 
					
						
							|  |  |  | 		//
 | 
					
						
							|  |  |  | 		// NOTE: the slideshow workspace will get populated either on 
 | 
					
						
							|  |  |  | 		// 		loading it for the first time or on first running a 
 | 
					
						
							|  |  |  | 		// 		slideshow...
 | 
					
						
							|  |  |  | 		['start', | 
					
						
							|  |  |  | 			function(){  | 
					
						
							|  |  |  | 				if(this.workspaces['slideshow'] == null){ | 
					
						
							|  |  |  | 					this.workspaces['slideshow'] = null | 
					
						
							|  |  |  | 				}  | 
					
						
							|  |  |  | 			}], | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		// build the slideshow workspace for the first time if it's not
 | 
					
						
							|  |  |  | 		// present yet (is null)...
 | 
					
						
							|  |  |  | 		['loadWorkspace.pre', | 
					
						
							|  |  |  | 			function(workspace){ | 
					
						
							|  |  |  | 				if(workspace == 'slideshow' && this.workspaces['slideshow'] == null){ | 
					
						
							|  |  |  | 					return function(){ | 
					
						
							| 
									
										
										
										
											2016-03-30 15:24:01 +03:00
										 |  |  | 						this.loadWorkspace('ui-chrome-hidden')  | 
					
						
							| 
									
										
										
										
											2016-03-29 05:17:50 +03:00
										 |  |  | 						this.saveWorkspace('slideshow')  | 
					
						
							|  |  |  | 					} | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 			}], | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		// do not leave the viewer in slideshow mode...
 | 
					
						
							| 
									
										
										
										
											2016-03-29 00:31:50 +03:00
										 |  |  | 		['stop', | 
					
						
							|  |  |  | 			function(){ this.toggleSlideshow('off') }] | 
					
						
							|  |  |  | 	], | 
					
						
							| 
									
										
										
										
											2016-03-12 06:24:35 +03:00
										 |  |  | }) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /********************************************************************** | 
					
						
							|  |  |  | * vim:set ts=4 sw=4 :                                                */ | 
					
						
							|  |  |  | return module }) |