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