home *** CD-ROM | disk | FTP | other *** search
/ Internet Magazine 2002 June / INTERNET92.ISO / pc / software / windows / building / visual_dhtml / visualdhtmlwin2000.exe / FadeText.___ (.txt) < prev    next >
Encoding:
Java Class File  |  2001-10-19  |  10.0 KB  |  694 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.net.MalformedURLException;
  11. import java.net.URL;
  12.  
  13. public class FadeText extends OCAviewerExtend implements Runnable {
  14.    Thread m_SlidingM = null;
  15.    Image off;
  16.    Graphics g_off;
  17.    // $FF: renamed from: fm java.awt.FontMetrics
  18.    FontMetrics field_0;
  19.    URL goURL;
  20.    // $FF: renamed from: d java.awt.Dimension
  21.    Dimension field_1;
  22.    int center_x = 0;
  23.    int num_msg;
  24.    // $FF: renamed from: k int
  25.    int field_2 = 0;
  26.    boolean paused = false;
  27.    boolean tag = false;
  28.    boolean mouse_in = false;
  29.    boolean bad_descrips = false;
  30.    boolean first_pass = true;
  31.    boolean multi_line = false;
  32.    boolean first_run = true;
  33.    private int m_delay = 2000;
  34.    private int m_mouse_delay = 1000;
  35.    private String m_messagefont = "Arial";
  36.    private String[] m_msg;
  37.    private Color[] m_cur_textcolor;
  38.    private Color[] m_cur_bgcolor;
  39.    private Color m_bgcolor;
  40.    private Color m_textcolor;
  41.    private int[] m_cur_delay;
  42.    private String[] m_cur_desturl;
  43.    private String m_loadwhere;
  44.    private String[] m_cur_loadwhere;
  45.    private int m_margin;
  46.    private int m_b_thick;
  47.    private int[] m_cur_b_thick;
  48.    private Color m_b_color;
  49.    private Color[] m_cur_b_color;
  50.    private int m_fadein_frames;
  51.    private int m_fadeout_frames;
  52.    private int m_fadein_delay;
  53.    private int m_fadeout_delay;
  54.    private Font m_font;
  55.    private Font[] m_cur_font;
  56.    private int m_valign;
  57.    private int[] m_cur_valign;
  58.    private int m_halign;
  59.    private int[] m_cur_halign;
  60.    private boolean m_fade_bg;
  61.    private boolean m_underline;
  62.    private boolean[] m_cur_underline;
  63.    private Color m_hltext_color;
  64.    private Color m_hlborder_color;
  65.    private boolean m_hllinksonly;
  66.    private int m_fadebgframes;
  67.    private int m_fadebgdelay;
  68.    private String m_onsbtext;
  69.    private String m_offsbtext;
  70.    // $FF: renamed from: ml java.lang.String[]
  71.    private String[] field_3;
  72.  
  73.    public void stop() {
  74.       if (this.m_SlidingM != null) {
  75.          this.m_SlidingM.stop();
  76.          this.m_SlidingM = null;
  77.       }
  78.  
  79.    }
  80.  
  81.    public boolean mouseEnter(Event var1, int var2, int var3) {
  82.       this.mouse_in = true;
  83.       if (this.paused) {
  84.          this.method_0();
  85.          this.paintIt();
  86.       }
  87.  
  88.       ((OCAviewerExtend)this).showStatus(this.m_onsbtext);
  89.       return true;
  90.    }
  91.  
  92.    private boolean drawTextOverImage(Graphics var1, Dimension var2, String var3, Font var4, Color var5, int var6, int var7, int var8, Color var9, int var10, boolean var11, boolean var12) {
  93.       try {
  94.          var1.setFont(var4);
  95.          FontMetrics var13 = var1.getFontMetrics(var4);
  96.          if (!var11) {
  97.             var1.setColor(var9);
  98.  
  99.             for(int var14 = 0; var14 < var10; ++var14) {
  100.                var1.drawRect(var14, var14, var2.width - var14 * 2 - 1, var2.height - var14 * 2 - 1);
  101.             }
  102.  
  103.             this.field_3 = ocwordw.WrapText(var3, var2.width - var6 * 2 - var10 * 2, var13);
  104.          }
  105.  
  106.          var1.setColor(var5);
  107.          int var20 = var13.getHeight() * this.field_3.length + var13.getAscent() / 2;
  108.          int var15 = var10;
  109.          if (var7 == 1) {
  110.             var15 = (var2.height - var20) / 2;
  111.          }
  112.  
  113.          if (var7 == 2) {
  114.             var15 = var2.height - var10 - var20;
  115.          }
  116.  
  117.          for(int var16 = 0; var16 < this.field_3.length; ++var16) {
  118.             int var17 = 0;
  119.             int var18 = 0;
  120.             if (var8 == 1) {
  121.                var17 = var2.width / 2 - var13.stringWidth(this.field_3[var16]) / 2;
  122.                var18 = var15 + (var16 + 1) * var13.getHeight();
  123.                if (var12) {
  124.                   var1.drawLine(var17 + 1, var18 + 1, var17 + var13.stringWidth(this.field_3[var16]) - 1, var18 + 1);
  125.                }
  126.  
  127.                var1.drawString(this.field_3[var16], var17, var18);
  128.             } else if (var8 == 0) {
  129.                var17 = var6 + var10;
  130.                var18 = var15 + (var16 + 1) * var13.getHeight();
  131.                if (var12) {
  132.                   var1.drawLine(var17 + 1, var18 + 1, var17 + var13.stringWidth(this.field_3[var16]) - 1, var18 + 1);
  133.                }
  134.  
  135.                var1.drawString(this.field_3[var16], var17, var18);
  136.             } else if (var8 == 2) {
  137.                var17 = var2.width - (var13.stringWidth(this.field_3[var16]) + var6 + var10);
  138.                var18 = var15 + (var16 + 1) * var13.getHeight();
  139.                var1.drawString(this.field_3[var16], var17, var18);
  140.             }
  141.          }
  142.  
  143.          return true;
  144.       } catch (Exception var19) {
  145.          return false;
  146.       }
  147.    }
  148.  
  149.    public boolean mouseExit(Event var1, int var2, int var3) {
  150.       this.mouse_in = false;
  151.       if (this.paused) {
  152.          this.UndoHL();
  153.          this.paintIt();
  154.       }
  155.  
  156.       ((OCAviewerExtend)this).showStatus(this.m_offsbtext);
  157.       return true;
  158.    }
  159.  
  160.    static int getAlignValue(String var0) {
  161.       if (!var0.equalsIgnoreCase("right") && !var0.equalsIgnoreCase("bottom")) {
  162.          return var0.equalsIgnoreCase("center") ? 1 : 0;
  163.       } else {
  164.          return 2;
  165.       }
  166.    }
  167.  
  168.    public void paint(Graphics var1) {
  169.       this.paintIt();
  170.    }
  171.  
  172.    public void DrawFade() {
  173.       for(this.field_2 = 0; this.field_2 < this.num_msg; ++this.field_2) {
  174.          this.g_off.setColor(this.m_cur_bgcolor[this.field_2]);
  175.          this.g_off.fillRect(0, 0, this.field_1.width, this.field_1.height);
  176.          this.drawTextOverImage(this.g_off, this.field_1, this.m_msg[this.field_2], this.m_cur_font[this.field_2], this.m_cur_textcolor[this.field_2], this.m_margin, this.m_cur_valign[this.field_2], this.m_cur_halign[this.field_2], this.m_cur_b_color[this.field_2], this.m_cur_b_thick[this.field_2], false, this.m_cur_underline[this.field_2]);
  177.          this.figureFade(false, this.m_cur_textcolor[this.field_2], this.m_cur_bgcolor[this.field_2]);
  178.          if (!this.mouse_in) {
  179.             this.drawTextOverImage(this.g_off, this.field_1, this.m_msg[this.field_2], this.m_cur_font[this.field_2], this.m_cur_textcolor[this.field_2], this.m_margin, this.m_cur_valign[this.field_2], this.m_cur_halign[this.field_2], this.m_cur_b_color[this.field_2], this.m_cur_b_thick[this.field_2], false, this.m_cur_underline[this.field_2]);
  180.          }
  181.  
  182.          this.paintIt();
  183.          this.pauseIt();
  184.          this.figureFade(true, this.m_cur_textcolor[this.field_2], this.m_cur_bgcolor[this.field_2]);
  185.  
  186.          while(this.mouse_in) {
  187.             this.paused = true;
  188.  
  189.             try {
  190.                Thread.sleep(100L);
  191.             } catch (InterruptedException var4) {
  192.             }
  193.  
  194.             if (!this.mouse_in) {
  195.                try {
  196.                   Thread.sleep((long)this.m_mouse_delay);
  197.                } catch (InterruptedException var3) {
  198.                }
  199.  
  200.                this.paused = false;
  201.                this.figureFade(true, this.m_cur_textcolor[this.field_2], this.m_cur_bgcolor[this.field_2]);
  202.             }
  203.          }
  204.  
  205.          Color var2 = this.m_cur_bgcolor[this.field_2];
  206.          Color var1;
  207.          if (this.field_2 != this.num_msg - 1) {
  208.             var1 = this.m_cur_bgcolor[this.field_2 + 1];
  209.          } else {
  210.             var1 = this.m_cur_bgcolor[0];
  211.          }
  212.  
  213.          if (!var1.equals(var2) && this.m_fade_bg) {
  214.             this.figureFadeBG(var2, var1);
  215.          }
  216.       }
  217.  
  218.    }
  219.  
  220.    private void figureFade(boolean var1, Color var2, Color var3) {
  221.       int var4 = var2.getRed();
  222.       int var5 = var2.getGreen();
  223.       int var6 = var2.getBlue();
  224.       int var7 = var3.getRed();
  225.       int var8 = var3.getGreen();
  226.       int var9 = var3.getBlue();
  227.       int var10 = this.m_fadein_frames;
  228.       if (var1) {
  229.          var10 = this.m_fadeout_frames;
  230.       }
  231.  
  232.       float var11 = (float)(var4 - var7) / (float)var10;
  233.       float var12 = (float)(var5 - var8) / (float)var10;
  234.       float var13 = (float)(var6 - var9) / (float)var10;
  235.       if (var1) {
  236.          for(int var23 = var10; var23 > 0; --var23) {
  237.             if (this.mouse_in) {
  238.                this.method_0();
  239.                this.paintIt();
  240.                return;
  241.             }
  242.  
  243.             var4 = var7 + (int)((float)var23 * var11);
  244.             var5 = var8 + (int)((float)var23 * var12);
  245.             var6 = var9 + (int)((float)var23 * var13);
  246.             this.drawTextOverImage(this.g_off, this.field_1, this.m_msg[this.field_2], this.m_cur_font[this.field_2], new Color(var4, var5, var6), this.m_margin, this.m_cur_valign[this.field_2], this.m_cur_halign[this.field_2], this.m_cur_b_color[this.field_2], this.m_cur_b_thick[this.field_2], true, this.m_cur_underline[this.field_2]);
  247.             this.paintIt();
  248.  
  249.             try {
  250.                Thread.sleep((long)this.m_fadeout_delay);
  251.             } catch (InterruptedException var15) {
  252.             }
  253.          }
  254.  
  255.       } else {
  256.          for(int var14 = 0; var14 < var10; ++var14) {
  257.             if (this.mouse_in) {
  258.                this.method_0();
  259.                this.paintIt();
  260.                return;
  261.             }
  262.  
  263.             var4 = var7 + (int)((float)var14 * var11);
  264.             var5 = var8 + (int)((float)var14 * var12);
  265.             var6 = var9 + (int)((float)var14 * var13);
  266.             this.drawTextOverImage(this.g_off, this.field_1, this.m_msg[this.field_2], this.m_cur_font[this.field_2], new Color(var4, var5, var6), this.m_margin, this.m_cur_valign[this.field_2], this.m_cur_halign[this.field_2], this.m_cur_b_color[this.field_2], this.m_cur_b_thick[this.field_2], true, this.m_cur_underline[this.field_2]);
  267.             this.paintIt();
  268.  
  269.             try {
  270.                Thread.sleep((long)this.m_fadein_delay);
  271.             } catch (InterruptedException var16) {
  272.             }
  273.          }
  274.  
  275.       }
  276.    }
  277.  
  278.    public boolean mouseUp(Event var1, int var2, int var3) {
  279.       if (this.mouse_in && !this.m_cur_desturl[this.field_2].equals("-1")) {
  280.          try {
  281.             this.goURL = new URL(((OCAviewerExtend)this).getDocumentBase(), this.m_cur_desturl[this.field_2]);
  282.          } catch (MalformedURLException var4) {
  283.          }
  284.  
  285.          ((Applet)this).getAppletContext().showDocument(this.goURL, this.m_cur_loadwhere[this.field_2]);
  286.       }
  287.  
  288.       return true;
  289.    }
  290.  
  291.    public FadeText() {
  292.       this.m_bgcolor = Color.white;
  293.       this.m_textcolor = Color.black;
  294.       this.m_loadwhere = "_self";
  295.       this.m_margin = 5;
  296.       this.m_b_thick = 0;
  297.       this.m_b_color = Color.black;
  298.       this.m_fadein_frames = 50;
  299.       this.m_fadeout_frames = 50;
  300.       this.m_fadein_delay = 10;
  301.       this.m_fadeout_delay = 10;
  302.       this.m_font = new Font("Hevletica", 0, 12);
  303.       this.m_valign = 1;
  304.       this.m_halign = 1;
  305.       this.m_fade_bg = true;
  306.       this.m_underline = false;
  307.       this.m_hltext_color = Color.blue;
  308.       this.m_hlborder_color = Color.red;
  309.       this.m_hllinksonly = true;
  310.       this.m_fadebgframes = 50;
  311.       this.m_fadebgdelay = 10;
  312.       this.m_onsbtext = "OpenCube - Fading Messages";
  313.       this.m_offsbtext = "Java by OpenCube";
  314.    }
  315.  
  316.    public synchronized void paintIt() {
  317.       try {
  318.          Graphics var1 = ((Component)this).getGraphics();
  319.          if (!this.tag) {
  320.             var1.setColor(Color.black);
  321.             var1.drawString(this.m_onsbtext, 5, 30);
  322.          } else {
  323.             var1.drawImage(this.off, 0, 0, this);
  324.          }
  325.       } catch (Exception var2) {
  326.       }
  327.    }
  328.  
  329.    private void UndoHL() {
  330.       this.drawTextOverImage(this.g_off, this.field_1, this.m_msg[this.field_2], this.m_cur_font[this.field_2], this.m_cur_textcolor[this.field_2], this.m_margin, this.m_cur_valign[this.field_2], this.m_cur_halign[this.field_2], this.m_cur_b_color[this.field_2], this.m_cur_b_thick[this.field_2], false, this.m_cur_underline[this.field_2]);
  331.    }
  332.  
  333.    public void start() {
  334.       if (this.m_SlidingM == null) {
  335.          this.m_SlidingM = new Thread(this);
  336.          this.m_SlidingM.start();
  337.       }
  338.  
  339.    }
  340.  
  341.    private void pauseIt() {
  342.       this.paused = true;
  343.  
  344.       try {
  345.          Thread.sleep((long)this.m_cur_delay[this.field_2]);
  346.       } catch (InterruptedException var3) {
  347.       }
  348.  
  349.       while(this.mouse_in) {
  350.          try {
  351.             Thread.sleep(100L);
  352.          } catch (InterruptedException var2) {
  353.          }
  354.  
  355.          if (!this.mouse_in) {
  356.             try {
  357.                Thread.sleep((long)this.m_mouse_delay);
  358.             } catch (InterruptedException var1) {
  359.             }
  360.          }
  361.       }
  362.  
  363.       this.paused = false;
  364.    }
  365.  
  366.    public void run() {
  367.       while(true) {
  368.          if (this.tag) {
  369.             if (this.first_run) {
  370.                this.off = ((Component)this).createImage(this.field_1.width, this.field_1.height);
  371.                this.g_off = this.off.getGraphics();
  372.                this.first_run = false;
  373.             }
  374.  
  375.             this.DrawFade();
  376.          } else {
  377.             this.paintIt();
  378.             this.stop();
  379.          }
  380.  
  381.          try {
  382.             Thread.sleep(100L);
  383.          } catch (InterruptedException var1) {
  384.          }
  385.       }
  386.    }
  387.  
  388.    public void init() {
  389.       String var1 = "Fading Messages, Copyright (c) 1999, OpenCube Inc.";
  390.       this.field_1 = ((Component)this).size();
  391.       int var3 = 0;
  392.       String var2 = ((OCAviewerExtend)this).getParameter("Notice");
  393.       if (var2 == null) {
  394.          this.m_onsbtext = "Missing 'Notice' Tag";
  395.       } else {
  396.          String var4 = compkey.getKey(var2, ((OCAviewerExtend)this).getDocumentBase());
  397.          if (!var4.equals(var1)) {
  398.             if (var4.equals("-1")) {
  399.                this.m_onsbtext = "Incorrect Base URL Registration";
  400.             } else {
  401.                this.m_onsbtext = "Incorrect Copyright Notice in 'Notice' tag";
  402.             }
  403.          } else {
  404.             this.tag = true;
  405.             var2 = ((OCAviewerExtend)this).getParameter("onsbtext");
  406.             if (var2 != null) {
  407.                this.m_onsbtext = var2;
  408.             }
  409.  
  410.             var2 = ((OCAviewerExtend)this).getParameter("offsbtext");
  411.             if (var2 != null) {
  412.                this.m_offsbtext = var2;
  413.             }
  414.  
  415.             var2 = ((OCAviewerExtend)this).getParameter("loadwhere");
  416.             if (var2 != null) {
  417.                this.m_loadwhere = var2;
  418.             }
  419.  
  420.             var2 = ((OCAviewerExtend)this).getParameter("font");
  421.             if (var2 != null) {
  422.                this.m_font = ocfontc.getFontSD(var2, ",");
  423.             }
  424.  
  425.             var2 = ((OCAviewerExtend)this).getParameter("delay");
  426.             if (var2 != null) {
  427.                this.m_delay = Integer.parseInt(var2);
  428.             }
  429.  
  430.             var2 = ((OCAviewerExtend)this).getParameter("mouseoffdelay");
  431.             if (var2 != null) {
  432.                this.m_mouse_delay = Integer.parseInt(var2);
  433.             }
  434.  
  435.             var2 = ((OCAviewerExtend)this).getParameter("fadeindelay");
  436.             if (var2 != null) {
  437.                this.m_fadein_delay = Integer.parseInt(var2);
  438.             }
  439.  
  440.             var2 = ((OCAviewerExtend)this).getParameter("fadeoutdelay");
  441.             if (var2 != null) {
  442.                this.m_fadeout_delay = Integer.parseInt(var2);
  443.             }
  444.  
  445.             var2 = ((OCAviewerExtend)this).getParameter("fadebg");
  446.             if (var2 != null) {
  447.                this.m_fade_bg = Boolean.valueOf(var2);
  448.             }
  449.  
  450.             var2 = ((OCAviewerExtend)this).getParameter("underlinetext");
  451.             if (var2 != null) {
  452.                this.m_underline = Boolean.valueOf(var2);
  453.             }
  454.  
  455.             var2 = ((OCAviewerExtend)this).getParameter("hllinksonly");
  456.             if (var2 != null) {
  457.                this.m_hllinksonly = Boolean.valueOf(var2);
  458.             }
  459.  
  460.             var2 = ((OCAviewerExtend)this).getParameter("fadebgdelay");
  461.             if (var2 != null) {
  462.                this.m_fadebgdelay = Integer.parseInt(var2);
  463.             }
  464.  
  465.             var2 = ((OCAviewerExtend)this).getParameter("fadbgframes");
  466.             if (var2 != null) {
  467.                this.m_fadebgframes = Integer.parseInt(var2);
  468.             }
  469.  
  470.             var2 = ((OCAviewerExtend)this).getParameter("fadeinframes");
  471.             if (var2 != null) {
  472.                this.m_fadein_frames = Integer.parseInt(var2);
  473.             }
  474.  
  475.             var2 = ((OCAviewerExtend)this).getParameter("fadeoutframes");
  476.             if (var2 != null) {
  477.                this.m_fadeout_frames = Integer.parseInt(var2);
  478.             }
  479.  
  480.             var2 = ((OCAviewerExtend)this).getParameter("lrmargin");
  481.             if (var2 != null) {
  482.                this.m_margin = Integer.parseInt(var2);
  483.             }
  484.  
  485.             var2 = ((OCAviewerExtend)this).getParameter("borderthickness");
  486.             if (var2 != null) {
  487.                this.m_b_thick = Integer.parseInt(var2);
  488.             }
  489.  
  490.             var2 = ((OCAviewerExtend)this).getParameter("font");
  491.             if (var2 != null) {
  492.                this.m_messagefont = var2;
  493.             }
  494.  
  495.             var2 = ((OCAviewerExtend)this).getParameter("hltextcolor");
  496.             if (var2 != null) {
  497.                this.m_hltext_color = occcolor.ConvertColor(var2);
  498.             }
  499.  
  500.             var2 = ((OCAviewerExtend)this).getParameter("hlbordercolor");
  501.             if (var2 != null) {
  502.                this.m_hlborder_color = occcolor.ConvertColor(var2);
  503.             }
  504.  
  505.             var2 = ((OCAviewerExtend)this).getParameter("textcolor");
  506.             if (var2 != null) {
  507.                this.m_textcolor = occcolor.ConvertColor(var2);
  508.             }
  509.  
  510.             var2 = ((OCAviewerExtend)this).getParameter("bgcolor");
  511.             if (var2 != null) {
  512.                this.m_bgcolor = occcolor.ConvertColor(var2);
  513.                ((Component)this).setBackground(this.m_bgcolor);
  514.             } else {
  515.                this.m_bgcolor = Color.white;
  516.                ((Component)this).setBackground(this.m_bgcolor);
  517.             }
  518.  
  519.             var2 = ((OCAviewerExtend)this).getParameter("bordercolor");
  520.             if (var2 != null) {
  521.                this.m_b_color = occcolor.ConvertColor(var2);
  522.             }
  523.  
  524.             var2 = ((OCAviewerExtend)this).getParameter("valign");
  525.             if (var2 != null) {
  526.                this.m_valign = getAlignValue(var2);
  527.             }
  528.  
  529.             var2 = ((OCAviewerExtend)this).getParameter("halign");
  530.             if (var2 != null) {
  531.                this.m_halign = getAlignValue(var2);
  532.             }
  533.  
  534.             while(((OCAviewerExtend)this).getParameter("desc" + var3) != null) {
  535.                ++var3;
  536.                ++this.num_msg;
  537.             }
  538.  
  539.             if (this.num_msg < 1) {
  540.                this.num_msg = 1;
  541.                this.bad_descrips = true;
  542.             }
  543.  
  544.             this.m_msg = new String[this.num_msg];
  545.             this.m_cur_underline = new boolean[this.num_msg];
  546.             this.m_cur_font = new Font[this.num_msg];
  547.             this.m_cur_textcolor = new Color[this.num_msg];
  548.             this.m_cur_bgcolor = new Color[this.num_msg];
  549.             this.m_cur_delay = new int[this.num_msg];
  550.             this.m_cur_desturl = new String[this.num_msg];
  551.             this.m_cur_loadwhere = new String[this.num_msg];
  552.             this.m_cur_b_color = new Color[this.num_msg];
  553.             this.m_cur_b_thick = new int[this.num_msg];
  554.             this.m_cur_valign = new int[this.num_msg];
  555.             this.m_cur_halign = new int[this.num_msg];
  556.  
  557.             for(int var42 = 0; var42 < this.num_msg; ++var42) {
  558.                var2 = ((OCAviewerExtend)this).getParameter("desc" + var42);
  559.                if (var2 != null) {
  560.                   this.m_msg[var42] = new String(var2);
  561.                } else {
  562.                   this.m_msg[var42] = new String(" ");
  563.                }
  564.  
  565.                var2 = ((OCAviewerExtend)this).getParameter("underlinetext" + var42);
  566.                if (var2 != null) {
  567.                   this.m_cur_underline[var42] = Boolean.valueOf(var2);
  568.                } else {
  569.                   this.m_cur_underline[var42] = this.m_underline;
  570.                }
  571.  
  572.                var2 = ((OCAviewerExtend)this).getParameter("font" + var42);
  573.                if (var2 != null) {
  574.                   this.m_cur_font[var42] = ocfontc.getFontSD(var2, ",");
  575.                } else {
  576.                   this.m_cur_font[var42] = this.m_font;
  577.                }
  578.  
  579.                var2 = ((OCAviewerExtend)this).getParameter("textcolor" + var42);
  580.                if (var2 != null) {
  581.                   this.m_cur_textcolor[var42] = occcolor.ConvertColor(var2);
  582.                } else {
  583.                   this.m_cur_textcolor[var42] = this.m_textcolor;
  584.                }
  585.  
  586.                var2 = ((OCAviewerExtend)this).getParameter("bgcolor" + var42);
  587.                if (var2 != null) {
  588.                   this.m_cur_bgcolor[var42] = occcolor.ConvertColor(var2);
  589.                } else {
  590.                   this.m_cur_bgcolor[var42] = this.m_bgcolor;
  591.                }
  592.  
  593.                var2 = ((OCAviewerExtend)this).getParameter("delay" + var42);
  594.                if (var2 != null) {
  595.                   this.m_cur_delay[var42] = Integer.parseInt(var2);
  596.                } else {
  597.                   this.m_cur_delay[var42] = this.m_delay;
  598.                }
  599.  
  600.                var2 = ((OCAviewerExtend)this).getParameter("desturl" + var42);
  601.                if (var2 != null) {
  602.                   this.m_cur_desturl[var42] = var2;
  603.                } else {
  604.                   this.m_cur_desturl[var42] = "-1";
  605.                }
  606.  
  607.                var2 = ((OCAviewerExtend)this).getParameter("loadwhere" + var42);
  608.                if (var2 != null) {
  609.                   this.m_cur_loadwhere[var42] = var2;
  610.                } else {
  611.                   this.m_cur_loadwhere[var42] = this.m_loadwhere;
  612.                }
  613.  
  614.                var2 = ((OCAviewerExtend)this).getParameter("valign" + var42);
  615.                if (var2 != null) {
  616.                   this.m_cur_valign[var42] = getAlignValue(var2);
  617.                } else {
  618.                   this.m_cur_valign[var42] = this.m_valign;
  619.                }
  620.  
  621.                var2 = ((OCAviewerExtend)this).getParameter("halign" + var42);
  622.                if (var2 != null) {
  623.                   this.m_cur_halign[var42] = getAlignValue(var2);
  624.                } else {
  625.                   this.m_cur_halign[var42] = this.m_valign;
  626.                }
  627.  
  628.                var2 = ((OCAviewerExtend)this).getParameter("bordercolor" + var42);
  629.                if (var2 != null) {
  630.                   this.m_cur_b_color[var42] = occcolor.ConvertColor(var2);
  631.                } else {
  632.                   this.m_cur_b_color[var42] = this.m_b_color;
  633.                }
  634.  
  635.                var2 = ((OCAviewerExtend)this).getParameter("borderthickness" + var42);
  636.                if (var2 != null) {
  637.                   this.m_cur_b_thick[var42] = Integer.parseInt(var2);
  638.                } else {
  639.                   this.m_cur_b_thick[var42] = this.m_b_thick;
  640.                }
  641.             }
  642.  
  643.             if (this.bad_descrips) {
  644.                this.m_msg[0] = "Must include 'desc0' tag at a minimum in order for this applet to function.";
  645.                this.m_cur_delay[0] = 30000;
  646.             }
  647.  
  648.             ((Component)this).setFont(this.m_font);
  649.             this.field_0 = ((Component)this).getFontMetrics(this.m_font);
  650.          }
  651.       }
  652.    }
  653.  
  654.    // $FF: renamed from: HL () void
  655.    private void method_0() {
  656.       Color var1 = this.m_cur_textcolor[this.field_2];
  657.       if (!this.m_hllinksonly) {
  658.          var1 = this.m_hltext_color;
  659.       } else if (!this.m_cur_desturl[this.field_2].equals("-1")) {
  660.          var1 = this.m_hltext_color;
  661.       }
  662.  
  663.       this.drawTextOverImage(this.g_off, this.field_1, this.m_msg[this.field_2], this.m_cur_font[this.field_2], var1, this.m_margin, this.m_cur_valign[this.field_2], this.m_cur_halign[this.field_2], this.m_hlborder_color, this.m_cur_b_thick[this.field_2], false, this.m_cur_underline[this.field_2]);
  664.    }
  665.  
  666.    private void figureFadeBG(Color var1, Color var2) {
  667.       int var3 = var1.getRed();
  668.       int var4 = var1.getGreen();
  669.       int var5 = var1.getBlue();
  670.       int var6 = var2.getRed();
  671.       int var7 = var2.getGreen();
  672.       int var8 = var2.getBlue();
  673.       float var9 = (float)(var3 - var6) / (float)this.m_fadebgframes;
  674.       float var10 = (float)(var4 - var7) / (float)this.m_fadebgframes;
  675.       float var11 = (float)(var5 - var8) / (float)this.m_fadebgframes;
  676.  
  677.       for(int var12 = this.m_fadebgframes; var12 > 0; --var12) {
  678.          var3 = var6 + (int)((float)var12 * var9);
  679.          var4 = var7 + (int)((float)var12 * var10);
  680.          var5 = var8 + (int)((float)var12 * var11);
  681.          this.g_off.setColor(new Color(var3, var4, var5));
  682.          int var13 = this.m_cur_b_thick[this.field_2];
  683.          this.g_off.fillRect(var13, var13, this.field_1.width - var13 * 2, this.field_1.height - var13 * 2);
  684.          this.paintIt();
  685.  
  686.          try {
  687.             Thread.sleep((long)this.m_fadebgdelay);
  688.          } catch (InterruptedException var14) {
  689.          }
  690.       }
  691.  
  692.    }
  693. }
  694.