Version 2.0 of sigIRC rewritten and remastered for Java. Includes "Modules" which can be enabled/disabled to modify functionality of the program.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
sigIRCv2/src/sig/DrawUtils.java

61 lines
2.5 KiB

package sig;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.RenderingHints;
import java.awt.Shape;
import java.awt.font.FontRenderContext;
import java.awt.font.GlyphVector;
import java.awt.font.TextAttribute;
import java.awt.geom.Rectangle2D;
import java.text.AttributedString;
public class DrawUtils {
public static void drawOutlineText(Graphics g, Font font, double x, double y, int outline_size, Color text_color, Color shadow_color, String message) {
AttributedString as = new AttributedString(message);
as.addAttribute(TextAttribute.FONT, font);
g.setColor(shadow_color);
Graphics2D g2 = (Graphics2D) g;
if (message.length()>200) {
g2.setColor(shadow_color);
g2.drawString(as.getIterator(),(int)x+outline_size,(int)y+outline_size);
} else {
FontRenderContext frc = g2.getFontMetrics(font).getFontRenderContext();
GlyphVector gv = font.createGlyphVector(frc, message);
Rectangle2D box = gv.getVisualBounds();
Shape shape = gv.getOutline((int)x,(int)y);
g2.setClip(shape);
g2.drawString(as.getIterator(),(int)x,(int)y);
g2.setClip(null);
g2.setStroke(new BasicStroke(outline_size*2));
g2.setColor(shadow_color);
g2.setRenderingHint(
RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
g2.draw(shape);
}
g2.setColor(text_color);
g2.drawString(as.getIterator(),(int)x,(int)y);
}
public static void drawText(Graphics g, double x, double y, Color color, String message) {
AttributedString as = new AttributedString(message);
as.addAttribute(TextAttribute.FONT, MyPanel.programFont);
g.setColor(color);
g.drawString(as.getIterator(),(int)x,(int)y);
}
public static void drawTextFont(Graphics g, Font font, double x, double y, Color color, String message) {
AttributedString as = new AttributedString(message);
as.addAttribute(TextAttribute.FONT, font);
g.setColor(color);
g.drawString(as.getIterator(),(int)x,(int)y);
}
public static void drawHealthbar(Graphics g, Rectangle bounds, double pct, Color healthbarcol) {
g.setColor(Color.BLACK);
g.draw3DRect((int)bounds.getX(), (int)bounds.getY(), (int)bounds.getWidth(), (int)bounds.getHeight(), true);
g.setColor(healthbarcol);
g.fill3DRect((int)bounds.getX()+1, (int)bounds.getY()+1, (int)(bounds.getWidth()*pct)-1, (int)bounds.getHeight()-1, true);
}
}