* Re-added tiny_mce, this time with the language packs
[citadel.git] / webcit / tiny_mce / themes / simple / editor_template_src.js
1 /**\r
2  * $Id: editor_template_src.js 920 2008-09-09 14:05:33Z spocke $\r
3  *\r
4  * This file is meant to showcase how to create a simple theme. The advanced\r
5  * theme is more suitable for production use.\r
6  *\r
7  * @author Moxiecode\r
8  * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
9  */\r
10 \r
11 (function() {\r
12         var DOM = tinymce.DOM;\r
13 \r
14         // Tell it to load theme specific language pack(s)\r
15         tinymce.ThemeManager.requireLangPack('simple');\r
16 \r
17         tinymce.create('tinymce.themes.SimpleTheme', {\r
18                 init : function(ed, url) {\r
19                         var t = this, states = ['Bold', 'Italic', 'Underline', 'Strikethrough', 'InsertUnorderedList', 'InsertOrderedList'], s = ed.settings;\r
20 \r
21                         t.editor = ed;\r
22 \r
23                         ed.onInit.add(function() {\r
24                                 ed.onNodeChange.add(function(ed, cm) {\r
25                                         tinymce.each(states, function(c) {\r
26                                                 cm.get(c.toLowerCase()).setActive(ed.queryCommandState(c));\r
27                                         });\r
28                                 });\r
29 \r
30                                 ed.dom.loadCSS(url + "/skins/" + s.skin + "/content.css");\r
31                         });\r
32 \r
33                         DOM.loadCSS((s.editor_css ? ed.documentBaseURI.toAbsolute(s.editor_css) : '') || url + "/skins/" + s.skin + "/ui.css");\r
34                 },\r
35 \r
36                 renderUI : function(o) {\r
37                         var t = this, n = o.targetNode, ic, tb, ed = t.editor, cf = ed.controlManager, sc;\r
38 \r
39                         n = DOM.insertAfter(DOM.create('span', {id : ed.id + '_container', 'class' : 'mceEditor ' + ed.settings.skin + 'SimpleSkin'}), n);\r
40                         n = sc = DOM.add(n, 'table', {cellPadding : 0, cellSpacing : 0, 'class' : 'mceLayout'});\r
41                         n = tb = DOM.add(n, 'tbody');\r
42 \r
43                         // Create iframe container\r
44                         n = DOM.add(tb, 'tr');\r
45                         n = ic = DOM.add(DOM.add(n, 'td'), 'div', {'class' : 'mceIframeContainer'});\r
46 \r
47                         // Create toolbar container\r
48                         n = DOM.add(DOM.add(tb, 'tr', {'class' : 'last'}), 'td', {'class' : 'mceToolbar mceLast', align : 'center'});\r
49 \r
50                         // Create toolbar\r
51                         tb = t.toolbar = cf.createToolbar("tools1");\r
52                         tb.add(cf.createButton('bold', {title : 'simple.bold_desc', cmd : 'Bold'}));\r
53                         tb.add(cf.createButton('italic', {title : 'simple.italic_desc', cmd : 'Italic'}));\r
54                         tb.add(cf.createButton('underline', {title : 'simple.underline_desc', cmd : 'Underline'}));\r
55                         tb.add(cf.createButton('strikethrough', {title : 'simple.striketrough_desc', cmd : 'Strikethrough'}));\r
56                         tb.add(cf.createSeparator());\r
57                         tb.add(cf.createButton('undo', {title : 'simple.undo_desc', cmd : 'Undo'}));\r
58                         tb.add(cf.createButton('redo', {title : 'simple.redo_desc', cmd : 'Redo'}));\r
59                         tb.add(cf.createSeparator());\r
60                         tb.add(cf.createButton('cleanup', {title : 'simple.cleanup_desc', cmd : 'mceCleanup'}));\r
61                         tb.add(cf.createSeparator());\r
62                         tb.add(cf.createButton('insertunorderedlist', {title : 'simple.bullist_desc', cmd : 'InsertUnorderedList'}));\r
63                         tb.add(cf.createButton('insertorderedlist', {title : 'simple.numlist_desc', cmd : 'InsertOrderedList'}));\r
64                         tb.renderTo(n);\r
65 \r
66                         return {\r
67                                 iframeContainer : ic,\r
68                                 editorContainer : ed.id + '_container',\r
69                                 sizeContainer : sc,\r
70                                 deltaHeight : -20\r
71                         };\r
72                 },\r
73 \r
74                 getInfo : function() {\r
75                         return {\r
76                                 longname : 'Simple theme',\r
77                                 author : 'Moxiecode Systems AB',\r
78                                 authorurl : 'http://tinymce.moxiecode.com',\r
79                                 version : tinymce.majorVersion + "." + tinymce.minorVersion\r
80                         }\r
81                 }\r
82         });\r
83 \r
84         tinymce.ThemeManager.add('simple', tinymce.themes.SimpleTheme);\r
85 })();