package tide.syntaxtree;
import snow.utils.gui.Icons;
import snow.utils.gui.Icons;
import snow.lookandfeel.ThemesManager;
import javax.swing.*;
import java.awt.*;
import java.awt.geom.*;
public class SyntaxTreeIcon implements Icon
{
public String text = "?";
int size = 18;
public int width = 18;
public Font letterFont = UIManager.getFont("Label.font");
// set from outside
public Color letterColor = ThemesManager.getInstance().getBlack();
Color gradColor1 = ThemesManager.getInstance().getWhite();
Color gradColor2 = ThemesManager.getInstance().getWhite();
private static final Icon startIcon = new Icons.StartIcon(9,9,true);
public boolean isMain = false;
public SyntaxTreeIcon()
{
//gradColor1 = new Color(letterColor.getRed()*5/6, letterColor.getGreen()*5/6, letterColor.getBlue()*5/6);
gradColor1 = new Color(200,200,200); //Color.lightGray;
}
public int getIconHeight() {
return size;
}
public int getIconWidth() {
return width; //(int)(size*text.length()/1.7);
}
public void paintIcon( Component c, Graphics g, int x, int y )
{
Graphics2D g2 = (Graphics2D) g;
Color oldColor = g.getColor();
g.translate(x, y);
Paint oldPaint = g2.getPaint();
//g2.setPaint(new GradientPaint(0f,0f,Color.gray.brighter(), (float) getIconWidth(), 0f, Color.LIGHT_GRAY.brighter()));
g2.setPaint(new GradientPaint(0f,0f,gradColor1, (float) getIconWidth(), 0f, gradColor2));
g2.fill(new Rectangle2D.Double(0,1,getIconWidth(), getIconHeight()));
g2.setPaint(oldPaint);
if(text!=null)
{
Font oldFont = g2.getFont();
g2.setColor(letterColor);
g2.setFont(letterFont);
g2.drawString(text, size/4, size*7/8);
g2.setFont(oldFont);
}
g2.setColor(oldColor);
if(isMain)
{
startIcon.paintIcon(c, g, 21, 6);
}
}
}
|