home *** CD-ROM | disk | FTP | other *** search
- import java.applet.Applet;
- import java.applet.AudioClip;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Dimension;
- import java.awt.Event;
- import java.awt.Font;
- import java.awt.FontMetrics;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.net.URL;
- import java.util.StringTokenizer;
-
- public class ButtonPLUS3 extends Applet {
- String fontname;
- String basetext;
- String entertext;
- String clicktext;
- String textalign;
- String vtextalign;
- String onetag;
- String target;
- String mode = "exit";
- boolean firsttime = true;
- boolean btext;
- boolean etext;
- boolean ctext;
- boolean bimage;
- boolean eimage;
- boolean cimage;
- boolean tag;
- boolean esound = false;
- boolean csound = false;
- int fontsize;
- int highlight;
- // $FF: renamed from: br int
- int field_0;
- // $FF: renamed from: bg int
- int field_1;
- // $FF: renamed from: bb int
- int field_2;
- // $FF: renamed from: tr int
- int field_3;
- // $FF: renamed from: tg int
- int field_4;
- // $FF: renamed from: tb int
- int field_5;
- // $FF: renamed from: w int
- int field_6;
- // $FF: renamed from: h int
- int field_7;
- Image bufferI;
- Image baseimage;
- Image clickimage;
- Image enterimage;
- Graphics bufferG;
- URL hotlink;
- AudioClip entersound;
- AudioClip clicksound;
- // $FF: renamed from: f java.awt.Font
- Font field_8;
- // $FF: renamed from: fm java.awt.FontMetrics
- FontMetrics field_9;
-
- public void init() {
- Dimension var2 = ((Component)this).size();
- this.field_6 = var2.width;
- this.field_7 = var2.height;
- this.bufferI = ((Component)this).createImage(this.field_6, this.field_7);
- this.bufferG = this.bufferI.getGraphics();
- String var1 = ((Applet)this).getParameter("ONETAG");
- if (var1 != null) {
- this.tag = true;
- this.onetag = var1 + "*";
- } else {
- this.tag = false;
- }
-
- var1 = this.tag ? this.extractParam("FONTNAME") : ((Applet)this).getParameter("FONTNAME");
- this.fontname = var1 != null ? var1 : "TimesRoman";
- var1 = this.tag ? this.extractParam("TEXTALIGN") : ((Applet)this).getParameter("TEXTALIGN");
- this.textalign = var1 != null ? var1 : "center";
- var1 = this.tag ? this.extractParam("VTEXTALIGN") : ((Applet)this).getParameter("VTEXTALIGN");
- this.vtextalign = var1 != null ? var1 : "center";
- var1 = this.tag ? this.extractParam("FONTSIZE") : ((Applet)this).getParameter("FONTSIZE");
- this.fontsize = var1 != null ? Integer.parseInt(var1) : 12;
- var1 = this.tag ? this.extractParam("URL") : ((Applet)this).getParameter("URL");
- if (var1 != null) {
- try {
- this.hotlink = new URL(((Applet)this).getDocumentBase(), var1);
- } catch (Exception var10) {
- }
- } else {
- try {
- this.hotlink = new URL("http://www.xm.com/cafe/ButtonPLUS/index.html");
- } catch (Exception var9) {
- }
- }
-
- var1 = this.tag ? this.extractParam("TEXT") : ((Applet)this).getParameter("TEXT");
- if (var1 != null) {
- this.basetext = var1.substring(0, var1.indexOf("|"));
- this.entertext = var1.substring(var1.indexOf("|") + 1, var1.lastIndexOf("|"));
- this.clicktext = var1.substring(var1.lastIndexOf("|") + 1);
- if (this.basetext != null) {
- this.btext = true;
- }
-
- if (this.entertext != null) {
- this.etext = true;
- }
-
- if (this.clicktext != null) {
- this.ctext = true;
- }
- }
-
- var1 = this.tag ? this.extractParam("TARGET") : ((Applet)this).getParameter("TARGET");
- this.target = var1;
- var1 = this.tag ? this.extractParam("IMAGE") : ((Applet)this).getParameter("IMAGE");
- if (var1 != null) {
- String var4 = var1.substring(0, var1.indexOf("|"));
- String var5 = var1.substring(var1.indexOf("|") + 1, var1.lastIndexOf("|"));
- String var6 = var1.substring(var1.lastIndexOf("|") + 1);
-
- try {
- this.baseimage = ((Applet)this).getImage(new URL(((Applet)this).getDocumentBase(), var4));
- this.enterimage = ((Applet)this).getImage(new URL(((Applet)this).getDocumentBase(), var5));
- this.clickimage = ((Applet)this).getImage(new URL(((Applet)this).getDocumentBase(), var6));
- } catch (Exception var8) {
- }
-
- if (this.baseimage != null) {
- this.bimage = true;
- }
-
- if (this.enterimage != null) {
- this.eimage = true;
- }
-
- if (this.clickimage != null) {
- this.cimage = true;
- }
- }
-
- var1 = this.tag ? this.extractParam("SOUND") : ((Applet)this).getParameter("SOUND");
- if (var1 != null) {
- String var24 = var1.substring(0, var1.indexOf("|"));
- String var25 = var1.substring(var1.indexOf("|") + 1);
-
- try {
- this.entersound = ((Applet)this).getAudioClip(new URL(((Applet)this).getDocumentBase(), var24));
- this.clicksound = ((Applet)this).getAudioClip(new URL(((Applet)this).getDocumentBase(), var25));
- } catch (Exception var7) {
- }
-
- if (this.entersound != null) {
- this.esound = true;
- }
-
- if (this.clicksound != null) {
- this.csound = true;
- }
- }
-
- var1 = this.tag ? this.extractParam("BGCOLOR") : ((Applet)this).getParameter("BGCOLOR");
- if (var1 != null) {
- if (var1.equals("random")) {
- this.field_0 = (int)(Math.random() * (double)256.0F);
- this.field_1 = (int)(Math.random() * (double)256.0F);
- this.field_2 = (int)(Math.random() * (double)256.0F);
- } else {
- StringTokenizer var3 = new StringTokenizer(var1, ",");
- this.field_0 = Integer.parseInt(var3.nextToken());
- this.field_1 = Integer.parseInt(var3.nextToken());
- this.field_2 = Integer.parseInt(var3.nextToken());
- }
- } else {
- this.field_0 = this.field_1 = this.field_2 = 192;
- }
-
- var1 = this.tag ? this.extractParam("TEXTCOLOR") : ((Applet)this).getParameter("TEXTCOLOR");
- if (var1 != null) {
- StringTokenizer var23 = new StringTokenizer(var1, ",");
- this.field_3 = Integer.parseInt(var23.nextToken());
- this.field_4 = Integer.parseInt(var23.nextToken());
- this.field_5 = Integer.parseInt(var23.nextToken());
- } else {
- this.field_3 = this.field_4 = this.field_5 = 255;
- }
-
- var1 = this.tag ? this.extractParam("HIGHLIGHT") : ((Applet)this).getParameter("HIGHLIGHT");
- this.highlight = var1 != null ? Integer.parseInt(var1) : 0;
- }
-
- public int getXX(String var1) {
- if (this.textalign.equals("center")) {
- return (this.field_6 - this.field_9.stringWidth(var1)) / 2;
- } else {
- return this.textalign.equals("left") ? this.highlight + 2 : this.field_6 - this.highlight - 2 - this.field_9.stringWidth(var1);
- }
- }
-
- public int getYY(String var1) {
- if (this.vtextalign.equals("center")) {
- return (this.field_7 + this.field_9.getHeight()) / 2 - this.field_9.getMaxDescent();
- } else {
- return this.vtextalign.equals("top") ? this.highlight + 2 + this.field_9.getHeight() - this.field_9.getMaxDescent() : this.field_7 - this.highlight - 2;
- }
- }
-
- public void paint(Graphics var1) {
- this.paintBuffer(this.bufferG);
- var1.drawImage(this.bufferI, 0, 0, this);
- }
-
- public String extractParam(String var1) {
- var1 = "*" + var1 + "=";
- return this.onetag.indexOf(var1) != -1 ? this.onetag.substring(this.onetag.indexOf(var1) + var1.length(), this.onetag.indexOf("*", this.onetag.indexOf(var1) + 1)) : null;
- }
-
- public void paintBuffer(Graphics var1) {
- this.field_8 = new Font(this.fontname, 0, this.fontsize);
- var1.setFont(this.field_8);
- this.field_9 = var1.getFontMetrics();
- var1.setColor(new Color(this.field_0, this.field_1, this.field_2));
- if (this.firsttime) {
- if (this.bimage) {
- var1.drawImage(this.baseimage, 0, 0, this);
- }
-
- if (this.eimage) {
- var1.drawImage(this.enterimage, 0, 0, this);
- }
-
- if (this.cimage) {
- var1.drawImage(this.clickimage, 0, 0, this);
- }
-
- var1.clearRect(0, 0, this.field_6, this.field_7);
- this.firsttime = false;
- }
-
- if (this.mode.equals("exit")) {
- var1.fillRect(0, 0, this.field_6, this.field_7);
- if (this.bimage) {
- var1.drawImage(this.baseimage, 0, 0, this);
- }
-
- if (this.btext) {
- var1.setColor(new Color(this.field_3, this.field_4, this.field_5));
- int var7 = this.getXX(this.basetext);
- int var10 = this.getYY(this.basetext);
- var1.drawString(this.basetext, var7, var10);
- }
-
- for(int var8 = 0; var8 < this.highlight; ++var8) {
- var1.setColor(new Color(Math.min(this.field_0 + 25, 255), Math.min(this.field_1 + 25, 255), Math.min(this.field_2 + 25, 255)));
- var1.drawLine(var8, var8, var8, this.field_7 - 1 - var8);
- var1.drawLine(var8, var8, this.field_6 - 1 - var8, var8);
- var1.setColor(new Color(Math.max(this.field_0 - 25, 0), Math.max(this.field_1 - 25, 0), Math.max(this.field_2 - 25, 0)));
- var1.drawLine(var8, this.field_7 - 1 - var8, this.field_6 - 1 - var8, this.field_7 - 1 - var8);
- var1.drawLine(this.field_6 - 1 - var8, var8, this.field_6 - 1 - var8, this.field_7 - 1 - var8);
- }
-
- } else if (this.mode.equals("enter")) {
- var1.fillRect(0, 0, this.field_6, this.field_7);
- if (this.eimage) {
- var1.drawImage(this.enterimage, 0, 0, this);
- }
-
- if (this.etext) {
- var1.setColor(new Color(this.field_3, this.field_4, this.field_5));
- int var5 = this.getXX(this.entertext);
- int var9 = this.getYY(this.entertext);
- var1.drawString(this.entertext, var5, var9);
- }
-
- for(int var6 = 0; var6 < this.highlight; ++var6) {
- var1.setColor(new Color(Math.min(this.field_0 + 50, 255), Math.min(this.field_1 + 50, 255), Math.min(this.field_2 + 50, 255)));
- var1.drawLine(var6, var6, var6, this.field_7 - 1 - var6);
- var1.drawLine(var6, var6, this.field_6 - 1 - var6, var6);
- var1.setColor(new Color(Math.max(this.field_0 - 50, 0), Math.max(this.field_1 - 50, 0), Math.max(this.field_2 - 50, 0)));
- var1.drawLine(var6, this.field_7 - 1 - var6, this.field_6 - 1 - var6, this.field_7 - 1 - var6);
- var1.drawLine(this.field_6 - 1 - var6, var6, this.field_6 - 1 - var6, this.field_7 - 1 - var6);
- }
-
- } else {
- if (this.mode.equals("click")) {
- var1.fillRect(0, 0, this.field_6, this.field_7);
- if (this.cimage) {
- var1.drawImage(this.clickimage, 0, 0, this);
- }
-
- if (this.ctext) {
- var1.setColor(new Color(this.field_3, this.field_4, this.field_5));
- int var2 = this.getXX(this.clicktext);
- int var3 = this.getYY(this.clicktext);
- var1.drawString(this.clicktext, var2, var3);
- }
-
- for(int var4 = 0; var4 < this.highlight; ++var4) {
- var1.setColor(new Color(Math.max(this.field_0 - 25, 0), Math.max(this.field_1 - 25, 0), Math.max(this.field_2 - 25, 0)));
- var1.drawLine(var4, var4, var4, this.field_7 - 1 - var4);
- var1.drawLine(var4, var4, this.field_6 - 1 - var4, var4);
- var1.setColor(new Color(Math.min(this.field_0 + 25, 255), Math.min(this.field_1 + 25, 255), Math.min(this.field_2 + 25, 255)));
- var1.drawLine(var4, this.field_7 - 1 - var4, this.field_6 - 1 - var4, this.field_7 - 1 - var4);
- var1.drawLine(this.field_6 - 1 - var4, var4, this.field_6 - 1 - var4, this.field_7 - 1 - var4);
- }
- }
-
- }
- }
-
- public void update(Graphics var1) {
- this.paint(var1);
- }
-
- public boolean mouseEnter(Event var1, int var2, int var3) {
- this.mode = "enter";
- if (this.esound) {
- this.entersound.play();
- }
-
- ((Applet)this).showStatus(this.hotlink.toString());
- ((Component)this).repaint();
- return true;
- }
-
- public boolean mouseExit(Event var1, int var2, int var3) {
- this.mode = "exit";
- ((Applet)this).showStatus("");
- ((Component)this).repaint();
- return true;
- }
-
- public boolean mouseMove(Event var1, int var2, int var3) {
- return true;
- }
-
- public boolean mouseDown(Event var1, int var2, int var3) {
- this.mode = "click";
- if (this.csound) {
- this.clicksound.play();
- }
-
- ((Applet)this).showStatus("Trying to connect to: " + this.hotlink.toString());
- ((Component)this).repaint();
- return true;
- }
-
- public boolean mouseUp(Event var1, int var2, int var3) {
- this.mode = "enter";
- ((Component)this).repaint();
- if (this.target == null) {
- ((Applet)this).getAppletContext().showDocument(this.hotlink);
- } else {
- ((Applet)this).getAppletContext().showDocument(this.hotlink, this.target);
- }
-
- return true;
- }
- }
-