1
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
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
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
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