home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.plaf.metal;
-
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Dimension;
- import java.awt.Graphics;
- import javax.swing.AbstractButton;
- import javax.swing.JComponent;
- import javax.swing.UIManager;
- import javax.swing.plaf.ColorUIResource;
- import javax.swing.plaf.basic.BasicArrowButton;
-
- public class MetalScrollButton extends BasicArrowButton {
- private static Color shadowColor;
- private static Color highlightColor;
- private boolean isFreeStanding = false;
- private int buttonWidth;
-
- public MetalScrollButton(int var1, int var2, boolean var3) {
- super(var1);
- shadowColor = UIManager.getColor("ScrollBar.darkShadow");
- highlightColor = UIManager.getColor("ScrollBar.highlight");
- this.buttonWidth = var2;
- this.isFreeStanding = var3;
- }
-
- public int getButtonWidth() {
- return this.buttonWidth;
- }
-
- public Dimension getMaximumSize() {
- return new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE);
- }
-
- public Dimension getMinimumSize() {
- return this.getPreferredSize();
- }
-
- public Dimension getPreferredSize() {
- if (((BasicArrowButton)this).getDirection() == 1) {
- return new Dimension(this.buttonWidth, this.buttonWidth - 2);
- } else if (((BasicArrowButton)this).getDirection() == 5) {
- return new Dimension(this.buttonWidth, this.buttonWidth - (this.isFreeStanding ? 1 : 2));
- } else if (((BasicArrowButton)this).getDirection() == 3) {
- return new Dimension(this.buttonWidth - (this.isFreeStanding ? 1 : 2), this.buttonWidth);
- } else {
- return ((BasicArrowButton)this).getDirection() == 7 ? new Dimension(this.buttonWidth - 2, this.buttonWidth) : new Dimension(0, 0);
- }
- }
-
- public void paint(Graphics var1) {
- boolean var2 = ((Component)this).getParent().isEnabled();
- ColorUIResource var3 = var2 ? MetalLookAndFeel.getControlInfo() : MetalLookAndFeel.getControlDisabled();
- boolean var4 = ((AbstractButton)this).getModel().isPressed();
- int var5 = ((JComponent)this).getWidth();
- int var6 = ((JComponent)this).getHeight();
- int var7 = var5;
- int var8 = var6;
- int var9 = (var6 + 1) / 4;
- int var10 = (var6 + 1) / 2;
- if (var4) {
- var1.setColor(MetalLookAndFeel.getControlShadow());
- } else {
- var1.setColor(((Component)this).getBackground());
- }
-
- var1.fillRect(0, 0, var5, var6);
- if (((BasicArrowButton)this).getDirection() == 1) {
- if (!this.isFreeStanding) {
- var5 += 2;
- }
-
- var1.setColor(var3);
- int var11 = (var6 + 1 - var9) / 2;
- int var12 = var7 / 2;
-
- for(int var13 = 0; var13 < var9; ++var13) {
- var1.drawLine(var12 - var13, var11 + var13, var12 + var13 + 1, var11 + var13);
- }
-
- if (var2) {
- var1.setColor(highlightColor);
- if (!var4) {
- var1.drawLine(1, 1, var5 - 3, 1);
- var1.drawLine(1, 1, 1, var6 - 1);
- }
-
- var1.drawLine(var5 - 1, 1, var5 - 1, var6 - 1);
- var1.setColor(shadowColor);
- var1.drawLine(0, 0, var5 - 2, 0);
- var1.drawLine(0, 0, 0, var6 - 1);
- var1.drawLine(var5 - 2, 2, var5 - 2, var6 - 1);
- } else {
- MetalUtils.drawDisabledBorder(var1, 0, 0, var5, var6 + 1);
- }
-
- if (!this.isFreeStanding) {
- var5 -= 2;
- }
- } else if (((BasicArrowButton)this).getDirection() == 5) {
- if (!this.isFreeStanding) {
- var5 += 2;
- ++var6;
- }
-
- var1.setColor(var3);
- int var21 = (var8 + 1 - var9) / 2 + var9 - 1;
- int var24 = var7 / 2;
-
- for(int var27 = 0; var27 < var9; ++var27) {
- var1.drawLine(var24 - var27, var21 - var27, var24 + var27 + 1, var21 - var27);
- }
-
- if (var2) {
- var1.setColor(highlightColor);
- if (!var4) {
- var1.drawLine(1, 0, var5 - 3, 0);
- var1.drawLine(1, 0, 1, var6 - 3);
- }
-
- var1.drawLine(1, var6 - 1, var5 - 1, var6 - 1);
- var1.drawLine(var5 - 1, 0, var5 - 1, var6 - 1);
- var1.setColor(shadowColor);
- var1.drawLine(0, 0, 0, var6 - 2);
- var1.drawLine(var5 - 2, 0, var5 - 2, var6 - 2);
- var1.drawLine(2, var6 - 2, var5 - 2, var6 - 2);
- } else {
- MetalUtils.drawDisabledBorder(var1, 0, -1, var5, var6 + 1);
- }
-
- if (!this.isFreeStanding) {
- var5 -= 2;
- --var6;
- }
- } else if (((BasicArrowButton)this).getDirection() == 3) {
- if (!this.isFreeStanding) {
- var6 += 2;
- ++var5;
- }
-
- var1.setColor(var3);
- int var22 = (var7 + 1 - var9) / 2 + var9 - 1;
- int var25 = var8 / 2;
-
- for(int var28 = 0; var28 < var9; ++var28) {
- var1.drawLine(var22 - var28, var25 - var28, var22 - var28, var25 + var28 + 1);
- }
-
- if (var2) {
- var1.setColor(highlightColor);
- if (!var4) {
- var1.drawLine(0, 1, var5 - 3, 1);
- var1.drawLine(0, 1, 0, var6 - 3);
- }
-
- var1.drawLine(var5 - 1, 1, var5 - 1, var6 - 1);
- var1.drawLine(0, var6 - 1, var5 - 1, var6 - 1);
- var1.setColor(shadowColor);
- var1.drawLine(0, 0, var5 - 2, 0);
- var1.drawLine(var5 - 2, 2, var5 - 2, var6 - 2);
- var1.drawLine(0, var6 - 2, var5 - 2, var6 - 2);
- } else {
- MetalUtils.drawDisabledBorder(var1, -1, 0, var5 + 1, var6);
- }
-
- if (!this.isFreeStanding) {
- var6 -= 2;
- --var5;
- }
- } else if (((BasicArrowButton)this).getDirection() == 7) {
- if (!this.isFreeStanding) {
- var6 += 2;
- ++var5;
- var1.translate(-1, 0);
- }
-
- var1.setColor(var3);
- int var23 = (var7 + 1 - var9) / 2;
- int var26 = var8 / 2;
-
- for(int var29 = 0; var29 < var9; ++var29) {
- var1.drawLine(var23 + var29, var26 - var29, var23 + var29, var26 + var29 + 1);
- }
-
- if (var2) {
- var1.setColor(highlightColor);
- if (!var4) {
- var1.drawLine(1, 1, var5 - 1, 1);
- var1.drawLine(1, 1, 1, var6 - 3);
- }
-
- var1.drawLine(1, var6 - 1, var5 - 1, var6 - 1);
- var1.setColor(shadowColor);
- var1.drawLine(0, 0, var5 - 1, 0);
- var1.drawLine(0, 0, 0, var6 - 2);
- var1.drawLine(2, var6 - 2, var5 - 1, var6 - 2);
- } else {
- MetalUtils.drawDisabledBorder(var1, 0, 0, var5 + 1, var6);
- }
-
- if (!this.isFreeStanding) {
- var6 -= 2;
- --var5;
- var1.translate(1, 0);
- }
- }
-
- }
-
- public void setFreeStanding(boolean var1) {
- this.isFreeStanding = var1;
- }
- }
-