Upgrade TinyMCE to v3.4.5
[citadel.git] / webcit / tiny_mce / plugins / fullscreen / fullscreen.htm
1 <!DOCTYPE html>\r
2 <html xmlns="http://www.w3.org/1999/xhtml">\r
3 <head>\r
4         <title></title>\r
5         <meta http-equiv="X-UA-Compatible" content="IE=edge" />\r
6         <script type="text/javascript" src="../../tiny_mce.js"></script>\r
7         <script type="text/javascript">\r
8                 function patchCallback(settings, key) {\r
9                         if (settings[key])\r
10                                 settings[key] = "window.opener." + settings[key];\r
11                 }\r
12 \r
13                 var settings = {}, paSe = window.opener.tinyMCE.activeEditor.settings, oeID = window.opener.tinyMCE.activeEditor.id;\r
14 \r
15                 // Clone array\r
16                 for (var n in paSe)\r
17                         settings[n] = paSe[n];\r
18 \r
19                 // Override options for fullscreen\r
20                 for (var n in paSe.fullscreen_settings)\r
21                         settings[n] = paSe.fullscreen_settings[n];\r
22 \r
23                 // Patch callbacks, make them point to window.opener\r
24                 patchCallback(settings, 'urlconverter_callback');\r
25                 patchCallback(settings, 'insertlink_callback');\r
26                 patchCallback(settings, 'insertimage_callback');\r
27                 patchCallback(settings, 'setupcontent_callback');\r
28                 patchCallback(settings, 'save_callback');\r
29                 patchCallback(settings, 'onchange_callback');\r
30                 patchCallback(settings, 'init_instance_callback');\r
31                 patchCallback(settings, 'file_browser_callback');\r
32                 patchCallback(settings, 'cleanup_callback');\r
33                 patchCallback(settings, 'execcommand_callback');\r
34                 patchCallback(settings, 'oninit');\r
35 \r
36                 // Set options\r
37                 delete settings.id;\r
38                 settings['mode'] = 'exact';\r
39                 settings['elements'] = 'fullscreenarea';\r
40                 settings['add_unload_trigger'] = false;\r
41                 settings['ask'] = false;\r
42                 settings['document_base_url'] = window.opener.tinyMCE.activeEditor.documentBaseURI.getURI();\r
43                 settings['fullscreen_is_enabled'] = true;\r
44                 settings['fullscreen_editor_id'] = oeID;\r
45                 settings['theme_advanced_resizing'] = false;\r
46                 settings['strict_loading_mode'] = true;\r
47 \r
48                 settings.save_onsavecallback = function() {\r
49                         window.opener.tinyMCE.get(oeID).setContent(tinyMCE.get('fullscreenarea').getContent({format : 'raw'}), {format : 'raw'});\r
50                         window.opener.tinyMCE.get(oeID).execCommand('mceSave');\r
51                         window.close();\r
52                 };\r
53 \r
54                 function unloadHandler(e) {\r
55                         moveContent();\r
56                 }\r
57 \r
58                 function moveContent() {\r
59                         window.opener.tinyMCE.get(oeID).setContent(tinyMCE.activeEditor.getContent());\r
60                 }\r
61 \r
62                 function closeFullscreen() {\r
63                         moveContent();\r
64                         window.close();\r
65                 }\r
66 \r
67                 function doParentSubmit() {\r
68                         moveContent();\r
69 \r
70                         if (window.opener.tinyMCE.selectedInstance.formElement.form)\r
71                                 window.opener.tinyMCE.selectedInstance.formElement.form.submit();\r
72 \r
73                         window.close();\r
74 \r
75                         return false;\r
76                 }\r
77 \r
78                 function render() {\r
79                         var e = document.getElementById('fullscreenarea'), vp, ed, ow, oh, dom = tinymce.DOM;\r
80 \r
81                         e.value = window.opener.tinyMCE.get(oeID).getContent();\r
82 \r
83                         vp = dom.getViewPort();\r
84                         settings.width = vp.w;\r
85                         settings.height = vp.h - 15;\r
86 \r
87                         tinymce.dom.Event.add(window, 'resize', function() {\r
88                                 var vp = dom.getViewPort();\r
89 \r
90                                 tinyMCE.activeEditor.theme.resizeTo(vp.w, vp.h);\r
91                         });\r
92 \r
93                         tinyMCE.init(settings);\r
94                 }\r
95 \r
96                 // Add onunload\r
97                 tinymce.dom.Event.add(window, "beforeunload", unloadHandler);\r
98         </script>\r
99 </head>\r
100 <body style="margin:0;overflow:hidden;width:100%;height:100%" scrolling="no" scroll="no">\r
101 <form onsubmit="doParentSubmit();">\r
102 <textarea id="fullscreenarea" style="width:100%; height:100%"></textarea>\r
103 </form>\r
104 \r
105 <script type="text/javascript">\r
106         render();\r
107 </script>\r
108 \r
109 </body>\r
110 </html>\r