src/windows/classes/sun/awt/windows/WToolkit.java

Print this page
rev 1297 : [mq]: fontmanager.patch


  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) {