Added proper UTF-8 encoding support for messages. Increased size of
message displays.
This commit is contained in:
parent
d082fb3191
commit
01f4d1c261
BIN
sigIRCv2.jar
BIN
sigIRCv2.jar
Binary file not shown.
@ -37,15 +37,18 @@ import sig.utils.FileUtils;
|
|||||||
|
|
||||||
public class MyPanel extends JPanel implements MouseListener, ActionListener, MouseWheelListener, KeyListener, ComponentListener, WindowListener{
|
public class MyPanel extends JPanel implements MouseListener, ActionListener, MouseWheelListener, KeyListener, ComponentListener, WindowListener{
|
||||||
//List<String> messages = new ArrayList<String>();
|
//List<String> messages = new ArrayList<String>();
|
||||||
final public static Font programFont = new Font(sigIRC.messageFont,0,24);
|
public static Font programFont = new Font(sigIRC.messageFont,Font.BOLD,32);
|
||||||
final public static Font userFont = new Font(sigIRC.usernameFont,0,16);
|
public static Font userFont = new Font(sigIRC.usernameFont,Font.BOLD,16);
|
||||||
final public static Font smallFont = new Font(sigIRC.touhoumotherConsoleFont,0,12);
|
public static Font smallFont = new Font(sigIRC.touhoumotherConsoleFont,0,12);
|
||||||
final public static Font rabiRibiMoneyDisplayFont = new Font("CP Font",0,16);
|
final public static Font rabiRibiMoneyDisplayFont = new Font("CP Font",0,16);
|
||||||
final public static Font rabiRibiTinyDisplayFont = new Font("CP Font",0,12);
|
final public static Font rabiRibiTinyDisplayFont = new Font("CP Font",0,12);
|
||||||
public int lastMouseX = 0;
|
public int lastMouseX = 0;
|
||||||
public int lastMouseY = 0;
|
public int lastMouseY = 0;
|
||||||
|
|
||||||
public MyPanel() {
|
public MyPanel() {
|
||||||
|
programFont = programFont.deriveFont(sigIRC.messageFontSize);
|
||||||
|
userFont = userFont.deriveFont(sigIRC.usernameFontSize);
|
||||||
|
smallFont = smallFont.deriveFont(sigIRC.touhoumotherConsoleFontSize);
|
||||||
//setBorder(BorderFactory.createLineBorder(Color.black));
|
//setBorder(BorderFactory.createLineBorder(Color.black));
|
||||||
addMouseListener(this);
|
addMouseListener(this);
|
||||||
addMouseWheelListener(this);
|
addMouseWheelListener(this);
|
||||||
|
|||||||
@ -175,7 +175,7 @@ public class ScrollingText {
|
|||||||
if (isAlive && WithinBounds(x,y,Math.max(TextUtils.calculateStringBoundsFont(username, MyPanel.userFont).getWidth(), TextUtils.calculateStringBoundsFont(message, MyPanel.programFont).getWidth()),Math.max(TextUtils.calculateStringBoundsFont(username, MyPanel.userFont).getHeight(), TextUtils.calculateStringBoundsFont(message, MyPanel.programFont).getHeight()))) {
|
if (isAlive && WithinBounds(x,y,Math.max(TextUtils.calculateStringBoundsFont(username, MyPanel.userFont).getWidth(), TextUtils.calculateStringBoundsFont(message, MyPanel.programFont).getWidth()),Math.max(TextUtils.calculateStringBoundsFont(username, MyPanel.userFont).getHeight(), TextUtils.calculateStringBoundsFont(message, MyPanel.programFont).getHeight()))) {
|
||||||
//DrawUtils.drawTextFont(g, MyPanel.userFont, x+8, y+stringHeight-20, Color.GREEN, username);
|
//DrawUtils.drawTextFont(g, MyPanel.userFont, x+8, y+stringHeight-20, Color.GREEN, username);
|
||||||
DrawUtils.drawOutlineText(g, MyPanel.userFont, x+8, y+stringHeight-20, 2, userColor, Color.BLACK, username);
|
DrawUtils.drawOutlineText(g, MyPanel.userFont, x+8, y+stringHeight-20, 2, userColor, Color.BLACK, username);
|
||||||
DrawUtils.drawOutlineText(g, MyPanel.programFont, x, y+stringHeight, 2, Color.WHITE, Color.BLACK, message);
|
DrawUtils.drawOutlineText(g, MyPanel.programFont, x, y+stringHeight+5, 1, 3, Color.WHITE, Color.BLACK, message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -111,6 +111,9 @@ public class sigIRC{
|
|||||||
static String messageFont="Gill Sans Ultra Bold Condensed";
|
static String messageFont="Gill Sans Ultra Bold Condensed";
|
||||||
static String usernameFont="GillSansMTStd-Book";
|
static String usernameFont="GillSansMTStd-Book";
|
||||||
static String touhoumotherConsoleFont="Agency FB Bold";
|
static String touhoumotherConsoleFont="Agency FB Bold";
|
||||||
|
static Integer messageFontSize = 24;
|
||||||
|
static Integer usernameFontSize = 16;
|
||||||
|
static Integer touhoumotherConsoleFontSize = 12;
|
||||||
static boolean touhoumothermodule_enabled=false;
|
static boolean touhoumothermodule_enabled=false;
|
||||||
static boolean twitchmodule_enabled=true;
|
static boolean twitchmodule_enabled=true;
|
||||||
public static boolean chatlogmodule_enabled=true;
|
public static boolean chatlogmodule_enabled=true;
|
||||||
@ -206,6 +209,9 @@ public class sigIRC{
|
|||||||
messageFont = config.getProperty("messageFont","Gill Sans Ultra Bold Condensed");
|
messageFont = config.getProperty("messageFont","Gill Sans Ultra Bold Condensed");
|
||||||
usernameFont = config.getProperty("usernameFont","Segoe UI Semibold");
|
usernameFont = config.getProperty("usernameFont","Segoe UI Semibold");
|
||||||
touhoumotherConsoleFont = config.getProperty("touhoumotherConsoleFont","Agency FB Bold");
|
touhoumotherConsoleFont = config.getProperty("touhoumotherConsoleFont","Agency FB Bold");
|
||||||
|
messageFontSize = config.getInteger("messageFontSize",24);
|
||||||
|
usernameFontSize = config.getInteger("usernameFontSize",16);
|
||||||
|
touhoumotherConsoleFontSize = config.getInteger("touhouMotherConsoleFontSize",12);
|
||||||
touhoumothermodule_enabled = config.getBoolean("Module_touhoumother_Enabled",false);
|
touhoumothermodule_enabled = config.getBoolean("Module_touhoumother_Enabled",false);
|
||||||
controllermodule_enabled = config.getBoolean("Module_controller_Enabled",false);
|
controllermodule_enabled = config.getBoolean("Module_controller_Enabled",false);
|
||||||
twitchmodule_enabled = config.getBoolean("Module_twitch_Enabled",true);
|
twitchmodule_enabled = config.getBoolean("Module_twitch_Enabled",true);
|
||||||
@ -616,8 +622,10 @@ public class sigIRC{
|
|||||||
authenticated=true;
|
authenticated=true;
|
||||||
} else
|
} else
|
||||||
if (MessageIsAllowed(line)) {
|
if (MessageIsAllowed(line)) {
|
||||||
|
line = new String(line.getBytes(),"UTF-8");
|
||||||
String filteredMessage = FilterMessage(line);
|
String filteredMessage = FilterMessage(line);
|
||||||
panel.addMessage(filteredMessage);
|
panel.addMessage(filteredMessage);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -625,13 +633,17 @@ public class sigIRC{
|
|||||||
|
|
||||||
private static String FilterMessage(String line) {
|
private static String FilterMessage(String line) {
|
||||||
final String hostcutoff_str = "sigonitori :";
|
final String hostcutoff_str = "sigonitori :";
|
||||||
System.out.println("Original Message: "+line);
|
|
||||||
String username = line.substring(1, line.indexOf("!"));
|
String username = line.substring(1, line.indexOf("!"));
|
||||||
String cutstring = channel+" :";
|
String cutstring = channel+" :";
|
||||||
String message = line.substring(line.indexOf(cutstring)+cutstring.length(), line.length());
|
String message = line.substring(line.indexOf(cutstring)+cutstring.length(), line.length());
|
||||||
if (username.equalsIgnoreCase("jtv")) {
|
if (username.equalsIgnoreCase("jtv")) {
|
||||||
message = line.substring(line.indexOf(hostcutoff_str)+hostcutoff_str.length(), line.length());
|
message = line.substring(line.indexOf(hostcutoff_str)+hostcutoff_str.length(), line.length());
|
||||||
}
|
}
|
||||||
|
/*if (message.length()>0) {
|
||||||
|
//message = "\uac00\uac01\uac02\u1100\u1101\u1102\u1117 1234567890 ";
|
||||||
|
System.out.println(message);
|
||||||
|
}*/
|
||||||
|
System.out.println(username+": "+ message);
|
||||||
return username+": "+ message;
|
return username+": "+ message;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -21,37 +21,41 @@ import sig.MyPanel;
|
|||||||
|
|
||||||
public class DrawUtils {
|
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) {
|
public static void drawOutlineText(Graphics g, Font font, double x, double y, int outline_size, Color text_color, Color shadow_color, String message) {
|
||||||
drawOutlineText(g,font,x,y,0,0,outline_size,text_color,shadow_color,message);
|
drawOutlineText(g,font,x,y,0,0,1,outline_size,text_color,shadow_color,message);
|
||||||
}
|
}
|
||||||
static void drawOutlineText(Graphics g, Font font, double x, double y, double xoffset, double yoffset, int outline_size, Color text_color, Color shadow_color, String message) {
|
public static void drawOutlineText(Graphics g, Font font, double x, double y, int font_thickness, int outline_thickness, Color text_color, Color shadow_color, String message) {
|
||||||
|
drawOutlineText(g,font,x,y,0,0,font_thickness,outline_thickness,text_color,shadow_color,message);
|
||||||
|
}
|
||||||
|
static void drawOutlineText(Graphics g, Font font, double x, double y, double xoffset, double yoffset, int font_thickness, int outline_thickness, Color text_color, Color shadow_color, String message) {
|
||||||
AttributedString as = new AttributedString(message);
|
AttributedString as = new AttributedString(message);
|
||||||
as.addAttribute(TextAttribute.FONT, font);
|
as.addAttribute(TextAttribute.FONT, font);
|
||||||
g.setColor(shadow_color);
|
g.setColor(shadow_color);
|
||||||
Graphics2D g2 = (Graphics2D) g;
|
Graphics2D g2 = (Graphics2D) g;
|
||||||
if (message.length()>200) {
|
FontRenderContext frc = g2.getFontMetrics(font).getFontRenderContext();
|
||||||
g2.setColor(shadow_color);
|
GlyphVector gv = font.createGlyphVector(frc, message);
|
||||||
g2.drawString(as.getIterator(),(int)(x+outline_size+xoffset),(int)(y+outline_size+yoffset));
|
Shape shape = gv.getOutline((int)(x+xoffset),(int)(y+yoffset));
|
||||||
} else {
|
g2.setClip(null);
|
||||||
FontRenderContext frc = g2.getFontMetrics(font).getFontRenderContext();
|
g2.setStroke(new BasicStroke(font_thickness + outline_thickness*2));
|
||||||
GlyphVector gv = font.createGlyphVector(frc, message);
|
g2.setColor(shadow_color);
|
||||||
Rectangle2D box = gv.getVisualBounds();
|
g2.setRenderingHint(
|
||||||
Shape shape = gv.getOutline((int)(x+xoffset),(int)(y+yoffset));
|
RenderingHints.KEY_ANTIALIASING,
|
||||||
g2.setClip(shape);
|
RenderingHints.VALUE_ANTIALIAS_ON);
|
||||||
g2.drawString(as.getIterator(),(int)(x+xoffset),(int)(y+yoffset));
|
g2.draw(shape);
|
||||||
g2.setClip(null);
|
GlyphVector gv2 = font.createGlyphVector(frc, message);
|
||||||
g2.setStroke(new BasicStroke(outline_size*2));
|
Shape shape2 = gv2.getOutline((int)(x+xoffset),(int)(y+yoffset));
|
||||||
g2.setColor(shadow_color);
|
g2.setClip(null);
|
||||||
g2.setRenderingHint(
|
g2.setStroke(new BasicStroke(font_thickness));
|
||||||
RenderingHints.KEY_ANTIALIASING,
|
g2.setColor(text_color);
|
||||||
RenderingHints.VALUE_ANTIALIAS_ON);
|
g2.setRenderingHint(
|
||||||
g2.draw(shape);
|
RenderingHints.KEY_ANTIALIASING,
|
||||||
}
|
RenderingHints.VALUE_ANTIALIAS_ON);
|
||||||
|
g2.draw(shape2);
|
||||||
g2.setColor(text_color);
|
g2.setColor(text_color);
|
||||||
g2.drawString(as.getIterator(),(int)(x+xoffset),(int)(y+yoffset));
|
g2.drawString(as.getIterator(),(int)(x+xoffset),(int)(y+yoffset));
|
||||||
}
|
}
|
||||||
public static void drawCenteredOutlineText(Graphics g, Font font, double x, double y, int outline_size, Color text_color, Color shadow_color, String message) {
|
public static void drawCenteredOutlineText(Graphics g, Font font, double x, double y, int outline_size, Color text_color, Color shadow_color, String message) {
|
||||||
Rectangle2D textBounds = TextUtils.calculateStringBoundsFont(message, font);
|
Rectangle2D textBounds = TextUtils.calculateStringBoundsFont(message, font);
|
||||||
drawOutlineText(g,font,x,y,-textBounds.getWidth()/2,-textBounds.getHeight()/2,outline_size,text_color,shadow_color,message);
|
drawOutlineText(g,font,x,y,-textBounds.getWidth()/2,-textBounds.getHeight()/2,1,outline_size,text_color,shadow_color,message);
|
||||||
}
|
}
|
||||||
public static void drawText(Graphics g, double x, double y, Color color, String message) {
|
public static void drawText(Graphics g, double x, double y, Color color, String message) {
|
||||||
if (message.length()>0) {
|
if (message.length()>0) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user