home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 June / CHIPHEFT062001.ISO / browser / nc32lyc / comm.z / java40.jar / sun / awt / motif / MScrollPanePeer.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-08-15  |  4.9 KB  |  248 lines

  1. package sun.awt.motif;
  2.  
  3. import java.awt.Adjustable;
  4. import java.awt.Color;
  5. import java.awt.Component;
  6. import java.awt.Container;
  7. import java.awt.Dimension;
  8. import java.awt.Graphics;
  9. import java.awt.Insets;
  10. import java.awt.Point;
  11. import java.awt.ScrollPane;
  12. import java.awt.peer.ScrollPanePeer;
  13.  
  14. class MScrollPanePeer extends MPanelPeer implements ScrollPanePeer {
  15.    static final int UNIT_INCREMENT = 0;
  16.    static final int BLOCK_INCREMENT = 1;
  17.    boolean ignore;
  18.    boolean dragInProgress = false;
  19.    static final int MARGIN = 1;
  20.    static final int SPACE = 2;
  21.    static final int SCROLLBAR = 16;
  22.    int hsbSpace;
  23.    int vsbSpace;
  24.    int vval;
  25.    int hval;
  26.    int vmax;
  27.    int hmax;
  28.  
  29.    native void create(MComponentPeer var1);
  30.  
  31.    MScrollPanePeer(Component var1) {
  32.       super(var1);
  33.       this.init();
  34.    }
  35.  
  36.    MScrollPanePeer(Component var1, Object var2) {
  37.       super(var1, var2);
  38.       this.init();
  39.    }
  40.  
  41.    void init() {
  42.       this.ignore = false;
  43.       ScrollPane var1 = (ScrollPane)super.target;
  44.       Adjustable var2;
  45.       if ((var2 = var1.getVAdjustable()) != null) {
  46.          this.pSetIncrement(1, 0, var2.getUnitIncrement());
  47.       }
  48.  
  49.       Adjustable var3;
  50.       if ((var3 = var1.getHAdjustable()) != null) {
  51.          this.pSetIncrement(0, 0, var3.getUnitIncrement());
  52.       }
  53.  
  54.    }
  55.  
  56.    public void setScrollChild(MComponentPeer var1) {
  57.       this.pSetScrollChild(var1);
  58.    }
  59.  
  60.    native void pSetScrollChild(MComponentPeer var1);
  61.  
  62.    native void pSetIncrement(int var1, int var2, int var3);
  63.  
  64.    native int pGetScrollbarSpace(int var1);
  65.  
  66.    native int pGetBlockIncrement(int var1);
  67.  
  68.    native Insets pInsets(int var1, int var2, int var3, int var4);
  69.  
  70.    public int getHScrollbarHeight() {
  71.       ScrollPane var1 = (ScrollPane)super.target;
  72.       return var1.getScrollbarDisplayPolicy() == 2 ? 0 : this.pGetScrollbarSpace(0);
  73.    }
  74.  
  75.    public int getVScrollbarWidth() {
  76.       ScrollPane var1 = (ScrollPane)super.target;
  77.       return var1.getScrollbarDisplayPolicy() == 2 ? 0 : this.pGetScrollbarSpace(1);
  78.    }
  79.  
  80.    public Insets insets() {
  81.       ScrollPane var1 = (ScrollPane)super.target;
  82.       Dimension var2 = ((Component)var1).size();
  83.  
  84.       Dimension var3;
  85.       try {
  86.          Component var4 = this.getScrollChild();
  87.          var3 = var4.size();
  88.       } catch (NullPointerException var5) {
  89.          var3 = new Dimension(0, 0);
  90.       }
  91.  
  92.       return this.pInsets(var2.width, var2.height, var3.width, var3.height);
  93.    }
  94.  
  95.    public void setUnitIncrement(Adjustable var1, int var2) {
  96.       ScrollPane var3 = (ScrollPane)super.target;
  97.       if (var3.getScrollbarDisplayPolicy() != 2) {
  98.          this.pSetIncrement(var1.getOrientation(), 0, var2);
  99.       }
  100.  
  101.    }
  102.  
  103.    public void setValue(Adjustable var1, int var2) {
  104.       if (!this.ignore) {
  105.          Component var4 = this.getScrollChild();
  106.          Point var3 = var4.getLocation();
  107.          switch (var1.getOrientation()) {
  108.             case 0:
  109.                this.setScrollPosition(var2, -var3.y);
  110.                return;
  111.             case 1:
  112.                this.setScrollPosition(-var3.x, var2);
  113.                return;
  114.          }
  115.       }
  116.  
  117.    }
  118.  
  119.    public native void setScrollPosition(int var1, int var2);
  120.  
  121.    public void childResized(int var1, int var2) {
  122.       if (((ScrollPane)super.target).getScrollbarDisplayPolicy() != 2) {
  123.          ScrollPane var3 = (ScrollPane)super.target;
  124.          Adjustable var4 = var3.getVAdjustable();
  125.          Adjustable var5 = var3.getHAdjustable();
  126.          this.pSetIncrement(1, 0, var4.getUnitIncrement());
  127.          this.pSetIncrement(0, 0, var5.getUnitIncrement());
  128.          this.pSetIncrement(1, 1, var4.getBlockIncrement());
  129.          this.pSetIncrement(0, 1, var5.getBlockIncrement());
  130.       }
  131.  
  132.    }
  133.  
  134.    public void scrolledVertical(int var1, int var2) {
  135.       ScrollPane var3 = (ScrollPane)super.target;
  136.       Adjustable var4 = var3.getVAdjustable();
  137.       if (var4 != null) {
  138.          Adjustor var5 = new Adjustor(this, var4, var1, this);
  139.          MToolkit.postEvent(var5);
  140.       }
  141.  
  142.    }
  143.  
  144.    public void scrolledHorizontal(int var1, int var2) {
  145.       ScrollPane var3 = (ScrollPane)super.target;
  146.       Adjustable var4 = var3.getHAdjustable();
  147.       if (var4 != null) {
  148.          Adjustor var5 = new Adjustor(this, var4, var1, this);
  149.          MToolkit.postEvent(var5);
  150.       }
  151.  
  152.    }
  153.  
  154.    private Component getScrollChild() {
  155.       ScrollPane var1 = (ScrollPane)super.target;
  156.       if (((Container)var1).countComponents() > 0) {
  157.          return ((Container)var1).getComponent(0);
  158.       } else {
  159.          throw new NullPointerException("child is null");
  160.       }
  161.    }
  162.  
  163.    public void print(Graphics var1) {
  164.       ScrollPane var2 = (ScrollPane)super.target;
  165.       Dimension var3 = ((Component)var2).size();
  166.       Color var4 = ((Component)var2).getBackground();
  167.       ((Component)var2).getForeground();
  168.       Point var5 = var2.getScrollPosition();
  169.       Component var6 = this.getScrollChild();
  170.       Dimension var7 = var6.size();
  171.       int var8 = var2.getScrollbarDisplayPolicy();
  172.       switch (var8) {
  173.          case 0:
  174.             this.hsbSpace = var7.width <= var3.width - 2 ? 0 : 16;
  175.             this.vsbSpace = var7.height <= var3.height - 2 ? 0 : 16;
  176.             if (this.hsbSpace == 0 && this.vsbSpace != 0) {
  177.                this.hsbSpace = var7.width <= var3.width - 16 - 2 ? 0 : 16;
  178.             }
  179.  
  180.             if (this.vsbSpace == 0 && this.hsbSpace != 0) {
  181.                this.vsbSpace = var7.height <= var3.height - 16 - 2 ? 0 : 16;
  182.             }
  183.             break;
  184.          case 1:
  185.             this.hsbSpace = this.vsbSpace = 16;
  186.             break;
  187.          case 2:
  188.             this.hsbSpace = this.vsbSpace = 0;
  189.       }
  190.  
  191.       int var16 = 0;
  192.       int var15 = 0;
  193.       int var14 = 0;
  194.       int var13 = 0;
  195.       byte var12 = 0;
  196.       byte var11 = 0;
  197.       int var10 = 0;
  198.       int var9 = 0;
  199.       if (this.vsbSpace > 0) {
  200.          var11 = 0;
  201.          var9 = var3.height - 2 - 2 - this.hsbSpace;
  202.          var13 = Math.max(var7.height - var9, 0);
  203.          var15 = var5.y;
  204.       }
  205.  
  206.       if (this.hsbSpace > 0) {
  207.          var12 = 0;
  208.          var10 = var3.width - 2 - 2 - this.vsbSpace;
  209.          var14 = Math.max(var7.width - var10, 0);
  210.          var16 = var5.x;
  211.       }
  212.  
  213.       int var17 = var3.width - (this.vsbSpace > 0 ? this.vsbSpace + 2 : 0);
  214.       int var18 = var3.height - (this.hsbSpace > 0 ? this.hsbSpace + 2 : 0);
  215.       var1.setColor(var4);
  216.       var1.fillRect(0, 0, var3.width, var3.height);
  217.       if (this.hsbSpace > 0) {
  218.          int var19 = var3.width - this.vsbSpace;
  219.          Graphics var20 = var1.create();
  220.          var1.fillRect(1, var3.height - 16 - 3, var19 - 1, 13);
  221.  
  222.          try {
  223.             var20.translate(0, var3.height - 14);
  224.             ((MComponentPeer)this).drawScrollbar(var20, var4, 14, var19, var12, var14, var16, var10, true);
  225.          } finally {
  226.             var20.dispose();
  227.          }
  228.       }
  229.  
  230.       if (this.vsbSpace > 0) {
  231.          int var29 = var3.height - this.hsbSpace;
  232.          Graphics var30 = var1.create();
  233.          var1.fillRect(var3.width - 16 - 3, 1, 13, var29 - 1);
  234.  
  235.          try {
  236.             var30.translate(var3.width - 14, 0);
  237.             ((MComponentPeer)this).drawScrollbar(var30, var4, 14, var29, var11, var13, var15, var9, false);
  238.          } finally {
  239.             var30.dispose();
  240.          }
  241.       }
  242.  
  243.       ((MComponentPeer)this).draw3DRect(var1, var4, 0, 0, var17 - 1, var18 - 1, false);
  244.       super.target.print(var1);
  245.       var2.printComponents(var1);
  246.    }
  247. }
  248.