1 /**
  2  * select component for kissy editor.
  3  * @author yiminghe@gmail.com
  4  */
  5 KISSY.add("editor/plugin/menubutton/index", function (S, Editor, MenuButton) {
  6     /**
  7      * 将button ui 和点击功能分离
  8      * 按钮必须立刻显示出来,功能可以慢慢加载
  9      */
 10     Editor.prototype.addSelect = function (id, cfg, SelectType) {
 11 
 12         SelectType = SelectType || MenuButton.Select;
 13 
 14         var self = this, prefixCls = self.get("prefixCls") + "editor-";
 15 
 16         if (cfg) {
 17             cfg.editor = self;
 18             if (cfg.menu) {
 19                 cfg.menu.zIndex = Editor.baseZIndex(Editor.zIndexManager.SELECT);
 20                 cfg.menu.xclass = 'popupmenu';
 21                 S.each(cfg.menu.children, function (child) {
 22                     child.xclass = 'option';
 23                 });
 24             }
 25         }
 26 
 27         var s = new SelectType(S.mix({
 28             elAttrs:{
 29                 hideFocus:'hideFocus'
 30             },
 31             render:self.get("toolBarEl"),
 32             prefixCls:prefixCls,
 33             autoRender:true
 34         }, cfg));
 35 
 36         s.get("el").unselectable();
 37 
 38         if (cfg.mode == Editor.WYSIWYG_MODE) {
 39             self.on("wysiwygMode", function () {
 40                 s.set('disabled', false);
 41             });
 42             self.on("sourceMode", function () {
 43                 s.set('disabled', true);
 44             });
 45         }
 46         self.addControl(id + "/select", s);
 47         return s;
 48 
 49     };
 50 
 51     return MenuButton;
 52 }, {
 53     requires:['editor', 'menubutton']
 54 });