home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 25 / CDROM25.iso / Share / prog / VJ11 / VJTRIAL.EXE / IE30Java.exe / classd.exe / sun / awt / win32 / MToolkit.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-01-27  |  7.4 KB  |  319 lines

  1. package sun.awt.win32;
  2.  
  3. import java.awt.Button;
  4. import java.awt.Canvas;
  5. import java.awt.Checkbox;
  6. import java.awt.CheckboxMenuItem;
  7. import java.awt.Choice;
  8. import java.awt.Dialog;
  9. import java.awt.Dimension;
  10. import java.awt.FileDialog;
  11. import java.awt.Font;
  12. import java.awt.FontMetrics;
  13. import java.awt.Frame;
  14. import java.awt.Image;
  15. import java.awt.Label;
  16. import java.awt.List;
  17. import java.awt.Menu;
  18. import java.awt.MenuBar;
  19. import java.awt.MenuItem;
  20. import java.awt.Panel;
  21. import java.awt.Scrollbar;
  22. import java.awt.TextArea;
  23. import java.awt.TextField;
  24. import java.awt.Toolkit;
  25. import java.awt.Window;
  26. import java.awt.image.ColorModel;
  27. import java.awt.image.ImageObserver;
  28. import java.awt.image.ImageProducer;
  29. import java.awt.peer.ButtonPeer;
  30. import java.awt.peer.CanvasPeer;
  31. import java.awt.peer.CheckboxMenuItemPeer;
  32. import java.awt.peer.CheckboxPeer;
  33. import java.awt.peer.ChoicePeer;
  34. import java.awt.peer.DialogPeer;
  35. import java.awt.peer.FileDialogPeer;
  36. import java.awt.peer.FramePeer;
  37. import java.awt.peer.LabelPeer;
  38. import java.awt.peer.ListPeer;
  39. import java.awt.peer.MenuBarPeer;
  40. import java.awt.peer.MenuItemPeer;
  41. import java.awt.peer.MenuPeer;
  42. import java.awt.peer.PanelPeer;
  43. import java.awt.peer.ScrollbarPeer;
  44. import java.awt.peer.TextAreaPeer;
  45. import java.awt.peer.TextFieldPeer;
  46. import java.awt.peer.WindowPeer;
  47. import java.net.URL;
  48. import java.util.Hashtable;
  49. import sun.awt.image.FileImageSource;
  50. import sun.awt.image.ImageRepresentation;
  51. import sun.awt.image.URLImageSource;
  52.  
  53. public class MToolkit extends Toolkit implements Runnable {
  54.    boolean serverThread = true;
  55.    static Hashtable imgHash = new Hashtable();
  56.    static ColorModel screenmodel;
  57.  
  58.    public Image getImage(String var1) {
  59.       return getImageFromHash(this, (String)var1);
  60.    }
  61.  
  62.    public Image getImage(URL var1) {
  63.       return getImageFromHash(this, (URL)var1);
  64.    }
  65.  
  66.    public int checkImage(Image var1, int var2, int var3, ImageObserver var4) {
  67.       return checkScrImage(var1, var2, var3, var4);
  68.    }
  69.  
  70.    static boolean prepareScrImage(Image var0, int var1, int var2, ImageObserver var3) {
  71.       if (var1 != 0 && var2 != 0) {
  72.          Win32Image var4 = (Win32Image)var0;
  73.          if (((sun.awt.image.Image)var4).hasError()) {
  74.             if (var3 != null) {
  75.                var3.imageUpdate(var0, 192, -1, -1, -1, -1);
  76.             }
  77.  
  78.             return false;
  79.          } else {
  80.             if (var1 < 0) {
  81.                var1 = -1;
  82.             }
  83.  
  84.             if (var2 < 0) {
  85.                var2 = -1;
  86.             }
  87.  
  88.             ImageRepresentation var5 = var4.getImageRep(var1, var2);
  89.             return var5.prepare(var3);
  90.          }
  91.       } else {
  92.          return true;
  93.       }
  94.    }
  95.  
  96.    public Image createImage(ImageProducer var1) {
  97.       return new Win32Image(var1);
  98.    }
  99.  
  100.    native void eventLoop();
  101.  
  102.    public Dimension getScreenSize() {
  103.       return new Dimension(this.getScreenWidth(), this.getScreenHeight());
  104.    }
  105.  
  106.    public boolean prepareImage(Image var1, int var2, int var3, ImageObserver var4) {
  107.       return prepareScrImage(var1, var2, var3, var4);
  108.    }
  109.  
  110.    public PanelPeer createPanel(Panel var1) {
  111.       return new MPanelPeer(var1);
  112.    }
  113.  
  114.    public MenuPeer createMenu(Menu var1) {
  115.       return new MMenuPeer(var1);
  116.    }
  117.  
  118.    public CheckboxPeer createCheckbox(Checkbox var1) {
  119.       return new MCheckboxPeer(var1);
  120.    }
  121.  
  122.    public FontMetrics getFontMetrics(Font var1) {
  123.       return Win32FontMetrics.getFontMetrics(var1);
  124.    }
  125.  
  126.    public native void init(Thread var1);
  127.  
  128.    public CheckboxMenuItemPeer createCheckboxMenuItem(CheckboxMenuItem var1) {
  129.       return new MCheckboxMenuItemPeer(var1);
  130.    }
  131.  
  132.    native void callbackLoop();
  133.  
  134.    public native int getScreenResolution();
  135.  
  136.    public MenuItemPeer createMenuItem(MenuItem var1) {
  137.       return new MMenuItemPeer(var1);
  138.    }
  139.  
  140.    native int getScreenWidth();
  141.  
  142.    ThreadGroup getSystemThreadGroup() {
  143.       ThreadGroup var1;
  144.       for(var1 = Thread.currentThread().getThreadGroup(); var1.getParent() != null; var1 = var1.getParent()) {
  145.       }
  146.  
  147.       return var1;
  148.    }
  149.  
  150.    public ScrollbarPeer createScrollbar(Scrollbar var1) {
  151.       return new MScrollbarPeer(var1);
  152.    }
  153.  
  154.    public CanvasPeer createCanvas(Canvas var1) {
  155.       return new MCanvasPeer(var1);
  156.    }
  157.  
  158.    public ListPeer createList(List var1) {
  159.       return new MListPeer(var1);
  160.    }
  161.  
  162.    public WindowPeer createWindow(Window var1) {
  163.       return new MWindowPeer(var1);
  164.    }
  165.  
  166.    public FramePeer createFrame(Frame var1) {
  167.       return new MFramePeer(var1);
  168.    }
  169.  
  170.    public ButtonPeer createButton(Button var1) {
  171.       return new MButtonPeer(var1);
  172.    }
  173.  
  174.    public LabelPeer createLabel(Label var1) {
  175.       return new MLabelPeer(var1);
  176.    }
  177.  
  178.    public ChoicePeer createChoice(Choice var1) {
  179.       return new MChoicePeer(var1);
  180.    }
  181.  
  182.    public MenuBarPeer createMenuBar(MenuBar var1) {
  183.       return new MMenuBarPeer(var1);
  184.    }
  185.  
  186.    static native ColorModel makeColorModel();
  187.  
  188.    public String[] getFontList() {
  189.       String[] var1 = new String[]{"Dialog", "Helvetica", "TimesRoman", "Courier", "DialogInput", "ZapfDingbats"};
  190.       return var1;
  191.    }
  192.  
  193.    public native void sync();
  194.  
  195.    native int getScreenHeight();
  196.  
  197.    public DialogPeer createDialog(Dialog var1) {
  198.       return new MDialogPeer(var1);
  199.    }
  200.  
  201.    public MToolkit() {
  202.       synchronized(this){}
  203.  
  204.       try {
  205.          (new Thread(this.getSystemThreadGroup(), this, "AWT-Win32")).start();
  206.  
  207.          try {
  208.             this.wait();
  209.          } catch (InterruptedException var5) {
  210.             System.err.println("Interrupted while starting " + "AWT main thread, aborting.");
  211.             System.exit(1);
  212.          }
  213.       } catch (Throwable var6) {
  214.          throw var6;
  215.       }
  216.  
  217.       this.serverThread = false;
  218.       (new Thread(this, "AWT-Callback-Win32")).start();
  219.    }
  220.  
  221.    static int checkScrImage(Image var0, int var1, int var2, ImageObserver var3) {
  222.       Win32Image var4 = (Win32Image)var0;
  223.       int var5;
  224.       if (var1 != 0 && var2 != 0) {
  225.          if (var1 < 0) {
  226.             var1 = -1;
  227.          }
  228.  
  229.          if (var2 < 0) {
  230.             var2 = -1;
  231.          }
  232.  
  233.          var5 = var4.getImageRep(var1, var2).check(var3);
  234.       } else {
  235.          var5 = 32;
  236.       }
  237.  
  238.       return ((sun.awt.image.Image)var4).check(var3) | var5;
  239.    }
  240.  
  241.    public TextAreaPeer createTextArea(TextArea var1) {
  242.       return new MTextAreaPeer(var1);
  243.    }
  244.  
  245.    public void run() {
  246.       if (this.serverThread) {
  247.          try {
  248.             System.loadLibrary("msawt");
  249.             this.init(Thread.currentThread());
  250.          } catch (Throwable var3) {
  251.             System.err.println("Exception received while initializing " + "AWT toolkit, aborting.");
  252.             var3.printStackTrace();
  253.             System.exit(1);
  254.          }
  255.  
  256.          this.eventLoop();
  257.       } else {
  258.          this.callbackLoop();
  259.       }
  260.  
  261.    }
  262.  
  263.    static synchronized Image getImageFromHash(Toolkit var0, URL var1) {
  264.       SecurityManager var2 = System.getSecurityManager();
  265.       if (var2 != null) {
  266.          var2.checkConnect(var1.getHost(), var1.getPort());
  267.       }
  268.  
  269.       Image var3 = (Image)imgHash.get(var1);
  270.       if (var3 == null) {
  271.          try {
  272.             var3 = var0.createImage(new URLImageSource(var1));
  273.             imgHash.put(var1, var3);
  274.          } catch (Exception var5) {
  275.          }
  276.       }
  277.  
  278.       return var3;
  279.    }
  280.  
  281.    static synchronized Image getImageFromHash(Toolkit var0, String var1) {
  282.       SecurityManager var2 = System.getSecurityManager();
  283.       if (var2 != null) {
  284.          var2.checkRead(var1);
  285.       }
  286.  
  287.       Image var3 = (Image)imgHash.get(var1);
  288.       if (var3 == null) {
  289.          try {
  290.             var3 = var0.createImage(new FileImageSource(var1));
  291.             imgHash.put(var1, var3);
  292.          } catch (Exception var5) {
  293.          }
  294.       }
  295.  
  296.       return var3;
  297.    }
  298.  
  299.    static ColorModel getStaticColorModel() {
  300.       if (screenmodel == null) {
  301.          screenmodel = makeColorModel();
  302.       }
  303.  
  304.       return screenmodel;
  305.    }
  306.  
  307.    public FileDialogPeer createFileDialog(FileDialog var1) {
  308.       return new MFileDialogPeer(var1);
  309.    }
  310.  
  311.    public TextFieldPeer createTextField(TextField var1) {
  312.       return new MTextFieldPeer(var1);
  313.    }
  314.  
  315.    public ColorModel getColorModel() {
  316.       return getStaticColorModel();
  317.    }
  318. }
  319.