| 
									
										
										
										
											2013-07-11 16:17:21 +02:00
										 |  |  | /** | 
					
						
							| 
									
										
										
										
											2013-08-30 17:35:35 +02:00
										 |  |  |  * @license | 
					
						
							|  |  |  |  * Copyright (C) 2012-2013 KO GmbH <copyright@kogmbh.com> | 
					
						
							| 
									
										
										
										
											2013-07-11 16:17:21 +02:00
										 |  |  |  * | 
					
						
							|  |  |  |  * @licstart | 
					
						
							|  |  |  |  * The JavaScript code in this page is free software: you can redistribute it | 
					
						
							|  |  |  |  * and/or modify it under the terms of the GNU Affero General Public License | 
					
						
							|  |  |  |  * (GNU AGPL) as published by the Free Software Foundation, either version 3 of | 
					
						
							|  |  |  |  * the License, or (at your option) any later version.  The code is distributed | 
					
						
							|  |  |  |  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 
					
						
							|  |  |  |  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU AGPL for more details. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * As additional permission under GNU AGPL version 3 section 7, you | 
					
						
							|  |  |  |  * may distribute non-source (e.g., minimized or compacted) forms of | 
					
						
							|  |  |  |  * that code without the copy of the GNU GPL normally required by | 
					
						
							|  |  |  |  * section 4, provided you include this license notice and a URL | 
					
						
							|  |  |  |  * through which recipients can access the Corresponding Source. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * As a special exception to the AGPL, any HTML file which merely makes function | 
					
						
							|  |  |  |  * calls to this code, and for that purpose includes it by reference shall be | 
					
						
							|  |  |  |  * deemed a separate work for copyright law purposes. In addition, the copyright | 
					
						
							|  |  |  |  * holders of this code give you permission to combine this code with free | 
					
						
							|  |  |  |  * software libraries that are released under the GNU LGPL. You may copy and | 
					
						
							|  |  |  |  * distribute such a system following the terms of the GNU AGPL for this code | 
					
						
							|  |  |  |  * and the LGPL for the libraries. If you modify this code, you may extend this | 
					
						
							|  |  |  |  * exception to your version of the code, but you are not obligated to do so. | 
					
						
							|  |  |  |  * If you do not wish to do so, delete this exception statement from your | 
					
						
							|  |  |  |  * version. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This license applies to this entire compilation. | 
					
						
							|  |  |  |  * @licend | 
					
						
							|  |  |  |  * @source: http://www.webodf.org/
 | 
					
						
							|  |  |  |  * @source: http://gitorious.org/webodf/webodf/
 | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2013-08-30 17:35:35 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-07-11 16:17:21 +02:00
										 |  |  | /*global define, require */ | 
					
						
							| 
									
										
										
										
											2013-08-30 17:35:35 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-07-11 16:17:21 +02:00
										 |  |  | define("webodf/editor/widgets/toolbarWidgets/currentStyle", | 
					
						
							|  |  |  |        ["webodf/editor/EditorSession"], | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   function (EditorSession) { | 
					
						
							|  |  |  |     "use strict"; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-09-17 17:04:22 +02:00
										 |  |  |     return function CurrentStyle(onToolDone, callback) { | 
					
						
							| 
									
										
										
										
											2013-08-30 17:35:35 +02:00
										 |  |  |         var editorSession, | 
					
						
							|  |  |  |             paragraphStyles; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         function selectParagraphStyle(info) { | 
					
						
							|  |  |  |             if (paragraphStyles) { | 
					
						
							|  |  |  |                 if (info.type === 'style') { | 
					
						
							|  |  |  |                     paragraphStyles.widget().set("value", info.styleName); | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         function setParagraphStyle(value) { | 
					
						
							|  |  |  |             if (editorSession) { | 
					
						
							|  |  |  |                 editorSession.setCurrentParagraphStyle(value); | 
					
						
							| 
									
										
										
										
											2013-09-17 17:04:22 +02:00
										 |  |  |                 onToolDone(); | 
					
						
							| 
									
										
										
										
											2013-08-30 17:35:35 +02:00
										 |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2013-07-11 16:17:21 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-30 17:35:35 +02:00
										 |  |  |         function makeWidget(callback) { | 
					
						
							|  |  |  |             require(["webodf/editor/widgets/paragraphStyles"], function (ParagraphStyles) { | 
					
						
							|  |  |  |                 var p; | 
					
						
							| 
									
										
										
										
											2013-07-11 16:17:21 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-30 17:35:35 +02:00
										 |  |  |                 p = new ParagraphStyles(function (pStyles) { | 
					
						
							|  |  |  |                     paragraphStyles = pStyles; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                     paragraphStyles.widget().onChange = setParagraphStyle; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                     paragraphStyles.setEditorSession(editorSession); | 
					
						
							|  |  |  |                     return callback(paragraphStyles.widget()); | 
					
						
							|  |  |  |                 }); | 
					
						
							| 
									
										
										
										
											2013-07-11 16:17:21 +02:00
										 |  |  |             }); | 
					
						
							| 
									
										
										
										
											2013-08-30 17:35:35 +02:00
										 |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         this.setEditorSession = function(session) { | 
					
						
							|  |  |  |             if (editorSession) { | 
					
						
							|  |  |  |                 editorSession.unsubscribe(EditorSession.signalParagraphChanged, selectParagraphStyle); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |             editorSession = session; | 
					
						
							|  |  |  |             if (paragraphStyles) { | 
					
						
							|  |  |  |                 paragraphStyles.setEditorSession(editorSession); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |             if (editorSession) { | 
					
						
							|  |  |  |                 editorSession.subscribe(EditorSession.signalParagraphChanged, selectParagraphStyle); | 
					
						
							|  |  |  |                 // TODO: selectParagraphStyle(editorSession.getCurrentParagraphStyle());
 | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         }; | 
					
						
							| 
									
										
										
										
											2013-07-11 16:17:21 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-30 17:35:35 +02:00
										 |  |  |         makeWidget(function (widget) { | 
					
						
							| 
									
										
										
										
											2013-07-11 16:17:21 +02:00
										 |  |  |             return callback(widget); | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  | }); |