43 import sun.java2d.d3d.D3DRenderQueue;
44 import sun.java2d.opengl.OGLRenderQueue;
45
46 import sun.print.PrintJob2D;
47
48 import java.awt.dnd.DragSource;
49 import java.awt.dnd.DragGestureListener;
50 import java.awt.dnd.DragGestureEvent;
51 import java.awt.dnd.DragGestureRecognizer;
52 import java.awt.dnd.MouseDragGestureRecognizer;
53 import java.awt.dnd.InvalidDnDOperationException;
54 import java.awt.dnd.peer.DragSourceContextPeer;
55
56 import java.util.Hashtable;
57 import java.util.Locale;
58 import java.util.Map;
59 import java.util.Properties;
60
61 import java.util.logging.*;
62
63 import sun.misc.PerformanceLogger;
64
65 public class WToolkit extends SunToolkit implements Runnable {
66
67 private static final Logger log = Logger.getLogger("sun.awt.windows.WToolkit");
68
69 static GraphicsConfiguration config;
70
71 // System clipboard.
72 WClipboard clipboard;
73
74 // cache of font peers
75 private Hashtable cacheFontPeer;
76
77 // Windows properties
78 private WDesktopProperties wprops;
79
80 // Dynamic Layout Resize client code setting
81 protected boolean dynamicLayoutSetting = false;
82
555 public ColorModel getColorModel() {
556 return getStaticColorModel();
557 }
558
559 public Insets getScreenInsets(GraphicsConfiguration gc)
560 {
561 return getScreenInsets(((Win32GraphicsDevice) gc.getDevice()).getScreen());
562 }
563
564 public int getScreenResolution() {
565 Win32GraphicsEnvironment ge = (Win32GraphicsEnvironment)
566 GraphicsEnvironment.getLocalGraphicsEnvironment();
567 return ge.getXResolution();
568 }
569 protected native int getScreenWidth();
570 protected native int getScreenHeight();
571 protected native Insets getScreenInsets(int screen);
572
573
574 public FontMetrics getFontMetrics(Font font) {
575 // REMIND: platform font flag should be removed post-merlin.
576 if (sun.font.FontManager.usePlatformFontMetrics()) {
577 return WFontMetrics.getFontMetrics(font);
578 }
579 return super.getFontMetrics(font);
580 }
581
582 public FontPeer getFontPeer(String name, int style) {
583 FontPeer retval = null;
584 String lcName = name.toLowerCase();
585 if (null != cacheFontPeer) {
586 retval = (FontPeer)cacheFontPeer.get(lcName + style);
587 if (null != retval) {
588 return retval;
589 }
590 }
591 retval = new WFontPeer(name, style);
592 if (retval != null) {
593 if (null == cacheFontPeer) {
594 cacheFontPeer = new Hashtable(5, (float)0.9);
595 }
596 if (null != cacheFontPeer) {
|
43 import sun.java2d.d3d.D3DRenderQueue;
44 import sun.java2d.opengl.OGLRenderQueue;
45
46 import sun.print.PrintJob2D;
47
48 import java.awt.dnd.DragSource;
49 import java.awt.dnd.DragGestureListener;
50 import java.awt.dnd.DragGestureEvent;
51 import java.awt.dnd.DragGestureRecognizer;
52 import java.awt.dnd.MouseDragGestureRecognizer;
53 import java.awt.dnd.InvalidDnDOperationException;
54 import java.awt.dnd.peer.DragSourceContextPeer;
55
56 import java.util.Hashtable;
57 import java.util.Locale;
58 import java.util.Map;
59 import java.util.Properties;
60
61 import java.util.logging.*;
62
63 import sun.font.FontManager;
64 import sun.font.FontManagerFactory;
65 import sun.font.SunFontManager;
66 import sun.misc.PerformanceLogger;
67
68 public class WToolkit extends SunToolkit implements Runnable {
69
70 private static final Logger log = Logger.getLogger("sun.awt.windows.WToolkit");
71
72 static GraphicsConfiguration config;
73
74 // System clipboard.
75 WClipboard clipboard;
76
77 // cache of font peers
78 private Hashtable cacheFontPeer;
79
80 // Windows properties
81 private WDesktopProperties wprops;
82
83 // Dynamic Layout Resize client code setting
84 protected boolean dynamicLayoutSetting = false;
85
558 public ColorModel getColorModel() {
559 return getStaticColorModel();
560 }
561
562 public Insets getScreenInsets(GraphicsConfiguration gc)
563 {
564 return getScreenInsets(((Win32GraphicsDevice) gc.getDevice()).getScreen());
565 }
566
567 public int getScreenResolution() {
568 Win32GraphicsEnvironment ge = (Win32GraphicsEnvironment)
569 GraphicsEnvironment.getLocalGraphicsEnvironment();
570 return ge.getXResolution();
571 }
572 protected native int getScreenWidth();
573 protected native int getScreenHeight();
574 protected native Insets getScreenInsets(int screen);
575
576
577 public FontMetrics getFontMetrics(Font font) {
578 // This is an unsupported hack, but left in for a customer.
579 // Do not remove.
580 FontManager fm = FontManagerFactory.getInstance();
581 if (fm instanceof SunFontManager
582 && ((SunFontManager) fm).usePlatformFontMetrics()) {
583 return WFontMetrics.getFontMetrics(font);
584 }
585 return super.getFontMetrics(font);
586 }
587
588 public FontPeer getFontPeer(String name, int style) {
589 FontPeer retval = null;
590 String lcName = name.toLowerCase();
591 if (null != cacheFontPeer) {
592 retval = (FontPeer)cacheFontPeer.get(lcName + style);
593 if (null != retval) {
594 return retval;
595 }
596 }
597 retval = new WFontPeer(name, style);
598 if (retval != null) {
599 if (null == cacheFontPeer) {
600 cacheFontPeer = new Hashtable(5, (float)0.9);
601 }
602 if (null != cacheFontPeer) {
|