39 import java.awt.Image;
40 import java.awt.Point;
41 import java.awt.Rectangle;
42 import java.awt.SystemColor;
43 import java.awt.Window;
44 import java.awt.dnd.DropTarget;
45 import java.awt.dnd.peer.DropTargetPeer;
46 import java.awt.event.FocusEvent;
47 import java.awt.event.InputEvent;
48 import java.awt.event.InvocationEvent;
49 import java.awt.event.KeyEvent;
50 import java.awt.event.MouseEvent;
51 import java.awt.event.MouseWheelEvent;
52 import java.awt.event.PaintEvent;
53 import java.awt.geom.AffineTransform;
54 import java.awt.image.BufferedImage;
55 import java.awt.image.ColorModel;
56 import java.awt.image.VolatileImage;
57 import java.awt.peer.ComponentPeer;
58 import java.awt.peer.ContainerPeer;
59
60 import sun.awt.AWTAccessor;
61 import sun.awt.PaintEventDispatcher;
62 import sun.awt.RepaintArea;
63 import sun.awt.SunToolkit;
64 import sun.awt.Win32GraphicsConfig;
65 import sun.awt.Win32GraphicsEnvironment;
66 import sun.awt.event.IgnorePaintEvent;
67 import sun.awt.image.SunVolatileImage;
68 import sun.java2d.InvalidPipeException;
69 import sun.java2d.ScreenUpdateManager;
70 import sun.java2d.SurfaceData;
71 import sun.java2d.d3d.D3DSurfaceData;
72 import sun.java2d.opengl.OGLSurfaceData;
73 import sun.java2d.pipe.Region;
74 import sun.util.logging.PlatformLogger;
75
76 public abstract class WComponentPeer extends WObjectPeer
77 implements ComponentPeer, DropTargetPeer
78 {
562 return gc.getDeviceColorModel();
563 }
564 else {
565 return null;
566 }
567 }
568
569 //Returns null for Components not yet added to a Container
570 public ColorModel getColorModel(int transparency) {
571 // return WToolkit.config.getColorModel(transparency);
572 GraphicsConfiguration gc = getGraphicsConfiguration();
573 if (gc != null) {
574 return gc.getColorModel(transparency);
575 }
576 else {
577 return null;
578 }
579 }
580
581 // fallback default font object
582 static final Font defaultFont = new Font(Font.DIALOG, Font.PLAIN, 12);
583
584 @Override
585 public Graphics getGraphics() {
586 if (isDisposed()) {
587 return null;
588 }
589
590 Component target = (Component)getTarget();
591 Window window = SunToolkit.getContainingWindow(target);
592 if (window != null) {
593 final WWindowPeer wpeer = AWTAccessor.getComponentAccessor()
594 .getPeer(window);
595 if (wpeer != null) {
596 Graphics g = wpeer.getTranslucentGraphics();
597 // getTranslucentGraphics() returns non-null value for non-opaque windows only
598 if (g != null) {
599 // Non-opaque windows do not support heavyweight children.
600 // Redirect all painting to the Window's Graphics instead.
601 // The caller is responsible for calling the
602 // WindowPeer.updateWindow() after painting has finished.
|
39 import java.awt.Image;
40 import java.awt.Point;
41 import java.awt.Rectangle;
42 import java.awt.SystemColor;
43 import java.awt.Window;
44 import java.awt.dnd.DropTarget;
45 import java.awt.dnd.peer.DropTargetPeer;
46 import java.awt.event.FocusEvent;
47 import java.awt.event.InputEvent;
48 import java.awt.event.InvocationEvent;
49 import java.awt.event.KeyEvent;
50 import java.awt.event.MouseEvent;
51 import java.awt.event.MouseWheelEvent;
52 import java.awt.event.PaintEvent;
53 import java.awt.geom.AffineTransform;
54 import java.awt.image.BufferedImage;
55 import java.awt.image.ColorModel;
56 import java.awt.image.VolatileImage;
57 import java.awt.peer.ComponentPeer;
58 import java.awt.peer.ContainerPeer;
59 import java.util.Objects;
60
61 import sun.awt.AWTAccessor;
62 import sun.awt.PaintEventDispatcher;
63 import sun.awt.RepaintArea;
64 import sun.awt.SunToolkit;
65 import sun.awt.Win32GraphicsConfig;
66 import sun.awt.Win32GraphicsEnvironment;
67 import sun.awt.event.IgnorePaintEvent;
68 import sun.awt.image.SunVolatileImage;
69 import sun.java2d.InvalidPipeException;
70 import sun.java2d.ScreenUpdateManager;
71 import sun.java2d.SurfaceData;
72 import sun.java2d.d3d.D3DSurfaceData;
73 import sun.java2d.opengl.OGLSurfaceData;
74 import sun.java2d.pipe.Region;
75 import sun.util.logging.PlatformLogger;
76
77 public abstract class WComponentPeer extends WObjectPeer
78 implements ComponentPeer, DropTargetPeer
79 {
563 return gc.getDeviceColorModel();
564 }
565 else {
566 return null;
567 }
568 }
569
570 //Returns null for Components not yet added to a Container
571 public ColorModel getColorModel(int transparency) {
572 // return WToolkit.config.getColorModel(transparency);
573 GraphicsConfiguration gc = getGraphicsConfiguration();
574 if (gc != null) {
575 return gc.getColorModel(transparency);
576 }
577 else {
578 return null;
579 }
580 }
581
582 // fallback default font object
583 static final Font defaultFont;
584
585 static {
586 defaultFont = new Font(Font.DIALOG, Font.PLAIN, 12);
587 Objects.requireNonNull(defaultFont, "default font must not be null");
588 }
589
590 @Override
591 public Graphics getGraphics() {
592 if (isDisposed()) {
593 return null;
594 }
595
596 Component target = (Component)getTarget();
597 Window window = SunToolkit.getContainingWindow(target);
598 if (window != null) {
599 final WWindowPeer wpeer = AWTAccessor.getComponentAccessor()
600 .getPeer(window);
601 if (wpeer != null) {
602 Graphics g = wpeer.getTranslucentGraphics();
603 // getTranslucentGraphics() returns non-null value for non-opaque windows only
604 if (g != null) {
605 // Non-opaque windows do not support heavyweight children.
606 // Redirect all painting to the Window's Graphics instead.
607 // The caller is responsible for calling the
608 // WindowPeer.updateWindow() after painting has finished.
|