/**
* @ignore
* checkbox source editor for kissy editor
* @author yiminghe@gmail.com
*/
KISSY.add("editor/plugin/checkbox-source-area", function (S, Editor) {
var Node = S.Node;
var SOURCE_MODE = Editor.Mode.SOURCE_MODE ,
WYSIWYG_MODE = Editor.Mode.WYSIWYG_MODE;
function CheckboxSourceArea(editor) {
var self = this;
self.editor = editor;
self._init();
}
S.augment(CheckboxSourceArea, {
_init: function () {
var self = this,
editor = self.editor,
statusBarEl = editor.get("statusBarEl");
self.holder = new Node("<span " +
"style='zoom:1;display:inline-block;height:22px;line-height:22px;'>" +
"<label style='vertical-align:middle;'>" +
"<input style='margin:0 5px;' type='checkbox' />" +
"编辑源代码</label>" +
"</span>")
.appendTo(statusBarEl);
var el = self.el = self.holder.one("input");
el.on("click", self._check, self);
editor.on("wysiwygMode", self._wysiwygmode, self);
editor.on("sourceMode", self._sourcemode, self);
},
_sourcemode: function () {
this.el.attr("checked", true);
},
_wysiwygmode: function () {
this.el.attr("checked", false);
},
_check: function () {
var self = this,
editor = self.editor,
el = self.el;
if (el.attr("checked")) {
editor.set("mode", SOURCE_MODE);
} else {
editor.set("mode", WYSIWYG_MODE);
}
},
destroy: function () {
this.holder.remove();
}
});
function CheckboxSourceAreaPlugin() {
}
S.augment(CheckboxSourceAreaPlugin, {
pluginRenderUI: function (editor) {
var c = new CheckboxSourceArea(editor);
editor.on("destroy", function () {
c.destroy();
});
}
});
return CheckboxSourceAreaPlugin;
}, {
requires: ["editor"]
});