home *** CD-ROM | disk | FTP | other *** search
/ PC User 1998 October / Image.iso / BROWSER / CLASSES.ZIP / sun / AWT / WIN32 / MComponentPeer.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-04-14  |  6.1 KB  |  341 lines

  1. package sun.awt.win32;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Component;
  5. import java.awt.Container;
  6. import java.awt.Dimension;
  7. import java.awt.Event;
  8. import java.awt.Font;
  9. import java.awt.FontMetrics;
  10. import java.awt.Graphics;
  11. import java.awt.Image;
  12. import java.awt.Rectangle;
  13. import java.awt.Toolkit;
  14. import java.awt.image.ColorModel;
  15. import java.awt.image.ImageObserver;
  16. import java.awt.image.ImageProducer;
  17. import java.awt.peer.ComponentPeer;
  18. import sun.awt.ScreenUpdater;
  19. import sun.awt.UpdateClient;
  20.  
  21. public abstract class MComponentPeer extends MGUIComponentPeer implements ComponentPeer, UpdateClient {
  22.    Component target;
  23.    int pData;
  24.    int pWinMsg;
  25.    private int updateX1;
  26.    private int updateY1;
  27.    private int updateX2;
  28.    private int updateY2;
  29.  
  30.    abstract void create(MComponentPeer var1);
  31.  
  32.    void create(MComponentPeer var1, Object var2) {
  33.       this.create(var1);
  34.    }
  35.  
  36.    native void pInitialize();
  37.  
  38.    native void pShow();
  39.  
  40.    native void pHide();
  41.  
  42.    native void pEnable();
  43.  
  44.    native void pDisable();
  45.  
  46.    native void pReshape(int var1, int var2, int var3, int var4);
  47.  
  48.    native void pRepaint(int var1, int var2, int var3, int var4);
  49.  
  50.    native void pDispose();
  51.  
  52.    void initialize() {
  53.       if (this.target.isVisible()) {
  54.          this.show();
  55.       } else {
  56.          this.hide();
  57.       }
  58.  
  59.       Color var1;
  60.       if ((var1 = this.target.getForeground()) != null) {
  61.          this.setForeground(var1);
  62.       }
  63.  
  64.       if ((var1 = this.target.getBackground()) != null) {
  65.          this.setBackground(var1);
  66.       }
  67.  
  68.       Font var2;
  69.       if ((var2 = this.target.getFont()) != null) {
  70.          this.setFont(var2);
  71.       }
  72.  
  73.       if (!this.target.isEnabled()) {
  74.          this.disable();
  75.       }
  76.  
  77.       Rectangle var3 = this.target.bounds();
  78.       this.reshape(var3.x, var3.y, var3.width, var3.height);
  79.       this.pInitialize();
  80.    }
  81.  
  82.    MComponentPeer(Component var1, Object var2) {
  83.       this.target = var1;
  84.       Container var3 = var1.getParent();
  85.       this.create((MComponentPeer)(var3 != null ? ((Component)var3).getPeer() : null), var2);
  86.       this.initialize();
  87.    }
  88.  
  89.    MComponentPeer(Component var1) {
  90.       this.target = var1;
  91.       Container var2 = var1.getParent();
  92.       this.create((MComponentPeer)(var2 != null ? ((Component)var2).getPeer() : null));
  93.       this.initialize();
  94.    }
  95.  
  96.    public native void setForeground(Color var1);
  97.  
  98.    public native void setBackground(Color var1);
  99.  
  100.    public native void setFont(Font var1);
  101.  
  102.    public ColorModel getColorModel() {
  103.       if (MToolkit.screenmodel == null) {
  104.          MToolkit.screenmodel = MToolkit.makeColorModel();
  105.       }
  106.  
  107.       return MToolkit.screenmodel;
  108.    }
  109.  
  110.    public void show() {
  111.       this.pShow();
  112.    }
  113.  
  114.    public void hide() {
  115.       this.pHide();
  116.    }
  117.  
  118.    public void enable() {
  119.       this.pEnable();
  120.    }
  121.  
  122.    public void disable() {
  123.       this.pDisable();
  124.    }
  125.  
  126.    public int updatePriority() {
  127.       return 5;
  128.    }
  129.  
  130.    public void updateClient(Object var1) {
  131.       synchronized(this){}
  132.  
  133.       int var2;
  134.       int var3;
  135.       int var4;
  136.       int var5;
  137.       try {
  138.          var2 = this.updateX1;
  139.          var3 = this.updateY1;
  140.          var4 = this.updateX2;
  141.          var5 = this.updateY2;
  142.          this.updateX1 = this.updateX2;
  143.       } catch (Throwable var8) {
  144.          throw var8;
  145.       }
  146.  
  147.       if (var2 != var4) {
  148.          this.pRepaint(var2, var3, var4 - var2, var5 - var3);
  149.       }
  150.  
  151.    }
  152.  
  153.    private synchronized void addRepaintArea(int var1, int var2, int var3, int var4) {
  154.       if (this.updateX1 == this.updateX2) {
  155.          this.updateX1 = var1;
  156.          this.updateY1 = var2;
  157.          this.updateX2 = var1 + var3;
  158.          this.updateY2 = var2 + var4;
  159.       } else {
  160.          if (var1 < this.updateX1) {
  161.             this.updateX1 = var1;
  162.          }
  163.  
  164.          if (var2 < this.updateY1) {
  165.             this.updateY1 = var2;
  166.          }
  167.  
  168.          if (var1 + var3 > this.updateX2) {
  169.             this.updateX2 = var1 + var3;
  170.          }
  171.  
  172.          if (var2 + var4 > this.updateY2) {
  173.             this.updateY2 = var2 + var4;
  174.          }
  175.  
  176.       }
  177.    }
  178.  
  179.    public void repaint(long var1, int var3, int var4, int var5, int var6) {
  180.       this.addRepaintArea(var3, var4, var5, var6);
  181.       ScreenUpdater.updater.notify(this, var1);
  182.    }
  183.  
  184.    public void paint(Graphics var1) {
  185.       var1.setColor(this.target.getForeground());
  186.       var1.setFont(this.target.getFont());
  187.       this.target.paint(var1);
  188.    }
  189.  
  190.    public void update(Graphics var1) {
  191.       var1.setColor(this.target.getForeground());
  192.       var1.setFont(this.target.getFont());
  193.       this.target.update(var1);
  194.    }
  195.  
  196.    public void print(Graphics var1) {
  197.       Dimension var2 = this.target.size();
  198.       var1.setColor(this.target.getForeground());
  199.       var1.setFont(this.target.getFont());
  200.       var1.drawRect(0, 0, var2.width - 1, var2.height - 1);
  201.       this.target.print(var1);
  202.    }
  203.  
  204.    public void reshape(int var1, int var2, int var3, int var4) {
  205.       this.pReshape(var1, var2, var3, var4);
  206.    }
  207.  
  208.    public native boolean handleEvent(Event var1);
  209.  
  210.    public Dimension minimumSize() {
  211.       return this.target.size();
  212.    }
  213.  
  214.    public Dimension preferredSize() {
  215.       return this.minimumSize();
  216.    }
  217.  
  218.    public Toolkit getToolkit() {
  219.       return Toolkit.getDefaultToolkit();
  220.    }
  221.  
  222.    public Graphics getGraphics() {
  223.       Win32Graphics var1 = new Win32Graphics(this);
  224.       ((Graphics)var1).setColor(this.target.getForeground());
  225.       ((Graphics)var1).setFont(this.target.getFont());
  226.       return var1;
  227.    }
  228.  
  229.    public Image createImage(ImageProducer var1) {
  230.       return new Win32Image(var1);
  231.    }
  232.  
  233.    public Image createImage(int var1, int var2) {
  234.       return new Win32Image(this.target, var1, var2);
  235.    }
  236.  
  237.    public boolean prepareImage(Image var1, int var2, int var3, ImageObserver var4) {
  238.       return MToolkit.prepareScrImage(var1, var2, var3, var4);
  239.    }
  240.  
  241.    public int checkImage(Image var1, int var2, int var3, ImageObserver var4) {
  242.       return MToolkit.checkScrImage(var1, var2, var3, var4);
  243.    }
  244.  
  245.    public FontMetrics getFontMetrics(Font var1) {
  246.       return Win32FontMetrics.getFontMetrics(var1);
  247.    }
  248.  
  249.    public void dispose() {
  250.       if (this.pData != 0) {
  251.          this.pDispose();
  252.          this.pData = 0;
  253.       }
  254.  
  255.    }
  256.  
  257.    public native void requestFocus();
  258.  
  259.    public native void nextFocus();
  260.  
  261.    protected void gotFocus(int var1) {
  262.       this.target.postEvent(this.setData(var1, new Event(this.target, 1004, (Object)null)));
  263.    }
  264.  
  265.    protected void lostFocus(int var1) {
  266.       this.target.postEvent(this.setData(var1, new Event(this.target, 1005, (Object)null)));
  267.    }
  268.  
  269.    protected void handleActionKey(long var1, int var3, int var4, int var5, int var6, int var7) {
  270.       this.target.postEvent(this.setData(var3, new Event(this.target, var1, 403, var4, var5, var6, var7, (Object)null)));
  271.    }
  272.  
  273.    protected void handleActionKeyRelease(long var1, int var3, int var4, int var5, int var6, int var7) {
  274.       this.target.postEvent(this.setData(var3, new Event(this.target, var1, 404, var4, var5, var6, var7, (Object)null)));
  275.    }
  276.  
  277.    protected void handleKeyPress(long var1, int var3, int var4, int var5, int var6, int var7) {
  278.       this.target.postEvent(this.setData(var3, new Event(this.target, var1, 401, var4, var5, var6, var7, (Object)null)));
  279.    }
  280.  
  281.    protected void handleKeyRelease(long var1, int var3, int var4, int var5, int var6, int var7) {
  282.       this.target.postEvent(this.setData(var3, new Event(this.target, var1, 402, var4, var5, var6, var7, (Object)null)));
  283.    }
  284.  
  285.    protected void handleMouseEnter(long var1, int var3, int var4) {
  286.       this.target.postEvent(new Event(this.target, var1, 504, var3, var4, 0, 0, (Object)null));
  287.    }
  288.  
  289.    protected void handleMouseExit(long var1, int var3, int var4) {
  290.       this.target.postEvent(new Event(this.target, var1, 505, var3, var4, 0, 0, (Object)null));
  291.    }
  292.  
  293.    protected void handleMouseDown(long var1, int var3, int var4, int var5, int var6, int var7) {
  294.       Event var8 = this.setData(var3, new Event(this.target, var1, 501, var4, var5, 0, var7, (Object)null));
  295.       var8.clickCount = var6;
  296.       this.target.postEvent(var8);
  297.    }
  298.  
  299.    protected void handleMouseUp(long var1, int var3, int var4, int var5, int var6) {
  300.       this.target.postEvent(this.setData(var3, new Event(this.target, var1, 502, var4, var5, 0, var6, (Object)null)));
  301.    }
  302.  
  303.    protected void handleMouseMoved(long var1, int var3, int var4, int var5, int var6) {
  304.       this.target.postEvent(this.setData(var3, new Event(this.target, var1, 503, var4, var5, 0, var6, (Object)null)));
  305.    }
  306.  
  307.    protected void handleMouseDrag(long var1, int var3, int var4, int var5, int var6) {
  308.       this.target.postEvent(this.setData(var3, new Event(this.target, var1, 506, var4, var5, 0, var6, (Object)null)));
  309.    }
  310.  
  311.    native Event setData(int var1, Event var2);
  312.  
  313.    void handleExpose(int var1, int var2, int var3, int var4) {
  314.       Graphics var5 = this.getGraphics();
  315.  
  316.       try {
  317.          var5.clipRect(var1, var2, var3, var4);
  318.          this.paint(var5);
  319.       } finally {
  320.          var5.dispose();
  321.       }
  322.  
  323.    }
  324.  
  325.    void handleRepaint(int var1, int var2, int var3, int var4) {
  326.       Graphics var5 = this.getGraphics();
  327.  
  328.       try {
  329.          var5.clipRect(var1, var2, var3, var4);
  330.          this.update(var5);
  331.       } finally {
  332.          var5.dispose();
  333.       }
  334.  
  335.    }
  336.  
  337.    public String toString() {
  338.       return this.getClass().getName() + "[" + this.target + "]";
  339.    }
  340. }
  341.