home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 2001 December / dppcpro1201.iso / Extras / maple / Viewer / WebEQ / MMLViewerInstall.cab / MMLViewerApplet.cab / webeq3 / schema / MPhantom.class (.txt) < prev    next >
Encoding:
Java Class File  |  2001-05-24  |  3.4 KB  |  160 lines

  1. package webeq3.schema;
  2.  
  3. import java.awt.Graphics;
  4. import webeq3.app.Equation;
  5.  
  6. public class MPhantom extends Box {
  7.    int currentx = 0;
  8.    int currenty = 0;
  9.    // $FF: renamed from: em int
  10.    int field_0 = 0;
  11.    boolean phantom = true;
  12.  
  13.    public MPhantom(Box var1) {
  14.       super(var1);
  15.       super.type = 68;
  16.    }
  17.  
  18.    public MPhantom() {
  19.       super.type = 68;
  20.    }
  21.  
  22.    public MPhantom(Equation var1) {
  23.       super(var1);
  24.       super.type = 68;
  25.    }
  26.  
  27.    public void size() {
  28.       super.width = 0;
  29.       super.ascent = 0;
  30.       super.descent = 0;
  31.       ((Box)this).setfont(super.depth);
  32.       this.field_0 = super.fm.charWidth('M');
  33.       super.atomic = false;
  34.       super.size();
  35.       int var1 = 0;
  36.       int var2 = 0;
  37.       int var3 = super.children.size();
  38.  
  39.       for(int var5 = 0; var5 < var3; ++var5) {
  40.          Box var4 = ((Box)this).getChild(var5);
  41.          if (var4.is_spacelike) {
  42.             ++var1;
  43.          }
  44.  
  45.          if (var4.embellished_op) {
  46.             ++var2;
  47.          }
  48.       }
  49.  
  50.       if (var1 == var3) {
  51.          super.is_spacelike = true;
  52.       }
  53.  
  54.       if (var1 == var3 - 1 && var2 == 1) {
  55.          super.embellished_op = true;
  56.       }
  57.  
  58.       double var6 = (double)0.0F;
  59.       double var8 = (double)0.0F;
  60.       double var10 = (double)0.0F;
  61.       String var12 = ((Box)this).getAttributeByIndex(14);
  62.       if (!"".equals(var12)) {
  63.          try {
  64.             var6 = Double.valueOf(var12);
  65.             super.width = (int)(var6 * (double)this.field_0);
  66.          } catch (NumberFormatException var16) {
  67.          }
  68.       }
  69.  
  70.       var12 = ((Box)this).getAttributeByIndex(15);
  71.       if (!"".equals(var12)) {
  72.          try {
  73.             var8 = Double.valueOf(var12);
  74.             super.ascent = (int)(var8 * (double)super.xheight);
  75.          } catch (NumberFormatException var15) {
  76.          }
  77.       }
  78.  
  79.       var12 = ((Box)this).getAttributeByIndex(16);
  80.       if (!"".equals(var12)) {
  81.          try {
  82.             var10 = Double.valueOf(((Box)this).getAttributeByIndex(16));
  83.             super.descent = (int)(var10 * (double)super.xheight);
  84.          } catch (NumberFormatException var14) {
  85.          }
  86.       }
  87.  
  88.       super.height = super.ascent + super.descent;
  89.       String var13 = ((Box)this).getAttributeByIndex(48);
  90.       if (var13 != null && var13.length() == 1) {
  91.          this.phantom = false;
  92.          this.currenty = super.ascent;
  93.          switch (var13.charAt(0)) {
  94.             case 'd':
  95.                super.ascent = 0;
  96.                super.descent = 0;
  97.                super.height = 0;
  98.                break;
  99.             case 'l':
  100.                this.currentx = -super.width;
  101.                super.width = 0;
  102.                break;
  103.             case 'r':
  104.                super.width = 0;
  105.                break;
  106.             case 'u':
  107.                this.currenty = -super.descent;
  108.                super.ascent = 0;
  109.                super.descent = 0;
  110.                super.height = 0;
  111.          }
  112.  
  113.       }
  114.    }
  115.  
  116.    public void position() {
  117.       int var2 = this.currentx;
  118.       int var3 = super.children.size();
  119.  
  120.       for(int var4 = 0; var4 < var3; ++var4) {
  121.          Box var1 = ((Box)this).getChild(var4);
  122.          var1.setLeft(var2);
  123.          var1.setTop(this.currenty - var1.getAscent());
  124.          var2 += var1.getWidth();
  125.       }
  126.  
  127.    }
  128.  
  129.    public void paint(Graphics var1, int var2, int var3) {
  130.       if (!this.phantom) {
  131.          super.paint(var1, var2, var3);
  132.       } else if (super.my_view.linebreak) {
  133.          ((Box)this).paintBackground(var1, var2, var3);
  134.          int var4 = var2 + super.left + super.my_view.offsetx;
  135.          int var5 = super.my_view.getDisplayWidth();
  136.          var5 -= super.breakLookAhead;
  137.          if (var4 + super.width > var5) {
  138.             int var6 = (var4 + super.width) / var5;
  139.             int var7 = var4 + super.width - var6 * var5;
  140.             Integer var8 = new Integer(var5 - super.my_view.offsetx);
  141.             super.my_view.breaks.addElement(var8);
  142.  
  143.             for(int var9 = 1; var9 < var6; ++var9) {
  144.                var8 = new Integer(var5 - super.my_view.offsetx + var9 * (var5 - super.my_view.indent));
  145.                super.my_view.breaks.addElement(var8);
  146.                ((Box)this).rvPaint(var1, super.my_view.indent, var3 + super.top + super.my_view.offsety + var9 * (5 + super.my_view.root.getHeight()), super.width - (var5 - var4) - (var9 - 1) * (var5 - super.my_view.indent), super.height);
  147.             }
  148.  
  149.             super.my_view.offsetx = super.my_view.indent - var4 - (super.width - var7);
  150.             Equation var10000 = super.my_view;
  151.             var10000.offsety += var6 * (5 + super.my_view.root.getHeight());
  152.             ((Box)this).rvPaint(var1, super.my_view.indent, var3 + super.top + super.my_view.offsety, var7, super.height);
  153.          }
  154.       }
  155.  
  156.       super.absleft = var2 + super.left;
  157.       super.abstop = var3 + super.top;
  158.    }
  159. }
  160.