home *** CD-ROM | disk | FTP | other *** search
/ Internet Magazine 2002 June / INTERNET92.ISO / pc / software / windows / building / visual_dhtml / visualdhtmlwin9x_nt.exe / tsilbg.___ (.txt) < prev    next >
Encoding:
Java Class File  |  2001-10-19  |  7.6 KB  |  490 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.Graphics;
  7. import java.awt.Image;
  8. import java.awt.MediaTracker;
  9. import java.net.MalformedURLException;
  10. import java.net.URL;
  11.  
  12. public class tsilbg extends OCAviewerExtend implements Runnable {
  13.    int g_old_menu;
  14.    boolean g_ismousedown;
  15.    Thread m_SlidingM = null;
  16.    String last_s;
  17.    boolean rep = false;
  18.    URL goURL;
  19.    // $FF: renamed from: d java.awt.Dimension
  20.    Dimension field_0;
  21.    Image off;
  22.    Graphics g_off;
  23.    int break_down;
  24.    int break_stand;
  25.    int break_hl;
  26.    int break_switch;
  27.    int draw_spec_hl = -1;
  28.    int draw_spec_st = -1;
  29.    int m_stay = -1;
  30.    boolean tag;
  31.    boolean first_run = true;
  32.    boolean rendering_images = false;
  33.    boolean mouse_in = false;
  34.    private String[] m_cur_image_desturl;
  35.    private String m_loadwhere = "_self";
  36.    private String[] m_cur_image_loadwhere;
  37.    private Color m_page_bgcolor;
  38.    private boolean m_honimage_only;
  39.    private boolean m_showsburls;
  40.    private String m_onsbtext;
  41.    private String m_offsbtext;
  42.    private int m_bgx;
  43.    private int m_bgy;
  44.    boolean bg_loaded;
  45.    private String m_bgimagefile;
  46.    private String[] m_normfile;
  47.    private String[] m_downfile;
  48.    private String[] m_hl_file;
  49.    private int[] m_pic_xcord;
  50.    private int[] m_pic_ycord;
  51.    int last_drawn;
  52.    int num_images;
  53.    int[] pic_width;
  54.    int[] pic_height;
  55.    Image bg_image;
  56.    Image[] norm_pic;
  57.    Image[] hl_pic;
  58.    Image[] down_pic;
  59.    boolean[] norm_stat;
  60.    boolean[] hl_stat;
  61.    boolean[] down_stat;
  62.  
  63.    public void stop() {
  64.       if (this.m_SlidingM != null) {
  65.          this.m_SlidingM.stop();
  66.          this.m_SlidingM = null;
  67.       }
  68.  
  69.    }
  70.  
  71.    public boolean mouseEnter(Event var1, int var2, int var3) {
  72.       this.mouse_in = true;
  73.       if (this.rendering_images) {
  74.          this.setShowStatus("Loading Images...");
  75.       } else {
  76.          this.setShowStatus(this.m_onsbtext);
  77.       }
  78.  
  79.       return true;
  80.    }
  81.  
  82.    public void setShowStatus(String var1) {
  83.       if (this.last_s != var1) {
  84.          this.last_s = var1;
  85.          ((OCAviewerExtend)this).showStatus(var1);
  86.       }
  87.  
  88.    }
  89.  
  90.    public boolean mouseExit(Event var1, int var2, int var3) {
  91.       this.mouse_in = false;
  92.       if (this.last_drawn != -1) {
  93.          if (!this.g_ismousedown) {
  94.             this.last_drawn = -1;
  95.          }
  96.  
  97.          this.paintIt();
  98.       }
  99.  
  100.       if (this.rendering_images) {
  101.          this.setShowStatus("Loading Images...");
  102.       } else {
  103.          this.setShowStatus(this.m_offsbtext);
  104.       }
  105.  
  106.       return true;
  107.    }
  108.  
  109.    public void paint(Graphics var1) {
  110.       this.paintIt();
  111.    }
  112.  
  113.    public Image trackReturn(String var1) {
  114.       if (var1 == null) {
  115.          return null;
  116.       } else {
  117.          ocgifix var2 = new ocgifix();
  118.          Object var3 = null;
  119.          MediaTracker var4 = new MediaTracker(this);
  120.          if (!var1.equals("-1")) {
  121.             Image var6 = ((Applet)this).getImage(((OCAviewerExtend)this).getDocumentBase(), var1);
  122.             if (var6 != null) {
  123.                var4.addImage(var6, 0);
  124.  
  125.                try {
  126.                   var4.waitForID(0);
  127.                } catch (InterruptedException var5) {
  128.                   return null;
  129.                }
  130.  
  131.                if (var4.isErrorID(0)) {
  132.                   System.out.println("Error Loading Image File:" + var1);
  133.                   return null;
  134.                } else {
  135.                   var6 = var2.gifix(var6, var1);
  136.                   return var6;
  137.                }
  138.             } else {
  139.                return null;
  140.             }
  141.          } else {
  142.             return null;
  143.          }
  144.       }
  145.    }
  146.  
  147.    public tsilbg() {
  148.       this.m_page_bgcolor = Color.black;
  149.       this.m_honimage_only = false;
  150.       this.m_showsburls = true;
  151.       this.m_onsbtext = "OpenCube - Switch Buttons (www.opencube.com)";
  152.       this.m_offsbtext = "Java by OpenCube (www.opencube.com)";
  153.       this.bg_loaded = false;
  154.       this.last_drawn = -1;
  155.       this.num_images = 0;
  156.    }
  157.  
  158.    public boolean mouseUp(Event var1, int var2, int var3) {
  159.       this.g_ismousedown = false;
  160.       this.m_stay = -1;
  161.       if (!this.mouse_in) {
  162.          this.last_drawn = -1;
  163.          this.paintIt();
  164.       }
  165.  
  166.       if (var3 >= this.m_pic_ycord[this.last_drawn] && var3 <= this.m_pic_ycord[this.last_drawn] + this.pic_height[this.last_drawn] && var2 >= this.m_pic_xcord[this.last_drawn] && var2 <= this.m_pic_xcord[this.last_drawn] + this.pic_width[this.last_drawn]) {
  167.          if (!this.m_cur_image_desturl[this.last_drawn].equals("-1")) {
  168.             try {
  169.                this.goURL = new URL(((OCAviewerExtend)this).getDocumentBase(), this.m_cur_image_desturl[this.last_drawn]);
  170.                ((Applet)this).getAppletContext().showDocument(this.goURL, this.m_cur_image_loadwhere[this.last_drawn]);
  171.             } catch (MalformedURLException var4) {
  172.                return true;
  173.             }
  174.          }
  175.  
  176.          return true;
  177.       } else {
  178.          return true;
  179.       }
  180.    }
  181.  
  182.    public synchronized void paintIt() {
  183.       this.DrawBG();
  184.       if (this.tag) {
  185.          if (this.bg_image != null) {
  186.             this.g_off.drawImage(this.bg_image, this.m_bgx, this.m_bgy, this);
  187.          }
  188.  
  189.          for(int var1 = 0; var1 < this.num_images; ++var1) {
  190.             if (this.m_stay != var1 && this.last_drawn != var1 && this.norm_pic[var1] != null) {
  191.                this.g_off.drawImage(this.norm_pic[var1], this.m_pic_xcord[var1], this.m_pic_ycord[var1], this);
  192.             }
  193.          }
  194.  
  195.          if (this.last_drawn > -1 && this.last_drawn != this.m_stay) {
  196.             if (this.hl_stat[this.last_drawn]) {
  197.                this.g_off.drawImage(this.hl_pic[this.last_drawn], this.m_pic_xcord[this.last_drawn], this.m_pic_ycord[this.last_drawn], this);
  198.             } else {
  199.                this.draw_spec_hl = this.last_drawn;
  200.                if (this.norm_stat[this.last_drawn]) {
  201.                   this.g_off.drawImage(this.norm_pic[this.last_drawn], this.m_pic_xcord[this.last_drawn], this.m_pic_ycord[this.last_drawn], this);
  202.                }
  203.             }
  204.          }
  205.  
  206.          if (this.m_stay > -1) {
  207.             if (this.down_stat[this.m_stay]) {
  208.                this.g_off.drawImage(this.down_pic[this.m_stay], this.m_pic_xcord[this.m_stay], this.m_pic_ycord[this.m_stay], this);
  209.             } else {
  210.                this.draw_spec_st = this.m_stay;
  211.                if (this.norm_stat[this.m_stay]) {
  212.                   this.g_off.drawImage(this.norm_pic[this.m_stay], this.m_pic_xcord[this.m_stay], this.m_pic_ycord[this.m_stay], this);
  213.                }
  214.             }
  215.          }
  216.  
  217.          ((Component)this).getGraphics().drawImage(this.off, 0, 0, this);
  218.       }
  219.    }
  220.  
  221.    public void SetLinkSB(int var1) {
  222.       if (this.m_showsburls) {
  223.          if (!this.m_cur_image_desturl[var1].equals("-1")) {
  224.             this.setShowStatus(this.m_cur_image_desturl[var1]);
  225.             return;
  226.          }
  227.  
  228.          if (this.rendering_images) {
  229.             this.setShowStatus("Loading Images...");
  230.             return;
  231.          }
  232.  
  233.          this.setShowStatus(this.m_onsbtext);
  234.       }
  235.  
  236.    }
  237.  
  238.    public void FirstRun(Graphics var1) {
  239.       this.setShowStatus("Loading Menu Images...");
  240.  
  241.       for(int var2 = this.break_stand; var2 < this.num_images; this.break_stand = var2++) {
  242.          if ((this.norm_pic[var2] = this.trackReturn(this.m_normfile[var2])) != null) {
  243.             this.norm_stat[var2] = true;
  244.             this.pic_width[var2] = this.norm_pic[var2].getWidth(this);
  245.             this.pic_height[var2] = this.norm_pic[var2].getHeight(this);
  246.             this.paintIt();
  247.          }
  248.       }
  249.  
  250.       for(int var3 = this.break_hl; var3 < this.num_images; this.break_hl = var3++) {
  251.          if ((this.hl_pic[var3] = this.trackReturn(this.m_hl_file[var3])) != null) {
  252.             this.hl_stat[var3] = true;
  253.             this.paintIt();
  254.          } else {
  255.             this.hl_pic[var3] = this.norm_pic[var3];
  256.          }
  257.       }
  258.  
  259.       for(int var4 = this.break_down; var4 < this.num_images; this.break_down = var4++) {
  260.          if ((this.down_pic[var4] = this.trackReturn(this.m_downfile[var4])) != null) {
  261.             this.down_stat[var4] = true;
  262.             this.paintIt();
  263.          } else {
  264.             this.down_pic[var4] = this.hl_pic[var4];
  265.          }
  266.       }
  267.  
  268.       if (!this.bg_loaded && (this.bg_image = this.trackReturn(this.m_bgimagefile)) != null) {
  269.          this.bg_loaded = true;
  270.          this.paintIt();
  271.       }
  272.  
  273.       if (this.mouse_in) {
  274.          ((OCAviewerExtend)this).showStatus(this.m_onsbtext);
  275.       } else {
  276.          ((OCAviewerExtend)this).showStatus(this.m_offsbtext);
  277.       }
  278.  
  279.       this.rendering_images = false;
  280.    }
  281.  
  282.    public void DrawBG() {
  283.       this.g_off.setColor(this.m_page_bgcolor);
  284.       this.g_off.fillRect(0, 0, this.field_0.width, this.field_0.height);
  285.    }
  286.  
  287.    public void start() {
  288.       if (this.tag) {
  289.          if (this.m_SlidingM == null) {
  290.             this.m_SlidingM = new Thread(this);
  291.             this.m_SlidingM.start();
  292.          }
  293.  
  294.       }
  295.    }
  296.  
  297.    public boolean mouseDown(Event var1, int var2, int var3) {
  298.       this.g_ismousedown = true;
  299.       if (this.last_drawn != -1 && !this.m_cur_image_desturl[this.last_drawn].equals("-1") && this.m_stay != this.last_drawn) {
  300.          this.m_stay = this.last_drawn;
  301.          this.paintIt();
  302.       }
  303.  
  304.       return true;
  305.    }
  306.  
  307.    public void run() {
  308.       while(true) {
  309.          if (this.first_run) {
  310.             ((Component)this).setBackground(this.m_page_bgcolor);
  311.             this.paintIt();
  312.             this.FirstRun(((Component)this).getGraphics());
  313.             this.first_run = false;
  314.          }
  315.  
  316.          try {
  317.             Thread.sleep(250L);
  318.          } catch (InterruptedException var1) {
  319.          }
  320.       }
  321.    }
  322.  
  323.    public void init() {
  324.       String var1 = "3-State Image Buttons, Copyright (c) 1999, OpenCube Inc.";
  325.       this.field_0 = ((Component)this).size();
  326.       String var2 = "";
  327.       int var3 = 0;
  328.       boolean var4 = false;
  329.       this.off = ((Component)this).createImage(this.field_0.width, this.field_0.height);
  330.       this.g_off = this.off.getGraphics();
  331.       var2 = ((OCAviewerExtend)this).getParameter("Notice");
  332.       if (var2 == null) {
  333.          this.m_onsbtext = "Missing 'Notice' Tag";
  334.          this.tag = false;
  335.       } else if (!var2.equalsIgnoreCase(var1)) {
  336.          this.tag = false;
  337.          this.m_onsbtext = "Invalid Copyright 'Notice' Tag";
  338.       } else {
  339.          this.tag = true;
  340.          var2 = ((OCAviewerExtend)this).getParameter("showsblinks");
  341.          if (var2 != null) {
  342.             this.m_showsburls = Boolean.valueOf(var2);
  343.          }
  344.  
  345.          var2 = ((OCAviewerExtend)this).getParameter("loadwhere");
  346.          if (var2 != null) {
  347.             this.m_loadwhere = var2;
  348.          }
  349.  
  350.          var2 = ((OCAviewerExtend)this).getParameter("bgimagefile");
  351.          if (var2 != null) {
  352.             this.m_bgimagefile = var2;
  353.          } else {
  354.             this.m_bgimagefile = "-1";
  355.          }
  356.  
  357.          var2 = ((OCAviewerExtend)this).getParameter("bgxy");
  358.          if (var2 != null) {
  359.             int[] var5 = occcord.getIntValues(var2, ",", 2);
  360.             if (var5 != null) {
  361.                this.m_bgx = var5[0];
  362.                this.m_bgy = var5[1];
  363.             }
  364.          }
  365.  
  366.          var2 = ((OCAviewerExtend)this).getParameter("bgcolor");
  367.          if (var2 != null) {
  368.             this.m_page_bgcolor = occcolor.ConvertColor(var2);
  369.          }
  370.  
  371.          while(((OCAviewerExtend)this).getParameter("imagefile" + var3) != null) {
  372.             ++var3;
  373.             ++this.num_images;
  374.          }
  375.  
  376.          this.m_stay = -1;
  377.          this.m_hl_file = new String[this.num_images];
  378.          this.m_normfile = new String[this.num_images];
  379.          this.m_downfile = new String[this.num_images];
  380.          this.m_pic_xcord = new int[this.num_images];
  381.          this.m_pic_ycord = new int[this.num_images];
  382.          this.m_cur_image_desturl = new String[this.num_images];
  383.          this.m_cur_image_loadwhere = new String[this.num_images];
  384.          this.pic_width = new int[this.num_images];
  385.          this.pic_height = new int[this.num_images];
  386.          this.norm_pic = new Image[this.num_images];
  387.          this.hl_pic = new Image[this.num_images];
  388.          this.down_pic = new Image[this.num_images];
  389.          this.norm_stat = new boolean[this.num_images];
  390.          this.hl_stat = new boolean[this.num_images];
  391.          this.down_stat = new boolean[this.num_images];
  392.  
  393.          for(int var18 = 0; var18 < this.num_images; ++var18) {
  394.             var4 = false;
  395.             var2 = ((OCAviewerExtend)this).getParameter("imagefile" + var18);
  396.             if (var2 != null) {
  397.                this.m_normfile[var18] = new String(var2);
  398.             } else {
  399.                this.m_normfile[var18] = "-1";
  400.             }
  401.  
  402.             var2 = ((OCAviewerExtend)this).getParameter("clickfile" + var18);
  403.             if (var2 != null) {
  404.                this.m_downfile[var18] = new String(var2);
  405.             } else {
  406.                this.m_downfile[var18] = "-1";
  407.             }
  408.  
  409.             var2 = ((OCAviewerExtend)this).getParameter("switchfile" + var18);
  410.             if (var2 != null) {
  411.                this.m_hl_file[var18] = new String(var2);
  412.             } else {
  413.                this.m_hl_file[var18] = "-1";
  414.             }
  415.  
  416.             var2 = ((OCAviewerExtend)this).getParameter("imagexy" + var18);
  417.             if (var2 != null) {
  418.                int[] var20 = occcord.getIntValues(var2, ",", 2);
  419.                if (var20 != null) {
  420.                   this.m_pic_xcord[var18] = var20[0];
  421.                   this.m_pic_ycord[var18] = var20[1];
  422.                }
  423.             } else {
  424.                this.m_pic_xcord[var18] = 0;
  425.                this.m_pic_ycord[var18] = 0;
  426.             }
  427.  
  428.             var2 = ((OCAviewerExtend)this).getParameter("desturl" + var18);
  429.             if (var2 != null) {
  430.                this.m_cur_image_desturl[var18] = var2;
  431.             } else {
  432.                this.m_cur_image_desturl[var18] = "-1";
  433.             }
  434.  
  435.             var2 = ((OCAviewerExtend)this).getParameter("loadwhere" + var18);
  436.             if (var2 != null) {
  437.                this.m_cur_image_loadwhere[var18] = var2;
  438.             } else {
  439.                this.m_cur_image_loadwhere[var18] = this.m_loadwhere;
  440.             }
  441.          }
  442.  
  443.       }
  444.    }
  445.  
  446.    public boolean mouseDrag(Event var1, int var2, int var3) {
  447.       if (this.last_drawn == -1) {
  448.          return true;
  449.       } else {
  450.          this.g_old_menu = this.last_drawn;
  451.          if (var3 >= this.m_pic_ycord[this.last_drawn] && var3 <= this.m_pic_ycord[this.last_drawn] + this.pic_height[this.last_drawn] && var2 >= this.m_pic_xcord[this.last_drawn] && var2 <= this.m_pic_xcord[this.last_drawn] + this.pic_width[this.last_drawn]) {
  452.             if (this.g_ismousedown) {
  453.                this.m_stay = this.g_old_menu;
  454.             }
  455.  
  456.             this.paintIt();
  457.             this.SetLinkSB(this.last_drawn);
  458.          } else if (this.m_stay != -1) {
  459.             this.m_stay = -1;
  460.             this.paintIt();
  461.          }
  462.  
  463.          return true;
  464.       }
  465.    }
  466.  
  467.    public boolean mouseMove(Event var1, int var2, int var3) {
  468.       for(int var4 = 0; var4 < this.num_images; ++var4) {
  469.          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]) {
  470.             if (var4 != this.last_drawn) {
  471.                this.last_drawn = var4;
  472.                this.paintIt();
  473.                this.SetLinkSB(this.last_drawn);
  474.                return true;
  475.             }
  476.  
  477.             return true;
  478.          }
  479.       }
  480.  
  481.       if (this.last_drawn != -1) {
  482.          this.last_drawn = -1;
  483.          this.setShowStatus(this.m_onsbtext);
  484.          this.paintIt();
  485.       }
  486.  
  487.       return true;
  488.    }
  489. }
  490.