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

  1. import com.ms.awt.FontX;
  2. import java.awt.Color;
  3. import java.awt.Component;
  4. import java.awt.Event;
  5. import java.awt.Font;
  6. import java.awt.FontMetrics;
  7. import java.awt.Graphics;
  8. import java.awt.Image;
  9. import java.awt.Menu;
  10. import java.awt.MenuItem;
  11. import java.awt.PopupMenu;
  12.  
  13. class OCdgvtis extends OCdg {
  14.    private boolean first_crun = true;
  15.    private int num_i;
  16.    private Image[] icon;
  17.    private Image[] sicon;
  18.    private Image scroll_orig;
  19.    private Font m_font = new Font("Helvetica", 0, 11);
  20.    private Font m_hlfont = new Font("Helvetica", 0, 11);
  21.    private int m_def_halign = 0;
  22.    private Color m_def_textcolor;
  23.    private Color m_bgcolor;
  24.    private Color m_def_hlcolor;
  25.    private boolean m_def_size_extra;
  26.    private boolean m_indent_all;
  27.    private int m_messagepadding;
  28.    private int m_marginleft;
  29.    private int m_marginright;
  30.    private int m_messagegap;
  31.    private String m_textdecoration;
  32.    private String m_hltextdecoration;
  33.    private int m_size;
  34.    private String m_family;
  35.    private String m_style;
  36.    private String m_weight;
  37.    private int m_icon_base_off;
  38.    private int[] m_addheight;
  39.    private int[] m_delay;
  40.    private boolean[] m_size_extra;
  41.    private Font[] m_cur_font;
  42.    private Font[] m_cur_hlfont;
  43.    private Color[] m_textcolor;
  44.    private String[] m_desc;
  45.    private int[] m_halign;
  46.    int[] m_cur_autofit;
  47.    private String[] m_icon_file;
  48.    private String[] m_icon_switchfile;
  49.    private int[] m_icon_id;
  50.    private int[] link_cords;
  51.    int[] re_draw;
  52.    int num_links;
  53.    int num_descrips;
  54.    // $FF: renamed from: bo int
  55.    int field_0;
  56.    int i_h;
  57.    // $FF: renamed from: fm java.awt.FontMetrics
  58.    FontMetrics field_1;
  59.    private int hLine;
  60.    private Color indArrowColor;
  61.    private Image indArrow;
  62.    private int aDist;
  63.    private int curPoint;
  64.  
  65.    public void initIcon(String[] var1, String[] var2) {
  66.       this.m_icon_file = var1;
  67.       this.m_icon_switchfile = var2;
  68.       this.num_i = this.m_icon_file.length;
  69.       this.icon = new Image[this.num_i];
  70.       this.sicon = new Image[this.num_i];
  71.    }
  72.  
  73.    public boolean mouseExit(Event var1, int var2, int var3) {
  74.       if (this.hLine != -1) {
  75.          this.method_0(this.hLine, this.m_textcolor[this.hLine], false);
  76.          this.hLine = -1;
  77.       }
  78.  
  79.       return true;
  80.    }
  81.  
  82.    public void DrawApplet() {
  83.       this.drawScroll();
  84.       if (this.first_crun) {
  85.          this.drawArrow();
  86.          this.setPointer(ACutila.iface.appinfo.cur_spec_index);
  87.          this.showPointer();
  88.          this.first_crun = false;
  89.       }
  90.  
  91.    }
  92.  
  93.    OCdgvtis() {
  94.       this.m_def_textcolor = Color.black;
  95.       this.m_bgcolor = Color.white;
  96.       this.m_def_hlcolor = Color.blue;
  97.       this.m_def_size_extra = false;
  98.       this.m_marginleft = 0;
  99.       this.m_marginright = 0;
  100.       this.m_messagegap = 0;
  101.       this.m_textdecoration = "normal";
  102.       this.m_hltextdecoration = "normal";
  103.       this.m_size = 8;
  104.       this.m_family = "Helvetica";
  105.       this.m_style = "normal";
  106.       this.m_weight = "normal";
  107.       this.m_icon_base_off = 0;
  108.       this.hLine = -1;
  109.       this.indArrowColor = new Color(204, 0, 0);
  110.       this.aDist = 8;
  111.       this.curPoint = 0;
  112.    }
  113.  
  114.    public void initDefault() {
  115.       String var1 = ((OCdg)this).getParameterDefault("fontsize");
  116.       if (var1 != null) {
  117.          this.m_size = Integer.parseInt(var1);
  118.       }
  119.  
  120.       var1 = ((OCdg)this).getParameterDefault("fontfamily");
  121.       if (var1 != null) {
  122.          this.m_family = var1;
  123.       }
  124.  
  125.       var1 = ((OCdg)this).getParameterDefault("fontstyle");
  126.       if (var1 != null) {
  127.          this.m_style = var1;
  128.       }
  129.  
  130.       var1 = ((OCdg)this).getParameterDefault("fontweight");
  131.       if (var1 != null) {
  132.          this.m_weight = var1;
  133.       }
  134.  
  135.       int var2 = 0;
  136.       if (this.m_weight.toLowerCase().equals("bold")) {
  137.          var2 = 1;
  138.       }
  139.  
  140.       if (this.m_style.toLowerCase().equals("italic")) {
  141.          var2 += 2;
  142.       }
  143.  
  144.       var1 = ((OCdg)this).getParameterDefault("textdecoration");
  145.       if (var1 != null) {
  146.          this.m_textdecoration = var1;
  147.       }
  148.  
  149.       var1 = ((OCdg)this).getParameterDefault("hl_textdecoration");
  150.       if (var1 != null) {
  151.          this.m_hltextdecoration = var1;
  152.       }
  153.  
  154.       if (this.m_size > 3) {
  155.          this.m_size += 3;
  156.       }
  157.  
  158.       if (this.m_textdecoration.equalsIgnoreCase("underline")) {
  159.          this.m_font = new FontX(this.m_family, var2, this.m_size, 4);
  160.       } else {
  161.          this.m_font = new FontX(this.m_family, var2, this.m_size);
  162.       }
  163.  
  164.       if (this.m_hltextdecoration.equalsIgnoreCase("underline")) {
  165.          this.m_hlfont = new FontX(this.m_family, var2, this.m_size, 4);
  166.       } else {
  167.          this.m_hlfont = this.m_font;
  168.       }
  169.  
  170.       var1 = ((OCdg)this).getParameterDefault("backgroundcolor");
  171.       if (var1 != null) {
  172.          this.m_bgcolor = occcolor.ConvertColor(var1);
  173.       }
  174.  
  175.       var1 = ((OCdg)this).getParameterDefault("textcolor");
  176.       if (var1 != null) {
  177.          this.m_def_textcolor = occcolor.ConvertColor(var1);
  178.       }
  179.  
  180.       var1 = ((OCdg)this).getParameterDefault("hl_textcolor");
  181.       if (var1 != null) {
  182.          this.m_def_hlcolor = occcolor.ConvertColor(var1);
  183.       }
  184.  
  185.       var1 = ((OCdg)this).getParameterDefault("messagepadding");
  186.       if (var1 != null) {
  187.          this.m_messagepadding = Integer.parseInt(var1);
  188.       }
  189.  
  190.       var1 = ((OCdg)this).getParameterDefault("marginleft");
  191.       if (var1 != null) {
  192.          this.m_marginleft = Integer.parseInt(var1);
  193.       }
  194.  
  195.       var1 = ((OCdg)this).getParameterDefault("marginright");
  196.       if (var1 != null) {
  197.          this.m_marginright = Integer.parseInt(var1);
  198.       }
  199.  
  200.       var1 = ((OCdg)this).getParameterDefault("messagegap");
  201.       if (var1 != null) {
  202.          this.m_messagegap = Integer.parseInt(var1);
  203.       }
  204.  
  205.       var1 = ((OCdg)this).getParameterDefault("aligniconparas");
  206.       if (var1 != null) {
  207.          this.m_indent_all = Boolean.valueOf(var1);
  208.       }
  209.  
  210.       var1 = ((OCdg)this).getParameterDefault("iconvoff");
  211.       if (var1 != null) {
  212.          this.m_icon_base_off = Integer.parseInt(var1);
  213.       }
  214.  
  215.       var1 = ((OCdg)this).getParameterDefault("halign");
  216.       if (var1 != null) {
  217.          this.m_def_halign = ACutila.getAlignValue(var1);
  218.       }
  219.  
  220.    }
  221.  
  222.    private void drawArrow() {
  223.       byte var1 = 5;
  224.       byte var2 = 7;
  225.       this.indArrow = ((Component)this).createImage(var1, var2);
  226.       Graphics var3 = this.indArrow.getGraphics();
  227.       var3.setColor(ACutilWindow.daColor);
  228.       ACutil var5 = new ACutil();
  229.       Image var4;
  230.       if ((var4 = var5.getImage("acimg/gold_arrow.gif")) != null) {
  231.          var3.drawImage(var4, 0, 0, this);
  232.       }
  233.  
  234.    }
  235.  
  236.    public void setArrowBgColor(Color var1) {
  237.       this.drawScroll();
  238.       this.drawArrow();
  239.       this.showPointer();
  240.       ((OCdg)this).drawAppOff();
  241.       ((OCdg)this).paintIt();
  242.    }
  243.  
  244.    public void initSpecifics() {
  245.       boolean var2 = false;
  246.       this.num_descrips = super.spe_pv.size();
  247.       this.m_addheight = new int[this.num_descrips];
  248.       this.m_cur_font = new Font[this.num_descrips];
  249.       this.m_cur_hlfont = new Font[this.num_descrips];
  250.       this.m_delay = new int[this.num_descrips];
  251.       this.m_textcolor = new Color[this.num_descrips];
  252.       this.m_desc = new String[this.num_descrips];
  253.       this.m_halign = new int[this.num_descrips];
  254.       this.m_cur_autofit = new int[this.num_descrips];
  255.       this.m_size_extra = new boolean[this.num_descrips];
  256.       this.re_draw = new int[this.num_descrips];
  257.       this.m_icon_id = new int[this.num_descrips];
  258.  
  259.       for(int var20 = 0; var20 < this.num_descrips; ++var20) {
  260.          String var1 = ((OCdg)this).getParameterSpecific("desc", var20);
  261.          if (var1 != null) {
  262.             this.m_desc[var20] = var1;
  263.          } else {
  264.             this.m_desc[var20] = " ";
  265.          }
  266.  
  267.          var1 = ((OCdg)this).getParameterSpecific("iconid", var20);
  268.          if (var1 != null) {
  269.             this.m_icon_id[var20] = Integer.parseInt(var1);
  270.          } else {
  271.             this.m_icon_id[var20] = -1;
  272.          }
  273.  
  274.          int var3 = 10;
  275.          String var4 = "Arial";
  276.          String var5 = "normal";
  277.          String var6 = "normal";
  278.          String var7 = "normal";
  279.          String var8 = "normal";
  280.          var1 = ((OCdg)this).getParameterSpecific("fontsize", var20);
  281.          if (var1 != null) {
  282.             var3 = Integer.parseInt(var1);
  283.             if (var3 > 3) {
  284.                var3 += 3;
  285.             }
  286.          } else {
  287.             var3 = this.m_size;
  288.          }
  289.  
  290.          var1 = ((OCdg)this).getParameterSpecific("fontfamily", var20);
  291.          if (var1 != null) {
  292.             var4 = var1;
  293.          } else {
  294.             var4 = this.m_family;
  295.          }
  296.  
  297.          var1 = ((OCdg)this).getParameterSpecific("fontstyle", var20);
  298.          if (var1 != null) {
  299.             var5 = var1;
  300.          } else {
  301.             var5 = this.m_style;
  302.          }
  303.  
  304.          var1 = ((OCdg)this).getParameterSpecific("fontweight", var20);
  305.          if (var1 != null) {
  306.             var6 = var1;
  307.          } else {
  308.             var6 = this.m_weight;
  309.          }
  310.  
  311.          int var9 = 0;
  312.          if (var6.toLowerCase().equals("bold")) {
  313.             var9 = 1;
  314.          }
  315.  
  316.          if (var5.toLowerCase().equals("italic")) {
  317.             var9 += 2;
  318.          }
  319.  
  320.          var1 = ((OCdg)this).getParameterSpecific("textdecoration", var20);
  321.          if (var1 != null) {
  322.             var7 = var1;
  323.          } else {
  324.             var7 = this.m_textdecoration;
  325.          }
  326.  
  327.          var1 = ((OCdg)this).getParameterSpecific("hl_textdecoration", var20);
  328.          if (var1 == null) {
  329.             var8 = this.m_hltextdecoration;
  330.          }
  331.  
  332.          if (var7.equalsIgnoreCase("underline")) {
  333.             this.m_cur_font[var20] = new FontX(var4, var9, var3, 4);
  334.          } else {
  335.             this.m_cur_font[var20] = new FontX(var4, var9, var3);
  336.          }
  337.  
  338.          if (this.m_hltextdecoration.equalsIgnoreCase("underline")) {
  339.             this.m_cur_hlfont[var20] = new FontX(var4, var9, var3, 4);
  340.          } else {
  341.             this.m_cur_hlfont[var20] = this.m_cur_font[var20];
  342.          }
  343.  
  344.          var1 = ((OCdg)this).getParameterSpecific("textcolor", var20);
  345.          if (var1 != null) {
  346.             this.m_textcolor[var20] = occcolor.ConvertColor(var1);
  347.          } else {
  348.             this.m_textcolor[var20] = this.m_def_textcolor;
  349.          }
  350.  
  351.          var1 = ((OCdg)this).getParameterSpecific("autofit", var20);
  352.          if (var1 != null) {
  353.             this.m_cur_autofit[var20] = getAutoValue(var1);
  354.          } else {
  355.             this.m_cur_autofit[var20] = 0;
  356.          }
  357.  
  358.          var1 = ((OCdg)this).getParameterSpecific("addheight", var20);
  359.          if (var1 != null) {
  360.             this.m_addheight[var20] = Integer.parseInt(var1);
  361.          } else {
  362.             this.m_addheight[var20] = 0;
  363.          }
  364.       }
  365.  
  366.       this.link_cords = new int[this.num_descrips * 3];
  367.    }
  368.  
  369.    public void setPointer(int var1) {
  370.       this.curPoint = var1;
  371.       if (!super.first_run) {
  372.          this.showPointer();
  373.          ((OCdg)this).drawAppOff();
  374.          ((OCdg)this).paintIt();
  375.       }
  376.  
  377.    }
  378.  
  379.    private void drawScroll() {
  380.       Object var1 = null;
  381.       int var2 = 0;
  382.       int var3 = 0;
  383.       int var4 = 0;
  384.       int var5 = 0;
  385.       boolean var6 = false;
  386.       Image var7 = null;
  387.       Graphics var8 = null;
  388.       ACutil var9 = new ACutil();
  389.  
  390.       for(int var10 = 0; var10 < this.num_i; ++var10) {
  391.          this.icon[var10] = var9.getDGImage(this.m_icon_file[var10]);
  392.          this.sicon[var10] = var9.getDGImage(this.m_icon_switchfile[var10]);
  393.          if (this.sicon[var10] == null) {
  394.             this.sicon[var10] = this.icon[var10];
  395.          }
  396.       }
  397.  
  398.       int var30 = 0;
  399.  
  400.       do {
  401.          var2 = this.m_messagepadding - 2;
  402.          var5 = this.m_messagepadding - 2;
  403.  
  404.          for(int var11 = 0; var11 < this.num_descrips; ++var11) {
  405.             if (var30 == 0) {
  406.                int var32 = 0;
  407.                int var33 = 0;
  408.                this.field_1 = ((Component)this).getFontMetrics(this.m_cur_font[var11]);
  409.                var3 = var2;
  410.                if (this.m_cur_autofit[var11] == 1) {
  411.                   var5 = var2;
  412.                   var6 = true;
  413.                } else if (!var6) {
  414.                   var5 = var2;
  415.                }
  416.  
  417.                String[] var25;
  418.                if (this.m_icon_id[var11] != -1) {
  419.                   if (this.icon[this.m_icon_id[var11]] != null) {
  420.                      var32 = this.icon[this.m_icon_id[var11]].getWidth(this);
  421.                      var33 = this.icon[this.m_icon_id[var11]].getHeight(this);
  422.                   }
  423.  
  424.                   var25 = ocwordw.WrapText(this.m_desc[var11], super.appWidth - this.m_messagepadding * 2 - var32 - this.m_marginleft - this.m_marginright, this.field_1);
  425.                } else {
  426.                   var25 = ocwordw.WrapText(this.m_desc[var11], super.appWidth - this.m_messagepadding * 2 - this.m_marginleft - this.m_marginright, this.field_1);
  427.                }
  428.  
  429.                for(int var35 = 0; var35 < var25.length; ++var35) {
  430.                   var2 += this.field_1.getHeight();
  431.                }
  432.  
  433.                var2 = var2 + this.m_addheight[var11] + this.m_messagegap + 2;
  434.                if (var2 - var3 < var33) {
  435.                   var2 = var3 + var33;
  436.                }
  437.  
  438.                if (var11 != this.m_desc.length - 1) {
  439.                   if (var2 - var5 < super.appHeight && this.m_cur_autofit[var11] == 2) {
  440.                      if (this.m_size_extra[var11]) {
  441.                         var2 = var2 + (super.appHeight - (var2 - var5)) + 1 + (var2 - var5);
  442.                      } else {
  443.                         var2 = var2 + (super.appHeight - (var2 - var5)) + 1;
  444.                      }
  445.  
  446.                      var6 = false;
  447.                   }
  448.                } else {
  449.                   this.i_h = var2 + this.field_1.getDescent() + 5;
  450.                   double var36 = (double)this.i_h;
  451.                   double var16 = (double)super.appHeight;
  452.                   int var18 = 0;
  453.                   if (var36 / var16 - (double)((int)(var36 / var16)) == (double)0.0F) {
  454.                      var18 = (int)(var36 / var16);
  455.                   } else {
  456.                      var18 = (int)(var36 / var16) + 1;
  457.                   }
  458.  
  459.                   this.i_h = var18 * super.appHeight;
  460.                   if (var18 > 1) {
  461.                      this.field_0 = 7;
  462.                   } else {
  463.                      this.field_0 = 0;
  464.                   }
  465.  
  466.                   int var19 = super.appWidth + this.field_0;
  467.                   int var20 = this.i_h;
  468.                   var7 = ((Component)this).createImage(super.appWidth, this.i_h);
  469.                   var8 = var7.getGraphics();
  470.                   super.off = ((Component)this).createImage(var19 + this.aDist, var20);
  471.                   super.g_off = super.off.getGraphics();
  472.                   super.g_off.setColor(super.bgColor);
  473.                   super.g_off.fillRect(0, 0, var19, var20);
  474.                   var8.setColor(this.m_bgcolor);
  475.                   var8.fillRect(0, 0, super.appWidth, this.i_h);
  476.                   if (var18 > 1) {
  477.                      Image var21 = ((Component)this).createImage(this.field_0, this.i_h);
  478.                      Graphics var22 = var21.getGraphics();
  479.                      var22.setColor(ACutilWindow.daColor);
  480.                      var22.fillRect(0, 0, this.field_0, this.i_h);
  481.                      var22.setColor(Color.black);
  482.  
  483.                      for(int var23 = 0; var23 <= var18 - 1; ++var23) {
  484.                         var22.drawLine(2, var23 * super.appHeight, this.field_0 - 1, var23 * super.appHeight);
  485.                      }
  486.  
  487.                      var22.drawLine(2, var18 * super.appHeight - 1, this.field_0 - 1, var18 * super.appHeight - 1);
  488.                      var22.drawLine(2, 0, 2, this.i_h);
  489.                      super.g_off.drawImage(var21, super.appWidth + this.aDist, 0, this);
  490.                   }
  491.                }
  492.             } else {
  493.                var8.setFont(this.m_cur_font[var11]);
  494.                this.field_1 = var8.getFontMetrics(this.m_cur_font[var11]);
  495.                var3 = var2;
  496.                if (this.m_cur_autofit[var11] == 1) {
  497.                   var5 = var2;
  498.                   var6 = true;
  499.                } else if (!var6) {
  500.                   var5 = var2;
  501.                }
  502.  
  503.                this.re_draw[var11] = var2;
  504.                int var12 = 0;
  505.                int var13 = 0;
  506.                String[] var24;
  507.                if (this.m_icon_id[var11] != -1) {
  508.                   if (this.icon[this.m_icon_id[var11]] != null) {
  509.                      var12 = this.icon[this.m_icon_id[var11]].getWidth(this);
  510.                      var13 = this.icon[this.m_icon_id[var11]].getHeight(this);
  511.                   }
  512.  
  513.                   var24 = ocwordw.WrapText(this.m_desc[var11], super.appWidth - this.m_messagepadding * 2 - var12 - this.m_marginleft - this.m_marginright, this.field_1);
  514.                } else {
  515.                   var24 = ocwordw.WrapText(this.m_desc[var11], super.appWidth - this.m_messagepadding * 2 - this.m_marginleft - this.m_marginright, this.field_1);
  516.                }
  517.  
  518.                int var14 = 0;
  519.  
  520.                for(int var15 = 0; var15 < var24.length; ++var15) {
  521.                   var2 += this.field_1.getHeight();
  522.                   var8.setColor(this.m_textcolor[var11]);
  523.                   if (this.m_halign[var11] == 1) {
  524.                      if (var15 == 0 && this.m_icon_id[var11] != -1) {
  525.                         var14 = (super.appWidth - (this.field_1.stringWidth(var24[var15]) + var12 + 1)) / 2;
  526.                         if (this.icon[this.m_icon_id[var11]] != null) {
  527.                            if (var2 + this.m_icon_base_off - var13 < var3) {
  528.                               var8.drawImage(this.icon[this.m_icon_id[var11]], var14, var3 + this.m_icon_base_off, this);
  529.                            } else {
  530.                               var8.drawImage(this.icon[this.m_icon_id[var11]], var14, var2 + this.m_icon_base_off - var13, this);
  531.                            }
  532.                         }
  533.  
  534.                         var8.drawString(var24[var15], var14 + var12 + 1, var2);
  535.                      } else {
  536.                         var8.drawString(var24[var15], (super.appWidth - this.field_1.stringWidth(var24[var15])) / 2, var2);
  537.                      }
  538.                   } else if (this.m_halign[var11] == 2) {
  539.                      if ((var15 == 0 || this.m_indent_all) && this.m_icon_id[var11] != -1) {
  540.                         var14 = var12 + 1;
  541.                         if (var15 == 0 && this.icon[this.m_icon_id[var11]] != null) {
  542.                            if (var2 + this.m_icon_base_off - var13 < var3) {
  543.                               var8.drawImage(this.icon[this.m_icon_id[var11]], super.appWidth - var12 - this.m_messagepadding, var3 + this.m_icon_base_off, this);
  544.                            } else {
  545.                               var8.drawImage(this.icon[this.m_icon_id[var11]], super.appWidth - var12 - this.m_messagepadding, var2 + this.m_icon_base_off - var13, this);
  546.                            }
  547.                         }
  548.                      }
  549.  
  550.                      var8.drawString(var24[var15], super.appWidth - this.m_messagepadding - this.field_1.stringWidth(var24[var15]) - var14, var2);
  551.                   } else {
  552.                      if ((var15 == 0 || this.m_indent_all) && this.m_icon_id[var11] != -1) {
  553.                         if (var15 == 0 && this.icon[this.m_icon_id[var11]] != null) {
  554.                            if (var2 + this.m_icon_base_off - var13 < var3) {
  555.                               var8.drawImage(this.icon[this.m_icon_id[var11]], this.m_messagepadding + this.m_marginleft, var3 + this.m_icon_base_off, this);
  556.                            } else {
  557.                               var8.drawImage(this.icon[this.m_icon_id[var11]], this.m_messagepadding + this.m_marginleft, var2 + this.m_icon_base_off - var13, this);
  558.                            }
  559.                         }
  560.  
  561.                         var14 = var12 + 1;
  562.                      }
  563.  
  564.                      var8.drawString(var24[var15], this.m_messagepadding + var14 + this.m_marginleft, var2);
  565.                   }
  566.  
  567.                   var14 = 0;
  568.                }
  569.  
  570.                var2 = var2 + this.m_addheight[var11] + this.m_messagegap + 2;
  571.                if (var2 - var3 < var13) {
  572.                   var2 = var3 + var13;
  573.                }
  574.  
  575.                if (var11 == this.m_desc.length - 1) {
  576.                   var2 += this.field_1.getDescent();
  577.                }
  578.  
  579.                this.link_cords[var4 * 3] = var3;
  580.                this.link_cords[var4 * 3 + 1] = var2;
  581.                this.link_cords[var4 * 3 + 2] = var11;
  582.                ++var4;
  583.                if (var11 != this.m_desc.length - 1 && var2 - var5 < super.appHeight && this.m_cur_autofit[var11] == 2) {
  584.                   if (this.m_size_extra[var11]) {
  585.                      var2 = var2 + (super.appHeight - (var2 - var5)) + 1 + (var2 - var5);
  586.                   } else {
  587.                      var2 = var2 + (super.appHeight - (var2 - var5)) + 1;
  588.                   }
  589.  
  590.                   var6 = false;
  591.                }
  592.             }
  593.          }
  594.  
  595.          ++var30;
  596.       } while(var30 < 2);
  597.  
  598.       super.g_off.drawImage(var7, this.aDist, 0, this);
  599.       this.scroll_orig = ((Component)this).createImage(var7.getWidth(this), var7.getHeight(this));
  600.       Graphics var31 = this.scroll_orig.getGraphics();
  601.       var31.drawImage(var7, 0, 0, this);
  602.    }
  603.  
  604.    private synchronized void showPointer() {
  605.       if (this.curPoint >= 0) {
  606.          int var1 = this.link_cords[this.curPoint * 3];
  607.          int var2 = this.link_cords[this.curPoint * 3 + 1] - var1;
  608.          super.g_off.setColor(ACutilWindow.daColor);
  609.          super.g_off.fillRect(0, 0, this.aDist, super.actAppHeight);
  610.          super.g_off.drawImage(this.indArrow, 0, var1 + 9, this);
  611.          int var3 = 0;
  612.          if (super.offimgy + super.scroll_y + var1 >= super.d.height - 5) {
  613.             var3 = -var1;
  614.             if (var2 < super.d.height) {
  615.                var3 = var3 + (super.d.height - var2) - super.sEdge;
  616.             }
  617.  
  618.             ((OCdg)this).setVerticalPagePosition(var3);
  619.          }
  620.  
  621.          if (super.offimgy + super.scroll_y + var1 < 0) {
  622.             ((OCdg)this).setVerticalPagePosition(-var1);
  623.          }
  624.  
  625.       }
  626.    }
  627.  
  628.    public boolean mouseDown(Event var1, int var2, int var3) {
  629.       boolean var4 = false;
  630.       if (var1.modifiers == 4) {
  631.          var4 = true;
  632.       }
  633.  
  634.       ((Component)this).requestFocus();
  635.       if (this.hLine > -1) {
  636.          super.postEvent(new Event(this, 9202, new Integer(this.hLine)));
  637.       }
  638.  
  639.       if (!var4) {
  640.          return true;
  641.       } else {
  642.          PopupMenu var5 = new PopupMenu("pu - dnm - additem");
  643.          MenuItem[] var6 = new MenuItem[]{new MenuItem("Edit Text"), new MenuItem("Text Color"), new MenuItem("Font"), new MenuItem("Edit / Add Icon"), new MenuItem("-"), new MenuItem("Insert Item"), new MenuItem("Add Item"), new MenuItem("-"), new MenuItem("Page BG Color"), new MenuItem("Scroll BG Color")};
  644.  
  645.          for(int var7 = 0; var7 < var6.length; ++var7) {
  646.             ((Menu)var5).add(var6[var7]);
  647.          }
  648.  
  649.          ((Component)this).add(var5);
  650.          var5.show(this, var2, var3);
  651.          return true;
  652.       }
  653.    }
  654.  
  655.    static int getAutoValue(String var0) {
  656.       if (var0.equalsIgnoreCase("end")) {
  657.          return 2;
  658.       } else if (var0.equalsIgnoreCase("fit")) {
  659.          return 2;
  660.       } else {
  661.          return var0.equalsIgnoreCase("start") ? 1 : 0;
  662.       }
  663.    }
  664.  
  665.    // $FF: renamed from: HL (int, java.awt.Color, boolean) void
  666.    private void method_0(int var1, Color var2, boolean var3) {
  667.       if (!var3) {
  668.          super.g_off.drawImage(this.scroll_orig, this.aDist, 0, this);
  669.          ((OCdg)this).drawAppOff();
  670.          ((OCdg)this).paintIt();
  671.       } else {
  672.          int var4 = this.re_draw[var1];
  673.          int var5 = 0;
  674.          int var6 = 0;
  675.          Object var7 = null;
  676.          Object var8 = null;
  677.          Color var17;
  678.          if (var3) {
  679.             var17 = this.m_def_hlcolor;
  680.          } else {
  681.             var17 = this.m_textcolor[var1];
  682.          }
  683.  
  684.          super.g_off.setColor(var17);
  685.          if (var3) {
  686.             super.g_off.setFont(this.m_cur_hlfont[var1]);
  687.             this.field_1 = super.g_off.getFontMetrics(this.m_cur_hlfont[var1]);
  688.          } else {
  689.             super.g_off.setFont(this.m_cur_font[var1]);
  690.             this.field_1 = super.g_off.getFontMetrics(this.m_cur_font[var1]);
  691.          }
  692.  
  693.          int var9 = 0;
  694.          int var10 = 0;
  695.          var5 = var4;
  696.          boolean var11 = false;
  697.          String[] var16;
  698.          if (this.m_icon_id[var1] != -1) {
  699.             if (this.icon[this.m_icon_id[var1]] != null) {
  700.                var11 = true;
  701.                var9 = this.icon[this.m_icon_id[var1]].getWidth(this);
  702.                var10 = this.icon[this.m_icon_id[var1]].getHeight(this);
  703.             }
  704.  
  705.             var16 = ocwordw.WrapText(this.m_desc[var1], super.appWidth - this.m_messagepadding * 2 - var9 - this.m_marginleft - this.m_marginright, this.field_1);
  706.          } else {
  707.             var16 = ocwordw.WrapText(this.m_desc[var1], super.appWidth - this.m_messagepadding * 2 - this.m_marginleft - this.m_marginright, this.field_1);
  708.          }
  709.  
  710.          for(int var12 = 0; var12 < var16.length; ++var12) {
  711.             var4 += this.field_1.getHeight();
  712.             if (this.m_halign[var1] == 1) {
  713.                if (var12 == 0 && this.m_icon_id[var1] != -1) {
  714.                   var6 = (super.appWidth - (this.field_1.stringWidth(var16[var12]) + var9 + 1)) / 2;
  715.                   if (var11) {
  716.                      int var13 = 0;
  717.                      if (var4 + this.m_icon_base_off - var10 < var5) {
  718.                         var13 = var5 + this.m_icon_base_off;
  719.                      } else {
  720.                         var13 = var4 + this.m_icon_base_off - var10;
  721.                      }
  722.  
  723.                      if (var3) {
  724.                         super.g_off.drawImage(this.sicon[this.m_icon_id[var1]], var6 + this.aDist, var13, this);
  725.                      } else {
  726.                         super.g_off.drawImage(this.icon[this.m_icon_id[var1]], var6 + this.aDist, var13, this);
  727.                      }
  728.                   }
  729.  
  730.                   super.g_off.drawString(var16[var12], var6 + this.aDist + var9 + 1, var4);
  731.                } else {
  732.                   super.g_off.drawString(var16[var12], (super.appWidth - this.field_1.stringWidth(var16[var12])) / 2 + this.aDist, var4);
  733.                }
  734.             } else if (this.m_halign[var1] == 2) {
  735.                if ((var12 == 0 || this.m_indent_all) && this.m_icon_id[var1] != -1) {
  736.                   var6 = var9 + 1;
  737.                   if (var12 == 0 && var11) {
  738.                      int var19 = 0;
  739.                      if (var4 + this.m_icon_base_off - var10 < var5) {
  740.                         var19 = var5 + this.m_icon_base_off;
  741.                      } else {
  742.                         var19 = var4 + this.m_icon_base_off - var10;
  743.                      }
  744.  
  745.                      if (var3) {
  746.                         super.g_off.drawImage(this.sicon[this.m_icon_id[var1]], super.appWidth - var9 - this.m_messagepadding + this.aDist, var19, this);
  747.                      } else {
  748.                         super.g_off.drawImage(this.icon[this.m_icon_id[var1]], super.appWidth - var9 - this.m_messagepadding + this.aDist, var19, this);
  749.                      }
  750.                   }
  751.                }
  752.  
  753.                super.g_off.drawString(var16[var12], super.appWidth - this.m_messagepadding + this.aDist - this.field_1.stringWidth(var16[var12]) - var6, var4);
  754.             } else {
  755.                if ((var12 == 0 || this.m_indent_all) && this.m_icon_id[var1] != -1) {
  756.                   if (var12 == 0 && var11) {
  757.                      int var21 = 0;
  758.                      if (var4 + this.m_icon_base_off - var10 < var5) {
  759.                         var21 = var5 + this.m_icon_base_off;
  760.                      } else {
  761.                         var21 = var4 + this.m_icon_base_off - var10;
  762.                      }
  763.  
  764.                      if (var3) {
  765.                         super.g_off.drawImage(this.sicon[this.m_icon_id[var1]], this.m_messagepadding + this.aDist + this.m_marginleft, var21, this);
  766.                      } else {
  767.                         super.g_off.drawImage(this.icon[this.m_icon_id[var1]], this.m_messagepadding + this.aDist + this.m_marginleft, var21, this);
  768.                      }
  769.                   }
  770.  
  771.                   var6 = var9 + 1;
  772.                }
  773.  
  774.                super.g_off.drawString(var16[var12], this.m_messagepadding + this.aDist + var6 + this.m_marginleft, var4);
  775.             }
  776.  
  777.             var6 = 0;
  778.          }
  779.  
  780.          ((OCdg)this).drawAppOff();
  781.          ((OCdg)this).paintIt();
  782.       }
  783.    }
  784.  
  785.    public boolean mouseMove(Event var1, int var2, int var3) {
  786.       int var4 = super.scroll_x + super.offimgx + this.aDist;
  787.       int var5 = super.scroll_y + super.offimgy;
  788.       if (var2 > var4 && var2 < var4 + super.appWidth && var3 > var5 && var3 < var5 + super.actAppHeight) {
  789.          for(int var6 = 0; var6 < this.num_descrips; ++var6) {
  790.             if (var3 > var5 + this.link_cords[var6 * 3] && var3 < var5 + this.link_cords[var6 * 3 + 1]) {
  791.                int var7 = this.link_cords[var6 * 3 + 2];
  792.                if (var7 != this.hLine) {
  793.                   if (this.hLine != -1) {
  794.                      this.method_0(this.hLine, this.m_textcolor[this.hLine], false);
  795.                      this.hLine = -1;
  796.                   }
  797.  
  798.                   this.method_0(var7, this.m_def_hlcolor, true);
  799.                }
  800.  
  801.                this.hLine = var7;
  802.                return true;
  803.             }
  804.          }
  805.  
  806.          if (this.hLine != -1) {
  807.             this.method_0(this.hLine, this.m_textcolor[this.hLine], false);
  808.             this.hLine = -1;
  809.          }
  810.       } else if (this.hLine != -1) {
  811.          this.method_0(this.hLine, this.m_textcolor[this.hLine], false);
  812.          this.hLine = -1;
  813.       }
  814.  
  815.       return true;
  816.    }
  817. }
  818.