home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &… the Search for Life CD 3 / 0_CD-ROM.iso / install / jre1_3 / lib / rt.jar / sun / awt / windows / WToolkit.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  16.1 KB  |  651 lines

  1. package sun.awt.windows;
  2.  
  3. import java.awt.AWTException;
  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.Component;
  10. import java.awt.Cursor;
  11. import java.awt.Dialog;
  12. import java.awt.Dimension;
  13. import java.awt.FileDialog;
  14. import java.awt.Font;
  15. import java.awt.FontMetrics;
  16. import java.awt.Frame;
  17. import java.awt.GraphicsConfiguration;
  18. import java.awt.GraphicsDevice;
  19. import java.awt.GraphicsEnvironment;
  20. import java.awt.Image;
  21. import java.awt.JobAttributes;
  22. import java.awt.Label;
  23. import java.awt.List;
  24. import java.awt.Menu;
  25. import java.awt.MenuBar;
  26. import java.awt.MenuItem;
  27. import java.awt.PageAttributes;
  28. import java.awt.Panel;
  29. import java.awt.Point;
  30. import java.awt.PopupMenu;
  31. import java.awt.PrintJob;
  32. import java.awt.Robot;
  33. import java.awt.ScrollPane;
  34. import java.awt.Scrollbar;
  35. import java.awt.TextArea;
  36. import java.awt.TextField;
  37. import java.awt.Toolkit;
  38. import java.awt.Window;
  39. import java.awt.datatransfer.Clipboard;
  40. import java.awt.dnd.DragGestureEvent;
  41. import java.awt.dnd.DragGestureListener;
  42. import java.awt.dnd.DragGestureRecognizer;
  43. import java.awt.dnd.DragSource;
  44. import java.awt.dnd.InvalidDnDOperationException;
  45. import java.awt.dnd.peer.DragSourceContextPeer;
  46. import java.awt.im.InputMethodHighlight;
  47. import java.awt.im.spi.InputMethodDescriptor;
  48. import java.awt.image.ColorModel;
  49. import java.awt.image.ImageObserver;
  50. import java.awt.image.ImageProducer;
  51. import java.awt.peer.ButtonPeer;
  52. import java.awt.peer.CanvasPeer;
  53. import java.awt.peer.CheckboxMenuItemPeer;
  54. import java.awt.peer.CheckboxPeer;
  55. import java.awt.peer.ChoicePeer;
  56. import java.awt.peer.ComponentPeer;
  57. import java.awt.peer.DialogPeer;
  58. import java.awt.peer.FileDialogPeer;
  59. import java.awt.peer.FontPeer;
  60. import java.awt.peer.FramePeer;
  61. import java.awt.peer.LabelPeer;
  62. import java.awt.peer.ListPeer;
  63. import java.awt.peer.MenuBarPeer;
  64. import java.awt.peer.MenuItemPeer;
  65. import java.awt.peer.MenuPeer;
  66. import java.awt.peer.PanelPeer;
  67. import java.awt.peer.PopupMenuPeer;
  68. import java.awt.peer.RobotPeer;
  69. import java.awt.peer.ScrollPanePeer;
  70. import java.awt.peer.ScrollbarPeer;
  71. import java.awt.peer.TextAreaPeer;
  72. import java.awt.peer.TextFieldPeer;
  73. import java.awt.peer.WindowPeer;
  74. import java.beans.PropertyChangeListener;
  75. import java.lang.reflect.Constructor;
  76. import java.lang.reflect.InvocationTargetException;
  77. import java.security.AccessController;
  78. import java.util.Hashtable;
  79. import java.util.Map;
  80. import java.util.Properties;
  81. import sun.awt.GlobalCursorManager;
  82. import sun.awt.SunToolkit;
  83. import sun.awt.Win32GraphicsDevice;
  84. import sun.awt.image.ImageRepresentation;
  85. import sun.awt.print.PrintControl;
  86. import sun.java2d.loops.RasterOutputManager;
  87. import sun.security.action.LoadLibraryAction;
  88.  
  89. public class WToolkit extends SunToolkit implements Runnable {
  90.    static GraphicsConfiguration config;
  91.    WClipboard clipboard;
  92.    private Hashtable cacheFontPeer;
  93.    private WDesktopProperties wprops;
  94.    static ColorModel screenmodel;
  95.    private Constructor printControlConstructor;
  96.    private static final String prefix = "DnD.Cursor.";
  97.    private static final String postfix = ".32x32";
  98.    private ModalityListenerList modalityListeners = new ModalityListenerList(this);
  99.    // $FF: synthetic field
  100.    static Class class$java$awt$Frame;
  101.    // $FF: synthetic field
  102.    static Class class$java$lang$String;
  103.    // $FF: synthetic field
  104.    static Class class$java$awt$JobAttributes;
  105.    // $FF: synthetic field
  106.    static Class class$java$awt$PageAttributes;
  107.    // $FF: synthetic field
  108.    static Class class$java$awt$dnd$MouseDragGestureRecognizer;
  109.  
  110.    private static native void initIDs();
  111.  
  112.    private static void resetGC() {
  113.       config = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration();
  114.    }
  115.  
  116.    public static native boolean embeddedInit();
  117.  
  118.    public static native boolean embeddedDispose();
  119.  
  120.    public WToolkit() {
  121.       synchronized(this) {
  122.          (new Thread(this, "AWT-Windows")).start();
  123.  
  124.          try {
  125.             this.wait();
  126.          } catch (InterruptedException var4) {
  127.          }
  128.       }
  129.  
  130.       WDropTargetContextPeer.Initialize();
  131.       WDragSourceContextPeer.Initialize();
  132.    }
  133.  
  134.    public void run() {
  135.       boolean var1 = this.init();
  136.       if (var1) {
  137.          ThreadGroup var2 = (ThreadGroup)AccessController.doPrivileged(new 1(this));
  138.          Runtime.getRuntime().addShutdownHook(new Thread(var2, new 2(this)));
  139.       }
  140.  
  141.       synchronized(this) {
  142.          this.notifyAll();
  143.       }
  144.  
  145.       if (var1) {
  146.          this.eventLoop();
  147.       }
  148.  
  149.    }
  150.  
  151.    private native boolean init();
  152.  
  153.    private native void eventLoop();
  154.  
  155.    private native void shutdown();
  156.  
  157.    protected native void finalize();
  158.  
  159.    public static native void startSecondaryEventLoop();
  160.  
  161.    public static native void quitSecondaryEventLoop();
  162.  
  163.    public ButtonPeer createButton(Button var1) {
  164.       WButtonPeer var2 = new WButtonPeer(var1);
  165.       SunToolkit.targetCreatedPeer(var1, var2);
  166.       return var2;
  167.    }
  168.  
  169.    public TextFieldPeer createTextField(TextField var1) {
  170.       WTextFieldPeer var2 = new WTextFieldPeer(var1);
  171.       SunToolkit.targetCreatedPeer(var1, var2);
  172.       return var2;
  173.    }
  174.  
  175.    public LabelPeer createLabel(Label var1) {
  176.       WLabelPeer var2 = new WLabelPeer(var1);
  177.       SunToolkit.targetCreatedPeer(var1, var2);
  178.       return var2;
  179.    }
  180.  
  181.    public ListPeer createList(List var1) {
  182.       WListPeer var2 = new WListPeer(var1);
  183.       SunToolkit.targetCreatedPeer(var1, var2);
  184.       return var2;
  185.    }
  186.  
  187.    public CheckboxPeer createCheckbox(Checkbox var1) {
  188.       WCheckboxPeer var2 = new WCheckboxPeer(var1);
  189.       SunToolkit.targetCreatedPeer(var1, var2);
  190.       return var2;
  191.    }
  192.  
  193.    public ScrollbarPeer createScrollbar(Scrollbar var1) {
  194.       WScrollbarPeer var2 = new WScrollbarPeer(var1);
  195.       SunToolkit.targetCreatedPeer(var1, var2);
  196.       return var2;
  197.    }
  198.  
  199.    public ScrollPanePeer createScrollPane(ScrollPane var1) {
  200.       WScrollPanePeer var2 = new WScrollPanePeer(var1);
  201.       SunToolkit.targetCreatedPeer(var1, var2);
  202.       return var2;
  203.    }
  204.  
  205.    public TextAreaPeer createTextArea(TextArea var1) {
  206.       WTextAreaPeer var2 = new WTextAreaPeer(var1);
  207.       SunToolkit.targetCreatedPeer(var1, var2);
  208.       return var2;
  209.    }
  210.  
  211.    public ChoicePeer createChoice(Choice var1) {
  212.       WChoicePeer var2 = new WChoicePeer(var1);
  213.       SunToolkit.targetCreatedPeer(var1, var2);
  214.       return var2;
  215.    }
  216.  
  217.    public FramePeer createFrame(Frame var1) {
  218.       WFramePeer var2 = new WFramePeer(var1);
  219.       SunToolkit.targetCreatedPeer(var1, var2);
  220.       return var2;
  221.    }
  222.  
  223.    public CanvasPeer createCanvas(Canvas var1) {
  224.       WCanvasPeer var2 = new WCanvasPeer(var1);
  225.       SunToolkit.targetCreatedPeer(var1, var2);
  226.       return var2;
  227.    }
  228.  
  229.    public PanelPeer createPanel(Panel var1) {
  230.       WPanelPeer var2 = new WPanelPeer(var1);
  231.       SunToolkit.targetCreatedPeer(var1, var2);
  232.       return var2;
  233.    }
  234.  
  235.    public WindowPeer createWindow(Window var1) {
  236.       WWindowPeer var2 = new WWindowPeer(var1);
  237.       SunToolkit.targetCreatedPeer(var1, var2);
  238.       return var2;
  239.    }
  240.  
  241.    public DialogPeer createDialog(Dialog var1) {
  242.       WDialogPeer var2 = new WDialogPeer(var1);
  243.       SunToolkit.targetCreatedPeer(var1, var2);
  244.       return var2;
  245.    }
  246.  
  247.    public FileDialogPeer createFileDialog(FileDialog var1) {
  248.       WFileDialogPeer var2 = new WFileDialogPeer(var1);
  249.       SunToolkit.targetCreatedPeer(var1, var2);
  250.       return var2;
  251.    }
  252.  
  253.    public MenuBarPeer createMenuBar(MenuBar var1) {
  254.       WMenuBarPeer var2 = new WMenuBarPeer(var1);
  255.       SunToolkit.targetCreatedPeer(var1, var2);
  256.       return var2;
  257.    }
  258.  
  259.    public MenuPeer createMenu(Menu var1) {
  260.       WMenuPeer var2 = new WMenuPeer(var1);
  261.       SunToolkit.targetCreatedPeer(var1, var2);
  262.       return var2;
  263.    }
  264.  
  265.    public PopupMenuPeer createPopupMenu(PopupMenu var1) {
  266.       WPopupMenuPeer var2 = new WPopupMenuPeer(var1);
  267.       SunToolkit.targetCreatedPeer(var1, var2);
  268.       return var2;
  269.    }
  270.  
  271.    public MenuItemPeer createMenuItem(MenuItem var1) {
  272.       WMenuItemPeer var2 = new WMenuItemPeer(var1);
  273.       SunToolkit.targetCreatedPeer(var1, var2);
  274.       return var2;
  275.    }
  276.  
  277.    public CheckboxMenuItemPeer createCheckboxMenuItem(CheckboxMenuItem var1) {
  278.       WCheckboxMenuItemPeer var2 = new WCheckboxMenuItemPeer(var1);
  279.       SunToolkit.targetCreatedPeer(var1, var2);
  280.       return var2;
  281.    }
  282.  
  283.    public RobotPeer createRobot(Robot var1, GraphicsDevice var2) {
  284.       return new WRobotPeer(var2);
  285.    }
  286.  
  287.    public WEmbeddedFramePeer createEmbeddedFrame(WEmbeddedFrame var1) {
  288.       WEmbeddedFramePeer var2 = new WEmbeddedFramePeer(var1);
  289.       SunToolkit.targetCreatedPeer(var1, var2);
  290.       return var2;
  291.    }
  292.  
  293.    WPrintDialogPeer createWPrintDialog(WPrintDialog var1) {
  294.       WPrintDialogPeer var2 = new WPrintDialogPeer(var1);
  295.       SunToolkit.targetCreatedPeer(var1, var2);
  296.       return var2;
  297.    }
  298.  
  299.    static boolean prepareScrImage(Image var0, int var1, int var2, ImageObserver var3) {
  300.       if (var1 != 0 && var2 != 0) {
  301.          if (!(var0 instanceof WImage)) {
  302.             return true;
  303.          } else {
  304.             WImage var4 = (WImage)var0;
  305.             if (((sun.awt.image.Image)var4).hasError()) {
  306.                if (var3 != null) {
  307.                   var3.imageUpdate(var0, 192, -1, -1, -1, -1);
  308.                }
  309.  
  310.                return false;
  311.             } else {
  312.                ImageRepresentation var5 = var4.getImageRep();
  313.                return var5.prepare(var3);
  314.             }
  315.          }
  316.       } else {
  317.          return true;
  318.       }
  319.    }
  320.  
  321.    static int checkScrImage(Image var0, int var1, int var2, ImageObserver var3) {
  322.       if (!(var0 instanceof WImage)) {
  323.          return 32;
  324.       } else {
  325.          WImage var4 = (WImage)var0;
  326.          int var5;
  327.          if (var1 != 0 && var2 != 0) {
  328.             var5 = var4.getImageRep().check(var3);
  329.          } else {
  330.             var5 = 32;
  331.          }
  332.  
  333.          return ((sun.awt.image.Image)var4).check(var3) | var5;
  334.       }
  335.    }
  336.  
  337.    public int checkImage(Image var1, int var2, int var3, ImageObserver var4) {
  338.       return checkScrImage(var1, var2, var3, var4);
  339.    }
  340.  
  341.    public boolean prepareImage(Image var1, int var2, int var3, ImageObserver var4) {
  342.       return prepareScrImage(var1, var2, var3, var4);
  343.    }
  344.  
  345.    public Image createImage(ImageProducer var1) {
  346.       return new WImage(var1);
  347.    }
  348.  
  349.    static native ColorModel makeColorModel();
  350.  
  351.    static ColorModel getStaticColorModel() {
  352.       return config.getColorModel();
  353.    }
  354.  
  355.    public ColorModel getColorModel() {
  356.       return getStaticColorModel();
  357.    }
  358.  
  359.    public native int getScreenResolution();
  360.  
  361.    protected native int getScreenWidth();
  362.  
  363.    protected native int getScreenHeight();
  364.  
  365.    public FontMetrics getFontMetrics(Font var1) {
  366.       return !RasterOutputManager.usesPlatformFont() ? super.getFontMetrics(var1) : WFontMetrics.getFontMetrics(var1);
  367.    }
  368.  
  369.    public FontPeer getFontPeer(String var1, int var2) {
  370.       Object var3 = null;
  371.       String var4 = var1.toLowerCase();
  372.       if (null != this.cacheFontPeer) {
  373.          FontPeer var5 = (FontPeer)this.cacheFontPeer.get(var4 + var2);
  374.          if (null != var5) {
  375.             return var5;
  376.          }
  377.       }
  378.  
  379.       WFontPeer var6 = new WFontPeer(var1, var2);
  380.       if (var6 != null) {
  381.          if (null == this.cacheFontPeer) {
  382.             this.cacheFontPeer = new Hashtable(5, 0.9F);
  383.          }
  384.  
  385.          if (null != this.cacheFontPeer) {
  386.             this.cacheFontPeer.put(var4 + var2, var6);
  387.          }
  388.       }
  389.  
  390.       return var6;
  391.    }
  392.  
  393.    public native void sync();
  394.  
  395.    public PrintJob getPrintJob(Frame var1, String var2, Properties var3) {
  396.       return this.getPrintJob(var1, var2, (JobAttributes)null, (PageAttributes)null);
  397.    }
  398.  
  399.    public PrintJob getPrintJob(Frame var1, String var2, JobAttributes var3, PageAttributes var4) {
  400.       SecurityManager var5 = System.getSecurityManager();
  401.       if (var5 != null) {
  402.          var5.checkPrintJobAccess();
  403.       }
  404.  
  405.       if (this.printControlConstructor == null) {
  406.          this.printControlConstructor = (Constructor)AccessController.doPrivileged(new GetConstructorAction(this, new Class[]{class$java$awt$Frame == null ? (class$java$awt$Frame = class$("java.awt.Frame")) : class$java$awt$Frame, class$java$lang$String == null ? (class$java$lang$String = class$("java.lang.String")) : class$java$lang$String, class$java$awt$JobAttributes == null ? (class$java$awt$JobAttributes = class$("java.awt.JobAttributes")) : class$java$awt$JobAttributes, class$java$awt$PageAttributes == null ? (class$java$awt$PageAttributes = class$("java.awt.PageAttributes")) : class$java$awt$PageAttributes}));
  407.       }
  408.  
  409.       Object var6 = null;
  410.  
  411.       try {
  412.          var6 = (PrintControl)this.printControlConstructor.newInstance(var1, var2, var3, var4);
  413.       } catch (InstantiationException var11) {
  414.          var6 = new WPrintControl(var1, var2, var3, var4);
  415.       } catch (IllegalAccessException var12) {
  416.          var6 = new WPrintControl(var1, var2, var3, var4);
  417.       } catch (InvocationTargetException var13) {
  418.          Throwable var10 = var13.getTargetException();
  419.          if (var10 instanceof Error) {
  420.             throw (Error)var10;
  421.          }
  422.  
  423.          if (var10 instanceof RuntimeException) {
  424.             throw (RuntimeException)var10;
  425.          }
  426.  
  427.          var6 = new WPrintControl(var1, var2, var3, var4);
  428.       }
  429.  
  430.       return ((PrintControl)var6).initJob();
  431.    }
  432.  
  433.    public native void beep();
  434.  
  435.    public boolean getLockingKeyState(int var1) {
  436.       if (var1 != 20 && var1 != 144 && var1 != 145 && var1 != 262) {
  437.          throw new IllegalArgumentException("invalid key for Toolkit.getLockingKeyState");
  438.       } else {
  439.          return this.getLockingKeyStateNative(var1);
  440.       }
  441.    }
  442.  
  443.    public native boolean getLockingKeyStateNative(int var1);
  444.  
  445.    public void setLockingKeyState(int var1, boolean var2) {
  446.       if (var1 != 20 && var1 != 144 && var1 != 145 && var1 != 262) {
  447.          throw new IllegalArgumentException("invalid key for Toolkit.setLockingKeyState");
  448.       } else {
  449.          this.setLockingKeyStateNative(var1, var2);
  450.       }
  451.    }
  452.  
  453.    public native void setLockingKeyStateNative(int var1, boolean var2);
  454.  
  455.    public Clipboard getSystemClipboard() {
  456.       SecurityManager var1 = System.getSecurityManager();
  457.       if (var1 != null) {
  458.          var1.checkSystemClipboardAccess();
  459.       }
  460.  
  461.       if (this.clipboard == null) {
  462.          this.clipboard = new WClipboard();
  463.       }
  464.  
  465.       return this.clipboard;
  466.    }
  467.  
  468.    protected native void loadSystemColors(int[] var1);
  469.  
  470.    public static final Object targetToPeer(Object var0) {
  471.       return SunToolkit.targetToPeer(var0);
  472.    }
  473.  
  474.    public static final void targetDisposedPeer(Object var0, Object var1) {
  475.       SunToolkit.targetDisposedPeer(var0, var1);
  476.    }
  477.  
  478.    public InputMethodDescriptor getInputMethodAdapterDescriptor() {
  479.       return new WInputMethodDescriptor();
  480.    }
  481.  
  482.    public Map mapInputMethodHighlight(InputMethodHighlight var1) {
  483.       return WInputMethod.mapInputMethodHighlight(var1);
  484.    }
  485.  
  486.    public boolean enableInputMethodsForTextComponent() {
  487.       return true;
  488.    }
  489.  
  490.    public Cursor createCustomCursor(Image var1, Point var2, String var3) throws IndexOutOfBoundsException {
  491.       return new WCustomCursor(var1, var2, var3);
  492.    }
  493.  
  494.    public Dimension getBestCursorSize(int var1, int var2) {
  495.       return new Dimension(WCustomCursor.getCursorWidth(), WCustomCursor.getCursorHeight());
  496.    }
  497.  
  498.    public native int getMaximumCursorColors();
  499.  
  500.    static void displayChange() {
  501.       resetGC();
  502.       GraphicsDevice[] var0 = GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices();
  503.  
  504.       for(int var1 = 0; var1 < var0.length; ++var1) {
  505.          if (var0[var1] instanceof Win32GraphicsDevice) {
  506.             ((Win32GraphicsDevice)var0[var1]).displayModeChanged();
  507.          }
  508.       }
  509.  
  510.    }
  511.  
  512.    public DragSourceContextPeer createDragSourceContextPeer(DragGestureEvent var1) throws InvalidDnDOperationException {
  513.       return WDragSourceContextPeer.getDragSourceContextPeer(var1);
  514.    }
  515.  
  516.    public DragGestureRecognizer createDragGestureRecognizer(Class var1, DragSource var2, Component var3, int var4, DragGestureListener var5) {
  517.       return (class$java$awt$dnd$MouseDragGestureRecognizer == null ? (class$java$awt$dnd$MouseDragGestureRecognizer = class$("java.awt.dnd.MouseDragGestureRecognizer")) : class$java$awt$dnd$MouseDragGestureRecognizer).equals(var1) ? new WMouseDragGestureRecognizer(var2, var3, var4, var5) : null;
  518.    }
  519.  
  520.    protected Object lazilyLoadDesktopProperty(String var1) {
  521.       if (var1.startsWith("DnD.Cursor.")) {
  522.          String var2 = var1.substring("DnD.Cursor.".length(), var1.length()) + ".32x32";
  523.  
  524.          try {
  525.             return Cursor.getSystemCustomCursor(var2);
  526.          } catch (AWTException var6) {
  527.             throw new RuntimeException("cannot load system cursor: " + var2);
  528.          }
  529.       } else if (WDesktopProperties.isWindowsProperty(var1)) {
  530.          synchronized(this) {
  531.             if (this.wprops == null) {
  532.                this.wprops = new WDesktopProperties();
  533.             }
  534.  
  535.             Object var3 = this.wprops.getProperty(var1);
  536.             return var3;
  537.          }
  538.       } else {
  539.          return super.lazilyLoadDesktopProperty(var1);
  540.       }
  541.    }
  542.  
  543.    private void windowsSettingChange() {
  544.       if (this.wprops != null) {
  545.          this.wprops.firePropertyChanges();
  546.       }
  547.  
  548.    }
  549.  
  550.    public synchronized void addPropertyChangeListener(String var1, PropertyChangeListener var2) {
  551.       if (WDesktopProperties.isWindowsProperty(var1)) {
  552.          if (this.wprops == null) {
  553.             this.wprops = new WDesktopProperties();
  554.          }
  555.  
  556.          this.wprops.addPropertyChangeListener(var1, var2);
  557.       } else {
  558.          super.addPropertyChangeListener(var1, var2);
  559.       }
  560.  
  561.    }
  562.  
  563.    public synchronized void removePropertyChangeListener(String var1, PropertyChangeListener var2) {
  564.       if (WDesktopProperties.isWindowsProperty(var1)) {
  565.          if (this.wprops != null) {
  566.             this.wprops.removePropertyChangeListener(var1, var2);
  567.          }
  568.       } else {
  569.          super.removePropertyChangeListener(var1, var2);
  570.       }
  571.  
  572.    }
  573.  
  574.    protected void initializeDesktopProperties() {
  575.       super.desktopProperties.put("DnD.Autoscroll.initialDelay", new Integer(50));
  576.       super.desktopProperties.put("DnD.Autoscroll.interval", new Integer(50));
  577.       this.wprops = new WDesktopProperties();
  578.       super.desktopProperties.put("DnD.Autoscroll.cursorHysteresis", this.wprops.getProperty("win.drag.x"));
  579.    }
  580.  
  581.    public native Component getComponentFromNativeWindowHandle(int var1);
  582.  
  583.    private native int getNativeWindowHandleFromPeer(WComponentPeer var1);
  584.  
  585.    public int getNativeWindowHandleFromComponent(Component var1) {
  586.       ComponentPeer var2;
  587.       for(var2 = ((Component)var1).getPeer(); var2 != null && !(var2 instanceof WComponentPeer); var2 = ((Component)var1).getPeer()) {
  588.          var1 = ((Component)var1).getParent();
  589.          if (var1 == null) {
  590.             return 0;
  591.          }
  592.       }
  593.  
  594.       return var2 == null ? 0 : this.getNativeWindowHandleFromPeer((WComponentPeer)var2);
  595.    }
  596.  
  597.    public String getDefaultCharacterEncoding() {
  598.       return "us-ascii";
  599.    }
  600.  
  601.    public String getDefaultUnicodeEncoding() {
  602.       return "utf-16le";
  603.    }
  604.  
  605.    public GlobalCursorManager getGlobalCursorManager() {
  606.       return new WGlobalCursorManager();
  607.    }
  608.  
  609.    public static WToolkit getWToolkit() {
  610.       WToolkit var0 = (WToolkit)Toolkit.getDefaultToolkit();
  611.       return var0;
  612.    }
  613.  
  614.    public native void pushModality();
  615.  
  616.    public native void popModality();
  617.  
  618.    public void addModalityListener(ModalityListener var1) {
  619.       this.modalityListeners.add(var1);
  620.    }
  621.  
  622.    public void removeModalityListener(ModalityListener var1) {
  623.       this.modalityListeners.remove(var1);
  624.    }
  625.  
  626.    final void notifyModalityChange(int var1) {
  627.       ModalityEvent var2 = new ModalityEvent(this, this.modalityListeners, var1);
  628.       var2.dispatch();
  629.    }
  630.  
  631.    // $FF: synthetic method
  632.    static void access$000(WToolkit var0) {
  633.       var0.shutdown();
  634.    }
  635.  
  636.    // $FF: synthetic method
  637.    static Class class$(String var0) {
  638.       try {
  639.          return Class.forName(var0);
  640.       } catch (ClassNotFoundException var2) {
  641.          throw new NoClassDefFoundError(((Throwable)var2).getMessage());
  642.       }
  643.    }
  644.  
  645.    static {
  646.       resetGC();
  647.       AccessController.doPrivileged(new LoadLibraryAction("awt"));
  648.       initIDs();
  649.    }
  650. }
  651.