< prev index next >
src/java.desktop/windows/classes/sun/awt/windows/WTrayIconPeer.java
Print this page
*** 26,45 ****
--- 26,48 ----
package sun.awt.windows;
import java.awt.Graphics2D;
import java.awt.AWTEvent;
import java.awt.Frame;
+ import java.awt.GraphicsEnvironment;
import java.awt.PopupMenu;
import java.awt.Point;
import java.awt.TrayIcon;
import java.awt.Image;
+ import java.awt.geom.AffineTransform;
import java.awt.peer.TrayIconPeer;
import java.awt.image.*;
import sun.awt.AWTAccessor;
import sun.awt.SunToolkit;
import sun.awt.image.IntegerComponentRaster;
+ import sun.java2d.pipe.Region;
final class WTrayIconPeer extends WObjectPeer implements TrayIconPeer {
static final int TRAY_ICON_WIDTH = 16;
static final int TRAY_ICON_HEIGHT = 16;
static final int TRAY_ICON_MASK_SIZE = (TRAY_ICON_WIDTH * TRAY_ICON_HEIGHT) / 8;
*** 121,140 ****
synchronized void updateNativeImage(Image image) {
if (isDisposed())
return;
boolean autosize = ((TrayIcon)target).isImageAutoSize();
!
! BufferedImage bufImage = new BufferedImage(TRAY_ICON_WIDTH, TRAY_ICON_HEIGHT,
! BufferedImage.TYPE_INT_ARGB);
Graphics2D gr = bufImage.createGraphics();
if (gr != null) {
try {
gr.setPaintMode();
! gr.drawImage(image, 0, 0, (autosize ? TRAY_ICON_WIDTH : image.getWidth(observer)),
! (autosize ? TRAY_ICON_HEIGHT : image.getHeight(observer)), observer);
createNativeImage(bufImage);
updateNativeIcon(!firstUpdate);
if (firstUpdate) firstUpdate = false;
--- 124,149 ----
synchronized void updateNativeImage(Image image) {
if (isDisposed())
return;
boolean autosize = ((TrayIcon)target).isImageAutoSize();
! AffineTransform tx = GraphicsEnvironment.getLocalGraphicsEnvironment().
! getDefaultScreenDevice().getDefaultConfiguration().
! getDefaultTransform();
! int w = Region.clipScale(TRAY_ICON_WIDTH, tx.getScaleX());
! int h = Region.clipScale(TRAY_ICON_HEIGHT, tx.getScaleY());
! int imgWidth = Region.clipScale(image.getWidth(observer), tx.getScaleX());
! int imgHeight = Region.clipScale(image.getHeight(observer), tx.getScaleY());
! BufferedImage bufImage = new BufferedImage(w,
! h, BufferedImage.TYPE_INT_ARGB);
Graphics2D gr = bufImage.createGraphics();
if (gr != null) {
try {
gr.setPaintMode();
! gr.drawImage(image, 0, 0, (autosize ? w : imgWidth),
! (autosize ? h : imgHeight), observer);
createNativeImage(bufImage);
updateNativeIcon(!firstUpdate);
if (firstUpdate) firstUpdate = false;
< prev index next >