r2751 - - bug correction on parsing inline class settings unde ie browsers

r2751 - - bug correction on parsing inline class settings unde ie browsers


Author: malk0.phpgtk
Date: Sun Jun 14 15:59:34 2009
New Revision: 2751
Modified:
branches/labs/button/previousAttempts/malko/jquery-ui-button.css
branches/labs/button/previousAttempts/malko/jquery-ui-button.js
Log:
- bug correction on parsing inline class settings unde ie browsers
- selectbuttonset now always have one element selected (if not multiple)
- better rendering of small font size buttons with no icons
Modified: branches/labs/button/previousAttempts/malko/jquery-ui-button.css
==============================================================================
--- branches/labs/button/previousAttempts/malko/jquery-ui-button.css    
(original)
+++ branches/labs/button/previousAttempts/malko/jquery-ui-button.css    Sun
Jun 14 15:59:34 2009
@@ -75,18 +75,18 @@
    margin:0 auto;
}
-.ui-button-orientation-t .ui-button-icon { display:block !important;
margin:0 auto;width:100%;}
-.ui-button-orientation-b .ui-button-icon { display:block !important;
margin:0 auto;width:100%;}
+.ui-button-orientation-t .ui-button-icon { display:block !important;
margin:0 auto;}
+.ui-button-orientation-b .ui-button-icon { display:block !important;
margin:0 auto;}
.ui-button-orientation-l .ui-button-icon {
display:inline-block !important;}
.ui-button-orientation-r .ui-button-icon {
display:inline-block !important;}
.ui-button-orientation-t .ui-icon, .ui-button-orientation-b .ui-icon{
margin:0 auto;}
.ui-button-orientation-b .ui-icon-none, .ui-button-orientation-t .ui-icon-none
{
background:none !important;}
-.ui-button-orientation-r .ui-icon-none, .ui-button-orientation-l .ui-icon-none
{
display:none;}
+.ui-button-orientation-r .ui-icon-none, .ui-button-orientation-l .ui-icon-none
{
width:0;background:none;}
.ui-button-inlineBlockFix.ui-button-orientation-t .ui-button-icon {
width:1;}
-.ui-button-inlineBlockFix.ui-button-orientation-b .ui-button-icon {
width:1; }
-.ui-button-inlineBlockFix.ui-button-orientation-t .ui-button-label{
width:1; }
-.ui-button-inlineBlockFix.ui-button-orientation-b .ui-button-label{
width:1; }
+.ui-button-inlineBlockFix.ui-button-orientation-b .ui-button-icon {
width:1;}
+.ui-button-inlineBlockFix.ui-button-orientation-t .ui-button-label{
width:1;}
+.ui-button-inlineBlockFix.ui-button-orientation-b .ui-button-label{
width:1;}
/*
.ui-button-size-tiny .ui-icon {zoom:0.5;}
Modified: branches/labs/button/previousAttempts/malko/jquery-ui-button.js
==============================================================================
--- branches/labs/button/previousAttempts/malko/jquery-ui-button.js    
(original)
+++ branches/labs/button/previousAttempts/malko/jquery-ui-button.js    Sun Jun
14 15:59:34 2009
@@ -35,7 +35,7 @@
            //prepare options objects from matches
            var id=1;
            for(optName in optionsList){
-                if(undefined!==matches[id]){
+                if( matches[id]){
                    opts[optName] = matches[id];
                }
                id++;
@@ -422,21 +422,31 @@
                    $('<button type="button"
class="ui-button-'+size+('auto'===orientation?'':'-'+orientation)+(optionIcon?'-'+optionIcon:'')+'
toggle'+(option.is(':selected')?' active':'')+'">'+label+'</button>')
                        .appendTo(self.buttonset)
                        .button({
-                        
    'corners':(i==0?'left':(i+1<self.element.attr('options').length?'none':'right')),
-                            toggle:function(e,ui){
-                                self._toggle(e,ui,option);
-                            }
-                        });
+                        
    'corners':(i==0?'left':(i+1<self.element.attr('options').length?'none':'right'))
+                        })
+                        .click(function(e){self._toggle(e,this,option)});
                });
            },
-            _toggle:function(event,button,option){
+            _toggle:function(event,buttonElmt,option){
                var self = this;
-                option.attr('selected',button.isActive()?'selected':'');
                if(! self.multiple){
-                    
self.buttonset.find('.ui-button').not(button.element).button('option','active',false);
+                    // if no other buttons are activated we can't unselect that option.
+                    var siblingOptions =
self.buttonset.find('.ui-button').not(buttonElmt);
+                    var canContinue=false;
+                    siblingOptions.each(function(){
+                        if($(this).button('option','active')){
+                            canContinue = true;
+                            return false;
+                        }
+                    });
+                    if( ! canContinue){
+                        $(buttonElmt).button('option','active',true);
+                        return self;
+                    }
+                    siblingOptions.button('option','active',false);
                }
+                option.attr('selected',$(buttonElmt).button('isActive')?'selected':'');
                self.element.change();
-                self._trigger('toggle',event,[self.element,button.element]);
            }
        }));
        $.extend($.ui.selectbuttonset, {