blob: 2063dcc46656ae8a8707f2e06bbdecf9a2b858dc [file] [log] [blame]
package org.apache.view.skins
{
import org.apache.model.utils.ColorUtils;
import org.apache.view.utils.SkinUtils;
import flash.display.GradientType;
import flash.display.Graphics;
import mx.core.IButton;
import mx.core.UIComponent;
import mx.skins.Border;
import mx.styles.StyleManager;
import mx.utils.ColorUtil;
public class RadioButtonSkin extends Border
{
public function RadioButtonSkin()
{
super();
var baseColor:uint = SkinUtils.backgroundColor;
if(SkinUtils.darkTheme){
_iconColor = 0xbababa;
_borderColor1 = ColorUtils.darken(baseColor, 30);
_borderColor1 = ColorUtils.darken(baseColor, 35);
_fillColor1 = ColorUtils.lighten(baseColor, 25);
_fillColor2 = ColorUtils.lighten(baseColor, 10);
_innerShadowColor = ColorUtils.lighten(baseColor, 52);
_dropShadowColor = 0xFFFFFF;
} else {
_iconColor = 0x353535;
_borderColor1 = 0x878787;//ColorUtils.darken(baseColor, 90);
_borderColor1 = 0x7d7d7d;//ColorUtils.darken(baseColor, 80);
_fillColor1 = ColorUtils.lighten(baseColor, 40);
_fillColor2 = ColorUtils.lighten(baseColor, 20);
_innerShadowColor = ColorUtils.lighten(baseColor, 40);
_dropShadowColor = 0;
}
}
private var _borderColor1:uint;
private var _borderColor2:uint;
private var _fillColor1:uint;
private var _fillColor2:uint;
private var _iconColor:uint;
private var _innerShadowColor:uint;
private var _dropShadowColor:uint;
override public function get measuredWidth():Number{
return 14;
}
override public function get measuredHeight():Number{
return 14;
}
override protected function updateDisplayList(w:Number, h:Number):void{
super.updateDisplayList(w, h);
var highlightAlphas:Array = [1,1];//getStyle("highlightAlphas");
var themeColor:uint = getStyle("themeColor");
var emph:Boolean = false;
if (parent is IButton)
emph = IButton(parent).emphasized;
var borderColorDrk1:Number =
ColorUtil.adjustBrightness2(_borderColor1, -50);
var themeColorDrk1:Number =
ColorUtil.adjustBrightness2(themeColor, -25);
var bDrawCheck:Boolean = false;
var fillColors:Array = [ _fillColor1, _fillColor2 ];
if(name == "overSkin"){
fillColors[0] = ColorUtils.lighten(_fillColor1,20);
fillColors[1] = ColorUtils.lighten(_fillColor2,20);
}
var upFillAlphas:Array;
var overFillColors:Array;
var overFillAlphas:Array;
var disFillColors:Array;
var disFillAlphas:Array;
var r:Number = width / 2;
var g:Graphics = graphics;
g.clear();
switch (name){
case "selectedUpIcon":
case "selectedOverIcon":
case "selectedDisabledIcon":
bDrawCheck = true;
break;
}
switch (name){
case "upIcon":
case "selectedUpIcon":
case "overIcon":
case "selectedOverIcon":
case "disabledIcon":
case "selectedDisabledIcon":
upFillAlphas = [1,1];
// box fill
g.beginGradientFill(
GradientType.LINEAR,
fillColors, [1,1], [ 0, 0xFF ],
verticalGradientMatrix(0, 0, w, h));
g.drawCircle(r, r, (r - 1));
g.endFill();
// border
g.beginGradientFill(
GradientType.LINEAR,
[ _borderColor1, _borderColor1 ], [ 1, 1 ], [ 0, 0xFF ],
verticalGradientMatrix(0, 0, w, h));
g.drawCircle(r, r, r);
g.drawCircle(r, r, r - 1);
g.endFill();
// top highlight
//drawRoundRect(1, 1, w - 2, 2 / 2, 2,[ _innerShadowColor, _innerShadowColor ], highlightAlphas,verticalGradientMatrix(1, 1, w - 3, 1));
break;
case "downIcon":
case "selectedDownIcon":
overFillColors = [
ColorUtils.darken(_fillColor1,40),
ColorUtils.darken(_fillColor2,40)
];
overFillAlphas = [1,1];
// box fill
g.beginGradientFill(
GradientType.LINEAR,
overFillColors, [1,1], [ 0, 0xFF ],
verticalGradientMatrix(0, 0, w, h));
g.drawCircle(r, r, (r - 1));
g.endFill();
// border
g.beginGradientFill(
GradientType.LINEAR,
[ themeColor, themeColorDrk1 ], [ 1, 1 ], [ 0, 0xFF ],
verticalGradientMatrix(0, 0, w, h));
g.drawCircle(r, r, r);
g.drawCircle(r, r, r - 1);
g.endFill();
// top highlight
//drawRoundRect(1, 1, w - 2, 2 / 2, 2,[ _innerShadowColor, _innerShadowColor ], highlightAlphas,verticalGradientMatrix(1, 1, w - 3, 1));
break;
}
// radio symbol
if(bDrawCheck){
g.beginFill(_iconColor);
g.drawCircle(r, r, 2);
g.endFill();
}
}
}
}