home *** CD-ROM | disk | FTP | other *** search
- package sun.awt.windows;
-
- 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.GraphicsConfiguration;
- import java.awt.Image;
- import java.awt.Point;
- import java.awt.Rectangle;
- import java.awt.Toolkit;
- import java.awt.dnd.DropTarget;
- import java.awt.dnd.peer.DropTargetPeer;
- import java.awt.event.PaintEvent;
- import java.awt.image.BufferedImage;
- 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 java.security.AccessController;
- import sun.awt.DebugHelper;
- import sun.awt.RepaintArea;
- import sun.awt.ScreenUpdater;
- import sun.awt.SunToolkit;
- import sun.awt.UpdateClient;
- import sun.awt.Win32GraphicsConfig;
- import sun.awt.image.OffScreenImage;
- import sun.security.action.GetPropertyAction;
-
- abstract class WComponentPeer extends WObjectPeer implements ComponentPeer, UpdateClient, DropTargetPeer {
- private static final DebugHelper dbg;
- private boolean repaintPending;
- private Rectangle repaintRect;
- private RepaintArea paintArea;
- private RepaintArea updateArea;
- protected Win32GraphicsConfig winGraphicsConfig;
- int nDropTargets;
- int nativeDropTargetContext;
- public int serialNum = 0;
- private static final double BANDING_DIVISOR = (double)4.0F;
- private int updateX1;
- private int updateY1;
- private int updateX2;
- private int updateY2;
- private static final boolean isFocusFixEnabled;
- // $FF: synthetic field
- static Class class$sun$awt$windows$WComponentPeer;
-
- native GraphicsConfiguration getTargetGC();
-
- public synchronized native void show();
-
- public synchronized native void hide();
-
- public synchronized native void enable();
-
- public synchronized native void disable();
-
- public native Point getLocationOnScreen();
-
- public void setVisible(boolean var1) {
- if (var1) {
- this.show();
- } else {
- this.hide();
- }
-
- }
-
- public void setEnabled(boolean var1) {
- if (var1) {
- this.enable();
- } else {
- this.disable();
- }
-
- }
-
- public void setBounds(int var1, int var2, int var3, int var4) {
- this.reshape(var1, var2, var3, var4);
- ++this.serialNum;
- }
-
- void paintDamagedAreaImmediately() {
- this.updateWindow();
- WToolkit.getWToolkit().flushPendingEvents();
- this.paintArea.paint(super.target, this.shouldClearRectBeforePaint());
- }
-
- synchronized native void updateWindow();
-
- public void paint(Graphics var1) {
- ((Component)super.target).paint(var1);
- }
-
- public void repaint(long var1, int var3, int var4, int var5, int var6) {
- this.addRepaintArea(var3, var4, var5, var6);
- ScreenUpdater.updater.notify(this, var1);
- }
-
- private native int[] createPrintedPixels(int var1, int var2, int var3, int var4);
-
- public void print(Graphics var1) {
- Component var2 = (Component)super.target;
- if (var1 instanceof WGraphics) {
- ((WGraphics)var1).print(this);
- } else if (var1 instanceof WPrintGraphicsWrapper) {
- ((WGraphics)((WPrintGraphicsWrapper)var1).getTarget()).print(this);
- } else {
- int var3 = var2.getWidth();
- int var4 = var2.getHeight();
- int var5 = (int)((double)var4 / (double)4.0F);
-
- for(int var6 = 0; var6 < var4; var6 += var5) {
- int var7 = var6 + var5 - 1;
- if (var7 >= var4) {
- var7 = var4 - 1;
- }
-
- int var8 = var7 - var6 + 1;
- int[] var9 = this.createPrintedPixels(0, var6, var3, var8);
- if (var9 != null) {
- BufferedImage var10 = new BufferedImage(var3, var8, 1);
- var10.setRGB(0, 0, var3, var8, var9, 0, var3);
- var1.drawImage(var10, 0, var6, (ImageObserver)null);
- var10.flush();
- }
- }
- }
-
- var2.print(var1);
- }
-
- public void coalescePaintEvent(PaintEvent var1) {
- Rectangle var2 = var1.getUpdateRect();
- int var3 = ((AWTEvent)var1).getID();
- switch (var3) {
- case 800:
- this.paintArea.add(var2);
- return;
- case 801:
- this.updateArea.add(var2);
- return;
- default:
- }
- }
-
- public synchronized native void reshape(int var1, int var2, int var3, int var4);
-
- native void nativeHandleEvent(AWTEvent var1);
-
- public void handleEvent(AWTEvent var1) {
- int var2 = var1.getID();
- switch (var2) {
- case 800:
- this.paintArea.paint(super.target, this.shouldClearRectBeforePaint());
- return;
- case 801:
- this.updateArea.update(super.target);
- return;
- default:
- this.nativeHandleEvent(var1);
- }
- }
-
- public boolean shouldClearRectBeforePaint() {
- return true;
- }
-
- public Dimension getMinimumSize() {
- return ((Component)super.target).getSize();
- }
-
- public Dimension getPreferredSize() {
- return this.getMinimumSize();
- }
-
- public boolean isFocusTraversable() {
- return false;
- }
-
- public GraphicsConfiguration getGraphicsConfiguration() {
- Object var1 = ((Component)super.target).getTreeLock();
- synchronized(var1) {
- if (this.winGraphicsConfig != null) {
- Win32GraphicsConfig var5 = this.winGraphicsConfig;
- return var5;
- } else {
- GraphicsConfiguration var2 = ((Component)super.target).getGraphicsConfiguration();
- return var2;
- }
- }
- }
-
- protected void initNonDefaultGC() {
- }
-
- void resetLocalGC() {
- Object var1 = ((Component)super.target).getTreeLock();
- synchronized(var1) {
- this.winGraphicsConfig = null;
- }
- }
-
- public ColorModel getColorModel() {
- GraphicsConfiguration var1 = this.getGraphicsConfiguration();
- return var1 != null ? var1.getColorModel() : null;
- }
-
- public ColorModel getColorModel(int var1) {
- GraphicsConfiguration var2 = this.getGraphicsConfiguration();
- return var2 != null ? var2.getColorModel(var1) : null;
- }
-
- public Toolkit getToolkit() {
- return Toolkit.getDefaultToolkit();
- }
-
- public synchronized Graphics getGraphics() {
- if (!((WObjectPeer)this).isDisposed()) {
- WGraphics var1 = new WGraphics(this);
- ((Graphics)var1).setColor(((Component)super.target).getForeground());
- ((Graphics)var1).setFont(((Component)super.target).getFont());
- return var1;
- } else {
- return null;
- }
- }
-
- public FontMetrics getFontMetrics(Font var1) {
- return WFontMetrics.getFontMetrics(var1);
- }
-
- private synchronized native void _dispose();
-
- protected void disposeImpl() {
- ScreenUpdater.updater.removeClient(this);
- WToolkit.targetDisposedPeer(super.target, this);
- this._dispose();
- }
-
- public synchronized void setForeground(Color var1) {
- this._setForeground(var1.getRGB());
- }
-
- public synchronized void setBackground(Color var1) {
- this._setBackground(var1.getRGB());
- }
-
- public native void _setForeground(int var1);
-
- public native void _setBackground(int var1);
-
- public synchronized native void setFont(Font var1);
-
- public synchronized native void pRequestFocus();
-
- public synchronized void requestFocus() {
- WWindowPeer.cancelFocusOnActivate((Component)super.target);
- this.pRequestFocus();
- }
-
- public final void setCursor(Cursor var1) {
- }
-
- public Image createImage(ImageProducer var1) {
- return new WImage(var1);
- }
-
- public Image createImage(int var1, int var2) {
- ColorModel var3 = this.getColorModel(1);
- return new OffScreenImage((Component)super.target, var3, var3.createCompatibleWritableRaster(var1, var2), var3.isAlphaPremultiplied());
- }
-
- public boolean prepareImage(Image var1, int var2, int var3, ImageObserver var4) {
- return WToolkit.prepareScrImage(var1, var2, var3, var4);
- }
-
- public int checkImage(Image var1, int var2, int var3, ImageObserver var4) {
- return WToolkit.checkScrImage(var1, var2, var3, var4);
- }
-
- public void updateClient(Object var1) {
- Rectangle var2 = null;
- synchronized(this) {
- if (this.repaintPending) {
- var2 = this.repaintRect;
- this.repaintPending = false;
- }
- }
-
- if (var2 != null) {
- this.postEvent(new PaintEvent((Component)super.target, 801, var2));
- }
-
- }
-
- public String toString() {
- return this.getClass().getName() + "[" + super.target + "]";
- }
-
- WComponentPeer(Component var1) {
- super.target = var1;
- this.repaintRect = new Rectangle();
- this.repaintPending = false;
- this.paintArea = new RepaintArea();
- this.updateArea = new RepaintArea();
- Container var2 = SunToolkit.getNativeContainer(var1);
- WComponentPeer var3 = (WComponentPeer)WToolkit.targetToPeer(var2);
- this.create(var3);
- this.initialize();
- this.start();
- this.initNonDefaultGC();
- }
-
- abstract void create(WComponentPeer var1);
-
- synchronized native void start();
-
- void initialize() {
- this.initZOrderPosition();
- if (((Component)super.target).isVisible()) {
- this.show();
- }
-
- Color var1 = ((Component)super.target).getForeground();
- if (var1 != null) {
- this.setForeground(var1);
- }
-
- Font var2 = ((Component)super.target).getFont();
- if (var2 != null) {
- this.setFont(var2);
- }
-
- if (!((Component)super.target).isEnabled()) {
- this.disable();
- }
-
- Rectangle var3 = ((Component)super.target).getBounds();
- this.setBounds(var3.x, var3.y, var3.width, var3.height);
- }
-
- private synchronized void addRepaintArea(int var1, int var2, int var3, int var4) {
- if (!this.repaintPending) {
- this.repaintPending = true;
- this.repaintRect = new Rectangle(var1, var2, var3, var4);
- } else {
- this.repaintRect = this.repaintRect.union(new Rectangle(var1, var2, var3, var4));
- }
-
- }
-
- void handleRepaint(int var1, int var2, int var3, int var4) {
- }
-
- void handleExpose(int var1, int var2, int var3, int var4) {
- this.postEvent(new PaintEvent((Component)super.target, 800, new Rectangle(var1, var2, var3, var4)));
- }
-
- void handlePaint(int var1, int var2, int var3, int var4) {
- this.postEvent(new PaintEvent((Component)super.target, 800, new Rectangle(var1, var2, var3, var4)));
- }
-
- void postEvent(AWTEvent var1) {
- SunToolkit.postEvent(SunToolkit.targetToAppContext(super.target), var1);
- }
-
- public void beginValidate() {
- this._beginValidate();
- }
-
- public native void _beginValidate();
-
- public native void endValidate();
-
- public void initZOrderPosition() {
- Container var1 = ((Component)super.target).getParent();
- WComponentPeer var2 = null;
- if (var1 != null) {
- Component[] var3 = var1.getComponents();
-
- for(int var4 = 0; var4 < var3.length && var3[var4] != super.target; ++var4) {
- Object var5 = WToolkit.targetToPeer(var3[var4]);
- if (var5 != null && !(var5 instanceof LightweightPeer)) {
- var2 = (WComponentPeer)var5;
- }
- }
- }
-
- this.setZOrderPosition(var2);
- }
-
- native void setZOrderPosition(WComponentPeer var1);
-
- public Dimension minimumSize() {
- return this.getMinimumSize();
- }
-
- public Dimension preferredSize() {
- return this.getPreferredSize();
- }
-
- public synchronized void addDropTarget(DropTarget var1) {
- if (this.nDropTargets == 0) {
- this.nativeDropTargetContext = this.addNativeDropTarget();
- }
-
- ++this.nDropTargets;
- }
-
- public synchronized void removeDropTarget(DropTarget var1) {
- --this.nDropTargets;
- if (this.nDropTargets == 0) {
- this.removeNativeDropTarget();
- this.nativeDropTargetContext = 0;
- }
-
- }
-
- native int addNativeDropTarget();
-
- native void removeNativeDropTarget();
-
- // $FF: synthetic method
- static Class class$(String var0) {
- try {
- return Class.forName(var0);
- } catch (ClassNotFoundException var2) {
- throw new NoClassDefFoundError(((Throwable)var2).getMessage());
- }
- }
-
- static {
- dbg = DebugHelper.create(class$sun$awt$windows$WComponentPeer == null ? (class$sun$awt$windows$WComponentPeer = class$("sun.awt.windows.WComponentPeer")) : class$sun$awt$windows$WComponentPeer);
- isFocusFixEnabled = AccessController.doPrivileged(new GetPropertyAction("sun.awt.activationFocusFix", "")).equals("true");
- }
- }
-