/** * @ignore * Encapsulate KISSY toggle button for kissy editor * @author yiminghe@gmail.com */ KISSY.add("editor/plugin/button", function (S, Editor, Button) { /** * add button to editor * @param {String} id control id * @param {Object} cfg button config * @param {Function} ButtonType button constructor. needs to extend {@link KISSY.Button}, Defaults to {@link KISSY.Button}. * @member KISSY.Editor */ Editor.prototype.addButton = function (id, cfg, ButtonType) { if (ButtonType === undefined) { ButtonType = Button; } var self = this, prefixCls = self.get('prefixCls') + "editor-toolbar-"; if (cfg.elCls) { cfg.elCls = prefixCls + cfg.elCls; } cfg.elCls = prefixCls + 'button ' + (cfg.elCls || ""); var b = new ButtonType(S.mix({ render: self.get("toolBarEl"), content: '<span ' + 'class="' + prefixCls + 'item ' + prefixCls + id + '"></span' + '>', prefixCls: self.get('prefixCls') + "editor-", editor: self }, cfg)).render(); if (!cfg.content) { var contentEl = b.get("el").one("span"); b.on("afterContentClsChange", function (e) { contentEl[0].className = prefixCls + 'item ' + prefixCls + e.newVal; }); } if (b.get("mode") == Editor.Mode.WYSIWYG_MODE) { self.on("wysiwygMode", function () { b.set("disabled", false); }); self.on("sourceMode", function () { b.set("disabled", true); }); } self.addControl(id + "/button", b); return b; }; return Button; }, { requires: ['editor', 'button'] });