/*
* Copyright (c) 2007, persianmobidict.sourceforge.net
* Released under the GNU General Public License
*/
package pmd.gui.border;
import javax.microedition.lcdui.Graphics;
/**
*
* @author Hooman Valibeigi
*/
public class BevelBorder extends AbstractBorder {
public static final int RAISED = 0;
public static final int LOWERED = 1;
private static final Insets insets = new Insets(3, 3, 3, 3);
private int bevelType;
private int highlightOuter;
private int highlightInner;
private int shadowInner;
private int shadowOuter;
public BevelBorder(int bevelType, int highlightOuter, int highlightInner, int shadowOuter, int shadowInner) {
super(insets);
setBevelType(bevelType);
setColors(highlightOuter, highlightInner, shadowOuter, shadowInner);
}
public void setColors(int highlightOuter, int highlightInner, int shadowOuter, int shadowInner) {
this.highlightOuter = highlightOuter;
this.highlightInner = highlightInner;
this.shadowOuter = shadowOuter;
this.shadowInner = shadowInner;
}
public void setBevelType(int bevelType) {
this.bevelType = bevelType;
}
public void paintBorder(Graphics g, int x, int y, int w, int h) {
if (bevelType == RAISED)
paintRaisedBevel(g, x, y, w, h);
else
paintLoweredBevel(g, x, y, w, h);
}
private void paintRaisedBevel(Graphics g, int x, int y, int w, int h) {
g.translate(x, y);
g.setColor(highlightOuter);
g.drawLine(0, 0, 0, h-2);
g.drawLine(1, 0, w-2, 0);
g.setColor(highlightInner);
g.drawLine(1, 1, 1, h-3);
g.drawLine(2, 1, w-3, 1);
g.setColor(shadowOuter);
g.drawLine(0, h-1, w-1, h-1);
g.drawLine(w-1, 0, w-1, h-2);
g.setColor(shadowInner);
g.drawLine(1, h-2, w-2, h-2);
g.drawLine(w-2, 1, w-2, h-3);
g.translate(-x, -y);
}
private void paintLoweredBevel(Graphics g, int x, int y, int w, int h) {
g.translate(x, y);
g.setColor(shadowOuter);
g.drawLine(0, 0, 0, h-1);
g.drawLine(1, 0, w-1, 0);
g.setColor(shadowInner);
g.drawLine(1, 1, 1, h-2);
g.drawLine(2, 1, w-2, 1);
g.setColor(highlightOuter);
g.drawLine(1, h-1, w-1, h-1);
g.drawLine(w-1, 1, w-1, h-2);
g.setColor(highlightInner);
g.drawLine(2, h-2, w-2, h-2);
g.drawLine(w-2, 2, w-2, h-3);
g.translate(-x, -y);
}
}
|