home *** CD-ROM | disk | FTP | other *** search
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Container;
- 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.awt.LayoutManager;
- import java.awt.Panel;
- import java.io.DataInputStream;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.IOException;
- import java.util.Vector;
-
- public class OCstmenu extends Panel implements Runnable {
- Thread trun = null;
- private int activeSub = -1;
- private boolean startStopStall;
- private Color indArrowColor = new Color(255, 204, 0);
- private Image indArrow;
- private FontMetrics subfm;
- private FontMetrics mainfm;
- // $FF: renamed from: d java.awt.Dimension
- private Dimension field_0;
- private boolean paint_called = false;
- private Image[] arErase;
- private Graphics g_arErase;
- boolean mouseIn = false;
- boolean animating = false;
- boolean init_sb = false;
- boolean syncarrow = false;
- int bottom_height = 0;
- int er_id = -1;
- boolean go_expand = false;
- boolean go_retract = false;
- int sbx = 0;
- int rmainWidth;
- int rsubWidth;
- boolean bar_removed = false;
- boolean first_force = false;
- int subHL = -1;
- int num_main;
- int max_subs;
- int total_subs;
- int[] num_mainsubs;
- boolean[] m_sub_expanded;
- int[] sub_id;
- private int[] sub_starty;
- private int[] sub_offy;
- int[] main_starty;
- int[] sub_start_index;
- int bitHeight;
- int[] main_icon_id;
- int[] sub_icon_id;
- private int curMain = 0;
- private int offHeight = 0;
- private boolean inputHeightFixed = false;
- private int curSub = -1;
- Image bitoff;
- Graphics g_bitoff;
- Image bitorig;
- Graphics g_bitorig;
- Image bitsub;
- Graphics g_bitsub;
- Image endcap;
- private int m_subtext_yoffset = 0;
- private boolean m_tile_bg_insb = true;
- private int m_startopen_index = -1;
- private boolean m_hide_sb = false;
- private boolean m_tilebgin_margins = false;
- private boolean m_unmaintext = false;
- private boolean m_unsubtext = false;
- private boolean m_clip_main_bg = false;
- private String[] m_main_url;
- private String m_loadwhere = "_self";
- private String[] m_sub_url;
- private Color m_main_texthlcolor;
- private Color m_main_textcolor;
- private Color m_arrow_activecolor;
- private Color m_arrowhlcolor;
- private Color m_arrowcolor;
- private Color m_main_outcolor;
- private Color m_main_hloutcolor;
- private Color m_main_boxcolor;
- private Color m_sub_boxcolor;
- private Color m_sub_outcolor;
- private Color m_sub_hloutcolor;
- private Color m_sub_textcolor;
- private Color m_sub_hltextcolor;
- private String m_onsbtext;
- private String m_offsbtext;
- private Color m_bgcolor;
- private Font m_main_font;
- private Font m_sub_font;
- private String[] m_sub_desc;
- private String[] m_main_desc;
- private int m_main_lmargin;
- private int m_main_rmargin;
- private int m_main_icon_voffset;
- private int m_sub_icon_voffset;
- private int m_main_icon_indent;
- private int m_main_text_indent;
- private boolean m_animate_arrows;
- private int m_sub_lmargin;
- private int m_sub_rmargin;
- private int m_sub_text_indent;
- private int m_sub_icon_indent;
- private int m_arrowxoffset;
- private int m_arrowyoffset;
- private int m_jump_size;
- private int m_delay;
- private int m_item_height;
- private int m_additional_clip_height;
- private String m_endcap_image;
- private int m_maintext_yoffset;
- private Color stay_color;
- private String m_load_msg;
- private Color m_load_msgcolor;
- private Font m_load_font;
- private int m_sbwidth;
- private int m_lineinc;
- private int m_si;
- private Color m_bc;
- private Color m_ac;
- private Color m_hc;
- private Color m_bgc;
- private Color m_sc;
- private Color m_oc;
- private Color m_mac;
- private Color m_unact;
- private Color m_machl;
- private boolean m_sbflat;
- private boolean m_indent_bubble;
- private String[] m_icon_file;
- private String[] m_icon_switchfile;
- private boolean m_tile_mainbg;
- private boolean m_tile_subbg;
- private String m_sub_bgfile;
- private String m_main_bgfile;
- private int maxExpandHeight;
- private int curExpandHeight;
- private int cur_mainHL;
- // $FF: renamed from: my int
- private int field_1;
- // $FF: renamed from: mx int
- private int field_2;
- // $FF: renamed from: sb stsb
- private stsb field_3;
- private int scroll_y;
- private int old_scrolly;
- // $FF: renamed from: ts java.awt.Image
- private Image field_4;
- private Graphics g_ts;
- private Image main;
- private Graphics g_main;
- boolean first_run;
- boolean mouse_in;
- Image[] i_pic;
- Image[] s_pic;
- Image mainBG;
- Image subBG;
- Dimension[] icon_d;
- int i_pic_break;
- int s_pic_break;
- int num_icons;
- Image sb_bg;
- private String[] pVals;
- private String[] pNames;
- private int numClicks;
-
- private void hlSubText(int var1) {
- this.g_bitoff.drawImage(this.main, 0, -this.sub_starty[var1], this);
- this.g_bitoff.setFont(this.m_sub_font);
- this.g_bitsub.drawImage(this.bitoff, 0, 0, this);
- int var2 = this.m_sub_lmargin + this.m_sub_text_indent;
- if (this.sub_icon_id[var1] > -1 && this.s_pic[this.sub_icon_id[var1]] != null) {
- this.g_bitoff.drawImage(this.s_pic[this.sub_icon_id[var1]], this.m_sub_lmargin + this.m_sub_icon_indent, this.m_sub_icon_voffset + this.m_item_height / 2 - this.icon_d[this.sub_icon_id[var1]].height / 2, this);
- var2 = var2 + this.icon_d[this.sub_icon_id[var1]].width + this.m_sub_icon_indent;
- }
-
- if (this.m_sub_hloutcolor != null) {
- this.g_bitoff.setColor(this.m_sub_hloutcolor);
- this.g_bitoff.drawRect(this.m_sub_lmargin, 0, this.field_0.width - this.m_sub_rmargin - this.m_sub_lmargin - 1, this.m_item_height - 1);
- }
-
- this.g_bitoff.setColor(this.m_sub_hltextcolor);
- int var3 = this.m_item_height - this.subfm.getDescent() - (this.m_item_height - this.subfm.getHeight()) / 2 + this.m_subtext_yoffset;
- this.g_bitoff.drawString(this.m_sub_desc[var1], var2, var3);
- if (this.m_unsubtext) {
- this.g_bitoff.drawLine(var2 + 1, var3 + 1, var2 + this.subfm.stringWidth(this.m_sub_desc[var1]) - 1, var3 + 1);
- }
-
- this.g_main.drawImage(this.bitoff, 0, this.sub_starty[var1], this);
- }
-
- public boolean mouseEnter(Event var1, int var2, int var3) {
- this.mouseIn = true;
- return true;
- }
-
- public boolean mouseMove(Event var1, int var2, int var3) {
- this.field_1 = var3;
- this.field_2 = var2;
- if (this.animating) {
- return true;
- } else {
- this.mouseMove(var2, var3);
- return true;
- }
- }
-
- private void initSB() {
- this.field_3 = new stsb();
- this.field_3.setBarStyle(this.m_si, this.m_bc, this.m_ac, this.m_hc, this.m_bgc, this.m_sc, this.m_oc, this.m_mac, this.m_machl, this.m_unact, this.m_sbflat, this.m_indent_bubble);
- if (this.sb_bg != null && this.m_tile_bg_insb) {
- this.field_3.setBarBgImage(this.sb_bg);
- }
-
- this.field_3.setBackground(this.m_bgc);
- ((Container)this).setLayout((LayoutManager)null);
- this.field_3.reshape(this.sbx, 0, this.m_sbwidth, this.field_0.height);
- ((Container)this).add(this.field_3);
- this.init_sb = true;
- }
-
- public void stop() {
- if (this.trun != null) {
- this.trun.stop();
- this.trun = null;
- }
-
- }
-
- public void handleKeyStroke(Event var1) {
- if (var1.key == 10) {
- if (this.activeSub > -1) {
- ((Component)this).postEvent(new Event(this, 9851, this.m_sub_url[this.activeSub]));
- return;
- }
-
- if (this.curMain > -1) {
- if (this.m_sub_expanded[this.curMain]) {
- this.startRetract(this.curMain, true);
- return;
- }
-
- this.startExpand(this.curMain, true);
- return;
- }
- } else {
- if (var1.key == 1004) {
- this.moveUp();
- return;
- }
-
- if (var1.key == 1005) {
- this.moveDown();
- return;
- }
-
- if (var1.key == 9) {
- if (!var1.shiftDown()) {
- this.moveDown();
- return;
- }
-
- this.moveUp();
- return;
- }
- }
-
- }
-
- private void hlMainText(int var1) {
- this.g_bitoff.drawImage(this.main, 0, -this.main_starty[var1], this);
- this.g_bitoff.setFont(this.m_main_font);
- this.g_bitorig.drawImage(this.bitoff, 0, 0, this);
- int var2 = this.m_main_lmargin + this.m_main_text_indent;
- if (this.main_icon_id[var1] > -1 && this.s_pic[this.main_icon_id[var1]] != null) {
- this.g_bitoff.drawImage(this.s_pic[this.main_icon_id[var1]], this.m_main_lmargin + this.m_main_icon_indent, this.m_main_icon_voffset + this.m_item_height / 2 - this.icon_d[this.main_icon_id[var1]].height / 2, this);
- var2 = var2 + this.icon_d[this.main_icon_id[var1]].width + this.m_main_icon_indent;
- }
-
- if (this.m_main_hloutcolor != null) {
- this.g_bitoff.setColor(this.m_main_hloutcolor);
- this.g_bitoff.drawRect(this.m_main_lmargin, 0, this.field_0.width - this.m_main_lmargin - this.m_main_rmargin - 1, this.m_item_height - 1);
- }
-
- this.g_bitoff.setColor(this.m_main_texthlcolor);
- int var3 = this.m_item_height - this.mainfm.getDescent() - (this.m_item_height - this.mainfm.getHeight()) / 2 + this.m_maintext_yoffset;
- this.g_bitoff.drawString(this.m_main_desc[var1], var2, var3);
- if (this.m_unmaintext) {
- this.g_bitoff.drawLine(var2 + 1, var3 + 1, var2 + this.mainfm.stringWidth(this.m_main_desc[var1]) - 1, var3 + 1);
- }
-
- if (this.subHL != -1) {
- this.undohlSubText(this.subHL);
- this.subHL = -1;
- }
-
- this.g_main.drawImage(this.bitoff, 0, this.main_starty[var1], this);
- }
-
- private void undohlMainText(int var1) {
- this.g_bitorig.clipRect(this.m_arrowxoffset, this.m_arrowyoffset, 11, 8);
- this.g_bitorig.drawImage(this.main, 0, -this.main_starty[var1], this);
- this.g_main.drawImage(this.bitorig, 0, this.main_starty[var1], this);
- this.g_bitorig = this.bitorig.getGraphics();
- }
-
- private void activateSubURL(int var1, int var2) {
- if (var1 < this.field_0.width - this.m_sub_rmargin && var1 > this.m_sub_lmargin) {
- for(int var3 = 0; var3 < this.m_sub_desc.length; ++var3) {
- if (this.m_sub_expanded[this.sub_id[var3]] && var2 > this.sub_starty[var3] + this.scroll_y && var2 < this.sub_starty[var3] + this.m_item_height + this.scroll_y && var3 == this.subHL) {
- this.loadURL(this.m_sub_url[var3]);
- if (this.curMain > -1) {
- this.stop();
- this.undoArrowHL(this.curMain);
- this.curMain = -1;
- }
-
- if (this.activeSub > -1 && this.activeSub != var3) {
- this.undoActiveSubArrow(this.activeSub);
- }
-
- this.activeSub = var3;
- this.drawActiveSubArrow(var3);
- this.drawActiveSubArrowOnHLBit();
- this.paintIt();
- }
- }
- }
-
- }
-
- private int checkSubPosition(int var1) {
- for(int var2 = 0; var2 < this.sub_id.length; ++var2) {
- if (this.m_sub_expanded[this.sub_id[var2]] && var1 > this.sub_starty[var2] + this.scroll_y && var1 < this.sub_starty[var2] + this.m_item_height + this.scroll_y) {
- return var2;
- }
- }
-
- return -1;
- }
-
- private void loadURL(String var1) {
- if (!var1.equals("-1")) {
- ((Component)this).postEvent(new Event(this, 9850, var1));
- }
- }
-
- private void drawMainBG() {
- if (this.mainBG != null) {
- int var1 = 0;
- int var2 = this.rmainWidth;
- byte var3 = 0;
- int var4 = this.field_0.height * 2;
- if (!this.m_tilebgin_margins) {
- var1 = this.m_main_lmargin;
- var2 = this.field_0.width - this.m_main_lmargin - this.m_main_rmargin;
- }
-
- if (this.m_clip_main_bg) {
- var4 = this.m_main_desc.length * this.bitHeight + this.m_additional_clip_height;
- }
-
- if (this.m_main_desc.length * this.bitHeight > var4) {
- var4 = this.m_main_desc.length * this.bitHeight;
- }
-
- this.g_main.clipRect(var1, var3, var2, var4);
- if (!this.m_tile_mainbg) {
- this.g_main.drawImage(this.mainBG, 0, 0, this);
- } else {
- int var5 = 0;
- int var6 = 0;
- int var7 = this.mainBG.getWidth(this);
- int var8 = this.mainBG.getHeight(this);
- int var9 = this.field_0.height * 2;
-
- while(true) {
- this.g_main.drawImage(this.mainBG, var5, var6, this);
- var5 += var7;
- if (var5 > this.rmainWidth) {
- var5 = 0;
- var6 += var8;
- if (this.m_clip_main_bg) {
- if (var6 > this.m_main_desc.length * this.bitHeight + this.m_additional_clip_height) {
- break;
- }
- } else if (var6 > var9) {
- break;
- }
- }
- }
- }
-
- this.g_main = this.main.getGraphics();
- this.g_main.setFont(this.m_main_font);
- if (this.endcap != null) {
- this.g_main.drawImage(this.endcap, 0, this.m_main_desc.length * this.bitHeight, this);
- }
-
- this.sb_bg = ((Component)this).createImage(this.m_sbwidth, this.field_0.height);
- Graphics var10 = this.sb_bg.getGraphics();
- var10.drawImage(this.main, -this.field_0.width, 0, this);
- }
-
- }
-
- public void moveUp() {
- if (this.curMain > -1) {
- if (this.curMain > 0) {
- if (this.m_sub_expanded[this.curMain - 1]) {
- for(int var1 = this.sub_id.length - 1; var1 >= 0; --var1) {
- if (this.sub_id[var1] == this.curMain - 1) {
- this.undoKeyUPDownArrowHL(this.curMain);
- this.curMain = -1;
- this.activeSub = var1;
- ((Component)this).postEvent(new Event(this, 9850, this.m_sub_url[this.activeSub]));
- this.drawActiveSubArrow(this.activeSub);
- this.stop();
- this.paintIt();
- }
- }
- } else {
- this.stop();
- this.startStopStall = true;
- this.undoKeyUPDownArrowHL(this.curMain);
- this.curMain += -1;
- this.start();
- }
- }
- } else if (this.activeSub > -1) {
- if (this.activeSub > 0) {
- if (this.sub_id[this.activeSub] == this.sub_id[this.activeSub - 1]) {
- this.undoActiveSubArrow(this.activeSub);
- this.activeSub += -1;
- this.drawActiveSubArrow(this.activeSub);
- this.paintIt();
- ((Component)this).postEvent(new Event(this, 9850, this.m_sub_url[this.activeSub]));
- } else {
- this.undoActiveSubArrow(this.activeSub);
- this.curMain = this.sub_id[this.activeSub];
- this.activeSub = -1;
- this.stop();
- this.startStopStall = true;
- this.start();
- ((Component)this).postEvent(new Event(this, 9850, "-2"));
- }
- } else if (this.activeSub == 0) {
- this.undoActiveSubArrow(this.activeSub);
- this.curMain = this.sub_id[this.activeSub];
- this.activeSub = -1;
- this.stop();
- this.startStopStall = true;
- this.start();
- ((Component)this).postEvent(new Event(this, 9850, "-2"));
- }
- }
-
- this.setScrollPos();
- }
-
- private synchronized void drawAnimatedArrows(int var1, int var2) {
- this.g_main.drawImage(this.arErase[var1], this.m_arrowxoffset, this.main_starty[var1] + this.m_arrowyoffset, this);
- if (this.m_animate_arrows) {
- this.g_main.setColor(this.m_arrow_activecolor);
- } else if (this.cur_mainHL == var1) {
- this.g_main.setColor(this.m_arrowhlcolor);
- } else {
- this.g_main.setColor(this.m_arrowcolor);
- }
-
- int var3 = (8 - var2) / 2;
- if (this.m_sub_expanded[var1]) {
- if (var2 > 0) {
- int var4 = var3 + this.m_arrowxoffset;
- int var5 = 4 + this.main_starty[var1] + this.m_arrowyoffset;
-
- for(int var6 = var2; var6 >= 0; var6 -= 2) {
- this.g_main.drawLine(var4, var5, var4 + var6, var5);
- --var5;
- ++var4;
- }
-
- return;
- }
- } else if (var2 > 0) {
- int var7 = var3 + this.m_arrowxoffset;
- int var8 = this.main_starty[var1] + this.m_arrowyoffset;
-
- for(int var9 = var2; var9 >= 0; var9 -= 2) {
- this.g_main.drawLine(var7, var8, var7 + var9, var8);
- ++var8;
- ++var7;
- }
- }
-
- }
-
- private void DrawMenu() {
- int var1 = 0;
- this.drawSubBG();
-
- for(int var2 = 0; var2 < this.m_sub_desc.length; ++var2) {
- this.sub_starty[var2] = var1;
- this.sub_offy[var2] = var1;
- if (this.m_sub_boxcolor != null) {
- this.g_ts.setColor(this.m_sub_boxcolor);
- this.g_ts.fillRect(this.m_sub_lmargin, this.sub_starty[var2], this.field_0.width - this.m_sub_rmargin - this.m_sub_lmargin, this.m_item_height);
- }
-
- if (this.m_sub_outcolor != null) {
- this.g_ts.setColor(this.m_sub_outcolor);
- this.g_ts.drawRect(this.m_sub_lmargin, this.sub_starty[var2], this.field_0.width - this.m_sub_rmargin - this.m_sub_lmargin - 1, this.m_item_height - 1);
- }
-
- int var3 = this.m_sub_lmargin + this.m_sub_text_indent;
- if (this.sub_icon_id[var2] > -1 && this.i_pic[this.sub_icon_id[var2]] != null) {
- this.g_ts.drawImage(this.i_pic[this.sub_icon_id[var2]], this.m_sub_lmargin + this.m_sub_icon_indent, this.sub_starty[var2] + this.m_sub_icon_voffset + this.m_item_height / 2 - this.icon_d[this.sub_icon_id[var2]].height / 2, this);
- var3 = var3 + this.icon_d[this.sub_icon_id[var2]].width + this.m_sub_icon_indent;
- }
-
- this.g_ts.setColor(this.m_sub_textcolor);
- int var4 = var1 + this.m_item_height - this.subfm.getDescent() - (this.m_item_height - this.subfm.getHeight()) / 2 + this.m_subtext_yoffset;
- this.g_ts.drawString(this.m_sub_desc[var2], var3, var4);
- if (this.m_unsubtext) {
- this.g_ts.drawLine(var3 + 1, var4 + 1, var3 + this.subfm.stringWidth(this.m_sub_desc[var2]) - 1, var4 + 1);
- }
-
- var1 += this.bitHeight;
- }
-
- var1 = 0;
- this.m_arrowxoffset += this.field_0.width - this.m_main_rmargin - 20;
- this.m_arrowyoffset += this.m_item_height / 2 - 3;
- this.g_main.setFont(this.m_main_font);
- this.drawMainBG();
-
- for(int var9 = 0; var9 < this.m_main_desc.length; ++var9) {
- this.main_starty[var9] = var1;
- if (this.m_main_boxcolor != null) {
- this.g_main.setColor(this.m_main_boxcolor);
- this.g_main.fillRect(this.m_main_lmargin, this.main_starty[var9], this.field_0.width - this.m_main_lmargin - this.m_main_rmargin, this.m_item_height);
- }
-
- if (this.m_main_outcolor != null) {
- this.g_main.setColor(this.m_main_outcolor);
- this.g_main.drawRect(this.m_main_lmargin, this.main_starty[var9], this.field_0.width - this.m_main_lmargin - this.m_main_rmargin - 1, this.m_item_height - 1);
- }
-
- int var10 = this.m_main_lmargin + this.m_main_text_indent;
- if (this.main_icon_id[var9] > -1 && this.i_pic[this.main_icon_id[var9]] != null) {
- this.g_main.drawImage(this.i_pic[this.main_icon_id[var9]], this.m_main_lmargin + this.m_main_icon_indent, this.main_starty[var9] + this.m_main_icon_voffset + this.m_item_height / 2 - this.icon_d[this.main_icon_id[var9]].height / 2, this);
- var10 = var10 + this.icon_d[this.main_icon_id[var9]].width + this.m_main_icon_indent;
- }
-
- this.g_main.setColor(this.m_main_textcolor);
- int var11 = this.main_starty[var9] + this.m_item_height - this.mainfm.getDescent() - (this.m_item_height - this.mainfm.getHeight()) / 2 + this.m_maintext_yoffset;
- this.g_main.drawString(this.m_main_desc[var9], var10, var11);
- if (this.m_unmaintext) {
- this.g_main.drawLine(var10 + 1, var11 + 1, var10 + this.mainfm.stringWidth(this.m_main_desc[var9]) - 1, var11 + 1);
- }
-
- this.arErase[var9] = ((Component)this).createImage(9, 5);
- this.g_arErase = this.arErase[var9].getGraphics();
- int var5 = this.main_starty[var9] + this.m_arrowyoffset;
- this.g_arErase.drawImage(this.main, -this.m_arrowxoffset, -var5, this);
- this.drawArrow(1, this.m_arrowxoffset, this.main_starty[var9] + this.m_arrowyoffset, this.m_arrowcolor);
- var1 += this.bitHeight;
- int var6 = 0;
-
- for(int var7 = this.sub_start_index[var9]; var7 < this.sub_start_index[var9] + this.num_mainsubs[var9]; ++var7) {
- this.sub_starty[var7] = var6 + (this.sub_id[var7] + 1) * this.bitHeight;
- var6 += this.bitHeight;
- }
- }
-
- }
-
- public void start() {
- if (this.trun == null) {
- this.trun = new Thread(this);
- this.trun.start();
- }
-
- }
-
- private void undoActiveSubArrow(int var1) {
- this.g_main.setColor(new Color(153, 153, 153));
- this.g_main.fillRect(13, this.sub_starty[var1] + 3, 7, 9);
- }
-
- private void loadImages() {
- ACutil var1 = new ACutil();
-
- for(int var2 = this.i_pic_break; var2 < this.num_icons; this.i_pic_break = var2++) {
- if ((this.i_pic[var2] = var1.getImage(this.m_icon_file[var2])) != null) {
- this.icon_d[var2] = new Dimension(this.i_pic[var2].getWidth(this), this.i_pic[var2].getHeight(this));
- }
- }
-
- for(int var3 = this.s_pic_break; var3 < this.num_icons; this.s_pic_break = var3++) {
- if ((this.s_pic[var3] = var1.getImage(this.m_icon_switchfile[var3])) == null) {
- this.s_pic[var3] = this.i_pic[var3];
- }
- }
-
- this.mainBG = var1.getImage(this.m_main_bgfile);
- if (this.mainBG != null) {
- this.m_main_boxcolor = null;
- }
-
- this.subBG = var1.getImage(this.m_sub_bgfile);
- if (this.subBG != null) {
- this.m_sub_boxcolor = null;
- }
-
- if ((this.endcap = var1.getImage(this.m_endcap_image)) != null) {
- if (this.mainBG != null) {
- this.m_clip_main_bg = true;
- }
-
- this.m_additional_clip_height = this.endcap.getHeight(this);
- }
-
- }
-
- private int checkYExpandMouse(int var1, int var2) {
- for(int var3 = 0; var3 < this.main_starty.length; ++var3) {
- if (var1 >= this.main_starty[var3] + var2 && var1 <= this.main_starty[var3] + this.m_item_height + var2) {
- return var3;
- }
- }
-
- return -1;
- }
-
- public String getParameter(String var1) {
- for(int var2 = 0; var2 < this.pNames.length; ++var2) {
- if (var1.equalsIgnoreCase(this.pNames[var2])) {
- return this.pVals[var2];
- }
- }
-
- return null;
- }
-
- private void checkHL(int var1, int var2) {
- if (var1 < 0 && var2 < 0) {
- this.undoHL();
- this.paintIt();
- } else {
- int var3 = this.checkYExpandMouse(var2, this.scroll_y);
- if (var3 != -1) {
- if (!this.first_run && this.cur_mainHL != var3) {
- if (this.cur_mainHL > -1) {
- if (this.m_animate_arrows && this.curMain == this.cur_mainHL) {
- this.undohlMainText(this.cur_mainHL);
- } else {
- this.undohlMainText(this.cur_mainHL);
- this.undoArrowHL(this.cur_mainHL);
- }
- }
-
- if (var3 != this.curMain) {
- this.hlMainArrows(var3, false);
- this.hlMainText(var3);
- } else if (!this.m_animate_arrows) {
- this.hlMainArrows(var3, false);
- this.hlMainText(var3);
- } else {
- this.hlMainText(var3);
- }
-
- this.cur_mainHL = var3;
- }
- } else {
- if ((this.cur_mainHL == -1 || this.curMain == this.cur_mainHL) && (this.m_animate_arrows || this.cur_mainHL == -1)) {
- if (this.cur_mainHL > -1) {
- this.undohlMainText(this.cur_mainHL);
- this.cur_mainHL = -1;
- }
- } else {
- this.undohlMainText(this.cur_mainHL);
- this.undoArrowHL(this.cur_mainHL);
- this.cur_mainHL = -1;
- }
-
- if (var1 < this.field_0.width - this.m_sub_rmargin && var1 > this.m_sub_lmargin) {
- int var4 = this.checkSubPosition(var2);
- if (var4 != -1) {
- if (this.subHL != -1 && this.subHL != var4) {
- this.undohlSubText(this.subHL);
- }
-
- if (this.subHL != var4) {
- this.hlSubText(var4);
- this.subHL = var4;
- }
- }
- } else if (this.subHL != -1) {
- this.undohlSubText(this.subHL);
- this.subHL = -1;
- }
- }
-
- this.paintIt();
- }
- }
-
- private void undoKeyUPDownArrowHL(int var1) {
- Color var2 = this.m_arrowcolor;
- if (this.cur_mainHL == var1) {
- var2 = this.m_arrowhlcolor;
- }
-
- if (this.m_sub_expanded[var1]) {
- this.drawArrow(2, this.m_arrowxoffset, this.main_starty[var1] + this.m_arrowyoffset, var2);
- } else {
- this.drawArrow(1, this.m_arrowxoffset, this.main_starty[var1] + this.m_arrowyoffset, var2);
- }
- }
-
- private void undoHL() {
- if (this.cur_mainHL == -1) {
- if (this.subHL != -1) {
- this.undohlSubText(this.subHL);
- this.subHL = -1;
- }
-
- } else {
- if (this.curMain == this.cur_mainHL && this.m_animate_arrows) {
- this.undohlMainText(this.cur_mainHL);
- } else {
- this.undohlMainText(this.cur_mainHL);
- this.undoArrowHL(this.cur_mainHL);
- this.paintIt();
- }
-
- this.cur_mainHL = -1;
- }
- }
-
- private void drawSubBG() {
- if (this.subBG != null) {
- if (!this.m_tilebgin_margins) {
- this.g_ts.clipRect(this.m_sub_lmargin, 0, this.field_0.width - this.m_sub_rmargin - this.m_sub_lmargin, this.field_4.getHeight(this));
- }
-
- if (!this.m_tile_subbg) {
- this.g_ts.drawImage(this.subBG, 0, 0, this);
- } else {
- int var1 = 0;
- int var2 = 0;
- int var3 = this.subBG.getWidth(this);
- int var4 = this.subBG.getHeight(this);
- int var5 = this.rsubWidth;
- int var6 = this.field_4.getHeight(this);
-
- while(true) {
- this.g_ts.drawImage(this.subBG, var1, var2, this);
- var1 += var3;
- if (var1 > var5) {
- var1 = 0;
- var2 += var4;
- if (var2 > var6) {
- break;
- }
- }
- }
- }
-
- if (!this.m_tilebgin_margins) {
- this.g_ts = this.field_4.getGraphics();
- this.g_ts.setFont(this.m_sub_font);
- }
- }
-
- }
-
- public void moveDown() {
- if (this.curMain > -1) {
- if (this.m_sub_expanded[this.curMain]) {
- for(int var1 = 0; var1 < this.sub_id.length; ++var1) {
- if (this.sub_id[var1] == this.curMain) {
- this.undoKeyUPDownArrowHL(this.curMain);
- this.curMain = -1;
- this.activeSub = var1;
- ((Component)this).postEvent(new Event(this, 9850, this.m_sub_url[this.activeSub]));
- this.drawActiveSubArrow(this.activeSub);
- this.stop();
- this.paintIt();
- }
- }
- } else if (this.curMain < this.m_sub_expanded.length - 1) {
- this.stop();
- this.startStopStall = true;
- this.undoKeyUPDownArrowHL(this.curMain);
- ++this.curMain;
- this.start();
- }
- } else if (this.activeSub > -1 && this.activeSub < this.sub_id.length - 1) {
- if (this.sub_id[this.activeSub] == this.sub_id[this.activeSub + 1]) {
- this.undoActiveSubArrow(this.activeSub);
- ++this.activeSub;
- this.drawActiveSubArrow(this.activeSub);
- this.paintIt();
- ((Component)this).postEvent(new Event(this, 9850, this.m_sub_url[this.activeSub]));
- } else {
- this.undoActiveSubArrow(this.activeSub);
- this.curMain = this.sub_id[this.activeSub + 1];
- this.activeSub = -1;
- this.stop();
- this.startStopStall = true;
- this.start();
- ((Component)this).postEvent(new Event(this, 9850, "-2"));
- }
- }
-
- this.setScrollPos();
- }
-
- public void reshape(int var1, int var2, int var3, int var4) {
- if (var3 * var4 > 0) {
- this.field_0 = new Dimension(var3, var4);
- if (this.first_run && this.paint_called) {
- this.firstRun();
- this.first_run = false;
- this.paintIt();
- }
-
- super.reshape(var1, var2, var3, var4);
- }
- }
-
- public String[] getIdandText(String var1) {
- Object var2 = null;
- Object var3 = null;
- int var4 = var1.indexOf("|");
- String var6;
- String var7;
- if (var4 > 0) {
- if (var4 < var1.length()) {
- var7 = var1.substring(0, var4);
- var6 = var1.substring(var4 + 1);
- } else {
- var6 = var1;
- var7 = "-1";
- }
- } else {
- var6 = var1;
- var7 = "-1";
- }
-
- String[] var5 = new String[]{var7, var6};
- return var5;
- }
-
- public boolean mouseExit(Event var1, int var2, int var3) {
- this.field_1 = -1;
- this.field_2 = -1;
- if (this.animating) {
- return true;
- } else {
- this.undoHL();
- this.paintIt();
- this.mouseIn = false;
- return true;
- }
- }
-
- OCstmenu() {
- this.m_main_texthlcolor = Color.red;
- this.m_main_textcolor = Color.white;
- this.m_arrow_activecolor = Color.yellow;
- this.m_arrowhlcolor = Color.yellow;
- this.m_arrowcolor = Color.lightGray;
- this.m_main_outcolor = null;
- this.m_main_hloutcolor = null;
- this.m_main_boxcolor = null;
- this.m_sub_boxcolor = null;
- this.m_sub_outcolor = null;
- this.m_sub_hloutcolor = null;
- this.m_sub_textcolor = Color.black;
- this.m_sub_hltextcolor = Color.green;
- this.m_onsbtext = "OpenCube - SmartTree Menu";
- this.m_offsbtext = "Java by OpenCube";
- this.m_bgcolor = Color.black;
- this.m_main_font = new Font("Helvetica", 1, 10);
- this.m_sub_font = new Font("Helvetica", 0, 11);
- this.m_main_lmargin = 5;
- this.m_main_rmargin = 5;
- this.m_main_icon_voffset = 0;
- this.m_sub_icon_voffset = 0;
- this.m_main_icon_indent = 4;
- this.m_main_text_indent = 4;
- this.m_animate_arrows = true;
- this.m_sub_lmargin = 10;
- this.m_sub_rmargin = 7;
- this.m_sub_text_indent = 5;
- this.m_sub_icon_indent = 4;
- this.m_arrowxoffset = 0;
- this.m_arrowyoffset = 0;
- this.m_jump_size = 2;
- this.m_delay = 6;
- this.m_item_height = 15;
- this.m_additional_clip_height = 0;
- this.m_endcap_image = "-1";
- this.m_maintext_yoffset = 0;
- this.stay_color = Color.green;
- this.m_load_msg = "Loading Images...";
- this.m_load_msgcolor = Color.white;
- this.m_load_font = new Font("Helvetica", 0, 12);
- this.m_sbwidth = 12;
- this.m_si = 2;
- this.m_bc = null;
- this.m_ac = Color.black;
- this.m_hc = Color.yellow;
- this.m_bgc = Color.white;
- this.m_sc = null;
- this.m_oc = null;
- this.m_mac = Color.lightGray;
- this.m_unact = Color.gray;
- this.m_machl = Color.yellow;
- this.m_sbflat = true;
- this.m_indent_bubble = false;
- this.m_tile_mainbg = true;
- this.m_tile_subbg = true;
- this.m_sub_bgfile = "-1";
- this.m_main_bgfile = "-1";
- this.maxExpandHeight = 0;
- this.curExpandHeight = 0;
- this.cur_mainHL = -1;
- this.field_1 = 0;
- this.field_2 = 0;
- this.first_run = true;
- this.mouse_in = false;
- this.numClicks = 0;
- this.setTag();
- this.init();
- }
-
- public void paint(Graphics var1) {
- this.paint_called = true;
- if (this.first_run) {
- if (this.field_0.width * this.field_0.height == 0) {
- return;
- }
-
- this.firstRun();
- this.first_run = false;
- this.paintIt();
- }
-
- this.paintIt();
- }
-
- private void startExpand(int var1, boolean var2) {
- if (var2 && this.subHL > -1) {
- this.undohlSubText(this.subHL);
- this.subHL = -1;
- }
-
- if (this.curMain > -1) {
- this.stop();
- if (this.curMain != var1) {
- this.undoArrowHL(this.curMain);
- }
-
- if (this.m_animate_arrows) {
- this.drawArrow(1, this.m_arrowxoffset, this.main_starty[var1] + this.m_arrowyoffset, this.m_arrow_activecolor);
- this.paintIt();
- }
-
- this.curMain = -1;
- }
-
- this.er_id = var1;
- this.animating = true;
- this.go_expand = true;
- if (this.er_id > -1) {
- if (this.go_expand) {
- this.expandItem(this.er_id);
- } else if (this.go_retract) {
- this.retractItem(this.er_id);
- }
-
- this.er_id = -1;
- this.animating = false;
- this.go_expand = false;
- this.go_retract = false;
- }
-
- this.start();
- }
-
- public boolean mouseUp(Event var1, int var2, int var3) {
- if (this.numClicks > 1) {
- if (this.activeSub > -1) {
- ((Component)this).postEvent(new Event(this, 9851, this.m_sub_url[this.activeSub]));
- }
- } else {
- if (this.animating) {
- return true;
- }
-
- if (var2 < this.field_0.width - this.m_main_rmargin && var2 > this.m_main_lmargin) {
- int var4 = this.checkYExpandMouse(var3, this.scroll_y);
- if (var4 != -1 && var4 == this.cur_mainHL) {
- if (this.activeSub > -1) {
- this.undoActiveSubArrow(this.activeSub);
- this.activeSub = -1;
- this.paintIt();
- ((Component)this).postEvent(new Event(this, 9850, "-2"));
- }
-
- if (this.m_sub_expanded[var4]) {
- this.startRetract(var4, false);
- } else if (this.num_mainsubs[var4] > 0) {
- this.startExpand(var4, false);
- }
-
- this.loadURL(this.m_main_url[var4]);
- return true;
- }
-
- this.activateSubURL(var2, var3);
- return true;
- }
-
- this.mouseMove(var2, var3);
- }
-
- return true;
- }
-
- public void setTag() {
- String var1 = "";
- File var2 = new File(ACutil.getAbsolutePath("newapp.ocf"));
-
- try {
- FileInputStream var3 = new FileInputStream(var2);
- DataInputStream var4 = new DataInputStream(var3);
- long var5 = var2.length();
- byte[] var7 = new byte[(int)var5];
- var4.readFully(var7);
- var1 = new String(var7, 0);
- } catch (IOException var8) {
- return;
- }
-
- Vector var10 = OCAOpnr.buildTokenString(var1);
- this.pVals = new String[var10.size()];
- this.pNames = new String[var10.size()];
-
- for(int var11 = 0; var11 < var10.size(); ++var11) {
- this.pNames[var11] = ((String[])var10.elementAt(var11))[0];
- this.pVals[var11] = ((String[])var10.elementAt(var11))[1];
- }
-
- }
-
- private synchronized void paintIt() {
- try {
- Graphics var1 = ((Component)this).getGraphics();
- if (!this.first_run) {
- var1.drawImage(this.main, 0, this.scroll_y, this);
- } else {
- var1.drawImage(this.field_4, 0, 0, this);
- }
- } catch (Exception var2) {
- }
- }
-
- public void scrollIt(int var1, boolean var2) {
- if (var1 == 602 || var1 == 601 || var1 == 605 || var1 == 604 || var1 == 603) {
- this.scroll_y = -this.field_3.getValue();
- this.paintIt();
- }
-
- }
-
- public void destroy() {
- if (this.trun != null) {
- this.trun.stop();
- this.trun = null;
- }
-
- }
-
- public void resize(Dimension var1) {
- if (var1.width * var1.height > 0) {
- if (this.first_run && this.paint_called) {
- this.firstRun();
- this.first_run = false;
- this.paintIt();
- }
-
- super.resize(var1);
- }
- }
-
- public void resize(int var1, int var2) {
- if (var1 * var2 > 0) {
- this.field_0 = new Dimension(var1, var2);
- if (this.first_run && this.paint_called) {
- this.firstRun();
- this.first_run = false;
- this.paintIt();
- }
-
- super.resize(var1, var2);
- }
- }
-
- private void drawArrow() {
- byte var1 = 6;
- byte var2 = 9;
- this.indArrow = ((Component)this).createImage(var1, var2);
- Graphics var3 = this.indArrow.getGraphics();
- var3.setColor(new Color(153, 153, 153));
- var3.fillRect(0, 0, var1, var2);
- var3.setColor(this.indArrowColor);
- int var4 = 0;
- int var5 = 0;
- int var6 = 8;
-
- do {
- var3.drawLine(var4, var5, var4, var5 + var6);
- ++var5;
- ++var4;
- var6 -= 2;
- } while(var6 >= 0);
-
- }
-
- private void drawArrow(int var1, int var2, int var3, Color var4) {
- if (var1 == 1) {
- this.g_main.setColor(var4);
- int var5 = var2;
- int var6 = var3;
- int var7 = 8;
-
- do {
- this.g_main.drawLine(var5, var6, var5 + var7, var6);
- ++var6;
- ++var5;
- var7 -= 2;
- } while(var7 >= 0);
- }
-
- if (var1 == 2) {
- this.g_main.setColor(var4);
- int var8 = var2;
- int var9 = var3 + 4;
- int var10 = 8;
-
- do {
- this.g_main.drawLine(var8, var9, var8 + var10, var9);
- --var9;
- ++var8;
- var10 -= 2;
- } while(var10 >= 0);
- }
-
- }
-
- private void drawActiveSubArrowOnHLBit() {
- this.g_bitsub.drawImage(this.indArrow, 13, 3, this);
- }
-
- private void firstRun() {
- ((Component)this).requestFocus();
- this.drawArrow();
- this.sbx = this.field_0.width - this.m_sbwidth;
- this.field_0 = new Dimension(this.field_0.width - this.m_sbwidth, this.field_0.height);
- ((Component)this).setBackground(this.m_bgcolor);
- this.field_4 = ((Component)this).createImage(this.field_0.width + this.m_sbwidth, this.field_0.height);
- this.g_ts = this.field_4.getGraphics();
- this.g_ts.setColor(this.m_bgcolor);
- this.g_ts.fillRect(0, 0, this.field_0.width + this.m_sbwidth, this.field_0.height);
- this.g_ts.setFont(this.m_load_font);
- FontMetrics var1 = this.g_ts.getFontMetrics(this.m_load_font);
- this.g_ts.setColor(this.m_load_msgcolor);
- this.g_ts.drawString(this.m_load_msg, (this.field_0.width + this.m_sbwidth) / 2 - var1.stringWidth(this.m_load_msg) / 2, this.field_0.height / 2 + var1.getHeight() / 2);
- ((Component)this).getGraphics().drawImage(this.field_4, 0, 0, this);
- this.loadImages();
- this.subfm = ((Component)this).getFontMetrics(this.m_sub_font);
- this.mainfm = ((Component)this).getFontMetrics(this.m_main_font);
- if (!this.inputHeightFixed) {
- int var2 = this.subfm.getHeight();
- int var3 = this.mainfm.getHeight();
- if (var2 > var3) {
- this.m_item_height = var2;
- } else {
- this.m_item_height = var3;
- }
- }
-
- this.bitHeight = this.m_item_height;
- this.m_lineinc = this.bitHeight;
- this.offHeight = this.bitHeight * this.m_sub_desc.length;
- this.bitoff = ((Component)this).createImage(this.field_0.width, this.bitHeight);
- this.g_bitoff = this.bitoff.getGraphics();
- this.bitorig = ((Component)this).createImage(this.field_0.width, this.bitHeight);
- this.g_bitorig = this.bitorig.getGraphics();
- this.bitsub = ((Component)this).createImage(this.field_0.width, this.bitHeight);
- this.g_bitsub = this.bitsub.getGraphics();
- this.rsubWidth = this.field_0.width;
- if (this.m_tilebgin_margins) {
- this.rsubWidth += this.m_sbwidth;
- }
-
- if (this.offHeight < 1) {
- this.offHeight = 1;
- }
-
- this.field_4 = ((Component)this).createImage(this.rsubWidth, this.offHeight);
- this.g_ts = this.field_4.getGraphics();
- this.g_ts.setFont(this.m_sub_font);
- this.g_ts.setColor(this.m_bgcolor);
- this.g_ts.fillRect(0, 0, this.rsubWidth, this.offHeight);
- this.bottom_height = this.field_0.height - this.bitHeight;
- this.curExpandHeight = this.bitHeight * this.m_main_desc.length;
- this.maxExpandHeight = this.offHeight + this.curExpandHeight + this.bottom_height;
- this.rmainWidth = this.field_0.width;
- if (this.m_tilebgin_margins) {
- this.rmainWidth += this.m_sbwidth;
- }
-
- this.main = ((Component)this).createImage(this.rmainWidth, this.maxExpandHeight);
- this.g_main = this.main.getGraphics();
- this.g_main.setFont(this.m_main_font);
- this.g_main.setColor(this.m_bgcolor);
- this.g_main.fillRect(0, 0, this.rmainWidth, this.maxExpandHeight);
- this.DrawMenu();
- this.initSB();
- if (this.m_startopen_index > -1) {
- this.first_force = true;
- this.first_run = false;
- this.paintIt();
- this.curMain = -1;
- this.expandItem(this.m_startopen_index);
- } else {
- this.setScrollBar();
- }
-
- this.start();
- }
-
- private void retractItem(int var1) {
- boolean var2 = false;
- int var3 = this.num_mainsubs[var1] * this.bitHeight;
- int var4 = this.main_starty[var1] + this.bitHeight;
- if (this.main_starty[var1] + this.bitHeight * 2 > Math.abs(this.scroll_y - this.field_0.height)) {
- int var5 = -(this.main_starty[var1] + this.bitHeight * 2) + this.field_0.height;
- if (var5 < this.scroll_y) {
- for(int var17 = this.scroll_y; var17 > var5; var17 -= this.m_jump_size) {
- this.scroll_y = var17;
- this.paintIt();
-
- try {
- Thread.sleep((long)this.m_delay);
- } catch (InterruptedException var16) {
- }
- }
- }
- }
-
- Graphics var22 = ((Component)this).getGraphics();
- var22.clipRect(0, this.main_starty[var1] + this.bitHeight + this.scroll_y, this.rsubWidth, this.field_0.height);
- Image var6 = ((Component)this).createImage(this.rsubWidth, this.maxExpandHeight - var4);
- Graphics var7 = var6.getGraphics();
- int var10000 = this.sub_offy[this.sub_start_index[var1]];
- var7.drawImage(this.main, 0, -var4, this);
- int var8 = this.main_starty[var1] + this.bitHeight;
-
- for(int var18 = 0; var18 > -var3; var18 -= this.m_jump_size) {
- var22.drawImage(var6, 0, var18 + var8 + this.scroll_y, this);
-
- try {
- Thread.sleep((long)this.m_delay);
- } catch (InterruptedException var15) {
- }
- }
-
- int var9 = -var3 + var8;
- this.g_main.clipRect(0, var8, this.rsubWidth, this.main.getHeight(this) - var8);
- this.g_main.drawImage(var6, 0, var9, this);
- this.paintIt();
-
- for(int var10 = var1 + 1; var10 < this.main_starty.length; ++var10) {
- this.main_starty[var10] -= var3;
-
- for(int var11 = this.sub_start_index[var10]; var11 < this.sub_start_index[var10] + this.num_mainsubs[var10]; ++var11) {
- this.sub_starty[var11] -= var3;
- }
- }
-
- this.g_main = this.main.getGraphics();
- this.g_main.setColor(this.m_bgcolor);
- int var23 = this.main_starty[this.main_starty.length - 1] + this.bitHeight;
- if (this.m_sub_expanded[this.main_starty.length - 1] && this.main_starty.length - 1 != var1) {
- var23 += this.num_mainsubs[this.main_starty.length - 1] * this.bitHeight;
- }
-
- if ((this.mainBG == null || !this.m_clip_main_bg) && this.endcap == null) {
- if (this.mainBG == null) {
- this.g_main.fillRect(0, var23, this.field_0.width, var3);
- }
- } else {
- this.g_main.fillRect(0, var23 + this.m_additional_clip_height, this.field_0.width, var3);
- }
-
- if (this.curExpandHeight - var3 >= this.field_0.height) {
- int var24 = -this.main_starty[var1];
- if (var24 < -(this.curExpandHeight - var3) + this.field_0.height) {
- var24 = -(this.curExpandHeight - var3) + this.field_0.height;
- }
-
- if (var24 < this.scroll_y) {
- for(int var20 = this.scroll_y; var20 > var24; var20 -= 2) {
- this.scroll_y = var20;
- this.paintIt();
-
- try {
- Thread.sleep((long)this.m_delay);
- } catch (InterruptedException var14) {
- }
- }
- } else {
- for(int var19 = this.scroll_y; var19 < var24; var19 += this.m_jump_size) {
- this.scroll_y = var19;
- this.paintIt();
-
- try {
- Thread.sleep((long)this.m_delay);
- } catch (InterruptedException var13) {
- }
- }
- }
-
- this.scroll_y = var24;
- this.paintIt();
- } else {
- byte var25 = 0;
-
- for(int var21 = this.scroll_y; var21 < var25; var21 += this.m_jump_size) {
- this.scroll_y = var21;
- this.paintIt();
-
- try {
- Thread.sleep((long)this.m_delay);
- } catch (InterruptedException var12) {
- }
- }
-
- this.scroll_y = var25;
- this.paintIt();
- }
-
- this.m_sub_expanded[var1] = false;
- this.curExpandHeight -= var3;
- this.hlMainArrows(var1, true);
- this.checkHL(this.field_2, this.field_1);
- this.paintIt();
- this.setScrollBar();
- this.curMain = var1;
- }
-
- private void expandItem(int var1) {
- System.gc();
- boolean var2 = false;
- int var3 = this.num_mainsubs[var1] * this.bitHeight;
- int var4 = this.main_starty[var1] + this.bitHeight;
- if (this.curExpandHeight + var3 >= this.field_0.height) {
- int var5 = -this.main_starty[var1];
- if (var5 < -(this.curExpandHeight + var3) + this.field_0.height) {
- var5 = -(this.curExpandHeight + var3) + this.field_0.height;
- }
-
- if (var5 < this.scroll_y) {
- for(int var16 = this.scroll_y; var16 > var5; var16 -= this.m_jump_size) {
- this.scroll_y = var16;
- this.paintIt();
-
- try {
- Thread.sleep((long)this.m_delay);
- } catch (InterruptedException var14) {
- }
- }
- } else {
- for(int var15 = this.scroll_y; var15 < var5; var15 += this.m_jump_size) {
- this.scroll_y = var15;
- this.paintIt();
-
- try {
- Thread.sleep((long)this.m_delay);
- } catch (InterruptedException var13) {
- }
- }
- }
-
- this.scroll_y = var5;
- this.paintIt();
- }
-
- Image var18 = ((Component)this).createImage(this.rsubWidth, this.maxExpandHeight - var4);
- Graphics var6 = var18.getGraphics();
- int var7 = -this.sub_offy[this.sub_start_index[var1]];
- int var8 = this.main_starty[var1] + this.bitHeight;
- Graphics var9 = ((Component)this).getGraphics();
- var9.clipRect(0, this.main_starty[var1] + this.bitHeight + this.scroll_y, this.rsubWidth, this.field_0.height);
- var6.drawImage(this.field_4, 0, var7, this);
- var6.clipRect(0, var3, this.rsubWidth, var18.getHeight(this) - var3);
- var6.drawImage(this.main, 0, var3 - var8, this);
-
- for(int var17 = -var3; var17 <= 0; var17 += this.m_jump_size) {
- var9.drawImage(var18, 0, var17 + var8 + this.scroll_y, this);
-
- try {
- Thread.sleep((long)this.m_delay);
- } catch (InterruptedException var12) {
- }
- }
-
- this.g_main.clipRect(0, var8 - 1, this.rsubWidth, this.main.getHeight(this) - var8 + 1);
- this.g_main.drawImage(var18, 0, var8, this);
- this.g_main = this.main.getGraphics();
- this.paintIt();
-
- for(int var10 = var1 + 1; var10 < this.main_starty.length; ++var10) {
- this.main_starty[var10] += var3;
-
- for(int var11 = this.sub_start_index[var10]; var11 < this.sub_start_index[var10] + this.num_mainsubs[var10]; ++var11) {
- this.sub_starty[var11] += var3;
- }
- }
-
- this.m_sub_expanded[var1] = true;
- this.curExpandHeight += var3;
- this.hlMainArrows(var1, true);
- if (!this.first_force) {
- this.checkHL(this.field_2, this.field_1);
- } else {
- this.first_force = false;
- }
-
- this.paintIt();
- this.setScrollBar();
- this.curMain = var1;
- }
-
- public void setScrollPos() {
- if (this.curMain > -1) {
- if (this.main_starty[this.curMain] + this.scroll_y + this.m_item_height > this.field_0.height) {
- this.scroll_y = -this.main_starty[this.curMain] - this.m_item_height + this.field_0.height;
- this.paintIt();
- this.field_3.setValue(this.scroll_y);
- } else if (this.main_starty[this.curMain] + this.scroll_y + this.m_item_height <= 0) {
- this.scroll_y = -this.main_starty[this.curMain];
- this.paintIt();
- this.field_3.setValue(this.scroll_y);
- }
-
- this.mouseMove(this.field_2, this.field_1);
- } else {
- if (this.activeSub > -1) {
- if (this.sub_starty[this.activeSub] + this.scroll_y + this.m_item_height > this.field_0.height) {
- this.scroll_y = -this.sub_starty[this.activeSub] - this.m_item_height + this.field_0.height;
- this.paintIt();
- this.field_3.setValue(this.scroll_y);
- } else if (this.sub_starty[this.activeSub] + this.scroll_y + this.m_item_height <= 0) {
- this.scroll_y = -this.sub_starty[this.activeSub];
- this.paintIt();
- this.field_3.setValue(this.scroll_y);
- }
-
- this.mouseMove(this.field_2, this.field_1);
- }
-
- }
- }
-
- private void setScrollBar() {
- if (this.m_hide_sb && this.curExpandHeight <= this.field_0.height) {
- if (!this.bar_removed) {
- ((Container)this).remove(this.field_3);
- this.bar_removed = true;
- return;
- }
- } else {
- if (this.bar_removed) {
- ((Container)this).add(this.field_3);
- this.bar_removed = false;
- }
-
- this.field_3.setValues(this.m_lineinc, this.field_0.height, this.curExpandHeight, Math.abs(this.scroll_y));
- }
-
- }
-
- private void startRetract(int var1, boolean var2) {
- if (var2 && this.subHL > -1) {
- this.undohlSubText(this.subHL);
- this.subHL = -1;
- }
-
- if (this.curMain > -1) {
- this.stop();
- if (this.curMain != var1) {
- this.undoArrowHL(this.curMain);
- }
-
- if (this.m_animate_arrows) {
- this.drawArrow(2, this.m_arrowxoffset, this.main_starty[var1] + this.m_arrowyoffset, this.m_arrow_activecolor);
- this.paintIt();
- }
-
- this.curMain = -1;
- }
-
- this.er_id = var1;
- this.animating = true;
- this.go_retract = true;
- if (this.er_id > -1) {
- if (this.go_expand) {
- this.expandItem(this.er_id);
- } else if (this.go_retract) {
- this.retractItem(this.er_id);
- }
-
- this.er_id = -1;
- this.animating = false;
- this.go_expand = false;
- this.go_retract = false;
- }
-
- this.start();
- }
-
- public boolean mouseDown(Event var1, int var2, int var3) {
- ((Component)this).requestFocus();
- this.numClicks = var1.clickCount;
- return true;
- }
-
- private void drawActiveSubArrow(int var1) {
- this.g_main.drawImage(this.indArrow, 13, this.sub_starty[var1] + 3, this);
- }
-
- public void run() {
- while(this.first_run) {
- }
-
- if (this.startStopStall) {
- this.hlMainArrows(this.curMain, true);
- this.paintIt();
-
- try {
- Thread.sleep(400L);
- } catch (InterruptedException var4) {
- }
-
- this.startStopStall = false;
- }
-
- while(true) {
- while(!this.m_animate_arrows) {
- this.stop();
- }
-
- if (this.curMain > -1) {
- this.hlMainArrows(this.curMain, true);
- this.paintIt();
-
- try {
- Thread.sleep(750L);
- } catch (InterruptedException var2) {
- }
- }
-
- while(this.curMain > -1) {
- int var1 = 6;
-
- do {
- this.drawAnimatedArrows(this.curMain, var1);
- this.paintIt();
-
- try {
- Thread.sleep(25L);
- } catch (InterruptedException var8) {
- }
-
- var1 -= 2;
- } while(var1 > 0);
-
- this.drawAnimatedArrows(this.curMain, 0);
- this.paintIt();
-
- try {
- Thread.sleep(500L);
- } catch (InterruptedException var7) {
- }
-
- var1 = 2;
-
- do {
- this.drawAnimatedArrows(this.curMain, var1);
- this.paintIt();
-
- try {
- Thread.sleep(25L);
- } catch (InterruptedException var6) {
- }
-
- var1 += 2;
- } while(var1 < 8);
-
- this.hlMainArrows(this.curMain, true);
- this.paintIt();
-
- try {
- Thread.sleep(400L);
- } catch (InterruptedException var5) {
- }
- }
-
- try {
- Thread.sleep(100L);
- } catch (InterruptedException var3) {
- }
-
- this.stop();
- }
- }
-
- public void init() {
- this.field_0 = ((Component)this).size();
- int var2 = 0;
- int var3 = 0;
- String var1 = this.getParameter("loadmsgcolor");
- if (var1 != null) {
- this.m_load_msgcolor = occcolor.ConvertColor(var1);
- }
-
- var1 = this.getParameter("loadmsg");
- if (var1 != null) {
- this.m_load_msg = var1;
- }
-
- var1 = this.getParameter("maintextyoffset");
- if (var1 != null) {
- this.m_maintext_yoffset = Integer.parseInt(var1);
- }
-
- var1 = this.getParameter("subtextyoffset");
- if (var1 != null) {
- this.m_subtext_yoffset = Integer.parseInt(var1);
- }
-
- var1 = this.getParameter("loadfont");
- if (var1 != null) {
- this.m_load_font = ocfontc.getFontSD(var1, ",");
- } else {
- this.m_load_font = new Font("Helvetica", 0, 12);
- }
-
- var1 = this.getParameter("loadwhere");
- if (var1 != null) {
- this.m_loadwhere = var1;
- }
-
- var1 = this.getParameter("animatearrows");
- if (var1 != null) {
- this.m_animate_arrows = Boolean.valueOf(var1);
- }
-
- var1 = this.getParameter("tilebginmargins");
- if (var1 != null) {
- this.m_tilebgin_margins = Boolean.valueOf(var1);
- }
-
- var1 = this.getParameter("underlinemaintext");
- if (var1 != null) {
- this.m_unmaintext = Boolean.valueOf(var1);
- }
-
- var1 = this.getParameter("hidebar");
- if (var1 != null) {
- this.m_hide_sb = Boolean.valueOf(var1);
- }
-
- var1 = this.getParameter("underlinesubtext");
- if (var1 != null) {
- this.m_unsubtext = Boolean.valueOf(var1);
- }
-
- var1 = this.getParameter("clipmainbg");
- if (var1 != null) {
- this.m_clip_main_bg = Boolean.valueOf(var1);
- }
-
- var1 = this.getParameter("clipadditionheight");
- if (var1 != null) {
- this.m_additional_clip_height = Integer.parseInt(var1);
- }
-
- var1 = this.getParameter("tilemainbg");
- if (var1 != null) {
- this.m_tile_mainbg = Boolean.valueOf(var1);
- }
-
- var1 = this.getParameter("tilesubbg");
- if (var1 != null) {
- this.m_tile_subbg = Boolean.valueOf(var1);
- }
-
- var1 = this.getParameter("bgcolor");
- if (var1 != null) {
- this.m_bgcolor = occcolor.ConvertColor(var1);
- }
-
- var1 = this.getParameter("mainboxcolor");
- if (var1 != null) {
- this.m_main_boxcolor = occcolor.ConvertColor(var1);
- }
-
- var1 = this.getParameter("maintextcolor");
- if (var1 != null) {
- this.m_main_textcolor = occcolor.ConvertColor(var1);
- }
-
- var1 = this.getParameter("maintexthlcolor");
- if (var1 != null) {
- this.m_main_texthlcolor = occcolor.ConvertColor(var1);
- }
-
- var1 = this.getParameter("mainoutcolor");
- if (var1 != null) {
- this.m_main_outcolor = occcolor.ConvertColor(var1);
- }
-
- var1 = this.getParameter("mainhloutcolor");
- if (var1 != null) {
- this.m_main_hloutcolor = occcolor.ConvertColor(var1);
- }
-
- var1 = this.getParameter("subboxcolor");
- if (var1 != null) {
- this.m_sub_boxcolor = occcolor.ConvertColor(var1);
- }
-
- var1 = this.getParameter("suboutcolor");
- if (var1 != null) {
- this.m_sub_outcolor = occcolor.ConvertColor(var1);
- }
-
- var1 = this.getParameter("subhloutcolor");
- if (var1 != null) {
- this.m_sub_hloutcolor = occcolor.ConvertColor(var1);
- }
-
- var1 = this.getParameter("subtextcolor");
- if (var1 != null) {
- this.m_sub_textcolor = occcolor.ConvertColor(var1);
- }
-
- var1 = this.getParameter("subhltextcolor");
- if (var1 != null) {
- this.m_sub_hltextcolor = occcolor.ConvertColor(var1);
- }
-
- var1 = this.getParameter("arrowcolor");
- if (var1 != null) {
- this.m_arrowcolor = occcolor.ConvertColor(var1);
- }
-
- var1 = this.getParameter("arrowhlcolor");
- if (var1 != null) {
- this.m_arrowhlcolor = occcolor.ConvertColor(var1);
- }
-
- var1 = this.getParameter("arrowactivecolor");
- if (var1 != null) {
- this.m_arrow_activecolor = occcolor.ConvertColor(var1);
- }
-
- var1 = this.getParameter("mainbgimage");
- if (var1 != null) {
- this.m_main_bgfile = var1;
- }
-
- var1 = this.getParameter("subbgimage");
- if (var1 != null) {
- this.m_sub_bgfile = var1;
- }
-
- var1 = this.getParameter("jumpsize");
- if (var1 != null) {
- this.m_jump_size = Integer.parseInt(var1);
- }
-
- var1 = this.getParameter("startopenindex");
- if (var1 != null) {
- this.m_startopen_index = Integer.parseInt(var1);
- }
-
- var1 = this.getParameter("jumpdelay");
- if (var1 != null) {
- this.m_delay = Integer.parseInt(var1);
- }
-
- var1 = this.getParameter("mainlmargin");
- if (var1 != null) {
- this.m_main_lmargin = Integer.parseInt(var1);
- }
-
- var1 = this.getParameter("mainrmargin");
- if (var1 != null) {
- this.m_main_rmargin = Integer.parseInt(var1);
- }
-
- var1 = this.getParameter("sublmargin");
- if (var1 != null) {
- this.m_sub_lmargin = Integer.parseInt(var1);
- }
-
- var1 = this.getParameter("subrmargin");
- if (var1 != null) {
- this.m_sub_rmargin = Integer.parseInt(var1);
- }
-
- this.m_sub_lmargin += this.m_main_lmargin;
- this.m_sub_rmargin += this.m_main_rmargin;
- var1 = this.getParameter("maintextindent");
- if (var1 != null) {
- this.m_main_text_indent = Integer.parseInt(var1);
- }
-
- var1 = this.getParameter("mainiconindent");
- if (var1 != null) {
- this.m_main_icon_indent = Integer.parseInt(var1);
- }
-
- var1 = this.getParameter("subiconindent");
- if (var1 != null) {
- this.m_sub_icon_indent = Integer.parseInt(var1);
- }
-
- var1 = this.getParameter("mainicontopoffset");
- if (var1 != null) {
- this.m_main_icon_voffset = Integer.parseInt(var1);
- }
-
- var1 = this.getParameter("subicontopoffset");
- if (var1 != null) {
- this.m_sub_icon_voffset = Integer.parseInt(var1);
- }
-
- var1 = this.getParameter("subtextindent");
- if (var1 != null) {
- this.m_sub_text_indent = Integer.parseInt(var1);
- }
-
- var1 = this.getParameter("arrowyoffset");
- if (var1 != null) {
- this.m_arrowyoffset = Integer.parseInt(var1);
- }
-
- var1 = this.getParameter("arrowxoffset");
- if (var1 != null) {
- this.m_arrowxoffset = Integer.parseInt(var1);
- }
-
- var1 = this.getParameter("itemheight");
- if (var1 != null) {
- this.m_item_height = Integer.parseInt(var1);
- if (this.m_item_height > 0) {
- this.inputHeightFixed = true;
- }
- }
-
- var1 = this.getParameter("mainfont");
- if (var1 != null) {
- this.m_main_font = ocfontc.getFontSD(var1, ",");
- } else {
- this.m_main_font = new Font("Helvetica", 0, 12);
- }
-
- var1 = this.getParameter("subfont");
- if (var1 != null) {
- this.m_sub_font = ocfontc.getFontSD(var1, ",");
- } else {
- this.m_sub_font = new Font("Helvetica", 0, 12);
- }
-
- var1 = this.getParameter("endcapimage");
- if (var1 != null) {
- this.m_endcap_image = var1;
- }
-
- var1 = this.getParameter("barwidth");
- if (var1 != null) {
- this.m_sbwidth = Integer.parseInt(var1);
- }
-
- var1 = this.getParameter("barbuttoncolor");
- if (var1 != null) {
- this.m_bc = occcolor.ConvertColor(var1);
- }
-
- var1 = this.getParameter("bararrowcolor");
- if (var1 != null) {
- this.m_ac = occcolor.ConvertColor(var1);
- }
-
- var1 = this.getParameter("bararrowhlcolor");
- if (var1 != null) {
- this.m_hc = occcolor.ConvertColor(var1);
- }
-
- var1 = this.getParameter("barbgcolor");
- if (var1 != null) {
- this.m_bgc = occcolor.ConvertColor(var1);
- }
-
- var1 = this.getParameter("barslidecolor");
- if (var1 != null) {
- this.m_sc = occcolor.ConvertColor(var1);
- }
-
- var1 = this.getParameter("baroutlinecolor");
- if (var1 != null) {
- this.m_oc = occcolor.ConvertColor(var1);
- }
-
- var1 = this.getParameter("barbarrowcolor");
- if (var1 != null) {
- this.m_mac = occcolor.ConvertColor(var1);
- } else {
- this.m_mac = this.m_bc;
- }
-
- var1 = this.getParameter("barbarrowhlcolor");
- if (var1 != null) {
- this.m_machl = occcolor.ConvertColor(var1);
- } else {
- this.m_machl = this.m_mac;
- }
-
- var1 = this.getParameter("barinactivecolor");
- if (var1 != null) {
- this.m_unact = occcolor.ConvertColor(var1);
- }
-
- var1 = this.getParameter("barslideinset");
- if (var1 != null) {
- this.m_si = Integer.parseInt(var1);
- }
-
- var1 = this.getParameter("barflat");
- if (var1 != null) {
- this.m_sbflat = Boolean.valueOf(var1);
- }
-
- var1 = this.getParameter("barindentbubble");
- if (var1 != null) {
- this.m_indent_bubble = Boolean.valueOf(var1);
- }
-
- var1 = this.getParameter("tilebginbar");
- if (var1 != null) {
- this.m_tile_bg_insb = Boolean.valueOf(var1);
- }
-
- int var4;
- for(var4 = 0; this.getParameter("maindesc" + var2) != null; ++this.num_main) {
- while(this.getParameter("subdesc" + var2 + "-" + var3) != null) {
- ++var3;
- ++var4;
- if (var3 > this.max_subs) {
- this.max_subs = var3;
- }
- }
-
- var3 = 0;
- ++var2;
- }
-
- this.total_subs = var4;
- this.sub_id = new int[this.total_subs];
- this.m_sub_desc = new String[this.total_subs];
- this.sub_icon_id = new int[this.total_subs];
- this.sub_starty = new int[this.total_subs];
- this.sub_offy = new int[this.total_subs];
- this.m_sub_url = new String[this.total_subs];
- this.m_main_url = new String[this.num_main];
- this.num_mainsubs = new int[this.num_main];
- this.m_main_desc = new String[this.num_main];
- this.main_icon_id = new int[this.num_main];
- this.m_sub_expanded = new boolean[this.num_main];
- this.main_starty = new int[this.num_main];
- this.sub_start_index = new int[this.num_main];
- this.arErase = new Image[this.num_main];
- var4 = 0;
-
- for(int var75 = 0; var75 < this.num_main; ++var75) {
- for(int var78 = 0; this.getParameter("subdesc" + var75 + "-" + var78) != null; ++var78) {
- int var10002 = this.num_mainsubs[var75]++;
- }
-
- for(int var79 = 0; var79 < this.num_mainsubs[var75]; ++var79) {
- this.sub_id[var4] = var75;
- var1 = this.getParameter("subdesc" + var75 + "-" + var79);
- if (var1 != null) {
- this.m_sub_desc[var4] = var1;
- String[] var5 = this.getIdandText(this.m_sub_desc[var4]);
- this.sub_icon_id[var4] = Integer.parseInt(var5[0]);
- this.m_sub_desc[var4] = var5[1];
- } else {
- this.m_sub_desc[var4] = "";
- this.sub_icon_id[var75] = -1;
- }
-
- var1 = this.getParameter("suburl" + var75 + "-" + var79);
- if (var1 != null) {
- this.m_sub_url[var4] = var1;
- } else {
- this.m_sub_url[var4] = "-1";
- }
-
- ++var4;
- }
-
- var1 = this.getParameter("maindesc" + var75);
- if (var1 != null) {
- this.m_main_desc[var75] = new String(var1);
- String[] var81 = this.getIdandText(this.m_main_desc[var75]);
- this.main_icon_id[var75] = Integer.parseInt(var81[0]);
- this.m_main_desc[var75] = var81[1];
- } else {
- this.m_main_desc[var75] = "";
- this.main_icon_id[var75] = -1;
- }
-
- var1 = this.getParameter("mainurl" + var75);
- if (var1 != null) {
- this.m_main_url[var75] = new String(var1);
- } else {
- this.m_main_url[var75] = "-1";
- }
- }
-
- int var82 = 0;
-
- for(int var76 = 0; var76 < this.num_mainsubs.length; ++var76) {
- this.sub_start_index[var76] = var82;
- var82 += this.num_mainsubs[var76];
- }
-
- while(this.getParameter("iconfile" + this.num_icons) != null) {
- ++this.num_icons;
- }
-
- this.m_icon_file = new String[this.num_icons];
- this.m_icon_switchfile = new String[this.num_icons];
- this.i_pic = new Image[this.num_icons];
- this.s_pic = new Image[this.num_icons];
- this.icon_d = new Dimension[this.num_icons];
-
- for(int var77 = 0; var77 < this.num_icons; ++var77) {
- var1 = this.getParameter("iconfile" + var77);
- if (var1 != null) {
- this.m_icon_file[var77] = new String(var1);
- } else {
- this.m_icon_file[var77] = new String(" ");
- }
-
- var1 = this.getParameter("iconswitchfile" + var77);
- if (var1 != null) {
- this.m_icon_switchfile[var77] = new String(var1);
- } else {
- this.m_icon_switchfile[var77] = this.m_icon_file[var77];
- }
- }
-
- }
-
- public boolean handleEvent(Event var1) {
- if (var1.target == this.field_3) {
- this.scrollIt(var1.id, true);
- } else if (var1.id == 403 || var1.id == 401) {
- this.handleKeyStroke(var1);
- return true;
- }
-
- return super.handleEvent(var1);
- }
-
- public boolean mouseDrag(Event var1, int var2, int var3) {
- this.field_1 = var3;
- this.field_2 = var2;
- return true;
- }
-
- private void undoArrowHL(int var1) {
- if (this.m_sub_expanded[var1]) {
- this.drawArrow(2, this.m_arrowxoffset, this.main_starty[var1] + this.m_arrowyoffset, this.m_arrowcolor);
- } else {
- this.drawArrow(1, this.m_arrowxoffset, this.main_starty[var1] + this.m_arrowyoffset, this.m_arrowcolor);
- }
- }
-
- private void hlMainArrows(int var1, boolean var2) {
- if (var2) {
- this.drawAnimatedArrows(var1, 8);
- } else if (this.m_sub_expanded[var1]) {
- this.drawArrow(2, this.m_arrowxoffset, this.main_starty[var1] + this.m_arrowyoffset, this.m_arrowhlcolor);
- } else {
- this.drawArrow(1, this.m_arrowxoffset, this.main_starty[var1] + this.m_arrowyoffset, this.m_arrowhlcolor);
- }
- }
-
- private synchronized void undohlSubText(int var1) {
- this.g_main.drawImage(this.bitsub, 0, this.sub_starty[var1], this);
- }
-
- private synchronized void mouseMove(int var1, int var2) {
- if (!this.first_run) {
- if (var1 < this.field_0.width - this.m_main_rmargin && var1 > this.m_main_lmargin) {
- this.checkHL(var1, var2);
- } else {
- this.field_1 = -1;
- this.field_2 = -1;
- this.undoHL();
- }
- }
- }
- }
-