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

  1. package webeq3.schema;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Graphics;
  5. import webeq3.app.Equation;
  6.  
  7. public class MRow extends MStyle {
  8.    private int stretch_ascent = 0;
  9.    private int stretch_descent = 0;
  10.  
  11.    public MRow() {
  12.       super.type = 68;
  13.       super.kind = 3;
  14.    }
  15.  
  16.    public MRow(Box var1) {
  17.       super(var1);
  18.       super.type = 68;
  19.       super.kind = 3;
  20.    }
  21.  
  22.    public MRow(Equation var1) {
  23.       super(var1);
  24.       super.type = 68;
  25.       super.kind = 3;
  26.    }
  27.  
  28.    public void paint(Graphics var1, int var2, int var3) {
  29.       super.paint(var1, var2, var3);
  30.       int var4 = super.my_view.offsetx;
  31.       int var5 = super.my_view.offsety;
  32.       if (super.syntax_info != null && ((Box)this).getNumChildren() > 1 && (((Box)this).getNumChildren() != 3 || !(((Box)this).getChild(0) instanceof MO) || !"(".equals(((Box)this).getChild(0).udata) || !(((Box)this).getChild(2) instanceof MO) || !")".equals(((Box)this).getChild(2).udata))) {
  33.          var1.setColor(Color.lightGray.darker());
  34.          var1.drawRect(super.absleft + var4, super.abstop + var5, super.width - 1, super.height - 1);
  35.       }
  36.  
  37.    }
  38.  
  39.    public void position() {
  40.       int var2 = 0;
  41.       byte var3 = 0;
  42.       int var4 = super.children.size();
  43.       ((Box)this).setfont(super.depth);
  44.       int var5 = 2 * super.fm.charWidth('x');
  45.  
  46.       for(int var6 = 0; var6 < var4; ++var6) {
  47.          Box var1 = ((Box)this).getChild(var6);
  48.          var1.setLeft(var2);
  49.          var1.setTop(super.ascent - var1.getAscent() + var3);
  50.          var2 += var1.getWidth();
  51.       }
  52.  
  53.    }
  54.  
  55.    public void size() {
  56.       super.fgcolor = ((Box)this).resolveColor(4);
  57.       super.bgcolor = ((Box)this).resolveColor(17);
  58.       int var3 = super.children.size();
  59.       this.stretch_ascent = 0;
  60.       this.stretch_descent = var3 > 0 ? -10000 : 0;
  61.       if (var3 > 0) {
  62.          super.descent = -10000;
  63.       }
  64.  
  65.       for(int var4 = 0; var4 < var3; ++var4) {
  66.          Box var1 = ((Box)this).getChild(var4);
  67.          var1.depth = super.depth;
  68.          var1.layout();
  69.          Box var2 = var1;
  70.          if (var1.embellished_op) {
  71.             while(((Box)this).base_check(var2)) {
  72.                var2 = var2.getChild(0);
  73.             }
  74.          }
  75.  
  76.          if (this.stretch_ascent < var2.getAscent()) {
  77.             this.stretch_ascent = var2.getAscent();
  78.          }
  79.  
  80.          if (this.stretch_descent < var2.getDescent()) {
  81.             this.stretch_descent = var2.getDescent();
  82.          }
  83.  
  84.          if (super.ascent < var1.getAscent()) {
  85.             super.ascent = var1.getAscent();
  86.          }
  87.  
  88.          if (super.descent < var1.getDescent()) {
  89.             super.descent = var1.getDescent();
  90.          }
  91.  
  92.          super.width += var1.getWidth();
  93.       }
  94.  
  95.       if (super.syntax_info != null) {
  96.          ++super.descent;
  97.          ++super.width;
  98.       }
  99.  
  100.       super.height = super.ascent + super.descent;
  101.       int var5 = 0;
  102.       int var6 = 0;
  103.  
  104.       for(int var7 = 0; var7 < var3; ++var7) {
  105.          Box var8 = ((Box)this).getChild(var7);
  106.          if (var8.is_spacelike) {
  107.             ++var5;
  108.          }
  109.  
  110.          if (var8.embellished_op) {
  111.             ++var6;
  112.          }
  113.       }
  114.  
  115.       if (var5 == var3) {
  116.          super.is_spacelike = true;
  117.       }
  118.  
  119.       if (var5 == var3 - 1 && var6 == 1) {
  120.          super.embellished_op = true;
  121.       }
  122.  
  123.       ((Box)this).stretchTo(this.stretch_ascent, this.stretch_descent);
  124.       switch (var3) {
  125.          case 0:
  126.             super.atomic = true;
  127.             break;
  128.          case 1:
  129.             Box var9 = ((Box)this).getChild(0);
  130.             super.italic = var9.isItalic();
  131.             super.atomic = var9.isAtomic();
  132.             break;
  133.          default:
  134.             super.atomic = false;
  135.       }
  136.  
  137.    }
  138. }
  139.