📄 button.js
字号:
this.el.remove();
},
// private
autoWidth : function(){
if(this.el){
this.el.setWidth("auto");
if(Ext.isIE7 && Ext.isStrict){
var ib = this.el.child('button');
if(ib && ib.getWidth() > 20){
ib.clip();
ib.setWidth(Ext.util.TextMetrics.measure(ib, this.text).width+ib.getFrameWidth('lr'));
}
}
if(this.minWidth){
if(this.hidden){
this.el.beginMeasure();
}
if(this.el.getWidth() < this.minWidth){
this.el.setWidth(this.minWidth);
}
if(this.hidden){
this.el.endMeasure();
}
}
}
},
/**
* Assigns this button's click handler
* @param {Function} handler The function to call when the button is clicked
* @param {Object} scope (optional) Scope for the function passed in
*/
setHandler : function(handler, scope){
this.handler = handler;
this.scope = scope;
},
/**
* Sets this button's text
* @param {String} text The button text
*/
setText : function(text){
this.text = text;
if(this.el){
this.el.child("td.x-btn-center button.x-btn-text").update(text);
}
this.autoWidth();
},
/**
* Gets the text for this button
* @return {String} The button text
*/
getText : function(){
return this.text;
},
/**
* Show this button
*/
show: function(){
this.hidden = false;
if(this.el){
this[this.hideParent? 'parentEl' : 'el'].setStyle("display", "");
}
},
/**
* Hide this button
*/
hide: function(){
this.hidden = true;
if(this.el){
this[this.hideParent? 'parentEl' : 'el'].setStyle("display", "none");
}
},
/**
* Convenience function for boolean show/hide
* @param {Boolean} visible True to show, false to hide
*/
setVisible: function(visible){
if(visible) {
this.show();
}else{
this.hide();
}
},
/**
* If a state it passed, it becomes the pressed state otherwise the current state is toggled.
* @param {Boolean} state (optional) Force a particular state
*/
toggle : function(state){
state = state === undefined ? !this.pressed : state;
if(state != this.pressed){
if(state){
this.el.addClass("x-btn-pressed");
this.pressed = true;
this.fireEvent("toggle", this, true);
}else{
this.el.removeClass("x-btn-pressed");
this.pressed = false;
this.fireEvent("toggle", this, false);
}
if(this.toggleHandler){
this.toggleHandler.call(this.scope || this, this, state);
}
}
},
/**
* Focus the button
*/
focus : function(){
this.el.child('button:first').focus();
},
/**
* Disable this button
*/
disable : function(){
if(this.el){
this.el.addClass("x-btn-disabled");
}
this.disabled = true;
},
/**
* Enable this button
*/
enable : function(){
if(this.el){
this.el.removeClass("x-btn-disabled");
}
this.disabled = false;
},
/**
* Convenience function for boolean enable/disable
* @param {Boolean} enabled True to enable, false to disable
*/
setDisabled : function(v){
this[v !== true ? "enable" : "disable"]();
},
// private
onClick : function(e){
if(e){
e.preventDefault();
}
if(e.button != 0){
return;
}
if(!this.disabled){
if(this.enableToggle){
this.toggle();
}
if(this.menu && !this.menu.isVisible()){
this.menu.show(this.el, this.menuAlign);
}
this.fireEvent("click", this, e);
if(this.handler){
this.el.removeClass("x-btn-over");
this.handler.call(this.scope || this, this, e);
}
}
},
// private
onMouseOver : function(e){
if(!this.disabled){
this.el.addClass("x-btn-over");
this.fireEvent('mouseover', this, e);
}
},
// private
onMouseOut : function(e){
if(!e.within(this.el, true)){
this.el.removeClass("x-btn-over");
this.fireEvent('mouseout', this, e);
}
},
// private
onFocus : function(e){
if(!this.disabled){
this.el.addClass("x-btn-focus");
}
},
// private
onBlur : function(e){
this.el.removeClass("x-btn-focus");
},
// private
onMouseDown : function(e){
if(!this.disabled && e.button == 0){
this.el.addClass("x-btn-click");
Ext.get(document).on('mouseup', this.onMouseUp, this);
}
},
// private
onMouseUp : function(e){
if(e.button == 0){
this.el.removeClass("x-btn-click");
Ext.get(document).un('mouseup', this.onMouseUp, this);
}
},
// private
onMenuShow : function(e){
this.el.addClass("x-btn-menu-active");
},
// private
onMenuHide : function(e){
this.el.removeClass("x-btn-menu-active");
}
});
// Private utility class used by Button
Ext.ButtonToggleMgr = function(){
var groups = {};
function toggleGroup(btn, state){
if(state){
var g = groups[btn.toggleGroup];
for(var i = 0, l = g.length; i < l; i++){
if(g[i] != btn){
g[i].toggle(false);
}
}
}
}
return {
register : function(btn){
if(!btn.toggleGroup){
return;
}
var g = groups[btn.toggleGroup];
if(!g){
g = groups[btn.toggleGroup] = [];
}
g.push(btn);
btn.on("toggle", toggleGroup);
},
unregister : function(btn){
if(!btn.toggleGroup){
return;
}
var g = groups[btn.toggleGroup];
if(g){
g.remove(btn);
btn.un("toggle", toggleGroup);
}
}
};
}();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -