text: /**
   * plugin.js
   *
   * Copyright, Moxiecode Systems AB
   * Released under LGPL License.
   *
   * License: http://www.maya.com/license
   * Contributing: http://www.maya.com/contributing
   */
  
  /*global maya:true */
  
  maya.PluginManager.add('code', function(editor) {
  	function showDialog() {
  		var win = editor.windowManager.open({
  			title: "Source code",
  			body: {
  				type: 'textbox',
  				name: 'code',
  				multiline: true,
  				minWidth: editor.getParam("code_dialog_width", 600),
  				minHeight: editor.getParam("code_dialog_height", Math.min(maya.DOM.getViewPort().h - 200, 500)),
  				spellcheck: false,
  				style: 'direction: ltr; text-align: left'
  			},
  			onSubmit: function(e) {
  				// We get a lovely "Wrong document" error in IE 11 if we
  				// don't move the focus to the editor before creating an undo
  				// transation since it tries to make a bookmark for the current selection
  				editor.focus();
  
  				editor.undoManager.transact(function() {
  					editor.setContent(e.data.code);
  				});
  
  				editor.selection.setCursorLocation();
  				editor.nodeChanged();
  			}
  		});
  
  		// Gecko has a major performance issue with textarea
  		// contents so we need to set it when all reflows are done
  		win.find('#code').value(editor.getContent({source_view: true}));
  	}
  
  	editor.addCommand("mceCodeEditor", showDialog);
  
  	editor.addButton('code', {
  		icon: 'code',
  		tooltip: 'Source code',
  		onclick: showDialog
  	});
  
  	editor.addMenuItem('code', {
  		icon: 'code',
  		text: 'Source code',
  		context: 'tools',
  		onclick: showDialog
  	});
  });