-/* Import plugin specific language pack */
-tinyMCE.importPluginLanguagePack('fullscreen', 'en,sv,cs,fr_ca,zh_cn');
-
-function TinyMCE_fullscreen_getInfo() {
- return {
- longname : 'Fullscreen',
- author : 'Moxiecode Systems',
- authorurl : 'http://tinymce.moxiecode.com',
- infourl : 'http://tinymce.moxiecode.com/tinymce/docs/plugin_fullscreen.html',
- version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
- };
-};
-
-function TinyMCE_fullscreen_getControlHTML(control_name) {
- switch (control_name) {
- case "fullscreen":
- return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceFullScreen\');" onmousedown="return false;"><img id="{$editor_id}_fullscreen" src="{$pluginurl}/images/fullscreen.gif" title="{$lang_fullscreen_desc}" width="20" height="20" class="mceButton' + (tinyMCE.getParam('fullscreen_is_enabled') ? 'Selected' : 'Normal') + '" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');" /></a>';
- }
-
- return "";
-}
-
-function TinyMCE_fullscreen_execCommand(editor_id, element, command, user_interface, value) {
- // Handle commands
- switch (command) {
- case "mceFullScreen":
- if (tinyMCE.getParam('fullscreen_is_enabled')) {
- // In fullscreen mode
- window.opener.tinyMCE.execInstanceCommand(tinyMCE.getParam('fullscreen_editor_id'), 'mceSetContent', false, tinyMCE.getContent(editor_id));
- top.close();
- } else {
- tinyMCE.setWindowArg('editor_id', editor_id);
-
- var win = window.open(tinyMCE.baseURL + "/plugins/fullscreen/fullscreen.htm", "mceFullScreenPopup", "fullscreen=yes,menubar=no,toolbar=no,scrollbars=no,resizable=yes,left=0,top=0,width=" + screen.availWidth + ",height=" + screen.availHeight);
- }
-
- return true;
- }
-
- // Pass to next handler in chain
- return false;
-}
-
-
+/**\r
+ * editor_plugin_src.js\r
+ *\r
+ * Copyright 2009, Moxiecode Systems AB\r
+ * Released under LGPL License.\r
+ *\r
+ * License: http://tinymce.moxiecode.com/license\r
+ * Contributing: http://tinymce.moxiecode.com/contributing\r
+ */\r
+\r
+(function() {\r
+ var DOM = tinymce.DOM;\r
+\r
+ tinymce.create('tinymce.plugins.FullScreenPlugin', {\r
+ init : function(ed, url) {\r
+ var t = this, s = {}, vp, posCss;\r
+\r
+ t.editor = ed;\r
+\r
+ // Register commands\r
+ ed.addCommand('mceFullScreen', function() {\r
+ var win, de = DOM.doc.documentElement;\r
+\r
+ if (ed.getParam('fullscreen_is_enabled')) {\r
+ if (ed.getParam('fullscreen_new_window'))\r
+ closeFullscreen(); // Call to close in new window\r
+ else {\r
+ DOM.win.setTimeout(function() {\r
+ tinymce.dom.Event.remove(DOM.win, 'resize', t.resizeFunc);\r
+ tinyMCE.get(ed.getParam('fullscreen_editor_id')).setContent(ed.getContent());\r
+ tinyMCE.remove(ed);\r
+ DOM.remove('mce_fullscreen_container');\r
+ de.style.overflow = ed.getParam('fullscreen_html_overflow');\r
+ DOM.setStyle(DOM.doc.body, 'overflow', ed.getParam('fullscreen_overflow'));\r
+ DOM.win.scrollTo(ed.getParam('fullscreen_scrollx'), ed.getParam('fullscreen_scrolly'));\r
+ tinyMCE.settings = tinyMCE.oldSettings; // Restore old settings\r
+ }, 10);\r
+ }\r
+\r
+ return;\r
+ }\r
+\r
+ if (ed.getParam('fullscreen_new_window')) {\r
+ win = DOM.win.open(url + "/fullscreen.htm", "mceFullScreenPopup", "fullscreen=yes,menubar=no,toolbar=no,scrollbars=no,resizable=yes,left=0,top=0,width=" + screen.availWidth + ",height=" + screen.availHeight);\r
+ try {\r
+ win.resizeTo(screen.availWidth, screen.availHeight);\r
+ } catch (e) {\r
+ // Ignore\r
+ }\r
+ } else {\r
+ tinyMCE.oldSettings = tinyMCE.settings; // Store old settings\r
+ s.fullscreen_overflow = DOM.getStyle(DOM.doc.body, 'overflow', 1) || 'auto';\r
+ s.fullscreen_html_overflow = DOM.getStyle(de, 'overflow', 1);\r
+ vp = DOM.getViewPort();\r
+ s.fullscreen_scrollx = vp.x;\r
+ s.fullscreen_scrolly = vp.y;\r
+\r
+ // Fixes an Opera bug where the scrollbars doesn't reappear\r
+ if (tinymce.isOpera && s.fullscreen_overflow == 'visible')\r
+ s.fullscreen_overflow = 'auto';\r
+\r
+ // Fixes an IE bug where horizontal scrollbars would appear\r
+ if (tinymce.isIE && s.fullscreen_overflow == 'scroll')\r
+ s.fullscreen_overflow = 'auto';\r
+\r
+ // Fixes an IE bug where the scrollbars doesn't reappear\r
+ if (tinymce.isIE && (s.fullscreen_html_overflow == 'visible' || s.fullscreen_html_overflow == 'scroll'))\r
+ s.fullscreen_html_overflow = 'auto'; \r
+\r
+ if (s.fullscreen_overflow == '0px')\r
+ s.fullscreen_overflow = '';\r
+\r
+ DOM.setStyle(DOM.doc.body, 'overflow', 'hidden');\r
+ de.style.overflow = 'hidden'; //Fix for IE6/7\r
+ vp = DOM.getViewPort();\r
+ DOM.win.scrollTo(0, 0);\r
+\r
+ if (tinymce.isIE)\r
+ vp.h -= 1;\r
+\r
+ // Use fixed position if it exists\r
+ if (tinymce.isIE6)\r
+ posCss = 'absolute;top:' + vp.y;\r
+ else\r
+ posCss = 'fixed;top:0';\r
+\r
+ n = DOM.add(DOM.doc.body, 'div', {\r
+ id : 'mce_fullscreen_container', \r
+ style : 'position:' + posCss + ';left:0;width:' + vp.w + 'px;height:' + vp.h + 'px;z-index:200000;'});\r
+ DOM.add(n, 'div', {id : 'mce_fullscreen'});\r
+\r
+ tinymce.each(ed.settings, function(v, n) {\r
+ s[n] = v;\r
+ });\r
+\r
+ s.id = 'mce_fullscreen';\r
+ s.width = n.clientWidth;\r
+ s.height = n.clientHeight - 15;\r
+ s.fullscreen_is_enabled = true;\r
+ s.fullscreen_editor_id = ed.id;\r
+ s.theme_advanced_resizing = false;\r
+ s.save_onsavecallback = function() {\r
+ ed.setContent(tinyMCE.get(s.id).getContent());\r
+ ed.execCommand('mceSave');\r
+ };\r
+\r
+ tinymce.each(ed.getParam('fullscreen_settings'), function(v, k) {\r
+ s[k] = v;\r
+ });\r
+\r
+ if (s.theme_advanced_toolbar_location === 'external')\r
+ s.theme_advanced_toolbar_location = 'top';\r
+\r
+ t.fullscreenEditor = new tinymce.Editor('mce_fullscreen', s);\r
+ t.fullscreenEditor.onInit.add(function() {\r
+ t.fullscreenEditor.setContent(ed.getContent());\r
+ t.fullscreenEditor.focus();\r
+ });\r
+\r
+ t.fullscreenEditor.render();\r
+\r
+ t.fullscreenElement = new tinymce.dom.Element('mce_fullscreen_container');\r
+ t.fullscreenElement.update();\r
+ //document.body.overflow = 'hidden';\r
+\r
+ t.resizeFunc = tinymce.dom.Event.add(DOM.win, 'resize', function() {\r
+ var vp = tinymce.DOM.getViewPort(), fed = t.fullscreenEditor, outerSize, innerSize;\r
+\r
+ // Get outer/inner size to get a delta size that can be used to calc the new iframe size\r
+ outerSize = fed.dom.getSize(fed.getContainer().firstChild);\r
+ innerSize = fed.dom.getSize(fed.getContainer().getElementsByTagName('iframe')[0]);\r
+\r
+ fed.theme.resizeTo(vp.w - outerSize.w + innerSize.w, vp.h - outerSize.h + innerSize.h);\r
+ });\r
+ }\r
+ });\r
+\r
+ // Register buttons\r
+ ed.addButton('fullscreen', {title : 'fullscreen.desc', cmd : 'mceFullScreen'});\r
+\r
+ ed.onNodeChange.add(function(ed, cm) {\r
+ cm.setActive('fullscreen', ed.getParam('fullscreen_is_enabled'));\r
+ });\r
+ },\r
+\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'Fullscreen',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullscreen',\r
+ version : tinymce.majorVersion + "." + tinymce.minorVersion\r
+ };\r
+ }\r
+ });\r
+\r
+ // Register plugin\r
+ tinymce.PluginManager.add('fullscreen', tinymce.plugins.FullScreenPlugin);\r
+})();
\ No newline at end of file