| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | /********************************************************************** | 
					
						
							|  |  |  | *  | 
					
						
							|  |  |  | * | 
					
						
							|  |  |  | * | 
					
						
							|  |  |  | **********************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-07-21 18:21:36 +04:00
										 |  |  | define(function(require){ var module = {} | 
					
						
							|  |  |  | console.log('>>> actions') | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-10-04 03:29:23 +04:00
										 |  |  | var actions = require('lib/actions') | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-08-01 19:20:11 +04:00
										 |  |  | /*********************************************************************/ | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // Action variables:
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // 	SCREEN_IMAGES		
 | 
					
						
							|  |  |  | // 		- screen width in images
 | 
					
						
							|  |  |  | // 		- resolves to number
 | 
					
						
							|  |  |  | // 		
 | 
					
						
							|  |  |  | // 	CURRENT				
 | 
					
						
							|  |  |  | // 		- current image
 | 
					
						
							|  |  |  | // 		- resolves to gid
 | 
					
						
							|  |  |  | // 		- support basic math: +/-
 | 
					
						
							|  |  |  | // 			e.g. CURRENT + 1	~ next image
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // 	RIBBON				
 | 
					
						
							|  |  |  | // 		- current ribbon
 | 
					
						
							|  |  |  | // 		- resolves to gid
 | 
					
						
							|  |  |  | // 		- support basic math: +/-
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // 	BASE				
 | 
					
						
							|  |  |  | // 		- base ribbon
 | 
					
						
							|  |  |  | // 		- resolves to gid
 | 
					
						
							|  |  |  | // 		- support basic math: +/-
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // XXX add action variables!!!
 | 
					
						
							|  |  |  | var SCREEN_IMAGES = null | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-10-06 02:25:57 +04:00
										 |  |  | /*********************************************************************/ | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // Contexts:
 | 
					
						
							|  |  |  | // 				Browser		node		node-webkit		PhoneGap
 | 
					
						
							|  |  |  | // 	UI			o			x			o				o
 | 
					
						
							|  |  |  | // 	navigation	o			o			o				o
 | 
					
						
							|  |  |  | // 	edit		o, x		o			o, x			o, x
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // The basic inheritance tree should be something like this:
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | //							.
 | 
					
						
							|  |  |  | //					   Data . UI
 | 
					
						
							|  |  |  | //							.
 | 
					
						
							|  |  |  | //		MetaActions			.
 | 
					
						
							|  |  |  | //			^				.
 | 
					
						
							|  |  |  | //			|				.
 | 
					
						
							|  |  |  | //			|				.
 | 
					
						
							|  |  |  | // 		BaseActions			.
 | 
					
						
							|  |  |  | // 			^	^			.
 | 
					
						
							|  |  |  | // 			|	+------------------ UIActions
 | 
					
						
							|  |  |  | //			|				.			^
 | 
					
						
							|  |  |  | //			|				.			|	   -+
 | 
					
						
							|  |  |  | // 		BaseMarks			.			|		|
 | 
					
						
							|  |  |  | // 				^			.			|		| Plugin
 | 
					
						
							|  |  |  | // 				+ - - - - -???- - - UIMarks		|
 | 
					
						
							|  |  |  | //							.				   -+
 | 
					
						
							|  |  |  | //							.
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // XXX Need a way to combine a set of features into a view, preferably
 | 
					
						
							|  |  |  | // 		in runtime...
 | 
					
						
							|  |  |  | // 			- turn feature on/off at load
 | 
					
						
							|  |  |  | // 			- turn feature on/off in runtime
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // XXX without multiple inheritance we'll need to either:
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // 		- build inheritance chains per task -- i.e. connect blocks in 
 | 
					
						
							|  |  |  | // 		  a custom way depending on use
 | 
					
						
							|  |  |  | // 		  ...this makes it really hard to have two systems configured 
 | 
					
						
							|  |  |  | // 		  differently in the same runtime...
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // 		- build a multiple inheritance system
 | 
					
						
							|  |  |  | // 		  ...without the ability to hook into attribute access this is
 | 
					
						
							|  |  |  | // 		  not trivial... (feasibility unknown)
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // 		- make the UI versions by copying methods from the base and UI 
 | 
					
						
							|  |  |  | // 		  into a single object, effectively creating two separate chains
 | 
					
						
							|  |  |  | // 		  ...auto-creating proxy methods is another way to implement this
 | 
					
						
							|  |  |  | // 		  	+ solves the problem
 | 
					
						
							|  |  |  | // 		  	- not dynamic -- changes have to be applied to both chains 
 | 
					
						
							|  |  |  | // 		  	  rather than to a single relevant object.
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // 		- encapsulate and proxy?
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // 		- static mixin...
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // XXX actions should be split by feature
 | 
					
						
							|  |  |  | //	 		- basic navigation
 | 
					
						
							|  |  |  | // 			- basic editing
 | 
					
						
							|  |  |  | // 			- cropping
 | 
					
						
							|  |  |  | // 			- marking
 | 
					
						
							|  |  |  | // 			- bookmarking
 | 
					
						
							|  |  |  | // 			- tagging
 | 
					
						
							|  |  |  | // 			- image editing
 | 
					
						
							|  |  |  | // 			- url loading
 | 
					
						
							|  |  |  | // 			- url saving
 | 
					
						
							|  |  |  | // 			- fs loading
 | 
					
						
							|  |  |  | // 			- fs saving
 | 
					
						
							|  |  |  | // 		Features can be organized into contexts:
 | 
					
						
							|  |  |  | // 			- browser viewer
 | 
					
						
							|  |  |  | // 			- browser editor
 | 
					
						
							|  |  |  | // 			- app viewer
 | 
					
						
							|  |  |  | // 			- app editor
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // XXX each plugin must be split into:
 | 
					
						
							|  |  |  | // 		- UI view -- display only
 | 
					
						
							|  |  |  | // 		- UI controls -- edit
 | 
					
						
							|  |  |  | // 		- base actions -- usable without UI
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // XXX think about life-cycle...
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | //
 | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | /*********************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-10-06 02:25:57 +04:00
										 |  |  | var BaseActions = | 
					
						
							|  |  |  | module.BaseActions = actions.Actions({ | 
					
						
							|  |  |  | 	// state props...
 | 
					
						
							|  |  |  | 	get current(){ | 
					
						
							|  |  |  | 		// XXX should this return a gid or a jQuery-like object for 
 | 
					
						
							|  |  |  | 		// 		image-oriented operations???
 | 
					
						
							|  |  |  | 		return this.data.current | 
					
						
							|  |  |  | 	}, | 
					
						
							|  |  |  | 	set current(val){ | 
					
						
							|  |  |  | 		return this.focusImage(val) | 
					
						
							|  |  |  | 	}, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// life-cycle / state...
 | 
					
						
							|  |  |  | 	// XXX
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// actions...
 | 
					
						
							|  |  |  | 	focusImage: '', | 
					
						
							|  |  |  | 	focusRibbon: '', | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | 	// basic editing...
 | 
					
						
							|  |  |  | 	shiftImageUp:  | 
					
						
							|  |  |  | 		'Shift image to the ribbon above current, creating one if ' | 
					
						
							|  |  |  | 		+'it does not exist', | 
					
						
							|  |  |  | 	shiftImageDown: | 
					
						
							|  |  |  | 		'Shift image to the ribbon below current, creating one if ' | 
					
						
							|  |  |  | 		+'it does not exist', | 
					
						
							| 
									
										
										
										
											2014-09-02 02:55:03 +04:00
										 |  |  | 	shiftImageUpNewRibbon:  | 
					
						
							|  |  |  | 		'Create an empty ribbon above and shift the image into it', | 
					
						
							|  |  |  | 	shiftImageDownNewRibbon: | 
					
						
							|  |  |  | 		'Create an empty ribbon below and shift the image into it', | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | 	shiftImageLeft: 'Shift image to the left', | 
					
						
							|  |  |  | 	shiftImageRight: 'Shift image to the right', | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-09-02 02:55:03 +04:00
										 |  |  | 	shiftRibbonUp: 'Move current ribbon one position up', | 
					
						
							|  |  |  | 	shiftRibbonDown: 'Move current ribbon one position down', | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-09-02 02:55:03 +04:00
										 |  |  | 	// XXX
 | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | 	sortImages: '', | 
					
						
							|  |  |  | 	reverseImages: '', | 
					
						
							|  |  |  | 	setAsBaseRibbon: '', | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// image adjustments...
 | 
					
						
							|  |  |  | 	rotateCW: '', | 
					
						
							|  |  |  | 	rotateCCW: '', | 
					
						
							|  |  |  | 	flipVertical: '', | 
					
						
							|  |  |  | 	flipHorizontal: '', | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// external editors/viewers...
 | 
					
						
							|  |  |  | 	systemOpen: '', | 
					
						
							|  |  |  | 	openWith: '', | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// crop...
 | 
					
						
							|  |  |  | 	// XXX should this be here on in a crop pligin...
 | 
					
						
							|  |  |  | 	cropRibbon: '', | 
					
						
							| 
									
										
										
										
											2014-08-01 19:20:11 +04:00
										 |  |  | 	cropCurrentRibbonAndAbove: '', | 
					
						
							|  |  |  | 	uncropView: 'Uncrop to previous crop', | 
					
						
							|  |  |  | 	uncropAll: 'Uncrop to base', | 
					
						
							|  |  |  | 	uncropViewAndKeepOrder:  | 
					
						
							|  |  |  | 		'Uncrop view to previous crop, keeping current image order', | 
					
						
							|  |  |  | 	uncropAllAndKeepOrder: 'Uncrop to base, keeping current image order', | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	openURL: '', | 
					
						
							| 
									
										
										
										
											2014-07-20 02:35:24 +04:00
										 |  |  | 	//openHistory: '',
 | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-08-01 19:20:11 +04:00
										 |  |  | 	saveOrder: '', | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | 	saveState: '', | 
					
						
							|  |  |  | 	exportImages: '', | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	exit: '', | 
					
						
							| 
									
										
										
										
											2014-10-06 02:25:57 +04:00
										 |  |  | }) | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*********************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-10-06 02:25:57 +04:00
										 |  |  | var UIActions = | 
					
						
							|  |  |  | module.UIActions = { | 
					
						
							| 
									
										
										
										
											2014-08-01 19:20:11 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | 	// basic navigation...
 | 
					
						
							| 
									
										
										
										
											2014-08-01 19:20:11 +04:00
										 |  |  | 	nextImage: ['Focus next image in current ribbon', { focusImage: 'next' }], | 
					
						
							|  |  |  | 	nextRibbon: ['Focus next ribbon (down)', { focusRibbon: 'next' }], | 
					
						
							|  |  |  | 	// XXX actions vars...
 | 
					
						
							|  |  |  | 	nextScreen: ['Show next screen width of images', { focusImage: SCREEN_IMAGES }], | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-08-01 19:20:11 +04:00
										 |  |  | 	prevImage: ['Focus previous image in current ribbon', { focusImage: 'prev' }], | 
					
						
							|  |  |  | 	prevRibbon: ['Focus previous ribbon (up)', { focusRibbon: 'prev' }], | 
					
						
							|  |  |  | 	// XXX actions vars...
 | 
					
						
							|  |  |  | 	prevScreen: ['Show previous screen width of images', { focusImage: -SCREEN_IMAGES }], | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	firstImage: 'Focus first image in ribbon', | 
					
						
							|  |  |  | 	lastImage: 'Focus last image in ribbon', | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// zooming...
 | 
					
						
							|  |  |  | 	zoomIn: 'Zoom in', | 
					
						
							|  |  |  | 	zoomOut: 'Zoom out', | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// NOTE: if this gets a count argument it will fit count images, 
 | 
					
						
							|  |  |  | 	// 		default is one.
 | 
					
						
							|  |  |  | 	fitImage: 'Fit image', | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// XXX should these be relative to screen rather than actual image counts?
 | 
					
						
							|  |  |  | 	fitTwo: ['Fit two images', { fitImage: 2, }], | 
					
						
							|  |  |  | 	fitThree: ['Fit three images', { fitImage: 3, }], | 
					
						
							|  |  |  | 	fitFour: ['Fit four images', { fitImage: 4, }], | 
					
						
							|  |  |  | 	fitFive: ['Fit five images', { fitImage: 5, }], | 
					
						
							|  |  |  | 	fitSix: ['Fit six images', { fitImage: 6, }], | 
					
						
							|  |  |  | 	fitSeven: ['Fit seven images', { fitImage: 7, }], | 
					
						
							|  |  |  | 	fitEight: ['Fit eight images', { fitImage: 8, }], | 
					
						
							|  |  |  | 	fitNine: ['Fit nine images', { fitImage: 9, }], | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	fitMax: 'Fit the maximum number of images', | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	fitSmall: 'Show small image', | 
					
						
							|  |  |  | 	fitNormal: 'Show normal image', | 
					
						
							|  |  |  | 	fitScreen: 'Fit image to screen', | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// modes...
 | 
					
						
							| 
									
										
										
										
											2014-07-27 03:08:59 +04:00
										 |  |  | 	singleImageMode: 'Show single image', | 
					
						
							|  |  |  | 	ribbonMode: 'Show ribbon', | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-07-27 03:08:59 +04:00
										 |  |  | 	toggleTheme: 'Toggle themes', | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-07-20 02:35:24 +04:00
										 |  |  | 	// dialogs...
 | 
					
						
							| 
									
										
										
										
											2014-08-01 19:20:11 +04:00
										 |  |  | 	// XXX move to specific blocks...
 | 
					
						
							| 
									
										
										
										
											2014-07-27 03:08:59 +04:00
										 |  |  | 	openDialog: 'Show open diaolg', | 
					
						
							|  |  |  | 	historyDialog: 'Show history dialog', | 
					
						
							|  |  |  | 	cropDialog: 'Show crop dialog', | 
					
						
							| 
									
										
										
										
											2014-07-20 02:35:24 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | 	// panels...
 | 
					
						
							|  |  |  | 	togglePanels: '', | 
					
						
							|  |  |  | 	showInfoPanel: '', | 
					
						
							|  |  |  | 	showTagsPanel: '', | 
					
						
							|  |  |  | 	showSearchPanel: '', | 
					
						
							|  |  |  | 	showQuickEditPanel: '', | 
					
						
							|  |  |  | 	showStatesPanel: '', | 
					
						
							| 
									
										
										
										
											2014-07-20 02:35:24 +04:00
										 |  |  | 	showHistoryPanel: '', | 
					
						
							|  |  |  | 	showDirBrowserPanel: '', | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | 	showConsolePanel: '', | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// developer actions...
 | 
					
						
							| 
									
										
										
										
											2014-07-27 03:08:59 +04:00
										 |  |  | 	showConsole: 'Show application console', | 
					
						
							|  |  |  | 	showDevTools: 'Show development tools', | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*********************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Marks actions...
 | 
					
						
							|  |  |  | // XXX move to marks.js
 | 
					
						
							| 
									
										
										
										
											2014-07-21 18:21:36 +04:00
										 |  |  | var MARKS_ACTIONS = | 
					
						
							|  |  |  | module.MARKS_ACTIONS = { | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | 	toggleMark: '', | 
					
						
							|  |  |  | 	toggleMarkBlock: '', | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-07-27 03:08:59 +04:00
										 |  |  | 	nextMarked: '', | 
					
						
							|  |  |  | 	prevMarked: '', | 
					
						
							|  |  |  | 	nextMarkedInRibbon: '', | 
					
						
							|  |  |  | 	prevMarkedInRibbon: '', | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | 	markRibbon: '', | 
					
						
							|  |  |  | 	unmarkRibbon: '', | 
					
						
							|  |  |  | 	markAll: '', | 
					
						
							|  |  |  | 	unmarkAll: '', | 
					
						
							|  |  |  | 	invertMarkedRibbon: '', | 
					
						
							|  |  |  | 	invertMarkedAll: '', | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-08-01 19:20:11 +04:00
										 |  |  | 	// placing...
 | 
					
						
							|  |  |  | 	placeMarkedAfter: 'Place marked images after current', | 
					
						
							|  |  |  | 	placeMarkedBefore: 'Place marked images before current', | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | 	shiftMarkedUp: '', | 
					
						
							|  |  |  | 	shiftMarkedDown: '', | 
					
						
							|  |  |  | 	shiftMarkedLeft: '', | 
					
						
							|  |  |  | 	shiftMarkedRight: '', | 
					
						
							| 
									
										
										
										
											2014-07-27 03:08:59 +04:00
										 |  |  | 	shiftMarkedUpNewRibbon: '', | 
					
						
							|  |  |  | 	shiftMarkedDownNewRibbon: '', | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	cropMarkedImages: '', | 
					
						
							|  |  |  | 	cropMarkedImagesToSingleRibbon: '', | 
					
						
							| 
									
										
										
										
											2014-08-01 19:20:11 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	markDialog: 'Show mark dialog', | 
					
						
							|  |  |  | 	placeMarkedDialog: '', | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*********************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Bookmarks actions...
 | 
					
						
							|  |  |  | // XXX move to bookmarks.js
 | 
					
						
							| 
									
										
										
										
											2014-07-21 18:21:36 +04:00
										 |  |  | var BOOKMARKS_ACTIONS = | 
					
						
							|  |  |  | module.BOOKMARKS_ACTIONS = { | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | 	toggleBookmark: 'Toggle image bookmark', | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-07-27 03:08:59 +04:00
										 |  |  | 	nextBookmarked: '', | 
					
						
							|  |  |  | 	prevBookmarked: '', | 
					
						
							|  |  |  | 	nextBookmarkedInRibbon: '', | 
					
						
							|  |  |  | 	prevBookmarkedInRibbon: '', | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | 	bookmarkMarked: 'Bookmark marked images', | 
					
						
							|  |  |  | 	unbookmarkMarked: 'Remove bookmarks from marked images', | 
					
						
							|  |  |  | 	toggleBookmarkMarked: 'Toggle bookmarks on marked images', | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	clearRibbonBookmarks: 'Remove bookmarks in ribbon', | 
					
						
							|  |  |  | 	clearAllBookmarks: 'Clear all bookmarks', | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	cropBookmarkedImages: '', | 
					
						
							|  |  |  | 	cropBookmarkedImagesToSingleRibbon: '', | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /********************************************************************** | 
					
						
							|  |  |  | * vim:set ts=4 sw=4 :                                                */ | 
					
						
							| 
									
										
										
										
											2014-07-21 18:21:36 +04:00
										 |  |  | return module }) |