1  /*
     2   Copyright aswing.org, see the LICENCE.txt.
     3  */
     4   
     5  import org.aswing.*;
     6  import org.aswing.graphices.*;
     7  import org.aswing.geom.*;
     8  import org.aswing.plaf.*;
     9  import org.aswing.plaf.basic.*;
    10   
    11  /**
    12   *
    13   * @author Firdosh
    14   */
    15  class org.aswing.plaf.winxp.WinXpButtonUI extends BasicButtonUI{
    16  	
    17  	private static var instance:WinXpButtonUI;
    18  	private var upperGrad:ASColor;
    19  	private var lowerGrad:ASColor;
    20  	private var background:ASColor;
    21      // ********************************
    22      //          Create WINXP
    23      // ********************************
    24      public static function createInstance(c:Component):ComponentUI {
    25      	if(buttonUI == null){
    26      		buttonUI = new WinXpButtonUI();
    27      	}
    28          return buttonUI;
    29      }
    30      
    31      public function WinXpButtonUI(){
    32      	super();    	
    33      }
    34      
    35       /**
    36       * Paint gradient background for AsWing LAF Buttons.
    37       */
    38      private function paintBackGround(com:Component, g:Graphics, b:Rectangle):Void{
    39      	var c:AbstractButton = AbstractButton(com);
    40      	paintWinXPLAFButtonBackGround(c, g, b);
    41      }
    42      
    43      public function paintWinXPLAFButtonBackGround(c:AbstractButton, g:Graphics, b:Rectangle):Void{
    44      	
    45      	
    46  		if(c.isOpaque()){
    47  			if(c.getModel().isPressed() || c.getModel().isSelected()){
    48  				var table:UIDefaults = UIManager.getLookAndFeelDefaults();		
    49  				this.upperGrad = table.getColor("Button.upperBgGradDown");
    50  				this.lowerGrad = table.getColor("Button.lowerBgGradDown");
    51  				 var colors:Array = [upperGrad.getRGB(), lowerGrad.getRGB()];
    52  				 var alphas:Array = [100,100];
    53  				 var ratios:Array = [0, 50];
    54  				 var matrix:Object = {matrixType:"box", x:b.x, y:b.y, w:b.width, h:b.height, r:(90/180)*Math.PI};        
    55  	    		 var brush:GradientBrush=new GradientBrush(GradientBrush.LINEAR, colors, alphas, ratios, matrix);    	
    56       			 g.fillRoundRect(brush, b.x, b.y, b.width, b.height,3,3,3,3);
    57  			}
    58  			else{
    59  				var table:UIDefaults = UIManager.getLookAndFeelDefaults();		
    60  				this.upperGrad = table.getColor("Button.upperBgGradUp");
    61  				this.lowerGrad = table.getColor("Button.lowerBgGradUp");	
    62  				
    63  				 var colors:Array = [upperGrad.getRGB(), lowerGrad.getRGB()];
    64  				 var alphas:Array = [100,100];
    65  				 var ratios:Array = [200, 255];
    66  				 var matrix:Object = {matrixType:"box", x:b.x, y:b.y, w:b.width, h:b.height, r:(90/180)*Math.PI};        
    67  	    		 var brush:GradientBrush=new GradientBrush(GradientBrush.LINEAR, colors, alphas, ratios, matrix);    	
    68       			 g.fillRoundRect(brush, b.x, b.y, b.width, b.height,3,3,3,3);
    69  				
    70  			}    	
    71  	   
    72  			}
    73      }
    74      
    75      
    76  }
    77