r2968 commited - - new option overrideDefaultState

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',