src/pyams_skin/resources/js/ext/tinymce/dev/plugins/fullscreen/plugin.js
changeset 69 a361355b55c7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/pyams_skin/resources/js/ext/tinymce/dev/plugins/fullscreen/plugin.js	Wed Jun 17 10:00:10 2015 +0200
@@ -0,0 +1,136 @@
+/**
+ * plugin.js
+ *
+ * Copyright, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://www.tinymce.com/license
+ * Contributing: http://www.tinymce.com/contributing
+ */
+
+/*global tinymce:true */
+
+tinymce.PluginManager.add('fullscreen', function(editor) {
+	var fullscreenState = false, DOM = tinymce.DOM, iframeWidth, iframeHeight, resizeHandler;
+	var containerWidth, containerHeight;
+
+	if (editor.settings.inline) {
+		return;
+	}
+
+	function getWindowSize() {
+		var w, h, win = window, doc = document;
+		var body = doc.body;
+
+		// Old IE
+		if (body.offsetWidth) {
+			w = body.offsetWidth;
+			h = body.offsetHeight;
+		}
+
+		// Modern browsers
+		if (win.innerWidth && win.innerHeight) {
+			w = win.innerWidth;
+			h = win.innerHeight;
+		}
+
+		return {w: w, h: h};
+	}
+
+	function toggleFullscreen() {
+		var body = document.body, documentElement = document.documentElement, editorContainerStyle;
+		var editorContainer, iframe, iframeStyle;
+
+		function resize() {
+			DOM.setStyle(iframe, 'height', getWindowSize().h - (editorContainer.clientHeight - iframe.clientHeight));
+		}
+
+		fullscreenState = !fullscreenState;
+
+		editorContainer = editor.getContainer();
+		editorContainerStyle = editorContainer.style;
+		iframe = editor.getContentAreaContainer().firstChild;
+		iframeStyle = iframe.style;
+
+		if (fullscreenState) {
+			iframeWidth = iframeStyle.width;
+			iframeHeight = iframeStyle.height;
+			iframeStyle.width = iframeStyle.height = '100%';
+			containerWidth = editorContainerStyle.width;
+			containerHeight = editorContainerStyle.height;
+			editorContainerStyle.width = editorContainerStyle.height = '';
+
+			DOM.addClass(body, 'mce-fullscreen');
+			DOM.addClass(documentElement, 'mce-fullscreen');
+			DOM.addClass(editorContainer, 'mce-fullscreen');
+
+			DOM.bind(window, 'resize', resize);
+			resize();
+			resizeHandler = resize;
+		} else {
+			iframeStyle.width = iframeWidth;
+			iframeStyle.height = iframeHeight;
+
+			if (containerWidth) {
+				editorContainerStyle.width = containerWidth;
+			}
+
+			if (containerHeight) {
+				editorContainerStyle.height = containerHeight;
+			}
+
+			DOM.removeClass(body, 'mce-fullscreen');
+			DOM.removeClass(documentElement, 'mce-fullscreen');
+			DOM.removeClass(editorContainer, 'mce-fullscreen');
+			DOM.unbind(window, 'resize', resizeHandler);
+		}
+
+		editor.fire('FullscreenStateChanged', {state: fullscreenState});
+	}
+
+	editor.on('init', function() {
+		editor.addShortcut('Meta+Alt+F', '', toggleFullscreen);
+	});
+
+	editor.on('remove', function() {
+		if (resizeHandler) {
+			DOM.unbind(window, 'resize', resizeHandler);
+		}
+	});
+
+	editor.addCommand('mceFullScreen', toggleFullscreen);
+
+	editor.addMenuItem('fullscreen', {
+		text: 'Fullscreen',
+		shortcut: 'Meta+Alt+F',
+		selectable: true,
+		onClick: toggleFullscreen,
+		onPostRender: function() {
+			var self = this;
+
+			editor.on('FullscreenStateChanged', function(e) {
+				self.active(e.state);
+			});
+		},
+		context: 'view'
+	});
+
+	editor.addButton('fullscreen', {
+		tooltip: 'Fullscreen',
+		shortcut: 'Meta+Alt+F',
+		onClick: toggleFullscreen,
+		onPostRender: function() {
+			var self = this;
+
+			editor.on('FullscreenStateChanged', function(e) {
+				self.active(e.state);
+			});
+		}
+	});
+
+	return {
+		isFullscreen: function() {
+			return fullscreenState;
+		}
+	};
+});
\ No newline at end of file