bsh.commands.thinBorder.bsh Maven / Gradle / Ivy
The newest version!
/**
* A one pixel wide bevel border. This border works for buttons (with optional
* rollover) and other components
*
* @author Daniel Leuck
*/
import javax.swing.border.*;
Insets INSETS = new Insets(1,1,1,1);
public thinBorder() { return thinBorder(null, null, false); }
public thinBorder(Color lightColor, Color darkColor) {
return thinBorder(lightColor, darkColor, false);
}
public thinBorder(Color lightColor, Color darkColor, boolean rollOver)
{
/**
* Draw a 1 pixel border given a color for topLeft and bottomRight.
*/
drawBorder(g, x, y, width, height, topLeft, bottomRight) {
//Color oldColor = g.color;
Color oldColor = g.getColor();
//g.color=topLeft;
g.setColor(topLeft);
g.drawLine(x, y, x+width-1, y);
g.drawLine(x, y, x, y+height-1);
//g.color=bottomRight;
g.setColor(bottomRight);
g.drawLine(x+width-1, y, x+width-1, y+height-1);
g.drawLine(x, y+height-1, x+width-1, y+height-1);
//g.color=oldColor;
g.setColor(oldColor);
}
public void paintBorder(c, g, x, y, width, height)
{
// Access to the background color is protected on the Mac for
// some reason... workaround
try {
Color bgColor = c.background;
Color dark = (darkColor==null) ? bgColor.darker().darker() :
darkColor;
Color light = (lightColor==null) ? bgColor.brighter() :
lightColor;
if(c instanceof AbstractButton) {
if(c.rolloverEnabled && !c.model.rollover && c.opaque) {
drawBorder(g, x, y, width, height, bgColor, bgColor);
} else {
if(c.model.isPressed())
drawBorder(g, x, y, width, height, dark, light);
else
drawBorder(g, x, y, width, height, light, dark);
}
} else {
drawBorder(g, x, y, width, height, light, dark);
}
} catch ( SecurityException e ) { }
}
/**
* Returns the insets of the border.
*
* @param c the component for which this border insets value applies
*/
public Insets getBorderInsets(Component c) { return INSETS; }
/**
* Always returns false
*/
public boolean isBorderOpaque() { return false; }
return this;
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy