-// Copyright 2003 Adam Megacz, see the COPYING file for licensing [GPL]
+// Copyright 2004 Adam Megacz, see the COPYING file for licensing [GPL]
package org.xwt.plat;
import org.xwt.*;
import org.xwt.util.*;
import java.net.*;
import java.io.*;
+import org.xwt.js.*;
import java.util.*;
import java.awt.*;
import java.awt.datatransfer.*;
protected String getDescriptiveName() { return "Generic JDK 1.1+ with AWT"; }
protected PixelBuffer _createPixelBuffer(int w, int h, Surface owner) { return new AWTPixelBuffer(w, h); }
- protected Picture _createPicture(Stream r) { return new AWTPicture(r); }
+ protected Picture _createPicture(JS r) { return new AWTPicture(r); }
protected int _getScreenWidth() { return Toolkit.getDefaultToolkit().getScreenSize().width; }
protected int _getScreenHeight() { return Toolkit.getDefaultToolkit().getScreenSize().height; }
protected Surface _createSurface(Box b, boolean framed) { return new AWTSurface(b, framed); }
protected org.xwt.Font.Glyph _createGlyph(org.xwt.Font f, char c) { return new AWTGlyph(f, c); }
protected static class AWTGlyph extends org.xwt.Font.Glyph {
private Image i = null;
+ private static ColorModel cmodel = new DirectColorModel(32, 0x00FF0000, 0x0000FF00, 0x000000FF, 0xFF000000);
+
+ // this doesn't work on Win32 because the JVM is broken
+ /*
static final ColorModel cmodel = new ColorModel(8) {
public int getRed(int p) { return 0; }
public int getGreen(int p) { return 0; }
public int getBlue(int p) { return 0; }
public int getAlpha(int p) { return p & 0xFF; }
};
+ */
public AWTGlyph(org.xwt.Font f, char c) { super(f, c); }
Image getImage() {
if (i == null && isLoaded) {
- i = Toolkit.getDefaultToolkit().createImage(new MemoryImageSource(width, height, cmodel, data, 0, width));
+
+ int[] data2 = new int[data.length];
+ for(int i=0; i<data2.length; i++) data2[i] = ((data[i]) & 0xff) << 24;
+
+ MemoryImageSource mis = new MemoryImageSource(width, height, cmodel, data2, 0, width);
+ mis.setAnimated(true);
+ i = Toolkit.getDefaultToolkit().createImage(mis);
MediaTracker mediatracker = new MediaTracker(new Canvas());
mediatracker.addImage(i, 1);
try { mediatracker.waitForAll(); } catch (InterruptedException e) { }
private static ColorModel cmodel = new DirectColorModel(32, 0x00FF0000, 0x0000FF00, 0x000000FF, 0xFF000000);
boolean initialized = false;
- public AWTPicture(Stream r) { super(r); }
+ public AWTPicture(JS r) { super(r); }
public void init() {
if (initialized) return;
initialized = true;
- i = Toolkit.getDefaultToolkit().createImage(new MemoryImageSource(width, height, cmodel, data, 0, width));
+ MemoryImageSource mis = new MemoryImageSource(width, height, cmodel, data, 0, width);
+ mis.setAnimated(true);
+ i = Toolkit.getDefaultToolkit().createImage(mis);
MediaTracker mediatracker = new MediaTracker(new Canvas());
mediatracker.addImage(i, 1);
try { mediatracker.waitForAll(); } catch (InterruptedException e) { }
class InnerFrame extends Frame {
public InnerFrame() throws java.lang.UnsupportedOperationException { }
+ public Dimension getMinimumSize() {
+ return new Dimension(root == null ? 0 : root.minwidth, root == null ? 0 : root.minheight); }
public void update(Graphics gr) { paint(gr); }
public void paint(Graphics gr) {
Rectangle r = gr.getClipBounds();
class InnerWindow extends Window {
public InnerWindow() throws java.lang.UnsupportedOperationException { super(new Frame()); }
+ public Dimension getMinimumSize() {
+ return new Dimension(root == null ? 0 : root.minwidth, root == null ? 0 : root.minheight); }
public void update(Graphics gr) { paint(gr); }
public void paint(Graphics gr) {
Rectangle r = gr.getClipBounds();
}
}
+ public void setMinimumSize(int minx, int miny, boolean resizable) { if (frame != null) frame.setResizable(resizable); }
+
public void render() {
// useful optimizatin;
window.setBackground((root.fillcolor & 0xFF000000) == 0 ?