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

  1. package sun.awt.macos;
  2.  
  3. import java.awt.AWTEvent;
  4. import java.awt.Color;
  5. import java.awt.Component;
  6. import java.awt.Container;
  7. import java.awt.Cursor;
  8. import java.awt.Dimension;
  9. import java.awt.Font;
  10. import java.awt.FontMetrics;
  11. import java.awt.Graphics;
  12. import java.awt.Image;
  13. import java.awt.Point;
  14. import java.awt.Rectangle;
  15. import java.awt.SystemColor;
  16. import java.awt.Toolkit;
  17. import java.awt.event.FocusEvent;
  18. import java.awt.event.KeyEvent;
  19. import java.awt.event.MouseEvent;
  20. import java.awt.event.PaintEvent;
  21. import java.awt.image.ColorModel;
  22. import java.awt.image.ImageObserver;
  23. import java.awt.image.ImageProducer;
  24. import java.awt.peer.ComponentPeer;
  25. import sun.awt.ScreenUpdater;
  26. import sun.awt.UpdateClient;
  27.  
  28. public abstract class MComponentPeer extends MObjectPeer implements ComponentPeer, UpdateClient {
  29.    Component target;
  30.    int pData;
  31.    int pInternationalData;
  32.    boolean repaintPending;
  33.    Rectangle repaintRect;
  34.    int mOwnerPane;
  35.    int mFont;
  36.    int mSize;
  37.    int mStyle;
  38.    Color mForeColor;
  39.    Color mBackColor;
  40.    boolean mRecalculateClip;
  41.    boolean mIsContainer;
  42.    boolean mIsButton;
  43.    boolean mIsChoice;
  44.    boolean mIsResizableFrame;
  45.    int mObscuredRgn;
  46.    int mClipRgn;
  47.  
  48.    MComponentPeer(Component var1) {
  49.       this.target = var1;
  50.       this.repaintRect = new Rectangle();
  51.       this.repaintPending = false;
  52.       Container var2 = var1.getParent();
  53.       MComponentPeer var3 = (MComponentPeer)MToolkit.targetToPeer(var2);
  54.       this.setup();
  55.       this.create(var3);
  56.       this.initialize();
  57.    }
  58.  
  59.    abstract void create(MComponentPeer var1);
  60.  
  61.    void create(MComponentPeer var1, Object var2) {
  62.       this.create(var1);
  63.    }
  64.  
  65.    void setup() {
  66.       this.mForeColor = new Color(0, 0, 0);
  67.       this.mBackColor = new Color(192, 192, 192);
  68.       this.pSetup();
  69.    }
  70.  
  71.    void initialize() {
  72.       Rectangle var1 = this.target.bounds();
  73.       this.reshape(var1.x, var1.y, var1.width, var1.height);
  74.       if (this.target.isVisible()) {
  75.          this.show();
  76.       } else {
  77.          this.hide();
  78.       }
  79.  
  80.       Color var2;
  81.       if ((var2 = this.target.getForeground()) != null) {
  82.          this.setForeground(var2);
  83.       }
  84.  
  85.       if ((var2 = this.target.getBackground()) != null) {
  86.          this.setBackground(var2);
  87.       }
  88.  
  89.       Font var3;
  90.       if ((var3 = this.target.getFont()) != null) {
  91.          this.setFont(var3);
  92.       }
  93.  
  94.    }
  95.  
  96.    public void dispose() {
  97.       MToolkit.targetDisposedPeer(this.target, this);
  98.       ScreenUpdater.updater.removeClient(this);
  99.       this.pDispose();
  100.    }
  101.  
  102.    public ColorModel getColorModel() {
  103.       return MToolkit.getStaticColorModel();
  104.    }
  105.  
  106.    public Toolkit getToolkit() {
  107.       return Toolkit.getDefaultToolkit();
  108.    }
  109.  
  110.    public Graphics getGraphics() {
  111.       MacGraphics var1 = new MacGraphics(this);
  112.       ((Graphics)var1).setColor(this.target.getForeground());
  113.       ((Graphics)var1).setFont(this.target.getFont());
  114.       return var1;
  115.    }
  116.  
  117.    public FontMetrics getFontMetrics(Font var1) {
  118.       return MacFontMetrics.getFontMetrics(var1);
  119.    }
  120.  
  121.    public void setVisible(boolean var1) {
  122.       if (var1) {
  123.          this.show();
  124.       } else {
  125.          this.hide();
  126.       }
  127.    }
  128.  
  129.    public void show() {
  130.       this.pShow();
  131.    }
  132.  
  133.    public void hide() {
  134.       this.pHide();
  135.    }
  136.  
  137.    public void setEnabled(boolean var1) {
  138.       if (var1) {
  139.          this.enable();
  140.       } else {
  141.          this.disable();
  142.       }
  143.    }
  144.  
  145.    public void enable() {
  146.       this.pEnable();
  147.    }
  148.  
  149.    public void disable() {
  150.       this.pDisable();
  151.    }
  152.  
  153.    public void paint(Graphics var1) {
  154.       var1.setColor(this.target.getForeground());
  155.       var1.setFont(this.target.getFont());
  156.       this.target.paint(var1);
  157.    }
  158.  
  159.    public void repaint(long var1, int var3, int var4, int var5, int var6) {
  160.       this.addRepaintArea(var3, var4, var5, var6);
  161.       ScreenUpdater.updater.notify(this, var1);
  162.    }
  163.  
  164.    public void updateClient(Object var1) {
  165.       Rectangle var2 = null;
  166.       synchronized(this){}
  167.  
  168.       try {
  169.          if (this.repaintPending) {
  170.             var2 = this.repaintRect;
  171.             this.repaintPending = false;
  172.          }
  173.       } catch (Throwable var5) {
  174.          throw var5;
  175.       }
  176.  
  177.       if (var2 != null) {
  178.          MToolkit.postEvent(new PaintEvent(this.target, 801, var2));
  179.       }
  180.  
  181.    }
  182.  
  183.    private synchronized void addRepaintArea(int var1, int var2, int var3, int var4) {
  184.       if (!this.repaintPending) {
  185.          this.repaintPending = true;
  186.          this.repaintRect = new Rectangle(var1, var2, var3, var4);
  187.       } else {
  188.          this.repaintRect = this.repaintRect.union(new Rectangle(var1, var2, var3, var4));
  189.       }
  190.    }
  191.  
  192.    public void print(Graphics var1) {
  193.       Dimension var2 = this.target.size();
  194.       var1.setColor(this.target.getForeground());
  195.       var1.setFont(this.target.getFont());
  196.       var1.drawRect(0, 0, var2.width - 1, var2.height - 1);
  197.       this.target.print(var1);
  198.    }
  199.  
  200.    public void reshape(int var1, int var2, int var3, int var4) {
  201.       this.pReshape(var1, var2, var3, var4);
  202.    }
  203.  
  204.    public native void pSetForeground(Color var1);
  205.  
  206.    public synchronized void setForeground(Color var1) {
  207.       if (var1 instanceof SystemColor) {
  208.          var1 = new Color(var1.getRGB());
  209.       }
  210.  
  211.       this.pSetForeground(var1);
  212.    }
  213.  
  214.    public native void pSetBackground(Color var1);
  215.  
  216.    public synchronized void setBackground(Color var1) {
  217.       if (var1 instanceof SystemColor) {
  218.          var1 = new Color(var1.getRGB());
  219.       }
  220.  
  221.       this.pSetBackground(var1);
  222.    }
  223.  
  224.    public native void setFont(Font var1);
  225.  
  226.    public native void setCursor(Cursor var1);
  227.  
  228.    public native void handleEvent(AWTEvent var1);
  229.  
  230.    public Image createImage(ImageProducer var1) {
  231.       return new MacImage(var1);
  232.    }
  233.  
  234.    public Image createImage(int var1, int var2) {
  235.       return new MacImage(this.target, var1, var2);
  236.    }
  237.  
  238.    public boolean prepareImage(Image var1, int var2, int var3, ImageObserver var4) {
  239.       return MToolkit.prepareScrImage(var1, var2, var3, var4);
  240.    }
  241.  
  242.    public int checkImage(Image var1, int var2, int var3, ImageObserver var4) {
  243.       return MToolkit.checkScrImage(var1, var2, var3, var4);
  244.    }
  245.  
  246.    public void setBounds(int var1, int var2, int var3, int var4) {
  247.       this.reshape(var1, var2, var3, var4);
  248.    }
  249.  
  250.    public native Point getLocationOnScreen();
  251.  
  252.    public Dimension getPreferredSize() {
  253.       return this.preferredSize();
  254.    }
  255.  
  256.    public Dimension getMinimumSize() {
  257.       return this.minimumSize();
  258.    }
  259.  
  260.    public Dimension minimumSize() {
  261.       return this.target.size();
  262.    }
  263.  
  264.    public Dimension preferredSize() {
  265.       return this.minimumSize();
  266.    }
  267.  
  268.    public native void requestFocus();
  269.  
  270.    protected void gotFocus() {
  271.       MToolkit.postEvent(new FocusEvent(this.target, 1004));
  272.    }
  273.  
  274.    protected void lostFocus() {
  275.       MToolkit.postEvent(new FocusEvent(this.target, 1005));
  276.    }
  277.  
  278.    public boolean isFocusTraversable() {
  279.       return false;
  280.    }
  281.  
  282.    private native void pSetup();
  283.  
  284.    private native void pShow();
  285.  
  286.    private native void pHide();
  287.  
  288.    private native void pEnable();
  289.  
  290.    private native void pDisable();
  291.  
  292.    private native void pPrint(Graphics var1);
  293.  
  294.    private native void pReshape(int var1, int var2, int var3, int var4);
  295.  
  296.    private native void pRepaint(long var1, int var3, int var4, int var5, int var6);
  297.  
  298.    private native void pDispose();
  299.  
  300.    public void finalize() {
  301.       this.dispose();
  302.    }
  303.  
  304.    void handleExpose() {
  305.       Graphics var1 = this.getGraphics();
  306.  
  307.       try {
  308.          var1.clearRect(0, 0, this.target.getSize().width, this.target.getSize().height);
  309.       } catch (NullPointerException var2) {
  310.       }
  311.  
  312.       MToolkit.postEvent(new PaintEvent(this.target, 800, new Rectangle(0, 0, this.target.getSize().width, this.target.getSize().height)));
  313.    }
  314.  
  315.    void handleRepaint(int var1, int var2, int var3, int var4) {
  316.    }
  317.  
  318.    public static int modifiersToJavaFlags(int var0) {
  319.       int var1 = 0;
  320.       if ((var0 & 256) != 0) {
  321.          var1 |= 4;
  322.       }
  323.  
  324.       if ((var0 & 512) != 0) {
  325.          var1 |= 1;
  326.       }
  327.  
  328.       if ((var0 & 2048) != 0) {
  329.          var1 |= 8;
  330.       }
  331.  
  332.       if ((var0 & 4096) != 0) {
  333.          var1 |= 2;
  334.       }
  335.  
  336.       return var1;
  337.    }
  338.  
  339.    protected void handleKeyEvent(int var1, int var2, int var3, int var4, int var5, boolean var6, int var7) {
  340.       long var8 = 0L;
  341.       int var10 = modifiersToJavaFlags(var5);
  342.       char var13 = (char)var4;
  343.       var8 = System.currentTimeMillis();
  344.       short var11;
  345.       if (var6) {
  346.          var11 = 401;
  347.       } else {
  348.          var11 = 402;
  349.       }
  350.  
  351.       KeyEvent var14 = new KeyEvent(this.target, var11, var8, var10, var3, var13);
  352.       MToolkit.addNativeEventInfo(var14, var7);
  353.       MToolkit.postEvent(var14);
  354.       if (var6 && var13 != 0) {
  355.          var11 = 400;
  356.          var14 = new KeyEvent(this.target, var11, var8, var10, 0, var13);
  357.          MToolkit.addNativeEventInfo(var14, var7);
  358.          MToolkit.postEvent(var14);
  359.       }
  360.  
  361.    }
  362.  
  363.    protected void handleMouseChanged(int var1, int var2, int var3, int var4, boolean var5, int var6) {
  364.       long var7 = System.currentTimeMillis();
  365.       int var9 = modifiersToJavaFlags(var3);
  366.       short var10;
  367.       if (var5) {
  368.          var10 = 501;
  369.       } else {
  370.          var10 = 502;
  371.       }
  372.  
  373.       MouseEvent var11 = new MouseEvent(this.target, var10, var7, var9, var1, var2, var4, true);
  374.       MToolkit.addNativeEventInfo(var11, var6);
  375.       MToolkit.postEvent(var11);
  376.    }
  377.  
  378.    protected void handleMouseClicked(int var1, int var2, int var3, int var4, int var5) {
  379.       long var6 = System.currentTimeMillis();
  380.       int var8 = modifiersToJavaFlags(var3);
  381.       MouseEvent var9 = new MouseEvent(this.target, 500, var6, var8, var1, var2, var4, false);
  382.       MToolkit.addNativeEventInfo(var9, var5);
  383.       MToolkit.postEvent(var9);
  384.    }
  385.  
  386.    protected void handleMouseMoved(int var1, int var2, int var3, boolean var4) {
  387.       long var5 = System.currentTimeMillis();
  388.       int var7 = modifiersToJavaFlags(var3);
  389.       short var8;
  390.       if (var4) {
  391.          var8 = 506;
  392.       } else {
  393.          var8 = 503;
  394.       }
  395.  
  396.       MouseEvent var9 = new MouseEvent(this.target, var8, var5, var7, var1, var2, 0, false);
  397.       MToolkit.postEvent(var9);
  398.    }
  399.  
  400.    protected void handleMouseEnter(int var1, int var2, int var3) {
  401.       long var4 = System.currentTimeMillis();
  402.       int var6 = modifiersToJavaFlags(var3);
  403.       MouseEvent var7 = new MouseEvent(this.target, 504, var4, var6, var1, var2, 0, false);
  404.       MToolkit.postEvent(var7);
  405.    }
  406.  
  407.    protected void handleMouseExit(int var1, int var2, int var3) {
  408.       long var4 = System.currentTimeMillis();
  409.       int var6 = modifiersToJavaFlags(var3);
  410.       MouseEvent var7 = new MouseEvent(this.target, 505, var4, var6, var1, var2, 0, false);
  411.       MToolkit.postEvent(var7);
  412.    }
  413. }
  414.