home *** CD-ROM | disk | FTP | other *** search
/ Internet Magazine 2002 June / INTERNET92.ISO / pc / software / windows / building / visual_dhtml / visualdhtmlwin2000.exe / ism.___ (.txt) < prev    next >
Encoding:
Java Class File  |  2001-10-19  |  10.9 KB  |  630 lines

  1. import java.applet.Applet;
  2. import java.awt.Color;
  3. import java.awt.Component;
  4. import java.awt.Dimension;
  5. import java.awt.Event;
  6. import java.awt.Font;
  7. import java.awt.FontMetrics;
  8. import java.awt.Graphics;
  9. import java.awt.Image;
  10. import java.awt.MediaTracker;
  11. import java.net.MalformedURLException;
  12. import java.net.URL;
  13.  
  14. public class ism extends OCAviewerExtend implements Runnable {
  15.    Thread trun = null;
  16.    URL goURL;
  17.    // $FF: renamed from: d java.awt.Dimension
  18.    Dimension field_0;
  19.    Font font;
  20.    // $FF: renamed from: fm java.awt.FontMetrics
  21.    FontMetrics field_1;
  22.    Image suboff;
  23.    Graphics g_suboff;
  24.    // $FF: renamed from: ts java.awt.Image
  25.    Image field_2;
  26.    Graphics g_ts;
  27.    int break_hl;
  28.    int break_stand;
  29.    int font_style = 0;
  30.    int menux;
  31.    int menuy;
  32.    int menuwidth;
  33.    int menuheight;
  34.    int bitheight;
  35.    int on_sub_num = 0;
  36.    int last_sub;
  37.    boolean sub_highlighted = false;
  38.    boolean[] hlimg_status;
  39.    boolean[] simg_status;
  40.    boolean tag = false;
  41.    boolean first_run = true;
  42.    boolean rendering_images = false;
  43.    boolean mouse_in = false;
  44.    private String[] m_cur_image_desturl;
  45.    private String m_loadwhere = "_self";
  46.    private String[][] m_cur_desturl;
  47.    private String[][] m_cur_loadwhere;
  48.    private String[] m_cur_image_loadwhere;
  49.    private Color m_page_bgcolor;
  50.    private Color m_textcolor;
  51.    private String m_font;
  52.    private Color m_outline_color;
  53.    private Color m_menu_color;
  54.    private Color m_menu_textcolor;
  55.    private Color m_menu_hlcolor;
  56.    private Color m_menu_hltextcolor;
  57.    private int m_xoffset;
  58.    private String m_onsbtext;
  59.    private String m_offsbtext;
  60.    private String[] m_imagefile;
  61.    private String[] m_switchfile;
  62.    private int[] m_pic_xcord;
  63.    private int[] m_pic_ycord;
  64.    private int[] m_menu_xcord;
  65.    private int[] m_menu_ycord;
  66.    private String[][] m_desc;
  67.    int m_max_subs;
  68.    int m_halign;
  69.    int[] num_sub_items;
  70.    int last_drawn;
  71.    int num_images;
  72.    int[] pic_width;
  73.    int[] pic_height;
  74.    int[] max_string_width;
  75.    Image[] s_picture;
  76.    Image[] h_picture;
  77.  
  78.    public void stop() {
  79.       if (this.trun != null) {
  80.          this.trun.interrupt();
  81.       }
  82.  
  83.    }
  84.  
  85.    public boolean mouseEnter(Event var1, int var2, int var3) {
  86.       this.mouse_in = true;
  87.       if (this.rendering_images) {
  88.          ((OCAviewerExtend)this).showStatus("Loading Menu Images...");
  89.       } else {
  90.          ((OCAviewerExtend)this).showStatus(this.m_onsbtext);
  91.       }
  92.  
  93.       return true;
  94.    }
  95.  
  96.    public void UndoSubHighlight(Graphics var1, int var2) {
  97.       this.sub_highlighted = false;
  98.       this.last_sub = -1;
  99.       if (this.m_halign == 1) {
  100.          this.g_suboff.setColor(this.m_menu_color);
  101.          this.g_suboff.fillRect(1, 1 + this.bitheight * var2, this.max_string_width[this.last_drawn] - 1, this.bitheight - 1);
  102.          this.g_suboff.setColor(this.m_menu_textcolor);
  103.          this.g_suboff.drawString(this.m_desc[this.last_drawn][var2], (this.max_string_width[this.last_drawn] - this.field_1.stringWidth(this.m_desc[this.last_drawn][var2])) / 2, this.bitheight * var2 + this.bitheight - this.field_1.getDescent());
  104.       } else if (this.m_halign == 0) {
  105.          this.g_suboff.setColor(this.m_menu_color);
  106.          this.g_suboff.fillRect(1, 1 + this.bitheight * var2, this.max_string_width[this.last_drawn] - 1, this.bitheight - 1);
  107.          this.g_suboff.setColor(this.m_menu_textcolor);
  108.          this.g_suboff.drawString(this.m_desc[this.last_drawn][var2], this.m_xoffset, this.bitheight * var2 + this.bitheight - this.field_1.getDescent());
  109.       } else if (this.m_halign == 2) {
  110.          this.g_suboff.setColor(this.m_menu_color);
  111.          this.g_suboff.fillRect(1, 1 + this.bitheight * var2, this.max_string_width[this.last_drawn] - 1, this.bitheight - 1);
  112.          this.g_suboff.setColor(this.m_menu_textcolor);
  113.          this.g_suboff.drawString(this.m_desc[this.last_drawn][var2], this.max_string_width[this.last_drawn] - this.field_1.stringWidth(this.m_desc[this.last_drawn][var2]) - this.m_xoffset, this.bitheight * var2 + this.bitheight - this.field_1.getDescent());
  114.       }
  115.  
  116.       var1.drawImage(this.suboff, this.menux, this.menuy, this);
  117.    }
  118.  
  119.    public boolean mouseExit(Event var1, int var2, int var3) {
  120.       this.mouse_in = false;
  121.       if (this.last_drawn != -1) {
  122.          this.UndoHP();
  123.          this.last_drawn = -1;
  124.       }
  125.  
  126.       this.sub_highlighted = false;
  127.       this.last_sub = -1;
  128.       if (this.rendering_images) {
  129.          ((OCAviewerExtend)this).showStatus("Loading Menu Images...");
  130.       } else {
  131.          ((OCAviewerExtend)this).showStatus(this.m_offsbtext);
  132.       }
  133.  
  134.       return true;
  135.    }
  136.  
  137.    static int getAlignValue(String var0) {
  138.       if (var0.equalsIgnoreCase("right")) {
  139.          return 2;
  140.       } else {
  141.          return var0.equalsIgnoreCase("center") ? 1 : 0;
  142.       }
  143.    }
  144.  
  145.    public void paint(Graphics var1) {
  146.       this.paintIt();
  147.    }
  148.  
  149.    public Image trackReturn(String var1) {
  150.       ocgifix var2 = new ocgifix();
  151.       Object var3 = null;
  152.       MediaTracker var4 = new MediaTracker(this);
  153.       if (!var1.equals("-1")) {
  154.          Image var6 = ((Applet)this).getImage(((OCAviewerExtend)this).getDocumentBase(), var1);
  155.          if (var6 != null) {
  156.             var4.addImage(var6, 0);
  157.  
  158.             try {
  159.                var4.waitForID(0);
  160.             } catch (InterruptedException var5) {
  161.                return null;
  162.             }
  163.  
  164.             if (var4.isErrorID(0)) {
  165.                System.out.println("Error Loading Image File:" + var1);
  166.                return null;
  167.             } else {
  168.                var6 = var2.gifix(var6, var1);
  169.                return var6;
  170.             }
  171.          } else {
  172.             return null;
  173.          }
  174.       } else {
  175.          return null;
  176.       }
  177.    }
  178.  
  179.    public ism() {
  180.       this.m_page_bgcolor = Color.black;
  181.       this.m_textcolor = Color.black;
  182.       this.m_font = "Helvetica, plain, 10";
  183.       this.m_outline_color = Color.black;
  184.       this.m_menu_color = Color.yellow;
  185.       this.m_menu_textcolor = Color.black;
  186.       this.m_menu_hlcolor = Color.red;
  187.       this.m_menu_hltextcolor = Color.black;
  188.       this.m_xoffset = 4;
  189.       this.m_onsbtext = "OpenCube - Image Switch Menu";
  190.       this.m_offsbtext = "Java by OpenCube";
  191.       this.last_drawn = -1;
  192.       this.num_images = 0;
  193.    }
  194.  
  195.    public boolean mouseUp(Event var1, int var2, int var3) {
  196.       if (this.sub_highlighted) {
  197.          if (!this.m_cur_desturl[this.last_drawn][this.last_sub].equals("-1")) {
  198.             try {
  199.                this.goURL = new URL(((OCAviewerExtend)this).getDocumentBase(), this.m_cur_desturl[this.last_drawn][this.last_sub]);
  200.             } catch (MalformedURLException var5) {
  201.             }
  202.  
  203.             ((Applet)this).getAppletContext().showDocument(this.goURL, this.m_cur_loadwhere[this.last_drawn][this.last_sub]);
  204.          }
  205.       } else if (this.last_drawn != -1 && !this.m_cur_image_desturl[this.last_drawn].equals("-1")) {
  206.          try {
  207.             this.goURL = new URL(((OCAviewerExtend)this).getDocumentBase(), this.m_cur_image_desturl[this.last_drawn]);
  208.          } catch (MalformedURLException var4) {
  209.          }
  210.  
  211.          ((Applet)this).getAppletContext().showDocument(this.goURL, this.m_cur_image_loadwhere[this.last_drawn]);
  212.       }
  213.  
  214.       return true;
  215.    }
  216.  
  217.    public void destroy() {
  218.       if (this.trun != null) {
  219.          this.trun.stop();
  220.          this.trun = null;
  221.       }
  222.  
  223.    }
  224.  
  225.    public synchronized void paintIt() {
  226.       Graphics var1 = ((Component)this).getGraphics();
  227.       if (!this.tag) {
  228.          var1.setColor(Color.black);
  229.          var1.drawString(this.m_onsbtext, 5, 30);
  230.       } else {
  231.          var1.drawImage(this.field_2, 0, 0, this);
  232.       }
  233.    }
  234.  
  235.    public void UndoHP() {
  236.       ((Component)this).getGraphics();
  237.       this.g_ts.setColor(this.m_page_bgcolor);
  238.       this.g_ts.fillRect(this.menux, this.menuy, this.menuwidth + 1, this.menuheight + 1);
  239.  
  240.       for(int var1 = 0; var1 < this.num_images; ++var1) {
  241.          if (this.simg_status[var1]) {
  242.             this.g_ts.drawImage(this.s_picture[var1], this.m_pic_xcord[var1], this.m_pic_ycord[var1], this);
  243.          }
  244.       }
  245.  
  246.       this.paintIt();
  247.    }
  248.  
  249.    public void HighlightPic(int var1) {
  250.       this.menux = this.m_pic_xcord[var1] + this.m_menu_xcord[var1];
  251.       this.menuy = this.m_pic_ycord[var1] + this.m_menu_ycord[var1];
  252.       this.menuwidth = this.max_string_width[var1];
  253.       this.menuheight = this.num_sub_items[var1] * this.field_1.getHeight();
  254.       if (this.hlimg_status[var1]) {
  255.          this.g_ts.drawImage(this.h_picture[var1], this.m_pic_xcord[var1], this.m_pic_ycord[var1], this.m_page_bgcolor, this);
  256.       }
  257.  
  258.       this.suboff = ((Component)this).createImage(this.menuwidth + 1, this.menuheight + 1);
  259.       this.g_suboff = this.suboff.getGraphics();
  260.       this.g_suboff.setFont(this.font);
  261.       this.g_suboff.setColor(this.m_menu_color);
  262.       this.g_suboff.fillRect(0, 0, this.menuwidth, this.menuheight);
  263.       this.last_drawn = var1;
  264.       if (this.m_halign == 1) {
  265.          for(int var2 = 0; var2 < this.num_sub_items[var1]; ++var2) {
  266.             this.g_suboff.setColor(this.m_outline_color);
  267.             this.g_suboff.drawRect(0, this.field_1.getHeight() * var2, this.max_string_width[this.last_drawn], this.field_1.getHeight());
  268.             this.g_suboff.setColor(this.m_menu_textcolor);
  269.             this.g_suboff.drawString(this.m_desc[this.last_drawn][var2], (this.max_string_width[this.last_drawn] - this.field_1.stringWidth(this.m_desc[this.last_drawn][var2])) / 2, this.field_1.getHeight() * var2 + this.field_1.getHeight() - this.field_1.getDescent());
  270.          }
  271.       } else if (this.m_halign == 0) {
  272.          for(int var3 = 0; var3 < this.num_sub_items[var1]; ++var3) {
  273.             this.g_suboff.setColor(this.m_outline_color);
  274.             this.g_suboff.drawRect(0, this.field_1.getHeight() * var3, this.max_string_width[this.last_drawn], this.field_1.getHeight());
  275.             this.g_suboff.setColor(this.m_menu_textcolor);
  276.             this.g_suboff.drawString(this.m_desc[this.last_drawn][var3], this.m_xoffset, this.field_1.getHeight() * var3 + this.field_1.getHeight() - this.field_1.getDescent());
  277.          }
  278.       } else if (this.m_halign == 2) {
  279.          for(int var4 = 0; var4 < this.num_sub_items[var1]; ++var4) {
  280.             this.g_suboff.setColor(this.m_outline_color);
  281.             this.g_suboff.drawRect(0, this.field_1.getHeight() * var4, this.max_string_width[this.last_drawn], this.field_1.getHeight());
  282.             this.g_suboff.setColor(this.m_menu_textcolor);
  283.             this.g_suboff.drawString(this.m_desc[this.last_drawn][var4], this.max_string_width[this.last_drawn] - this.field_1.stringWidth(this.m_desc[this.last_drawn][var4]) - this.m_xoffset, this.field_1.getHeight() * var4 + this.field_1.getHeight() - this.field_1.getDescent());
  284.          }
  285.       }
  286.  
  287.       this.g_ts.drawImage(this.suboff, this.menux, this.menuy, this);
  288.       this.paintIt();
  289.    }
  290.  
  291.    public void FirstRun(Graphics var1) {
  292.       ((OCAviewerExtend)this).showStatus("Loading Menu Images...");
  293.  
  294.       for(int var2 = this.break_stand; var2 < this.num_images; this.break_stand = var2++) {
  295.          if ((this.s_picture[var2] = this.trackReturn(this.m_imagefile[var2])) != null) {
  296.             this.simg_status[var2] = true;
  297.             this.g_ts.drawImage(this.s_picture[var2], this.m_pic_xcord[var2], this.m_pic_ycord[var2], this);
  298.             if (this.last_drawn != -1 && this.suboff != null) {
  299.                this.g_ts.drawImage(this.suboff, this.m_pic_xcord[this.last_drawn] + this.m_menu_xcord[this.last_drawn], this.m_pic_ycord[this.last_drawn] + this.m_menu_ycord[this.last_drawn], this);
  300.             }
  301.  
  302.             ((Component)this).getGraphics().drawImage(this.field_2, 0, 0, this);
  303.             this.pic_width[var2] = this.s_picture[var2].getWidth(this);
  304.             this.pic_height[var2] = this.s_picture[var2].getHeight(this);
  305.          }
  306.       }
  307.  
  308.       for(int var3 = this.break_hl; var3 < this.num_images; this.break_hl = var3++) {
  309.          if ((this.h_picture[var3] = this.trackReturn(this.m_switchfile[var3])) != null) {
  310.             this.hlimg_status[var3] = true;
  311.             if (this.last_drawn == var3) {
  312.                this.g_ts.drawImage(this.h_picture[var3], this.m_pic_xcord[var3], this.m_pic_ycord[var3], this);
  313.                if (this.suboff != null) {
  314.                   this.g_ts.drawImage(this.suboff, this.m_pic_xcord[this.last_drawn] + this.m_menu_xcord[this.last_drawn], this.m_pic_ycord[this.last_drawn] + this.m_menu_ycord[this.last_drawn], this);
  315.                }
  316.  
  317.                ((Component)this).getGraphics().drawImage(this.field_2, 0, 0, this);
  318.             }
  319.          } else {
  320.             this.h_picture[var3] = this.s_picture[var3];
  321.          }
  322.       }
  323.  
  324.       if (this.mouse_in) {
  325.          ((OCAviewerExtend)this).showStatus(this.m_onsbtext);
  326.       } else {
  327.          ((OCAviewerExtend)this).showStatus(this.m_offsbtext);
  328.       }
  329.  
  330.       this.rendering_images = false;
  331.    }
  332.  
  333.    public void MouseInSub(int var1) {
  334.       for(int var2 = 1; var2 <= this.num_sub_items[this.last_drawn]; ++var2) {
  335.          if (var1 > this.bitheight * (var2 - 1) && var1 < this.bitheight * var2 && var2 != this.on_sub_num) {
  336.             if (this.sub_highlighted) {
  337.                this.UndoSubHighlight(((Component)this).getGraphics(), this.last_sub);
  338.             }
  339.  
  340.             this.SubHighlight(((Component)this).getGraphics(), var2 - 1);
  341.             this.on_sub_num = var2;
  342.          }
  343.       }
  344.  
  345.    }
  346.  
  347.    public void start() {
  348.       if (this.tag) {
  349.          if (this.first_run) {
  350.             this.trun = new Thread(this);
  351.             this.trun.start();
  352.          } else {
  353.             this.trun.resume();
  354.          }
  355.       }
  356.    }
  357.  
  358.    public void SubHighlight(Graphics var1, int var2) {
  359.       this.sub_highlighted = true;
  360.       this.last_sub = var2;
  361.       if (this.m_halign == 1) {
  362.          this.g_suboff.setColor(this.m_menu_hlcolor);
  363.          this.g_suboff.fillRect(1, 1 + this.bitheight * var2, this.max_string_width[this.last_drawn] - 1, this.bitheight - 1);
  364.          this.g_suboff.setColor(this.m_menu_hltextcolor);
  365.          this.g_suboff.drawString(this.m_desc[this.last_drawn][var2], (this.max_string_width[this.last_drawn] - this.field_1.stringWidth(this.m_desc[this.last_drawn][var2])) / 2, this.bitheight * var2 + this.bitheight - this.field_1.getDescent());
  366.       } else if (this.m_halign == 0) {
  367.          this.g_suboff.setColor(this.m_menu_hlcolor);
  368.          this.g_suboff.fillRect(1, 1 + this.bitheight * var2, this.max_string_width[this.last_drawn] - 1, this.bitheight - 1);
  369.          this.g_suboff.setColor(this.m_menu_hltextcolor);
  370.          this.g_suboff.drawString(this.m_desc[this.last_drawn][var2], this.m_xoffset, this.bitheight * var2 + this.bitheight - this.field_1.getDescent());
  371.       } else if (this.m_halign == 2) {
  372.          this.g_suboff.setColor(this.m_menu_hlcolor);
  373.          this.g_suboff.fillRect(1, 1 + this.bitheight * var2, this.max_string_width[this.last_drawn] - 1, this.bitheight - 1);
  374.          this.g_suboff.setColor(this.m_menu_hltextcolor);
  375.          this.g_suboff.drawString(this.m_desc[this.last_drawn][var2], this.max_string_width[this.last_drawn] - this.field_1.stringWidth(this.m_desc[this.last_drawn][var2]) - this.m_xoffset, this.bitheight * var2 + this.bitheight - this.field_1.getDescent());
  376.       }
  377.  
  378.       var1.drawImage(this.suboff, this.menux, this.menuy, this);
  379.    }
  380.  
  381.    public void run() {
  382.       while(true) {
  383.          if (this.first_run) {
  384.             this.FirstRun(((Component)this).getGraphics());
  385.             this.first_run = false;
  386.          }
  387.  
  388.          try {
  389.             Thread.sleep(200L);
  390.          } catch (InterruptedException var1) {
  391.          }
  392.       }
  393.    }
  394.  
  395.    public void init() {
  396.       String var1 = "Image Switch Menu, Copyright (c) 1999, OpenCube Inc.";
  397.       this.field_0 = ((Component)this).size();
  398.       int var3 = 0;
  399.       int var4 = 0;
  400.       String var2 = ((OCAviewerExtend)this).getParameter("Notice");
  401.       if (var2 == null) {
  402.          this.m_onsbtext = "Missing 'Notice' Tag";
  403.       } else {
  404.          String var5 = compkey.getKey(var2, ((OCAviewerExtend)this).getDocumentBase());
  405.          if (!var5.equals(var1)) {
  406.             if (var5.equals("-1")) {
  407.                this.m_onsbtext = "Licence Error: Invalid URL";
  408.             } else {
  409.                this.m_onsbtext = "Incorrect Copyright Notice in 'Notice' tag";
  410.             }
  411.          } else {
  412.             this.tag = true;
  413.             var2 = ((OCAviewerExtend)this).getParameter("menucolor");
  414.             if (var2 != null) {
  415.                this.m_menu_color = occcolor.ConvertColor(var2);
  416.             }
  417.  
  418.             var2 = ((OCAviewerExtend)this).getParameter("menuhlcolor");
  419.             if (var2 != null) {
  420.                this.m_menu_hlcolor = occcolor.ConvertColor(var2);
  421.             }
  422.  
  423.             var2 = ((OCAviewerExtend)this).getParameter("menuoutlinecolor");
  424.             if (var2 != null) {
  425.                this.m_outline_color = occcolor.ConvertColor(var2);
  426.             }
  427.  
  428.             var2 = ((OCAviewerExtend)this).getParameter("menutextcolor");
  429.             if (var2 != null) {
  430.                this.m_menu_textcolor = occcolor.ConvertColor(var2);
  431.             }
  432.  
  433.             var2 = ((OCAviewerExtend)this).getParameter("menuhltextcolor");
  434.             if (var2 != null) {
  435.                this.m_menu_hltextcolor = occcolor.ConvertColor(var2);
  436.             }
  437.  
  438.             var2 = ((OCAviewerExtend)this).getParameter("textcolor");
  439.             if (var2 != null) {
  440.                this.m_textcolor = occcolor.ConvertColor(var2);
  441.             }
  442.  
  443.             var2 = ((OCAviewerExtend)this).getParameter("onsbtext");
  444.             if (var2 != null) {
  445.                this.m_onsbtext = var2;
  446.             }
  447.  
  448.             var2 = ((OCAviewerExtend)this).getParameter("offsbtext");
  449.             if (var2 != null) {
  450.                this.m_offsbtext = var2;
  451.             }
  452.  
  453.             var2 = ((OCAviewerExtend)this).getParameter("font");
  454.             if (var2 != null) {
  455.                this.font = ocfontc.getFontSD(var2, ",");
  456.             } else {
  457.                this.font = new Font("Helvetica", 0, 12);
  458.             }
  459.  
  460.             ((Component)this).setFont(this.font);
  461.             this.field_1 = ((Component)this).getFontMetrics(this.font);
  462.             var2 = ((OCAviewerExtend)this).getParameter("halign");
  463.             if (var2 != null) {
  464.                this.m_halign = getAlignValue(var2);
  465.             }
  466.  
  467.             var2 = ((OCAviewerExtend)this).getParameter("lrmargin");
  468.             if (var2 != null) {
  469.                this.m_xoffset = Integer.parseInt(var2);
  470.             }
  471.  
  472.             var2 = ((OCAviewerExtend)this).getParameter("loadwhere");
  473.             if (var2 != null) {
  474.                this.m_loadwhere = var2;
  475.             }
  476.  
  477.             var2 = ((OCAviewerExtend)this).getParameter("bgcolor");
  478.             if (var2 != null) {
  479.                this.m_page_bgcolor = occcolor.ConvertColor(var2);
  480.             }
  481.  
  482.             ((Component)this).setBackground(this.m_page_bgcolor);
  483.  
  484.             while(((OCAviewerExtend)this).getParameter("imagefile" + var3) != null) {
  485.                while(((OCAviewerExtend)this).getParameter("desc" + var3 + "-" + var4) != null) {
  486.                   ++var4;
  487.                   if (var4 > this.m_max_subs) {
  488.                      this.m_max_subs = var4;
  489.                   }
  490.                }
  491.  
  492.                var4 = 0;
  493.                ++var3;
  494.                ++this.num_images;
  495.             }
  496.  
  497.             this.m_imagefile = new String[this.num_images];
  498.             this.m_switchfile = new String[this.num_images];
  499.             this.m_pic_xcord = new int[this.num_images];
  500.             this.m_pic_ycord = new int[this.num_images];
  501.             this.m_menu_xcord = new int[this.num_images];
  502.             this.m_menu_ycord = new int[this.num_images];
  503.             this.m_cur_image_desturl = new String[this.num_images];
  504.             this.m_cur_image_loadwhere = new String[this.num_images];
  505.             this.m_desc = new String[this.num_images][this.m_max_subs];
  506.             this.m_cur_desturl = new String[this.num_images][this.m_max_subs];
  507.             this.m_cur_loadwhere = new String[this.num_images][this.m_max_subs];
  508.             this.pic_width = new int[this.num_images];
  509.             this.pic_height = new int[this.num_images];
  510.             this.s_picture = new Image[this.num_images];
  511.             this.h_picture = new Image[this.num_images];
  512.             this.max_string_width = new int[this.num_images];
  513.             this.num_sub_items = new int[this.num_images];
  514.             this.hlimg_status = new boolean[this.num_images];
  515.             this.simg_status = new boolean[this.num_images];
  516.  
  517.             for(int var29 = 0; var29 < this.num_images; ++var29) {
  518.                int var10002;
  519.                for(int var30 = 0; ((OCAviewerExtend)this).getParameter("desc" + var29 + "-" + var30) != null; var10002 = this.num_sub_items[var29]++) {
  520.                   ++var30;
  521.                }
  522.  
  523.                for(int var31 = 0; var31 < this.num_sub_items[var29]; ++var31) {
  524.                   var2 = ((OCAviewerExtend)this).getParameter("desc" + var29 + "-" + var31);
  525.                   if (var2 != null) {
  526.                      this.m_desc[var29][var31] = new String(var2);
  527.                      if (this.field_1.stringWidth(this.m_desc[var29][var31]) + this.m_xoffset * 2 > this.max_string_width[var29]) {
  528.                         this.max_string_width[var29] = this.field_1.stringWidth(this.m_desc[var29][var31]) + this.m_xoffset * 2;
  529.                      }
  530.                   } else {
  531.                      this.m_desc[var29][var31] = new String("");
  532.                   }
  533.  
  534.                   var2 = ((OCAviewerExtend)this).getParameter("desturl" + var29 + "-" + var31);
  535.                   if (var2 != null) {
  536.                      this.m_cur_desturl[var29][var31] = new String(var2);
  537.                   } else {
  538.                      this.m_cur_desturl[var29][var31] = "-1";
  539.                   }
  540.  
  541.                   var2 = ((OCAviewerExtend)this).getParameter("loadwhere" + var29 + "-" + var31);
  542.                   if (var2 != null) {
  543.                      this.m_cur_loadwhere[var29][var31] = new String(var2);
  544.                   } else {
  545.                      this.m_cur_loadwhere[var29][var31] = this.m_loadwhere;
  546.                   }
  547.                }
  548.  
  549.                var2 = ((OCAviewerExtend)this).getParameter("imagefile" + var29);
  550.                if (var2 != null) {
  551.                   this.m_imagefile[var29] = new String(var2);
  552.                } else {
  553.                   this.m_imagefile[var29] = new String("-1");
  554.                }
  555.  
  556.                var2 = ((OCAviewerExtend)this).getParameter("switchfile" + var29);
  557.                if (var2 != null) {
  558.                   this.m_switchfile[var29] = new String(var2);
  559.                } else {
  560.                   this.m_switchfile[var29] = new String("-1");
  561.                }
  562.  
  563.                var2 = ((OCAviewerExtend)this).getParameter("imagexy" + var29);
  564.                if (var2 != null) {
  565.                   int[] var6 = occcord.getIntValues(var2, ",", 2);
  566.                   if (var6 != null) {
  567.                      this.m_pic_xcord[var29] = var6[0];
  568.                      this.m_pic_ycord[var29] = var6[1];
  569.                   }
  570.                }
  571.  
  572.                var2 = ((OCAviewerExtend)this).getParameter("subxy" + var29);
  573.                if (var2 != null) {
  574.                   int[] var32 = occcord.getIntValues(var2, ",", 2);
  575.                   if (var32 != null) {
  576.                      this.m_menu_xcord[var29] = var32[0];
  577.                      this.m_menu_ycord[var29] = var32[1];
  578.                   }
  579.                }
  580.  
  581.                var2 = ((OCAviewerExtend)this).getParameter("imagedesturl" + var29);
  582.                if (var2 != null) {
  583.                   this.m_cur_image_desturl[var29] = var2;
  584.                } else {
  585.                   this.m_cur_image_desturl[var29] = "-1";
  586.                }
  587.  
  588.                var2 = ((OCAviewerExtend)this).getParameter("imageloadwhere" + var29);
  589.                if (var2 != null) {
  590.                   this.m_cur_image_loadwhere[var29] = var2;
  591.                } else {
  592.                   this.m_cur_image_loadwhere[var29] = this.m_loadwhere;
  593.                }
  594.             }
  595.  
  596.             this.field_2 = ((Component)this).createImage(this.field_0.width, this.field_0.height);
  597.             this.g_ts = this.field_2.getGraphics();
  598.             this.g_ts.setColor(this.m_page_bgcolor);
  599.             this.g_ts.fillRect(0, 0, this.field_0.width, this.field_0.height);
  600.             this.bitheight = this.field_1.getHeight();
  601.          }
  602.       }
  603.    }
  604.  
  605.    public boolean mouseMove(Event var1, int var2, int var3) {
  606.       if (this.last_drawn != -1 && var2 > this.menux && var2 < this.menux + this.menuwidth && var3 > this.menuy && var3 < this.menuy + this.menuheight) {
  607.          this.MouseInSub(var3 - this.menuy);
  608.          return true;
  609.       } else {
  610.          if (this.sub_highlighted) {
  611.             this.UndoSubHighlight(((Component)this).getGraphics(), this.last_sub);
  612.          }
  613.  
  614.          this.on_sub_num = -1;
  615.  
  616.          for(int var4 = 0; var4 < this.num_images; ++var4) {
  617.             if (var3 > this.m_pic_ycord[var4] && var3 < this.m_pic_ycord[var4] + this.pic_height[var4] && var2 > this.m_pic_xcord[var4] && var2 < this.m_pic_xcord[var4] + this.pic_width[var4] && var4 != this.last_drawn) {
  618.                if (this.last_drawn != -1) {
  619.                   this.UndoHP();
  620.                }
  621.  
  622.                this.HighlightPic(var4);
  623.             }
  624.          }
  625.  
  626.          return true;
  627.       }
  628.    }
  629. }
  630.