1
4
5 import org.aswing.*;
6 import org.aswing.graphices.*;
7 import org.aswing.plaf.*;
8
9
13 class org.aswing.plaf.basic.icon.RadioButtonIcon implements Icon, UIResource{
14 private var shadow:ASColor;
15 private var darkShadow:ASColor;
16 private var highlight:ASColor;
17 private var lightHighlight:ASColor;
18
19 private static var instance:Icon;
20
23 public static function createInstance():Icon{
24 if(instance == null){
25 instance = new RadioButtonIcon();
26 }
27 return instance;
28 }
29
30 private function RadioButtonIcon(){
31 super();
32 var table:UIDefaults = UIManager.getLookAndFeelDefaults();
33 shadow = table.getColor("RadioButton.shadow");
34 darkShadow = table.getColor("RadioButton.darkShadow");
35 highlight = table.getColor("RadioButton.light");
36 lightHighlight = table.getColor("RadioButton.highlight");
37 }
38
39 public function getIconWidth():Number{
40 return 13;
41 }
42
43 public function getIconHeight():Number{
44 return 13;
45 }
46
47 public function paintIcon(com:Component, g:Graphics, x:Number, y:Number):Void{
48 var rb:JRadioButton = JRadioButton(com);
49 var model:ButtonModel = rb.getModel();
50 var drawDot:Boolean = model.isSelected();
51
52 var periphery:ASColor = darkShadow;
53 var middle:ASColor = highlight;
54 var inner:ASColor = shadow;
55 var dot:ASColor = rb.getForeground();
56
57
58 if (!model.isEnabled()) {
59 periphery = middle = inner = rb.getBackground();
60 dot = darkShadow;
61 } else if (model.isPressed()) {
62 periphery = shadow;
63 inner = darkShadow;
64 }
65
66 var w:Number = getIconWidth();
67 var h:Number = getIconHeight();
68 var cx:Number = x + w/2;
69 var cy:Number = y + h/2;
70 var xr:Number = w/2;
71 var yr:Number = h/2;
72
73
74 var colors:Array = [0xD5D5D5, 0x8D8D8D];
75 var alphas:Array = [100, 100];
76 var ratios:Array = [0, 255];
77 var matrix:Object = {matrixType:"box", x:cx-xr, y:cy-yr, w:xr*2, h:yr*2, r:(90/180)*Math.PI};
78 var gBrush:GradientBrush=new GradientBrush(GradientBrush.LINEAR, colors, alphas, ratios, matrix);
79 g.fillEllipse(gBrush, cx-xr, cy-yr, xr*2, yr*2);
80
81
82 xr--;
83 yr--;
84 var sbrush:SolidBrush = new SolidBrush(middle);
85 g.fillEllipse(sbrush, cx-xr, cy-yr, xr*2, yr*2);
86
87 xr--;
88 yr--;
89 sbrush = new SolidBrush(shadow, 1);
90 g.fillEllipse(sbrush, cx-xr, cy-yr, xr*2, yr*2);
91
92 if(drawDot){
93 xr = w/5;
94 yr = h/5;
95 var brush:Brush = new SolidBrush(middle);
96 brush = new SolidBrush(dot);
97 g.fillEllipse(brush, cx-xr, cy-yr, xr*2, yr*2);
98 }
99 }
100 public function uninstallIcon(com:Component):Void{
101 }
102 }
103