Upgrade TinyMCE to v3.4.5
[citadel.git] / webcit / tiny_mce / themes / simple / editor_template_src.js
old mode 100755 (executable)
new mode 100644 (file)
index 73a0df3..01ce87c
@@ -1,84 +1,84 @@
 /**\r
- * $Id: editor_template_src.js 162 2007-01-03 16:16:52Z spocke $\r
+ * editor_template_src.js\r
  *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.\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
-var TinyMCE_SimpleTheme = {\r
-       // List of button ids in tile map\r
-       _buttonMap : 'bold,bullist,cleanup,italic,numlist,redo,strikethrough,underline,undo',\r
+(function() {\r
+       var DOM = tinymce.DOM;\r
+\r
+       // Tell it to load theme specific language pack(s)\r
+       tinymce.ThemeManager.requireLangPack('simple');\r
+\r
+       tinymce.create('tinymce.themes.SimpleTheme', {\r
+               init : function(ed, url) {\r
+                       var t = this, states = ['Bold', 'Italic', 'Underline', 'Strikethrough', 'InsertUnorderedList', 'InsertOrderedList'], s = ed.settings;\r
+\r
+                       t.editor = ed;\r
+                       ed.contentCSS.push(url + "/skins/" + s.skin + "/content.css");\r
 \r
-       getEditorTemplate : function() {\r
-               var html = '';\r
+                       ed.onInit.add(function() {\r
+                               ed.onNodeChange.add(function(ed, cm) {\r
+                                       tinymce.each(states, function(c) {\r
+                                               cm.get(c.toLowerCase()).setActive(ed.queryCommandState(c));\r
+                                       });\r
+                               });\r
+                       });\r
 \r
-               html += '<table class="mceEditor" border="0" cellpadding="0" cellspacing="0" width="{$width}" height="{$height}">';\r
-               html += '<tr><td align="center">';\r
-               html += '<span id="{$editor_id}">IFRAME</span>';\r
-               html += '</td></tr>';\r
-               html += '<tr><td class="mceToolbar" align="center" height="1">';\r
-               html += tinyMCE.getButtonHTML('bold', 'lang_bold_desc', '{$themeurl}/images/{$lang_bold_img}', 'Bold');\r
-               html += tinyMCE.getButtonHTML('italic', 'lang_italic_desc', '{$themeurl}/images/{$lang_italic_img}', 'Italic');\r
-               html += tinyMCE.getButtonHTML('underline', 'lang_underline_desc', '{$themeurl}/images/{$lang_underline_img}', 'Underline');\r
-               html += tinyMCE.getButtonHTML('strikethrough', 'lang_striketrough_desc', '{$themeurl}/images/strikethrough.gif', 'Strikethrough');\r
-               html += '<img src="{$themeurl}/images/separator.gif" width="2" height="20" class="mceSeparatorLine" />';\r
-               html += tinyMCE.getButtonHTML('undo', 'lang_undo_desc', '{$themeurl}/images/undo.gif', 'Undo');\r
-               html += tinyMCE.getButtonHTML('redo', 'lang_redo_desc', '{$themeurl}/images/redo.gif', 'Redo');\r
-               html += '<img src="{$themeurl}/images/separator.gif" width="2" height="20" class="mceSeparatorLine" />';\r
-               html += tinyMCE.getButtonHTML('cleanup', 'lang_cleanup_desc', '{$themeurl}/images/cleanup.gif', 'mceCleanup');\r
-               html += '<img src="{$themeurl}/images/separator.gif" width="2" height="20" class="mceSeparatorLine" />';\r
-               html += tinyMCE.getButtonHTML('bullist', 'lang_bullist_desc', '{$themeurl}/images/bullist.gif', 'InsertUnorderedList');\r
-               html += tinyMCE.getButtonHTML('numlist', 'lang_numlist_desc', '{$themeurl}/images/numlist.gif', 'InsertOrderedList');\r
-               html += '</td></tr></table>';\r
+                       DOM.loadCSS((s.editor_css ? ed.documentBaseURI.toAbsolute(s.editor_css) : '') || url + "/skins/" + s.skin + "/ui.css");\r
+               },\r
 \r
-               return {\r
-                       delta_width : 0,\r
-                       delta_height : 20,\r
-                       html : html\r
-               };\r
-       },\r
+               renderUI : function(o) {\r
+                       var t = this, n = o.targetNode, ic, tb, ed = t.editor, cf = ed.controlManager, sc;\r
 \r
-       handleNodeChange : function(editor_id, node) {\r
-               // Reset old states\r
-               tinyMCE.switchClass(editor_id + '_bold', 'mceButtonNormal');\r
-               tinyMCE.switchClass(editor_id + '_italic', 'mceButtonNormal');\r
-               tinyMCE.switchClass(editor_id + '_underline', 'mceButtonNormal');\r
-               tinyMCE.switchClass(editor_id + '_strikethrough', 'mceButtonNormal');\r
-               tinyMCE.switchClass(editor_id + '_bullist', 'mceButtonNormal');\r
-               tinyMCE.switchClass(editor_id + '_numlist', 'mceButtonNormal');\r
+                       n = DOM.insertAfter(DOM.create('span', {id : ed.id + '_container', 'class' : 'mceEditor ' + ed.settings.skin + 'SimpleSkin'}), n);\r
+                       n = sc = DOM.add(n, 'table', {cellPadding : 0, cellSpacing : 0, 'class' : 'mceLayout'});\r
+                       n = tb = DOM.add(n, 'tbody');\r
 \r
-               // Handle elements\r
-               do {\r
-                       switch (node.nodeName.toLowerCase()) {\r
-                               case "b":\r
-                               case "strong":\r
-                                       tinyMCE.switchClass(editor_id + '_bold', 'mceButtonSelected');\r
-                               break;\r
+                       // Create iframe container\r
+                       n = DOM.add(tb, 'tr');\r
+                       n = ic = DOM.add(DOM.add(n, 'td'), 'div', {'class' : 'mceIframeContainer'});\r
 \r
-                               case "i":\r
-                               case "em":\r
-                                       tinyMCE.switchClass(editor_id + '_italic', 'mceButtonSelected');\r
-                               break;\r
+                       // Create toolbar container\r
+                       n = DOM.add(DOM.add(tb, 'tr', {'class' : 'last'}), 'td', {'class' : 'mceToolbar mceLast', align : 'center'});\r
 \r
-                               case "u":\r
-                                       tinyMCE.switchClass(editor_id + '_underline', 'mceButtonSelected');\r
-                               break;\r
+                       // Create toolbar\r
+                       tb = t.toolbar = cf.createToolbar("tools1");\r
+                       tb.add(cf.createButton('bold', {title : 'simple.bold_desc', cmd : 'Bold'}));\r
+                       tb.add(cf.createButton('italic', {title : 'simple.italic_desc', cmd : 'Italic'}));\r
+                       tb.add(cf.createButton('underline', {title : 'simple.underline_desc', cmd : 'Underline'}));\r
+                       tb.add(cf.createButton('strikethrough', {title : 'simple.striketrough_desc', cmd : 'Strikethrough'}));\r
+                       tb.add(cf.createSeparator());\r
+                       tb.add(cf.createButton('undo', {title : 'simple.undo_desc', cmd : 'Undo'}));\r
+                       tb.add(cf.createButton('redo', {title : 'simple.redo_desc', cmd : 'Redo'}));\r
+                       tb.add(cf.createSeparator());\r
+                       tb.add(cf.createButton('cleanup', {title : 'simple.cleanup_desc', cmd : 'mceCleanup'}));\r
+                       tb.add(cf.createSeparator());\r
+                       tb.add(cf.createButton('insertunorderedlist', {title : 'simple.bullist_desc', cmd : 'InsertUnorderedList'}));\r
+                       tb.add(cf.createButton('insertorderedlist', {title : 'simple.numlist_desc', cmd : 'InsertOrderedList'}));\r
+                       tb.renderTo(n);\r
 \r
-                               case "strike":\r
-                                       tinyMCE.switchClass(editor_id + '_strikethrough', 'mceButtonSelected');\r
-                               break;\r
-                               \r
-                               case "ul":\r
-                                       tinyMCE.switchClass(editor_id + '_bullist', 'mceButtonSelected');\r
-                               break;\r
+                       return {\r
+                               iframeContainer : ic,\r
+                               editorContainer : ed.id + '_container',\r
+                               sizeContainer : sc,\r
+                               deltaHeight : -20\r
+                       };\r
+               },\r
 \r
-                               case "ol":\r
-                                       tinyMCE.switchClass(editor_id + '_numlist', 'mceButtonSelected');\r
-                               break;\r
+               getInfo : function() {\r
+                       return {\r
+                               longname : 'Simple theme',\r
+                               author : 'Moxiecode Systems AB',\r
+                               authorurl : 'http://tinymce.moxiecode.com',\r
+                               version : tinymce.majorVersion + "." + tinymce.minorVersion\r
                        }\r
-               } while ((node = node.parentNode) != null);\r
-       }\r
-};\r
+               }\r
+       });\r
 \r
-tinyMCE.addTheme("simple", TinyMCE_SimpleTheme);\r
-tinyMCE.addButtonMap(TinyMCE_SimpleTheme._buttonMap);\r
+       tinymce.ThemeManager.add('simple', tinymce.themes.SimpleTheme);\r
+})();
\ No newline at end of file