protected void paintToImage(Component c,
Image image,
Graphics g2,
int w,
int h,
Object[] args) {
Graphics2D g = (Graphics2D)g2;
boolean leftToRight = ((Boolean)args[0]).booleanValue();
boolean hasFocus = ((Boolean)args[1]).booleanValue();
boolean enabled = ((Boolean)args[2]).booleanValue();
Rectangle clip = g.getClipBounds();
if (leftToRight) {
g.clip(LTR_THUMB_SHAPE);
}
else {
g.clip(RTL_THUMB_SHAPE);
}
if (!enabled) {
g.setColor(MetalLookAndFeel.getControl());
g.fillRect(1, 1, 14, 14);
}
else if (hasFocus) {
MetalUtils.drawGradient(c, g, "Slider.focusGradient",
1, 1, 14, 14, false);
}
else {
MetalUtils.drawGradient(c, g, "Slider.gradient",
1, 1, 14, 14, false);
}
g.setClip(clip);
// Draw the frame
if (hasFocus) {
g.setColor(MetalLookAndFeel.getPrimaryControlDarkShadow());
}
else {
g.setColor(enabled ? MetalLookAndFeel.getPrimaryControlInfo() :
MetalLookAndFeel.getControlDarkShadow());
}
if (leftToRight) {
g.drawLine( 1,0 , 8,0 ); // top
g.drawLine( 0,1 , 0,13 ); // left
g.drawLine( 1,14 , 8,14 ); // bottom
g.drawLine( 9,1 , 15,7 ); // top slant
g.drawLine( 9,13 , 15,7 ); // bottom slant
}
else {
g.drawLine( 7,0 , 14,0 ); // top
g.drawLine( 15,1 , 15,13 ); // right
g.drawLine( 7,14 , 14,14 ); // bottom
g.drawLine( 0,7 , 6,1 ); // top slant
g.drawLine( 0,7 , 6,13 ); // bottom slant
}
if (hasFocus && enabled) {
// Inner line.
g.setColor(MetalLookAndFeel.getPrimaryControl());
if (leftToRight) {
g.drawLine( 1,1 , 8,1 ); // top
g.drawLine( 1,1 , 1,13 ); // left
g.drawLine( 1,13 , 8,13 ); // bottom
g.drawLine( 9,2 , 14,7 ); // top slant
g.drawLine( 9,12 , 14,7 ); // bottom slant
}
else {
g.drawLine( 7,1 , 14,1 ); // top
g.drawLine( 14,1 , 14,13 ); // right
g.drawLine( 7,13 , 14,13 ); // bottom
g.drawLine( 1,7 , 7,1 ); // top slant
g.drawLine( 1,7 , 7,13 ); // bottom slant
}
}
}
|