home *** CD-ROM | disk | FTP | other *** search
- import java.applet.Applet;
- 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.MalformedURLException;
- import java.net.URL;
- import java.util.StringTokenizer;
-
- public class hscroll extends OCAviewerExtend implements Runnable {
- // $FF: renamed from: fm java.awt.FontMetrics
- FontMetrics field_0;
- Thread animator;
- boolean leave = false;
- // $FF: renamed from: d java.awt.Dimension
- Dimension field_1;
- Image off;
- Graphics g_off;
- Graphics g_erase;
- Image serase;
- Graphics g_serase;
- Image erase;
- URL goURL;
- String connect_message;
- boolean dragged = false;
- boolean break_pause = false;
- boolean tag = false;
- long next_time;
- int reload_count = 0;
- // $FF: renamed from: mx int
- int field_2;
- int hLine = -1;
- boolean mouseIn = false;
- int l_h = -1;
- int soff;
- boolean update_si = false;
- int i_w;
- int max_d;
- boolean dont_bother = false;
- int num_links;
- int temp_links;
- int[] link_cords;
- String[] link_urls;
- int[] line_coords;
- int[] re_draw;
- int font_style;
- int num_descrips;
- int scroll_x;
- int last_h = -1;
- int cur_dline;
- int hold_move;
- int link_ref = 0;
- int i_h;
- String later_string = "";
- boolean try_later = false;
- boolean pause_it = false;
- boolean force_draw = false;
- boolean done_draw = false;
- boolean first_run = false;
- boolean paused;
- boolean fetching_file = false;
- private Font m_font;
- private int m_def_delay = 0;
- private int m_scroll_delay = 20;
- private Color m_def_textcolor;
- private Color m_bgcolor;
- private Color m_def_hlcolor;
- private String m_onsbtext;
- private int m_yoffset;
- private String m_def_loadwhere;
- private String m_offsbtext;
- private int m_jump;
- private int m_xoffset;
- private Font[] m_cur_font;
- private int[] m_size_pause;
- private int[] m_delay;
- private Color[] m_textcolor;
- private String[] m_desc;
- private String[] m_linkurl;
- private boolean[] m_centertext;
- private String[] m_loadwhere;
-
- public void stop() {
- if (this.animator != null) {
- this.animator.stop();
- this.animator = null;
- }
-
- }
-
- public boolean mouseEnter(Event var1, int var2, int var3) {
- this.mouseIn = true;
- if (!this.fetching_file) {
- ((OCAviewerExtend)this).showStatus(this.m_onsbtext);
- }
-
- return true;
- }
-
- public void mCheck() {
- if (this.num_links != 0) {
- for(int var1 = 0; var1 < this.num_links; ++var1) {
- if (!this.mouseIn) {
- this.hLine = -1;
- this.chl(var1);
- return;
- }
-
- if (this.field_2 > this.link_cords[var1 * 3] + this.scroll_x && this.field_2 < this.link_cords[var1 * 3 + 1] + this.scroll_x) {
- this.hLine = this.link_cords[var1 * 3 + 2];
- this.link_ref = var1;
- this.chl(var1);
- return;
- }
-
- if (var1 == this.num_links - 1) {
- this.hLine = -1;
- this.chl(var1);
- return;
- }
- }
-
- }
- }
-
- public boolean mouseExit(Event var1, int var2, int var3) {
- this.mouseIn = false;
- if (!this.fetching_file) {
- ((OCAviewerExtend)this).showStatus(this.m_offsbtext);
- }
-
- if (this.paused) {
- this.mCheck();
- }
-
- return true;
- }
-
- public void paint(Graphics var1) {
- if (!this.tag) {
- var1.setColor(Color.red);
- var1.drawString("Incorrect 'Notice' tag", 5, 15);
- ((OCAviewerExtend)this).showStatus("Incorrect 'Notice' tag");
- } else {
- if (this.done_draw) {
- var1.drawImage(this.off, this.scroll_x, 0, this);
- var1.setColor(this.m_bgcolor);
- }
-
- }
- }
-
- public hscroll() {
- this.m_def_textcolor = Color.black;
- this.m_bgcolor = Color.white;
- this.m_def_hlcolor = Color.red;
- this.m_onsbtext = "OpenCube - Horizontal Marquee (www.opencube.com)";
- this.m_yoffset = 5;
- this.m_def_loadwhere = "_self";
- this.m_offsbtext = "Java By OpenCube (www.opencube.com)";
- this.m_jump = 1;
- this.m_xoffset = 5;
- }
-
- public boolean mouseUp(Event var1, int var2, int var3) {
- boolean var4 = false;
- this.leave = false;
-
- for(int var5 = this.num_descrips - 1; var5 > -1; --var5) {
- if (this.scroll_x > -this.line_coords[var5]) {
- this.cur_dline = var5;
- var4 = true;
- this.dont_bother = false;
- }
- }
-
- if (!var4) {
- this.cur_dline = 0;
- this.dont_bother = true;
- }
-
- if (this.dragged) {
- this.dragged = false;
- this.pause_it = false;
- return true;
- } else if (this.hLine != -1 && !this.link_urls[this.link_ref].equals("-1")) {
- try {
- this.goURL = new URL(((OCAviewerExtend)this).getDocumentBase(), this.link_urls[this.link_ref]);
- } catch (MalformedURLException var6) {
- }
-
- ((Applet)this).getAppletContext().showDocument(this.goURL, this.m_loadwhere[this.hLine]);
- return true;
- } else {
- this.pause_it = false;
- return true;
- }
- }
-
- public void update(Graphics var1) {
- this.paint(var1);
- }
-
- public Color ConvertColor(String var1) {
- int var2 = 0;
- int var3 = 0;
- int var4 = 0;
- int var5 = 0;
- var1.trim();
- var5 = var1.indexOf("#");
- if (var5 != -1 && var5 + 1 != var1.length()) {
- Color var9 = new Color(Integer.parseInt(var1.substring(var5 + 1), 16));
- return var9;
- } else {
- StringTokenizer var7 = new StringTokenizer(var1, ",");
- if (var7.countTokens() > 3) {
- return Color.black;
- } else {
- while(var7.hasMoreTokens()) {
- var2 = Integer.parseInt(var7.nextToken().trim());
- var3 = Integer.parseInt(var7.nextToken().trim());
- var4 = Integer.parseInt(var7.nextToken().trim());
- }
-
- Object var10 = null;
- if (var2 > 255) {
- var2 = 255;
- }
-
- if (var3 > 255) {
- var3 = 255;
- }
-
- if (var4 > 255) {
- var4 = 255;
- }
-
- Color var6 = new Color(var2, var3, var4);
- return var6;
- }
- }
- }
-
- public void start() {
- this.pause_it = false;
- if (this.animator == null) {
- this.animator = new Thread(this);
- this.animator.start();
- }
-
- }
-
- public void DrawBG(Graphics var1) {
- var1.setColor(this.m_bgcolor);
- var1.fillRect(0, 0, this.field_1.width, this.field_1.height);
- }
-
- public void ScrollIt(boolean var1) {
- if (var1 && this.scroll_x <= -this.line_coords[this.cur_dline]) {
- if (!this.leave && this.m_delay[this.cur_dline] > 0 && !this.dont_bother) {
- this.paused = true;
- this.scroll_x = -this.line_coords[this.cur_dline];
- ((Component)this).getGraphics().drawImage(this.off, this.scroll_x, 0, this);
- this.next_time = System.currentTimeMillis() + (long)this.m_delay[this.cur_dline];
-
- while(System.currentTimeMillis() < this.next_time) {
- try {
- Thread.sleep(100L);
- } catch (InterruptedException var2) {
- }
-
- if (this.break_pause) {
- this.break_pause = false;
- break;
- }
- }
-
- this.paused = false;
- }
-
- if (this.cur_dline != this.num_descrips - 1) {
- ++this.cur_dline;
- } else {
- this.leave = true;
- }
- }
-
- ((Component)this).getGraphics().drawImage(this.off, this.scroll_x, 0, this);
- if (this.scroll_x < -this.off.getWidth(this)) {
- this.scroll_x = this.field_1.width;
- this.cur_dline = 0;
- this.leave = false;
- this.dont_bother = false;
- }
-
- }
-
- public void DrawScroll() {
- int var1 = 0;
- int var2 = 0;
- int var3 = 0;
- int var4 = 0;
- boolean var5 = false;
- this.num_links = this.temp_links;
- this.link_cords = new int[this.num_links * 3];
- this.link_urls = new String[this.num_links];
- int var6 = 0;
-
- do {
- var1 = 0;
-
- for(int var7 = 0; var7 < this.num_descrips; ++var7) {
- if (var6 == 0) {
- this.field_0 = ((Component)this).getFontMetrics(this.m_cur_font[var7]);
- if (this.m_size_pause[var7] == 1) {
- var4 = var1;
- var5 = true;
- } else if (!var5) {
- var4 = var1;
- }
-
- var1 += this.field_0.stringWidth(this.m_desc[var7]);
- if (this.field_0.getDescent() > this.max_d) {
- this.max_d = this.field_0.getDescent();
- }
-
- if (var7 == this.m_desc.length - 1) {
- this.off = ((Component)this).createImage(var1 + 2 + this.m_jump, this.field_1.height);
- this.g_off = this.off.getGraphics();
- this.g_off.setColor(this.m_bgcolor);
- this.g_off.fillRect(0, 0, var1 + 2 + this.m_jump, this.field_1.height);
- this.i_w = var1 + 5;
- }
-
- if (var1 - var4 < this.field_1.width && this.m_size_pause[var7] == 2) {
- var1 = var1 + (this.field_1.width - (var1 - var4)) + 1;
- var5 = false;
- }
- } else {
- this.g_off.setFont(this.m_cur_font[var7]);
- this.field_0 = this.g_off.getFontMetrics(this.m_cur_font[var7]);
- var2 = var1;
- if (this.m_size_pause[var7] == 1) {
- var4 = var1;
- var5 = true;
- } else if (!var5) {
- var4 = var1;
- }
-
- this.line_coords[var7] = var1 - this.m_xoffset;
- var1 += this.field_0.stringWidth(this.m_desc[var7]);
- this.g_off.setColor(this.m_textcolor[var7]);
- this.g_off.drawString(this.m_desc[var7], var2, this.field_1.height - this.max_d - this.m_yoffset);
- if (this.m_linkurl[var7].length() > 3) {
- this.link_cords[var3 * 3] = var2;
- this.link_cords[var3 * 3 + 1] = var1;
- this.link_cords[var3 * 3 + 2] = var7;
- this.link_urls[var3] = this.m_linkurl[var7];
- ++var3;
- }
-
- if (var1 - var4 < this.field_1.width && this.m_size_pause[var7] == 2) {
- var1 = var1 + (this.field_1.width - (var1 - var4)) + 1;
- var5 = false;
- }
- }
- }
-
- ++var6;
- } while(var6 < 2);
-
- this.done_draw = true;
- }
-
- public boolean mouseDown(Event var1, int var2, int var3) {
- this.pause_it = true;
- this.hold_move = this.field_2;
- this.cur_dline = 0;
- if (this.paused) {
- this.break_pause = true;
- }
-
- return true;
- }
-
- private void chl(int var1) {
- if (this.l_h != this.hLine) {
- if (this.l_h != -1) {
- this.method_0(this.l_h, this.m_textcolor[this.l_h]);
- ((OCAviewerExtend)this).showStatus(this.m_onsbtext);
- }
-
- if (this.hLine != -1) {
- this.method_0(this.hLine, this.m_def_hlcolor);
- ((OCAviewerExtend)this).showStatus(this.link_urls[var1]);
- }
-
- if (this.paused) {
- this.soff = 0;
- } else {
- this.soff = 0;
- }
-
- ((Component)this).getGraphics().drawImage(this.off, this.scroll_x + this.soff, 0, this);
- }
-
- this.l_h = this.hLine;
- }
-
- public void run() {
- if (!this.tag) {
- this.stop();
- }
-
- while(true) {
- if (!this.first_run) {
- this.DrawBG(((Component)this).getGraphics());
- this.DrawScroll();
- if (this.m_jump > 1) {
- this.serase = ((Component)this).createImage(this.m_jump, this.field_1.height);
- this.g_serase = this.serase.getGraphics();
- this.g_serase.setColor(this.m_bgcolor);
- this.g_serase.fillRect(0, 0, this.m_jump, this.field_1.height);
- }
-
- this.first_run = true;
- }
-
- if (!this.pause_it && this.first_run) {
- this.scroll_x -= this.m_jump;
- this.ScrollIt(true);
- this.mCheck();
- }
-
- try {
- Thread.sleep((long)this.m_scroll_delay);
- } catch (InterruptedException var1) {
- }
- }
- }
-
- public void init() {
- String var1 = "Horizontal Marquee, Copyright (c) 1999, OpenCube Inc.";
- int var3 = 0;
- this.field_1 = ((Component)this).size();
- this.scroll_x = this.field_1.width;
- String var2 = ((OCAviewerExtend)this).getParameter("Notice");
- if (var2 == null) {
- this.m_onsbtext = "Invalid Copyright 'Notice' Tag";
- this.tag = false;
- } else {
- if (var2.equalsIgnoreCase(var1)) {
- this.tag = true;
- } else {
- this.tag = false;
- }
-
- var2 = ((OCAviewerExtend)this).getParameter("font");
- if (var2 != null) {
- this.m_font = ocfontc.getFontSD(var2, ",");
- } else {
- this.m_font = new Font("Helvetica", 0, 12);
- }
-
- var2 = ((OCAviewerExtend)this).getParameter("scrolljump");
- if (var2 != null) {
- this.m_jump = Integer.parseInt(var2);
- }
-
- var2 = ((OCAviewerExtend)this).getParameter("pausemargin");
- if (var2 != null) {
- this.m_xoffset = Integer.parseInt(var2);
- }
-
- var2 = ((OCAviewerExtend)this).getParameter("loadwhere");
- if (var2 != null) {
- this.m_def_loadwhere = var2;
- }
-
- var2 = ((OCAviewerExtend)this).getParameter("textcolor");
- if (var2 != null) {
- this.m_def_textcolor = this.ConvertColor(var2);
- }
-
- var2 = ((OCAviewerExtend)this).getParameter("bgcolor");
- if (var2 != null) {
- this.m_bgcolor = this.ConvertColor(var2);
- }
-
- ((Component)this).setBackground(this.m_bgcolor);
- var2 = ((OCAviewerExtend)this).getParameter("delay");
- if (var2 != null) {
- this.m_def_delay = Integer.parseInt(var2);
- }
-
- var2 = ((OCAviewerExtend)this).getParameter("scrolldelay");
- if (var2 != null) {
- this.m_scroll_delay = Integer.parseInt(var2);
- }
-
- var2 = ((OCAviewerExtend)this).getParameter("yoffset");
- if (var2 != null) {
- this.m_yoffset = Integer.parseInt(var2);
- }
-
- var2 = ((OCAviewerExtend)this).getParameter("hlcolor");
- if (var2 != null) {
- this.m_def_hlcolor = this.ConvertColor(var2);
- }
-
- while(((OCAviewerExtend)this).getParameter("desc" + var3) != null) {
- ++var3;
- ++this.num_descrips;
- }
-
- this.m_cur_font = new Font[this.num_descrips];
- this.m_delay = new int[this.num_descrips];
- this.m_textcolor = new Color[this.num_descrips];
- this.m_desc = new String[this.num_descrips];
- this.m_linkurl = new String[this.num_descrips];
- this.m_loadwhere = new String[this.num_descrips];
- this.m_size_pause = new int[this.num_descrips];
- this.line_coords = new int[this.num_descrips];
- this.re_draw = new int[this.num_descrips];
-
- for(int var21 = 0; var21 < this.num_descrips; ++var21) {
- var2 = ((OCAviewerExtend)this).getParameter("desc" + var21);
- if (var2 != null) {
- this.m_desc[var21] = var2;
- this.m_desc[var21] = this.m_desc[var21].replace('|', ' ');
- }
-
- var2 = ((OCAviewerExtend)this).getParameter("loadwhere" + var21);
- if (var2 != null) {
- this.m_loadwhere[var21] = var2;
- } else {
- this.m_loadwhere[var21] = this.m_def_loadwhere;
- }
-
- var2 = ((OCAviewerExtend)this).getParameter("font" + var21);
- if (var2 != null) {
- this.m_cur_font[var21] = ocfontc.getFontSD(var2, ",");
- } else {
- this.m_cur_font[var21] = this.m_font;
- }
-
- var2 = ((OCAviewerExtend)this).getParameter("delay" + var21);
- if (var2 != null) {
- this.m_delay[var21] = Integer.parseInt(var2);
- } else {
- this.m_delay[var21] = this.m_def_delay;
- }
-
- var2 = ((OCAviewerExtend)this).getParameter("textcolor" + var21);
- if (var2 != null) {
- this.m_textcolor[var21] = this.ConvertColor(var2);
- } else {
- this.m_textcolor[var21] = this.m_def_textcolor;
- }
-
- var2 = ((OCAviewerExtend)this).getParameter("desturl" + var21);
- if (var2 != null) {
- ++this.temp_links;
- this.m_linkurl[var21] = var2;
- } else {
- this.m_linkurl[var21] = "-1";
- }
-
- var2 = ((OCAviewerExtend)this).getParameter("sizepause" + var21);
- if (var2 != null) {
- this.m_size_pause[var21] = Integer.parseInt(var2);
- } else {
- this.m_size_pause[var21] = 0;
- }
- }
-
- }
- }
-
- public boolean mouseDrag(Event var1, int var2, int var3) {
- this.field_2 = var2;
- if (this.hold_move != this.field_2) {
- this.dragged = true;
- this.scroll_x += this.field_2 - this.hold_move;
- if (this.scroll_x <= this.field_1.width && this.scroll_x >= -this.i_w) {
- this.ScrollIt(false);
- int var4 = Math.abs(this.field_2 - this.hold_move);
- this.erase = ((Component)this).createImage(var4, this.field_1.height);
- this.g_erase = this.erase.getGraphics();
- this.g_erase.setColor(this.m_bgcolor);
- this.g_erase.fillRect(0, 0, var4, this.field_1.height);
- if (this.scroll_x > 0) {
- ((Component)this).getGraphics().drawImage(this.erase, this.scroll_x - var4, 0, this);
- }
-
- if (this.scroll_x + this.i_w < this.field_1.width) {
- ((Component)this).getGraphics().drawImage(this.erase, this.scroll_x + this.i_w, 0, this);
- }
-
- this.hold_move = this.field_2;
- } else {
- this.scroll_x -= this.field_2 - this.hold_move;
- }
- }
-
- return true;
- }
-
- // $FF: renamed from: HL (int, java.awt.Color) void
- public void method_0(int var1, Color var2) {
- this.g_off.setFont(this.m_cur_font[var1]);
- this.field_0 = this.g_off.getFontMetrics(this.m_cur_font[var1]);
- this.g_off.setColor(var2);
- this.g_off.drawString(this.m_desc[var1], this.line_coords[var1] + this.m_xoffset, this.field_1.height - this.max_d - this.m_yoffset);
- }
-
- public String[] ReadDescrips(String var1) {
- String[] var2 = new String[8];
- int var3 = 0;
- int var4 = 0;
- int var5 = 0;
- int var6 = 0;
- int var7 = 0;
-
- do {
- var2[var7] = "-1";
- ++var7;
- } while(var7 < 8);
-
- if (var1.equals("|")) {
- return var2;
- } else {
- while(var5 != -1) {
- var5 = var1.indexOf(124, var4);
- if (var5 == -1) {
- break;
- }
-
- if (var5 - var4 != 0) {
- var2[var3] = var1.substring(var4, var5);
- }
-
- var4 = var5 + 1;
- ++var3;
- var6 = var5;
- if (var3 == 8) {
- break;
- }
- }
-
- if (var3 == 0) {
- var2[7] = var1;
- } else if (var1.length() > var6 + 1) {
- var2[7] = var1.substring(var6 + 1);
- }
-
- return var2;
- }
- }
-
- public boolean mouseMove(Event var1, int var2, int var3) {
- this.field_2 = var2;
- if (this.paused) {
- this.mCheck();
- }
-
- return true;
- }
- }
-