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

  1. import java.awt.Color;
  2. import java.awt.Component;
  3. import java.awt.Event;
  4. import java.awt.Font;
  5. import java.awt.FontMetrics;
  6. import java.awt.Graphics;
  7. import java.awt.Image;
  8.  
  9. public class OCdgTextmlh extends OCdg {
  10.    private boolean first_crun = true;
  11.    private int m_yoffset = 5;
  12.    private int m_xoffset = 5;
  13.    private Font m_font;
  14.    private int m_def_align = 0;
  15.    private Color m_def_textcolor;
  16.    private Color m_bgcolor;
  17.    private Color m_hlcolor;
  18.    private int[] m_size_pause;
  19.    private Font[] m_cur_font;
  20.    private boolean[] m_size_extra;
  21.    private Color[] m_textcolor;
  22.    private String[] m_desc;
  23.    private int[] m_align;
  24.    private int max_d;
  25.    // $FF: renamed from: bo int
  26.    private int field_0;
  27.    private int num_descrips;
  28.    private int i_h;
  29.    // $FF: renamed from: fm java.awt.FontMetrics
  30.    private FontMetrics field_1;
  31.    private int num_links;
  32.    private int[] link_cords;
  33.    private String[] link_urls;
  34.    private int[] line_coords;
  35.    private int[] re_draw;
  36.    private int hLine;
  37.    private Color indArrowColor;
  38.    private Image indArrow;
  39.    private int aDist;
  40.    private int curPoint;
  41.  
  42.    public boolean mouseExit(Event var1, int var2, int var3) {
  43.       if (this.hLine != -1) {
  44.          this.method_0(this.hLine, this.m_textcolor[this.hLine]);
  45.          this.hLine = -1;
  46.       }
  47.  
  48.       return true;
  49.    }
  50.  
  51.    public void DrawApplet() {
  52.       this.drawScroll();
  53.       if (this.first_crun) {
  54.          this.drawArrow();
  55.          this.setPointer(ACutila.iface.appinfo.cur_spec_index);
  56.          this.showPointer();
  57.          this.first_crun = false;
  58.       }
  59.  
  60.    }
  61.  
  62.    public OCdgTextmlh() {
  63.       this.m_def_textcolor = Color.black;
  64.       this.m_bgcolor = Color.white;
  65.       this.m_hlcolor = Color.red;
  66.       this.hLine = -1;
  67.       this.indArrowColor = new Color(204, 0, 0);
  68.       this.aDist = 8;
  69.       this.curPoint = 0;
  70.    }
  71.  
  72.    public void initDefault() {
  73.       String var1 = ((OCdg)this).getParameterDefault("font");
  74.       if (var1 != null) {
  75.          this.m_font = ocfontc.getFontSD(var1, ",");
  76.       } else {
  77.          this.m_font = new Font("Helvetica", 0, 12);
  78.       }
  79.  
  80.       var1 = ((OCdg)this).getParameterDefault("textcolor");
  81.       if (var1 != null) {
  82.          this.m_def_textcolor = occcolor.ConvertColor(var1);
  83.       }
  84.  
  85.       var1 = ((OCdg)this).getParameterDefault("bgcolor");
  86.       if (var1 != null) {
  87.          this.m_bgcolor = occcolor.ConvertColor(var1);
  88.       }
  89.  
  90.       var1 = ((OCdg)this).getParameterDefault("hlcolor");
  91.       if (var1 != null) {
  92.          this.m_hlcolor = occcolor.ConvertColor(var1);
  93.       }
  94.  
  95.       var1 = ((OCdg)this).getParameterDefault("yoffset");
  96.       if (var1 != null) {
  97.          this.m_yoffset = Integer.parseInt(var1);
  98.       }
  99.  
  100.       var1 = ((OCdg)this).getParameterDefault("valign");
  101.       if (var1 != null) {
  102.          this.m_def_align = Integer.parseInt(var1);
  103.       }
  104.  
  105.       var1 = ((OCdg)this).getParameterDefault("pausemargin");
  106.       if (var1 != null) {
  107.          this.m_xoffset = Integer.parseInt(var1);
  108.       }
  109.  
  110.    }
  111.  
  112.    private void drawArrow() {
  113.       byte var1 = 7;
  114.       byte var2 = 5;
  115.       this.indArrow = ((Component)this).createImage(var1, var2);
  116.       Graphics var3 = this.indArrow.getGraphics();
  117.       var3.setColor(new Color(153, 153, 153));
  118.       var3.fillRect(0, 0, var1, var2);
  119.       var3.setColor(this.indArrowColor);
  120.       int var4 = 0;
  121.       int var5 = 0;
  122.       int var6 = 6;
  123.  
  124.       do {
  125.          var3.drawLine(var4, var5, var4 + var6, var5);
  126.          ++var5;
  127.          ++var4;
  128.          var6 -= 2;
  129.       } while(var6 >= 0);
  130.  
  131.    }
  132.  
  133.    public void initSpecifics() {
  134.       boolean var2 = false;
  135.       this.num_descrips = super.spe_pv.size();
  136.       this.m_cur_font = new Font[this.num_descrips];
  137.       this.m_textcolor = new Color[this.num_descrips];
  138.       this.m_desc = new String[this.num_descrips];
  139.       this.m_align = new int[this.num_descrips];
  140.       this.m_size_pause = new int[this.num_descrips];
  141.       this.m_size_extra = new boolean[this.num_descrips];
  142.       this.line_coords = new int[this.num_descrips];
  143.       this.re_draw = new int[this.num_descrips];
  144.  
  145.       for(int var7 = 0; var7 < this.num_descrips; ++var7) {
  146.          String var1 = ((OCdg)this).getParameterSpecific("desc", var7);
  147.          if (var1 != null) {
  148.             this.m_desc[var7] = var1;
  149.          } else {
  150.             this.m_desc[var7] = " ";
  151.          }
  152.  
  153.          var1 = ((OCdg)this).getParameterSpecific("font", var7);
  154.          if (var1 != null) {
  155.             this.m_cur_font[var7] = ocfontc.getFontSD(var1, ",");
  156.          } else {
  157.             this.m_cur_font[var7] = this.m_font;
  158.          }
  159.  
  160.          var1 = ((OCdg)this).getParameterSpecific("align", var7);
  161.          if (var1 != null) {
  162.             this.m_align[var7] = Integer.parseInt(var1);
  163.          } else {
  164.             this.m_align[var7] = this.m_def_align;
  165.          }
  166.  
  167.          var1 = ((OCdg)this).getParameterSpecific("textcolor", var7);
  168.          if (var1 != null) {
  169.             this.m_textcolor[var7] = occcolor.ConvertColor(var1);
  170.          } else {
  171.             this.m_textcolor[var7] = this.m_def_textcolor;
  172.          }
  173.  
  174.          var1 = ((OCdg)this).getParameterSpecific("sizepause", var7);
  175.          if (var1 != null) {
  176.             this.m_size_pause[var7] = Integer.parseInt(var1);
  177.          } else {
  178.             this.m_size_pause[var7] = 0;
  179.          }
  180.       }
  181.  
  182.       this.link_cords = new int[this.num_descrips * 3];
  183.       this.link_urls = new String[this.num_descrips];
  184.    }
  185.  
  186.    public void setPointer(int var1) {
  187.       this.curPoint = var1;
  188.       if (!super.first_run) {
  189.          this.showPointer();
  190.          ((OCdg)this).drawAppOff();
  191.          ((OCdg)this).paintIt();
  192.       }
  193.  
  194.    }
  195.  
  196.    private void drawScroll() {
  197.       int var1 = 0;
  198.       int var2 = 0;
  199.       int var3 = 0;
  200.       int var4 = 0;
  201.       boolean var5 = false;
  202.       Image var6 = null;
  203.       Graphics var7 = null;
  204.       int var8 = 0;
  205.  
  206.       do {
  207.          var1 = 0;
  208.          var4 = 0;
  209.  
  210.          for(int var9 = 0; var9 < this.num_descrips; ++var9) {
  211.             if (var8 != 0) {
  212.                var7.setFont(this.m_cur_font[var9]);
  213.                this.field_1 = var7.getFontMetrics(this.m_cur_font[var9]);
  214.                var2 = var1;
  215.                if (this.m_size_pause[var9] == 1) {
  216.                   var4 = var1;
  217.                   var5 = true;
  218.                } else if (!var5) {
  219.                   var4 = var1;
  220.                }
  221.  
  222.                this.line_coords[var9] = var1 - this.m_xoffset;
  223.                var1 += this.field_1.stringWidth(this.m_desc[var9]);
  224.                var7.setColor(this.m_textcolor[var9]);
  225.                var7.drawString(this.m_desc[var9], var2 + this.m_xoffset, super.appHeight - this.max_d - this.m_yoffset);
  226.                this.link_cords[var3 * 3] = var2 + this.m_xoffset;
  227.                this.link_cords[var3 * 3 + 1] = var1 + this.m_xoffset;
  228.                this.link_cords[var3 * 3 + 2] = var9;
  229.                ++var3;
  230.                if (var1 - var4 < super.appWidth && this.m_size_pause[var9] == 2) {
  231.                   var1 = var1 + (super.appWidth - (var1 - var4)) + 1;
  232.                   var5 = false;
  233.                }
  234.             } else {
  235.                this.field_1 = ((Component)this).getFontMetrics(this.m_cur_font[var9]);
  236.                if (this.m_size_pause[var9] == 1) {
  237.                   var4 = var1;
  238.                   var5 = true;
  239.                } else if (!var5) {
  240.                   var4 = var1;
  241.                }
  242.  
  243.                var1 += this.field_1.stringWidth(this.m_desc[var9]);
  244.                if (this.field_1.getDescent() > this.max_d) {
  245.                   this.max_d = this.field_1.getDescent();
  246.                }
  247.  
  248.                if (var9 != this.m_desc.length - 1) {
  249.                   if (this.m_size_pause[var9] == 2 && var1 - var4 < super.appWidth) {
  250.                      var1 = var1 + (super.appWidth - (var1 - var4)) + 1;
  251.                      var5 = false;
  252.                   }
  253.                } else {
  254.                   this.i_h = var1 + 5;
  255.                   double var10 = (double)this.i_h;
  256.                   double var12 = (double)super.appWidth;
  257.                   int var14 = 0;
  258.                   if (var10 / var12 - (double)((int)(var10 / var12)) == (double)0.0F) {
  259.                      var14 = (int)(var10 / var12);
  260.                   } else {
  261.                      var14 = (int)(var10 / var12) + 1;
  262.                   }
  263.  
  264.                   this.i_h = var14 * super.appWidth;
  265.                   if (var14 > 1) {
  266.                      this.field_0 = 7;
  267.                   } else {
  268.                      this.field_0 = 0;
  269.                   }
  270.  
  271.                   int var15 = this.i_h;
  272.                   int var16 = super.appHeight + this.field_0;
  273.                   var6 = ((Component)this).createImage(this.i_h, super.appHeight);
  274.                   var7 = var6.getGraphics();
  275.                   super.off = ((Component)this).createImage(var15, var16 + this.aDist);
  276.                   super.g_off = super.off.getGraphics();
  277.                   super.g_off.setColor(new Color(153, 153, 153));
  278.                   super.g_off.fillRect(0, 0, var15, var16 + this.aDist);
  279.                   var7.setColor(this.m_bgcolor);
  280.                   var7.fillRect(0, 0, this.i_h, super.appHeight);
  281.                   if (var14 > 1) {
  282.                      Image var17 = ((Component)this).createImage(this.i_h, this.field_0);
  283.                      Graphics var18 = var17.getGraphics();
  284.                      var18.setColor(new Color(153, 153, 153));
  285.                      var18.fillRect(0, 0, this.i_h, this.field_0);
  286.                      var18.setColor(Color.black);
  287.  
  288.                      for(int var19 = 0; var19 <= var14 - 1; ++var19) {
  289.                         var18.drawLine(var19 * super.appWidth, 2, var19 * super.appWidth, 5);
  290.                      }
  291.  
  292.                      var18.drawLine(var14 * super.appWidth - 1, 2, var14 * super.appWidth - 1, 5);
  293.                      var18.drawLine(0, 2, this.i_h, 2);
  294.                      super.g_off.drawImage(var17, 0, this.aDist + super.appHeight, this);
  295.                   }
  296.                }
  297.             }
  298.          }
  299.  
  300.          ++var8;
  301.       } while(var8 < 2);
  302.  
  303.       super.g_off.drawImage(var6, 0, this.aDist, this);
  304.    }
  305.  
  306.    private synchronized void showPointer() {
  307.       if (this.curPoint >= 0) {
  308.          int var1 = this.link_cords[this.curPoint * 3];
  309.          int var2 = this.link_cords[this.curPoint * 3 + 1] - var1;
  310.          super.g_off.setColor(new Color(153, 153, 153));
  311.          super.g_off.fillRect(0, 0, super.actAppWidth, this.aDist);
  312.          super.g_off.drawImage(this.indArrow, var1, 0, this);
  313.          int var3 = 0;
  314.          if (super.offimgx + super.scroll_x + var1 >= super.d.width - 5) {
  315.             var3 = -var1;
  316.             if (var2 < super.d.width) {
  317.                var3 = var3 + (super.d.width - var2) - super.sEdge;
  318.             }
  319.  
  320.             ((OCdg)this).setHorizontalPagePosition(var3);
  321.          }
  322.  
  323.          if (super.offimgx + super.scroll_x + var1 < 0) {
  324.             ((OCdg)this).setHorizontalPagePosition(-var1 + super.sEdge);
  325.          }
  326.  
  327.       }
  328.    }
  329.  
  330.    public boolean mouseDown(Event var1, int var2, int var3) {
  331.       ((Component)this).requestFocus();
  332.       if (this.hLine > -1) {
  333.          super.postEvent(new Event(this, 9202, new Integer(this.hLine)));
  334.       }
  335.  
  336.       return true;
  337.    }
  338.  
  339.    // $FF: renamed from: HL (int, java.awt.Color) void
  340.    private void method_0(int var1, Color var2) {
  341.       super.g_off.setFont(this.m_cur_font[var1]);
  342.       this.field_1 = super.g_off.getFontMetrics(this.m_cur_font[var1]);
  343.       super.g_off.setColor(var2);
  344.       super.g_off.drawString(this.m_desc[var1], this.link_cords[var1 * 3], super.appHeight - this.max_d - this.m_yoffset + this.aDist);
  345.       ((OCdg)this).drawAppOff();
  346.       ((OCdg)this).paintIt();
  347.    }
  348.  
  349.    public boolean mouseMove(Event var1, int var2, int var3) {
  350.       int var4 = super.scroll_x + super.offimgx;
  351.       int var5 = super.scroll_y + super.offimgy + this.aDist;
  352.       if (var2 > var4 && var2 < var4 + super.actAppWidth && var3 > var5 && var3 < var5 + super.appHeight) {
  353.          for(int var6 = 0; var6 < this.num_descrips; ++var6) {
  354.             if (var2 > var4 + this.link_cords[var6 * 3] && var2 < var4 + this.link_cords[var6 * 3 + 1]) {
  355.                int var7 = this.link_cords[var6 * 3 + 2];
  356.                if (var7 != this.hLine) {
  357.                   if (this.hLine != -1) {
  358.                      this.method_0(this.hLine, this.m_textcolor[this.hLine]);
  359.                      this.hLine = -1;
  360.                   }
  361.  
  362.                   this.method_0(var7, this.m_hlcolor);
  363.                }
  364.  
  365.                this.hLine = var7;
  366.                return true;
  367.             }
  368.          }
  369.  
  370.          if (this.hLine != -1) {
  371.             this.method_0(this.hLine, this.m_textcolor[this.hLine]);
  372.             this.hLine = -1;
  373.          }
  374.       } else if (this.hLine != -1) {
  375.          this.method_0(this.hLine, this.m_textcolor[this.hLine]);
  376.          this.hLine = -1;
  377.       }
  378.  
  379.       return true;
  380.    }
  381. }
  382.