home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 June / CHIPHEFT062001.ISO / browser / nc32lyc / comm.z / java40.jar / sun / awt / windows / WToolkit.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-08-15  |  9.3 KB  |  382 lines

  1. package sun.awt.windows;
  2.  
  3. import java.awt.AWTEvent;
  4. import java.awt.Button;
  5. import java.awt.Canvas;
  6. import java.awt.Checkbox;
  7. import java.awt.CheckboxMenuItem;
  8. import java.awt.Choice;
  9. import java.awt.Dialog;
  10. import java.awt.EventQueue;
  11. import java.awt.FileDialog;
  12. import java.awt.Font;
  13. import java.awt.FontMetrics;
  14. import java.awt.Frame;
  15. import java.awt.Image;
  16. import java.awt.Label;
  17. import java.awt.List;
  18. import java.awt.Menu;
  19. import java.awt.MenuBar;
  20. import java.awt.MenuItem;
  21. import java.awt.Panel;
  22. import java.awt.PopupMenu;
  23. import java.awt.PrintJob;
  24. import java.awt.ScrollPane;
  25. import java.awt.Scrollbar;
  26. import java.awt.TextArea;
  27. import java.awt.TextField;
  28. import java.awt.Toolkit;
  29. import java.awt.Window;
  30. import java.awt.datatransfer.Clipboard;
  31. import java.awt.image.ColorModel;
  32. import java.awt.image.ImageObserver;
  33. import java.awt.image.ImageProducer;
  34. import java.awt.peer.ButtonPeer;
  35. import java.awt.peer.CanvasPeer;
  36. import java.awt.peer.CheckboxMenuItemPeer;
  37. import java.awt.peer.CheckboxPeer;
  38. import java.awt.peer.ChoicePeer;
  39. import java.awt.peer.DialogPeer;
  40. import java.awt.peer.FileDialogPeer;
  41. import java.awt.peer.FontPeer;
  42. import java.awt.peer.FramePeer;
  43. import java.awt.peer.LabelPeer;
  44. import java.awt.peer.ListPeer;
  45. import java.awt.peer.MenuBarPeer;
  46. import java.awt.peer.MenuItemPeer;
  47. import java.awt.peer.MenuPeer;
  48. import java.awt.peer.PanelPeer;
  49. import java.awt.peer.PopupMenuPeer;
  50. import java.awt.peer.ScrollPanePeer;
  51. import java.awt.peer.ScrollbarPeer;
  52. import java.awt.peer.TextAreaPeer;
  53. import java.awt.peer.TextFieldPeer;
  54. import java.awt.peer.WindowPeer;
  55. import java.io.IOException;
  56. import java.util.EventObject;
  57. import java.util.Properties;
  58. import sun.awt.ObjectPeer;
  59. import sun.awt.SunToolkit;
  60. import sun.awt.image.ImageRepresentation;
  61.  
  62. public class WToolkit extends SunToolkit implements Runnable {
  63.    static final boolean enableDebug = true;
  64.    boolean dbgTrace = false;
  65.    private static final String propTrace = "WINAWT.Trace";
  66.    boolean dbgVerify = false;
  67.    private static final String propVerify = "WINAWT.VerifyComponents";
  68.    boolean dbgBreak = false;
  69.    private static final String propBreak = "WINAWT.BreakOnFailure";
  70.    boolean dbgHeapCheck = false;
  71.    private static final String propHeapCheck = "WINAWT.HeapCheck";
  72.    WClipboard clipboard;
  73.    static ColorModel screenmodel;
  74.  
  75.    public WToolkit() {
  76.       this.InitializeDebuggingOptions();
  77.       synchronized(this){}
  78.  
  79.       try {
  80.          Thread var3 = new Thread(this, "AWT-Windows");
  81.          var3.setDaemon(false);
  82.          var3.start();
  83.  
  84.          try {
  85.             this.wait();
  86.          } catch (InterruptedException var6) {
  87.          }
  88.       } catch (Throwable var7) {
  89.          throw var7;
  90.       }
  91.  
  92.    }
  93.  
  94.    private void InitializeDebuggingOptions() {
  95.       String var1 = Toolkit.getProperty("WINAWT.Trace", "false");
  96.       this.dbgTrace = Boolean.valueOf(var1);
  97.       var1 = Toolkit.getProperty("WINAWT.VerifyComponents", "false");
  98.       this.dbgVerify = Boolean.valueOf(var1);
  99.       var1 = Toolkit.getProperty("WINAWT.BreakOnFailure", "false");
  100.       this.dbgBreak = Boolean.valueOf(var1);
  101.       var1 = Toolkit.getProperty("WINAWT.HeapCheck", "false");
  102.       this.dbgHeapCheck = Boolean.valueOf(var1);
  103.    }
  104.  
  105.    public native void init(Thread var1);
  106.  
  107.    public void run() {
  108.       Thread var1 = Thread.currentThread();
  109.       this.init(var1);
  110.       synchronized(this){}
  111.  
  112.       try {
  113.          this.notifyAll();
  114.       } catch (Throwable var4) {
  115.          throw var4;
  116.       }
  117.  
  118.       this.eventLoop();
  119.    }
  120.  
  121.    native void eventLoop();
  122.  
  123.    static void postEvent(AWTEvent var0) {
  124.       EventQueue var1 = SunToolkit.theEventQueue;
  125.       Object var2 = ((EventObject)var0).getSource();
  126.       if (var2 != null) {
  127.          Object var3 = SunToolkit.targetToPeer(var2);
  128.          if (var3 != null && var3 instanceof ObjectPeer && ((ObjectPeer)var3).getEventQueue() != null) {
  129.             var1 = ((ObjectPeer)var3).getEventQueue();
  130.          }
  131.       }
  132.  
  133.       var1.postEvent(var0);
  134.    }
  135.  
  136.    public ButtonPeer createButton(Button var1) {
  137.       WButtonPeer var2 = new WButtonPeer(var1);
  138.       SunToolkit.peerMap.put(var1, var2);
  139.       return var2;
  140.    }
  141.  
  142.    public TextFieldPeer createTextField(TextField var1) {
  143.       WTextFieldPeer var2 = new WTextFieldPeer(var1);
  144.       SunToolkit.peerMap.put(var1, var2);
  145.       return var2;
  146.    }
  147.  
  148.    public LabelPeer createLabel(Label var1) {
  149.       WLabelPeer var2 = new WLabelPeer(var1);
  150.       SunToolkit.peerMap.put(var1, var2);
  151.       return var2;
  152.    }
  153.  
  154.    public ListPeer createList(List var1) {
  155.       WListPeer var2 = new WListPeer(var1);
  156.       SunToolkit.peerMap.put(var1, var2);
  157.       return var2;
  158.    }
  159.  
  160.    public CheckboxPeer createCheckbox(Checkbox var1) {
  161.       WCheckboxPeer var2 = new WCheckboxPeer(var1);
  162.       SunToolkit.peerMap.put(var1, var2);
  163.       return var2;
  164.    }
  165.  
  166.    public ScrollbarPeer createScrollbar(Scrollbar var1) {
  167.       WScrollbarPeer var2 = new WScrollbarPeer(var1);
  168.       SunToolkit.peerMap.put(var1, var2);
  169.       return var2;
  170.    }
  171.  
  172.    public ScrollPanePeer createScrollPane(ScrollPane var1) {
  173.       WScrollPanePeer var2 = new WScrollPanePeer(var1);
  174.       SunToolkit.peerMap.put(var1, var2);
  175.       return var2;
  176.    }
  177.  
  178.    public TextAreaPeer createTextArea(TextArea var1) {
  179.       WTextAreaPeer var2 = new WTextAreaPeer(var1);
  180.       SunToolkit.peerMap.put(var1, var2);
  181.       return var2;
  182.    }
  183.  
  184.    public ChoicePeer createChoice(Choice var1) {
  185.       WChoicePeer var2 = new WChoicePeer(var1);
  186.       SunToolkit.peerMap.put(var1, var2);
  187.       return var2;
  188.    }
  189.  
  190.    public FramePeer createFrame(Frame var1) {
  191.       WFramePeer var2 = new WFramePeer(var1);
  192.       SunToolkit.peerMap.put(var1, var2);
  193.       return var2;
  194.    }
  195.  
  196.    public CanvasPeer createCanvas(Canvas var1) {
  197.       WCanvasPeer var2 = new WCanvasPeer(var1);
  198.       SunToolkit.peerMap.put(var1, var2);
  199.       return var2;
  200.    }
  201.  
  202.    public PanelPeer createPanel(Panel var1) {
  203.       WPanelPeer var2 = new WPanelPeer(var1);
  204.       SunToolkit.peerMap.put(var1, var2);
  205.       return var2;
  206.    }
  207.  
  208.    public WindowPeer createWindow(Window var1) {
  209.       WWindowPeer var2 = new WWindowPeer(var1);
  210.       SunToolkit.peerMap.put(var1, var2);
  211.       return var2;
  212.    }
  213.  
  214.    public DialogPeer createDialog(Dialog var1) {
  215.       WDialogPeer var2 = new WDialogPeer(var1);
  216.       SunToolkit.peerMap.put(var1, var2);
  217.       return var2;
  218.    }
  219.  
  220.    public FileDialogPeer createFileDialog(FileDialog var1) {
  221.       WFileDialogPeer var2 = new WFileDialogPeer(var1);
  222.       SunToolkit.peerMap.put(var1, var2);
  223.       return var2;
  224.    }
  225.  
  226.    public MenuBarPeer createMenuBar(MenuBar var1) {
  227.       WMenuBarPeer var2 = new WMenuBarPeer(var1);
  228.       SunToolkit.peerMap.put(var1, var2);
  229.       return var2;
  230.    }
  231.  
  232.    public MenuPeer createMenu(Menu var1) {
  233.       WMenuPeer var2 = new WMenuPeer(var1);
  234.       SunToolkit.peerMap.put(var1, var2);
  235.       var2.create();
  236.       return var2;
  237.    }
  238.  
  239.    public PopupMenuPeer createPopupMenu(PopupMenu var1) {
  240.       WPopupMenuPeer var2 = new WPopupMenuPeer(var1);
  241.       SunToolkit.peerMap.put(var1, var2);
  242.       return var2;
  243.    }
  244.  
  245.    public MenuItemPeer createMenuItem(MenuItem var1) {
  246.       WMenuItemPeer var2 = new WMenuItemPeer(var1);
  247.       SunToolkit.peerMap.put(var1, var2);
  248.       return var2;
  249.    }
  250.  
  251.    public CheckboxMenuItemPeer createCheckboxMenuItem(CheckboxMenuItem var1) {
  252.       WCheckboxMenuItemPeer var2 = new WCheckboxMenuItemPeer(var1);
  253.       SunToolkit.peerMap.put(var1, var2);
  254.       return var2;
  255.    }
  256.  
  257.    public WEmbeddedFramePeer createEmbeddedFrame(WEmbeddedFrame var1) {
  258.       WEmbeddedFramePeer var2 = new WEmbeddedFramePeer(var1);
  259.       SunToolkit.peerMap.put(var1, var2);
  260.       return var2;
  261.    }
  262.  
  263.    static boolean prepareScrImage(Image var0, int var1, int var2, ImageObserver var3) {
  264.       if (var1 != 0 && var2 != 0) {
  265.          WImage var4 = (WImage)var0;
  266.          if (((sun.awt.image.Image)var4).hasError()) {
  267.             if (var3 != null) {
  268.                var3.imageUpdate(var0, 192, -1, -1, -1, -1);
  269.             }
  270.  
  271.             return false;
  272.          } else {
  273.             ImageRepresentation var5 = var4.getImageRep();
  274.             return var5.prepare(var3);
  275.          }
  276.       } else {
  277.          return true;
  278.       }
  279.    }
  280.  
  281.    static int checkScrImage(Image var0, int var1, int var2, ImageObserver var3) {
  282.       WImage var4 = (WImage)var0;
  283.       int var5;
  284.       if (var1 != 0 && var2 != 0) {
  285.          var5 = var4.getImageRep().check(var3);
  286.       } else {
  287.          var5 = 32;
  288.       }
  289.  
  290.       return ((sun.awt.image.Image)var4).check(var3) | var5;
  291.    }
  292.  
  293.    public int checkImage(Image var1, int var2, int var3, ImageObserver var4) {
  294.       return checkScrImage(var1, var2, var3, var4);
  295.    }
  296.  
  297.    public boolean prepareImage(Image var1, int var2, int var3, ImageObserver var4) {
  298.       return prepareScrImage(var1, var2, var3, var4);
  299.    }
  300.  
  301.    public Image createImage(ImageProducer var1) {
  302.       return new WImage(var1);
  303.    }
  304.  
  305.    static native ColorModel makeColorModel();
  306.  
  307.    static ColorModel getStaticColorModel() {
  308.       if (screenmodel == null) {
  309.          screenmodel = makeColorModel();
  310.       }
  311.  
  312.       return screenmodel;
  313.    }
  314.  
  315.    public ColorModel getColorModel() {
  316.       return getStaticColorModel();
  317.    }
  318.  
  319.    public native int getScreenResolution();
  320.  
  321.    protected native int getScreenWidth();
  322.  
  323.    protected native int getScreenHeight();
  324.  
  325.    public FontMetrics getFontMetrics(Font var1) {
  326.       return WFontMetrics.getFontMetrics(var1);
  327.    }
  328.  
  329.    public FontPeer getFontPeer(String var1, int var2) {
  330.       return new WFontPeer(var1, var2);
  331.    }
  332.  
  333.    public native void sync();
  334.  
  335.    public PrintJob getPrintJob(Frame var1, String var2, Properties var3) {
  336.       SecurityManager var4 = System.getSecurityManager();
  337.       if (var4 != null) {
  338.          var4.checkPrintJobAccess();
  339.       }
  340.  
  341.       WPrintJob var5 = null;
  342.  
  343.       try {
  344.          var5 = new WPrintJob("AWT Print");
  345.       } catch (IOException var6) {
  346.       }
  347.  
  348.       return var5.initJob();
  349.    }
  350.  
  351.    public native void beep();
  352.  
  353.    public Clipboard getSystemClipboard() {
  354.       SecurityManager var1 = System.getSecurityManager();
  355.       if (var1 != null) {
  356.          var1.checkSystemClipboardAccess();
  357.       }
  358.  
  359.       if (this.clipboard == null) {
  360.          this.clipboard = new WClipboard();
  361.       }
  362.  
  363.       return this.clipboard;
  364.    }
  365.  
  366.    protected native void loadSystemColors(int[] var1);
  367.  
  368.    public static final Object targetToPeer(Object var0) {
  369.       return SunToolkit.targetToPeer(var0);
  370.    }
  371.  
  372.    public static final void targetDisposedPeer(Object var0, Object var1) {
  373.       SunToolkit.targetDisposedPeer(var0, var1);
  374.    }
  375.  
  376.    static {
  377.       SecurityManager.enablePrivilege("UniversalLinkAccess");
  378.       System.loadLibrary("awt3240");
  379.       SecurityManager.revertPrivilege();
  380.    }
  381. }
  382.