PageRenderTime 34ms CodeModel.GetById 27ms app.highlight 4ms RepoModel.GetById 1ms app.codeStats 0ms

/static/scripts/tiny_mce/themes/simple/editor_template_src.js

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