r2968 commited - - new option overrideDefaultState
Revision: 2968
Author: malk0.phpgtk
Date: Thu Jul 23 17:43:10 2009
Log: - new option overrideDefaultState
http://code.google.com/p/jquery-ui/source/detail?r=2968
Modified:
/branches/labs/button/ui.button.js
=======================================
--- /branches/labs/button/ui.button.js Sun Jun 28 13:57:59 2009
+++ /branches/labs/button/ui.button.js Thu Jul 23 17:43:10 2009
@@ -42,7 +42,7 @@
}
self._mergeOpts(inlineOptions);
- self.element.addClass($.ui.button.classes.base+'
ui-widget '+$.ui.button.classes.stateDefault);
+ self.element.addClass($.ui.button.classes.base+' ui-widget ');
if(! self.element.attr('tabindex')){
self.element.attr('tabindex',0);
}
@@ -59,7 +59,7 @@
}
// apply some settings
- self._applyOpts(['size','orientation','icon','corners'])
+
self._applyOpts(['size','orientation','icon','corners','overrideDefaultState'])
._applyOpts(['buttonMode','active','label'],true);
if( null!==self.options.disabled ){
@@ -98,15 +98,15 @@
var _mouseleave= function(){
$(this).removeClass($.ui.button.classes.stateHover+' '+$.ui.button.classes.stateDown);
};
- var _pressed= function(event){
+ var _pressed= function(e){
var elmt = $(this);
if( elmt.button('option','disabled') ){
return false;
}
- if( event.type==='mousedown' || (event.type==='keydown' &&
(event.keyCode == $.ui.keyCode.ENTER || event.keyCode == $.ui.keyCode.SPACE
)) ){
+ if( e.type==='mousedown' || (e.type==='keydown' &&
(e.keyCode===$.ui.keyCode.ENTER || e.keyCode===$.ui.keyCode.SPACE ||
e.keyCode===$.ui.keyCode.NUMPAD_ENTER)) ){
elmt.addClass($.ui.button.classes.stateDown);
- if( event.type==='keydown'){
- if(! ($.browser.opera && event.keyCode==$.ui.keyCode.ENTER)){ // i
Hate this dirty browser detection but not doing this goes to weird
behaviour on opera.
+ if( e.type==='keydown'){
+ if(! ($.browser.opera && e.keyCode===$.ui.keyCode.ENTER)){ // i Hate
this dirty browser detection but not doing this goes to weird behaviour on
opera.
self.element.click();
}
return false; //avoid keypress event when firing click() or we'll
end up with doubling the click event on buttons under ie browsers
@@ -263,9 +263,16 @@
case 'active':
if( self._getData('buttonMode') !== 'toggle' ||
self._getData('disabled') )
return false;
- self.element.toggleClass($.ui.button.classes.stateActive+'
active',value?true:false);
- self._trigger('setactive',0,self);
+ value = value?true:false;
+ self.element.toggleClass($.ui.button.classes.stateActive+'
active',value);
+ self._trigger('setactive',0,{active:value});
break;
+ case 'overrideDefaultState':
+ if( value===false){
+ value = $.ui.button.classes.stateDefault;
+ }
+
self.element.removeClass(this._getData('overrideDefaultState')).addClass(value);
+ break;
}
return $.widget.prototype._setData.apply(this, arguments);
},
@@ -328,7 +335,8 @@
buttonMode:null,
disabled:null,
active:false, // set toggle button to active state
- checkButtonset:false // check for .ui-buttonset parent and trigger
parent buttonset rendering if found
+ checkButtonset:false, // check for .ui-buttonset parent and trigger
parent buttonset rendering if found
+ overrideDefaultState:false // any string to used in place of
classes.stateDefault (empty string may be used for no state class at all)
},
classes:{
base: 'ui-button',