home *** CD-ROM | disk | FTP | other *** search
- package sun.awt.motif;
-
- import java.awt.AWTEvent;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Cursor;
- import java.awt.Dimension;
- import java.awt.Font;
- import java.awt.FontMetrics;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.awt.Point;
- import java.awt.Rectangle;
- import java.awt.ScrollPane;
- import java.awt.Toolkit;
- import java.awt.event.PaintEvent;
- import java.awt.image.ColorModel;
- import java.awt.image.ImageObserver;
- import java.awt.image.ImageProducer;
- import java.awt.peer.ComponentPeer;
- import java.awt.peer.LightweightPeer;
- import sun.awt.ObjectPeer;
- import sun.awt.ScreenUpdater;
- import sun.awt.UpdateClient;
-
- public abstract class MComponentPeer extends ObjectPeer implements ComponentPeer, UpdateClient {
- Component target;
- int pData;
- int cursorSet;
-
- abstract void create(MComponentPeer var1);
-
- void create(MComponentPeer var1, Object var2) {
- this.create(var1);
- }
-
- native void pInitialize();
-
- native void pShow();
-
- native void pHide();
-
- native void pEnable();
-
- native void pDisable();
-
- native void pReshape(int var1, int var2, int var3, int var4);
-
- native void pAddRepaint(int var1, int var2, int var3, int var4);
-
- native void pTriggerRepaint();
-
- native void pDispose();
-
- native void pMakeCursorVisible();
-
- native Point pGetLocationOnScreen();
-
- void initialize() {
- if (!this.target.isVisible()) {
- this.hide();
- }
-
- this.pInitialize();
- Color var1;
- if ((var1 = this.target.getForeground()) != null) {
- this.setForeground(var1);
- }
-
- if ((var1 = this.target.getBackground()) != null) {
- this.setBackground(var1);
- }
-
- Font var2;
- if ((var2 = this.target.getFont()) != null) {
- this.setFont(var2);
- }
-
- Cursor var3;
- if ((var3 = this.target.getCursor()) == null) {
- var3 = Cursor.getPredefinedCursor(0);
- }
-
- this.setCursor(var3);
- if (var3.getType() == 0) {
- this.cursorSet = 1;
- }
-
- if (!this.target.isEnabled()) {
- this.disable();
- }
-
- Rectangle var4 = this.target.getBounds();
- this.reshape(var4.x, var4.y, var4.width, var4.height);
- if (this.target.isVisible()) {
- this.show();
- }
-
- }
-
- MComponentPeer(Component var1, Object var2) {
- this.target = var1;
- Container var3 = MToolkit.getNativeContainer(var1);
- MComponentPeer var4 = (MComponentPeer)MToolkit.targetToPeer(var3);
- this.create(var4, var2);
- this.initialize();
- }
-
- MComponentPeer(Component var1) {
- this.target = var1;
- Container var2 = MToolkit.getNativeContainer(var1);
- MComponentPeer var3 = (MComponentPeer)MToolkit.targetToPeer(var2);
- this.create(var3);
- if (var2 != null && var2 instanceof ScrollPane) {
- MScrollPanePeer var4 = (MScrollPanePeer)var3;
- var4.setScrollChild(this);
- }
-
- this.initialize();
- }
-
- public native void setForeground(Color var1);
-
- public native void setBackground(Color var1);
-
- public native void setFont(Font var1);
-
- public native void setCursor(Cursor var1);
-
- public boolean isFocusTraversable() {
- return false;
- }
-
- public ColorModel getColorModel() {
- return MToolkit.getStaticColorModel();
- }
-
- public int updatePriority() {
- return 5;
- }
-
- public void updateClient(Object var1) {
- this.pTriggerRepaint();
- }
-
- public void repaint(long var1, int var3, int var4, int var5, int var6) {
- this.pAddRepaint(var3, var4, var5, var6);
- ScreenUpdater.updater.notify(this, var1);
- }
-
- public void paint(Graphics var1) {
- var1.setColor(this.target.getForeground());
- var1.setFont(this.target.getFont());
- this.target.paint(var1);
- }
-
- public void update(Graphics var1) {
- var1.setColor(this.target.getForeground());
- var1.setFont(this.target.getFont());
- this.target.update(var1);
- }
-
- public void print(Graphics var1) {
- Dimension var2 = this.target.getSize();
- Color var3 = this.target.getBackground();
- Color var4 = this.target.getForeground();
- var1.setColor(var3);
- var1.fillRect(0, 0, var2.width, var2.height);
- var1.setColor(var4);
- var1.setFont(this.target.getFont());
- this.target.print(var1);
- }
-
- public native void handleEvent(AWTEvent var1);
-
- public Dimension getMinimumSize() {
- return this.target.getSize();
- }
-
- public Dimension getPreferredSize() {
- return this.getMinimumSize();
- }
-
- public Toolkit getToolkit() {
- return Toolkit.getDefaultToolkit();
- }
-
- public Graphics getGraphics() {
- X11Graphics var1 = new X11Graphics(this);
- ((Graphics)var1).setColor(this.target.getForeground());
- ((Graphics)var1).setFont(this.target.getFont());
- return var1;
- }
-
- public Image createImage(ImageProducer var1) {
- return new X11Image(var1);
- }
-
- public Image createImage(int var1, int var2) {
- return new X11OffScreenImage(this.target, var1, var2);
- }
-
- public boolean prepareImage(Image var1, int var2, int var3, ImageObserver var4) {
- return MToolkit.prepareScrImage(var1, var2, var3, var4);
- }
-
- public int checkImage(Image var1, int var2, int var3, ImageObserver var4) {
- return MToolkit.checkScrImage(var1, var2, var3, var4);
- }
-
- public FontMetrics getFontMetrics(Font var1) {
- return X11FontMetrics.getFontMetrics(var1);
- }
-
- public void dispose() {
- ScreenUpdater.updater.removeClient(this);
- MToolkit.targetDisposedPeer(this.target, this);
- this.pDispose();
- }
-
- public native void requestFocus();
-
- void postEvent(AWTEvent var1) {
- MToolkit.postEvent(var1);
- }
-
- void handleExpose(int var1, int var2, int var3, int var4) {
- this.postEvent(new PaintEvent(this.target, 800, new Rectangle(var1, var2, var3, var4)));
- }
-
- void handleRepaint(int var1, int var2, int var3, int var4) {
- this.postEvent(new PaintEvent(this.target, 801, new Rectangle(var1, var2, var3, var4)));
- }
-
- public int getZOrderPosition() {
- Container var1 = this.target.getParent();
- if (var1 != null) {
- Component[] var2 = var1.getComponents();
- int var4 = 0;
-
- for(int var3 = 0; var3 < var2.length; ++var3) {
- if (var2[var3] == this.target) {
- return var4;
- }
-
- Object var5 = MToolkit.targetToPeer(var2[var3]);
- if (var5 != null && !(var5 instanceof LightweightPeer)) {
- ++var4;
- }
- }
- }
-
- return -1;
- }
-
- void draw3DOval(Graphics var1, Color var2, int var3, int var4, int var5, int var6, boolean var7) {
- Color var8 = var1.getColor();
- Color var9 = var2.darker();
- Color var10 = var2.brighter();
- var1.setColor(var7 ? var10 : var9);
- var1.drawArc(var3, var4, var5, var6, 45, 180);
- var1.setColor(var7 ? var9 : var10);
- var1.drawArc(var3, var4, var5, var6, 225, 180);
- var1.setColor(var8);
- }
-
- void draw3DRect(Graphics var1, Color var2, int var3, int var4, int var5, int var6, boolean var7) {
- Color var8 = var1.getColor();
- Color var9 = var2.darker();
- Color var10 = var2.brighter();
- var1.setColor(var7 ? var10 : var9);
- var1.drawLine(var3, var4, var3, var4 + var6);
- var1.drawLine(var3 + 1, var4, var3 + var5 - 1, var4);
- var1.setColor(var7 ? var9 : var10);
- var1.drawLine(var3 + 1, var4 + var6, var3 + var5, var4 + var6);
- var1.drawLine(var3 + var5, var4, var3 + var5, var4 + var6 - 1);
- var1.setColor(var8);
- }
-
- void drawScrollbar(Graphics var1, Color var2, int var3, int var4, int var5, int var6, int var7, int var8, boolean var9) {
- Color var10 = var1.getColor();
- double var11 = (double)(var4 - 2 * (var3 - 1)) / (double)Math.max(1, var6 - var5 + var8);
- int var13 = var3 + (int)(var11 * (double)(var7 - var5));
- int var14 = (int)(var11 * (double)var8);
- int var15 = var3 - 4;
- int[] var16 = new int[3];
- int[] var17 = new int[3];
- if (var4 < 3 * var15) {
- var14 = 0;
- var13 = 0;
- if (var4 < 2 * var15 + 2) {
- var15 = (var4 - 2) / 2;
- }
- } else if (var14 < 7) {
- var13 = Math.max(0, var13 - (7 - var14 >> 1));
- var14 = 7;
- }
-
- int var18 = var3 / 2;
- int var19 = var18 - var15 / 2;
- int var20 = var18 + var15 / 2;
- Color var21 = new Color((int)((double)var2.getRed() * 0.85), (int)((double)var2.getGreen() * 0.85), (int)((double)var2.getBlue() * 0.85));
- var1.setColor(var21);
- if (var9) {
- var1.fillRect(0, 0, var4, var3);
- } else {
- var1.fillRect(0, 0, var3, var4);
- }
-
- var1.setColor(var2);
- if (var13 > 0) {
- if (var9) {
- var1.fillRect(var13, 3, var14, var3 - 3);
- } else {
- var1.fillRect(3, var13, var3 - 3, var14);
- }
- }
-
- var16[0] = var18;
- var17[0] = 2;
- var16[1] = var19;
- var17[1] = var15;
- var16[2] = var20;
- var17[2] = var15;
- if (var9) {
- var1.fillPolygon(var17, var16, 3);
- } else {
- var1.fillPolygon(var16, var17, 3);
- }
-
- var17[0] = var4 - 2;
- var17[1] = var4 - var15;
- var17[2] = var4 - var15;
- if (var9) {
- var1.fillPolygon(var17, var16, 3);
- } else {
- var1.fillPolygon(var16, var17, 3);
- }
-
- Color var22 = var2.brighter();
- var1.setColor(var22);
- if (var9) {
- var1.drawLine(1, var3, var4 - 1, var3);
- var1.drawLine(var4 - 1, 1, var4 - 1, var3);
- var1.drawLine(1, var18, var15, var19);
- var1.drawLine(var4 - var15, var19, var4 - var15, var20);
- var1.drawLine(var4 - var15, var19, var4 - 2, var18);
- } else {
- var1.drawLine(var3, 1, var3, var4 - 1);
- var1.drawLine(1, var4 - 1, var3, var4 - 1);
- var1.drawLine(var18, 1, var19, var15);
- var1.drawLine(var19, var4 - var15, var20, var4 - var15);
- var1.drawLine(var19, var4 - var15, var18, var4 - 2);
- }
-
- if (var13 > 0) {
- if (var9) {
- var1.drawLine(var13, 2, var13 + var14, 2);
- var1.drawLine(var13, 2, var13, var3 - 3);
- } else {
- var1.drawLine(2, var13, 2, var13 + var14);
- var1.drawLine(2, var13, var3 - 3, var13);
- }
- }
-
- Color var23 = var2.darker();
- var1.setColor(var23);
- if (var9) {
- var1.drawLine(0, 0, 0, var3);
- var1.drawLine(0, 0, var4 - 1, 0);
- var1.drawLine(var15, var19, var15, var20);
- var1.drawLine(var15, var20, 1, var18);
- var1.drawLine(var4 - 2, var18, var4 - var15, var20);
- } else {
- var1.drawLine(0, 0, var3, 0);
- var1.drawLine(0, 0, 0, var4 - 1);
- var1.drawLine(var19, var15, var20, var15);
- var1.drawLine(var20, var15, var18, 1);
- var1.drawLine(var18, var4 - 2, var20, var4 - var15);
- }
-
- if (var13 > 0) {
- if (var9) {
- var1.drawLine(var13 + var14, 2, var13 + var14, var3 - 2);
- var1.drawLine(var13, var3 - 2, var13 + var14, var3 - 2);
- } else {
- var1.drawLine(2, var13 + var14, var3 - 2, var13 + var14);
- var1.drawLine(var3 - 2, var13, var3 - 2, var13 + var14);
- }
- }
-
- var1.setColor(var10);
- }
-
- public String toString() {
- return this.getClass().getName() + "[" + this.target + "]";
- }
-
- public void setVisible(boolean var1) {
- if (var1) {
- this.pShow();
- } else {
- this.pHide();
- }
- }
-
- public void setEnabled(boolean var1) {
- if (var1) {
- this.pEnable();
- } else {
- this.pDisable();
- }
- }
-
- public Point getLocationOnScreen() {
- return this.pGetLocationOnScreen();
- }
-
- public void setBounds(int var1, int var2, int var3, int var4) {
- Container var5 = this.target.getParent();
- this.pReshape(var1, var2, var3, var4);
- if (var5 != null && var5 instanceof ScrollPane) {
- MScrollPanePeer var6 = (MScrollPanePeer)((Component)var5).getPeer();
- var6.childResized(var3, var4);
- }
-
- }
-
- public void beginValidate() {
- }
-
- public void endValidate() {
- }
-
- public void show() {
- this.setVisible(true);
- }
-
- public void hide() {
- this.setVisible(false);
- }
-
- public void enable() {
- this.setEnabled(true);
- }
-
- public void disable() {
- this.setEnabled(false);
- }
-
- public void reshape(int var1, int var2, int var3, int var4) {
- this.setBounds(var1, var2, var3, var4);
- }
-
- public Dimension minimumSize() {
- return this.getMinimumSize();
- }
-
- public Dimension preferredSize() {
- return this.getPreferredSize();
- }
- }
-