From: <cl...@us...> - 2007-12-21 18:09:27
|
Revision: 2692 http://vexi.svn.sourceforge.net/vexi/?rev=2692&view=rev Author: clrg Date: 2007-12-21 10:09:32 -0800 (Fri, 21 Dec 2007) Log Message: ----------- Reduce warnings and convert some tabs to spaces Modified Paths: -------------- trunk/core/org.vexi.core/src/org/vexi/core/Box.jpp trunk/core/org.vexi.core/src/org/vexi/core/TemplateBuilder.java trunk/core/org.vexi.core/src/org/vexi/core/Vexi.jpp trunk/core/org.vexi.core/src/org/vexi/graphics/Font.java trunk/core/org.vexi.core/src/org/vexi/plat/AWT.java trunk/core/org.vexi.core/src/org/vexi/plat/Java2.java trunk/core/org.vexi.core/src_dev/org/vexi/plat/Java2VolatileImage.java Modified: trunk/core/org.vexi.core/src/org/vexi/core/Box.jpp =================================================================== --- trunk/core/org.vexi.core/src/org/vexi/core/Box.jpp 2007-12-21 02:50:06 UTC (rev 2691) +++ trunk/core/org.vexi.core/src/org/vexi/core/Box.jpp 2007-12-21 18:09:32 UTC (rev 2692) @@ -21,7 +21,6 @@ import org.ibex.js.JSU; import org.ibex.js.JSExn; import org.ibex.js.Scheduler; -import org.ibex.js.Thread; import org.ibex.util.Callable; import org.ibex.util.Log; import org.vexi.graphics.Color; Modified: trunk/core/org.vexi.core/src/org/vexi/core/TemplateBuilder.java =================================================================== --- trunk/core/org.vexi.core/src/org/vexi/core/TemplateBuilder.java 2007-12-21 02:50:06 UTC (rev 2691) +++ trunk/core/org.vexi.core/src/org/vexi/core/TemplateBuilder.java 2007-12-21 18:09:32 UTC (rev 2692) @@ -287,7 +287,7 @@ oldCb.apply: (Template)oldCb; t = (Template)cb; - t.children.addElement((Template)oldT); + t.children.addElement(oldT); state = STATE_IN_TEMPLATE_NODE; }else{ if (nodeStack.size() == 0) { Modified: trunk/core/org.vexi.core/src/org/vexi/core/Vexi.jpp =================================================================== --- trunk/core/org.vexi.core/src/org/vexi/core/Vexi.jpp 2007-12-21 02:50:06 UTC (rev 2691) +++ trunk/core/org.vexi.core/src/org/vexi/core/Vexi.jpp 2007-12-21 18:09:32 UTC (rev 2692) @@ -11,13 +11,11 @@ import org.ibex.js.JSExn; import org.ibex.js.JSRegexp; import org.ibex.js.JSU; -import org.ibex.js.Thread; import org.ibex.js.XMLRPC; import org.ibex.util.Cache; import org.ibex.util.Callable; import org.ibex.util.Encode; import org.ibex.util.Log; -import org.vexi.core.Text; import org.vexi.graphics.Font; import org.vexi.net.HTTP; import org.vexi.net.SOAP; @@ -46,7 +44,7 @@ throw new JSExn("absolute URL " + str + " not permitted here"); }*/ // root-relative - JS ret = (JS)vexi.getAndTriggerTraps(SC_); + JS ret = vexi.getAndTriggerTraps(SC_); while (str.indexOf('.') != -1) { String path = str.substring(0, str.indexOf('.')); Modified: trunk/core/org.vexi.core/src/org/vexi/graphics/Font.java =================================================================== --- trunk/core/org.vexi.core/src/org/vexi/graphics/Font.java 2007-12-21 02:50:06 UTC (rev 2691) +++ trunk/core/org.vexi.core/src/org/vexi/graphics/Font.java 2007-12-21 18:09:32 UTC (rev 2692) @@ -98,7 +98,7 @@ width += g.advance; height = java.lang.Math.max(height, max_ascent + max_descent); } - return ((((long)width) << 32) | (long)(height & 0xffffffffL)); + return ((((long)width) << 32) | (height & 0xffffffffL)); } // FEATURE do we really need to be caching sizes? @@ -172,7 +172,7 @@ private synchronized void renderGlyph(Font.Glyph glyph) throws IOException { try { Log.debug(Font.class, "rasterizing glyph " + glyph.c + " of font " + glyph.font); - if (glyph.font.loadedStream != glyph.font.stream) loadFontByteStream(glyph.font.stream); + if (Font.loadedStream != glyph.font.stream) loadFontByteStream(glyph.font.stream); //long start = System.currentTimeMillis(); Modified: trunk/core/org.vexi.core/src/org/vexi/plat/AWT.java =================================================================== --- trunk/core/org.vexi.core/src/org/vexi/plat/AWT.java 2007-12-21 02:50:06 UTC (rev 2691) +++ trunk/core/org.vexi.core/src/org/vexi/plat/AWT.java 2007-12-21 18:09:32 UTC (rev 2692) @@ -66,986 +66,985 @@ /** Platform subclass for all VM's providing AWT 1.1 functionality */ public class AWT extends JVM { - protected String getDescriptiveName() { - return "Generic JDK 1.1+ with AWT"; - } + 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 PixelBuffer _createPixelBuffer(int w, int h, Surface owner) { + return new AWTPixelBuffer(w, h); + } - protected Picture _createPicture(JS r) { - return new AWTPicture(r); - } + protected Picture _createPicture(JS r) { + return new AWTPicture(r); + } - protected int _getScreenWidth() { - return Toolkit.getDefaultToolkit().getScreenSize().width; - } + protected int _getScreenWidth() { + return Toolkit.getDefaultToolkit().getScreenSize().width; + } - protected int _getScreenHeight() { - return Toolkit.getDefaultToolkit().getScreenSize().height; - } + protected int _getScreenHeight() { + return Toolkit.getDefaultToolkit().getScreenSize().height; + } - protected Surface _createSurface(Box b, boolean framed) { - return new AWTSurface(b, framed); - } + protected Surface _createSurface(Box b, boolean framed) { + return new AWTSurface(b, framed); + } - protected void postInit() { - Log.diag(Platform.class, " color depth = " - + Toolkit.getDefaultToolkit().getColorModel().getPixelSize() - + "bpp"); - } + protected void postInit() { + Log.diag(Platform.class, " color depth = " + + Toolkit.getDefaultToolkit().getColorModel().getPixelSize() + + "bpp"); + } - protected void _criticalAbort(String message) { - Log.error(this, message); - final Dialog d = new Dialog(new Frame(), "Vexi Cannot Continue"); - d.setLayout(new BorderLayout()); - TextArea ta = new TextArea("Vexi cannot continue because:\n\n" - + message, 10, 80); - ta.setEditable(false); - d.add(ta, "Center"); - Button b = new Button("OK"); - b.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - d.dispose(); - } - }); - d.add(b, "South"); - d.setModal(true); - d.pack(); - d.show(); - new Semaphore().block(); - } + protected void _criticalAbort(String message) { + Log.error(this, message); + final Dialog d = new Dialog(new Frame(), "Vexi Cannot Continue"); + d.setLayout(new BorderLayout()); + TextArea ta = new TextArea("Vexi cannot continue because:\n\n" + + message, 10, 80); + ta.setEditable(false); + d.add(ta, "Center"); + Button b = new Button("OK"); + b.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + d.dispose(); + } + }); + d.add(b, "South"); + d.setModal(true); + d.pack(); + d.setVisible(true); + new Semaphore().block(); + } - protected String _getClipBoard() { - Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard(); - if (cb == null) - return null; - Transferable clipdata = cb.getContents(null); - try { - return (String) clipdata.getTransferData(DataFlavor.stringFlavor); - } catch (Exception ex) { - return null; - } - } + protected String _getClipBoard() { + Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard(); + if (cb == null) + return null; + Transferable clipdata = cb.getContents(null); + try { + return (String) clipdata.getTransferData(DataFlavor.stringFlavor); + } catch (Exception ex) { + return null; + } + } - protected void _setClipBoard(String s) { - Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); - if (clipboard == null) - return; - StringSelection clipString = new StringSelection(s); - clipboard.setContents(clipString, clipString); - } + protected void _setClipBoard(String s) { + Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); + if (clipboard == null) + return; + StringSelection clipString = new StringSelection(s); + clipboard.setContents(clipString, clipString); + } - /** - * some platforms (cough, cough, NetscapeVM) have totally broken modifier - * masks; they will need to override this - */ - protected static int modifiersToButtonNumber(int modifiers) { - if ((modifiers & InputEvent.BUTTON1_MASK) == InputEvent.BUTTON1_MASK) - return 1; - if ((modifiers & InputEvent.BUTTON2_MASK) == InputEvent.BUTTON2_MASK) { - // ugh, MacOSX reports the right mouse button as BUTTON2_MASK... - if (System.getProperty("os.name", "").startsWith("Mac OS X")) - return 2; - return 3; - } - if ((modifiers & InputEvent.BUTTON3_MASK) == InputEvent.BUTTON3_MASK) { - // ugh, MacOSX reports the right mouse button as BUTTON2_MASK... - if (System.getProperty("os.name", "").startsWith("Mac OS X")) - return 3; - return 2; - } - return 0; - } + /** + * some platforms (cough, cough, NetscapeVM) have totally broken modifier + * masks; they will need to override this + */ + protected static int modifiersToButtonNumber(int modifiers) { + if ((modifiers & InputEvent.BUTTON1_MASK) == InputEvent.BUTTON1_MASK) + return 1; + if ((modifiers & InputEvent.BUTTON2_MASK) == InputEvent.BUTTON2_MASK) { + // ugh, MacOSX reports the right mouse button as BUTTON2_MASK... + if (System.getProperty("os.name", "").startsWith("Mac OS X")) + return 2; + return 3; + } + if ((modifiers & InputEvent.BUTTON3_MASK) == InputEvent.BUTTON3_MASK) { + // ugh, MacOSX reports the right mouse button as BUTTON2_MASK... + if (System.getProperty("os.name", "").startsWith("Mac OS X")) + return 3; + return 2; + } + return 0; + } - static class FileDialogHelper extends FileDialog implements WindowListener, - ComponentListener { - Semaphore s; + static class FileDialogHelper extends FileDialog implements WindowListener, ComponentListener { + Semaphore s; - public FileDialogHelper(String suggestedFileName, Semaphore s, - boolean write) { - super(new Frame(), write ? "Save" : "Open", write ? FileDialog.SAVE - : FileDialog.LOAD); - this.s = s; - addWindowListener(this); - addComponentListener(this); - if (suggestedFileName.indexOf(File.separatorChar) == -1) { - setFile(suggestedFileName); - } else { - setDirectory(suggestedFileName.substring(0, suggestedFileName - .lastIndexOf(File.separatorChar))); - setFile(suggestedFileName.substring(suggestedFileName - .lastIndexOf(File.separatorChar) + 1)); - } - show(); - } + public FileDialogHelper(String suggestedFileName, Semaphore s, + boolean write) { + super(new Frame(), write ? "Save" : "Open", write ? FileDialog.SAVE + : FileDialog.LOAD); + this.s = s; + addWindowListener(this); + addComponentListener(this); + if (suggestedFileName.indexOf(File.separatorChar) == -1) { + setFile(suggestedFileName); + } else { + setDirectory(suggestedFileName.substring(0, suggestedFileName + .lastIndexOf(File.separatorChar))); + setFile(suggestedFileName.substring(suggestedFileName + .lastIndexOf(File.separatorChar) + 1)); + } + setVisible(true); + } - public void windowActivated(WindowEvent e) { - } + public void windowActivated(WindowEvent e) { + } - public void windowClosed(WindowEvent e) { - s.release(); - } + public void windowClosed(WindowEvent e) { + s.release(); + } - public void windowClosing(WindowEvent e) { - } + public void windowClosing(WindowEvent e) { + } - public void windowDeactivated(WindowEvent e) { - } + public void windowDeactivated(WindowEvent e) { + } - public void windowDeiconified(WindowEvent e) { - } + public void windowDeiconified(WindowEvent e) { + } - public void windowIconified(WindowEvent e) { - } + public void windowIconified(WindowEvent e) { + } - public void windowOpened(WindowEvent e) { - } + public void windowOpened(WindowEvent e) { + } - public void componentHidden(ComponentEvent e) { - s.release(); - } + public void componentHidden(ComponentEvent e) { + s.release(); + } - public void componentMoved(ComponentEvent e) { - } + public void componentMoved(ComponentEvent e) { + } - public void componentResized(ComponentEvent e) { - } + public void componentResized(ComponentEvent e) { + } - public void componentShown(ComponentEvent e) { - } - }; + public void componentShown(ComponentEvent e) { + } + }; - protected String _fileDialog(String suggestedFileName, boolean write) { - final Semaphore s = new Semaphore(); - FileDialogHelper fd = new FileDialogHelper(suggestedFileName, s, write); - s.block(); - return fd.getDirectory() == null ? null : (fd.getDirectory() - + File.separatorChar + fd.getFile()); - } + protected String _fileDialog(String suggestedFileName, boolean write) { + final Semaphore s = new Semaphore(); + FileDialogHelper fd = new FileDialogHelper(suggestedFileName, s, write); + s.block(); + return fd.getDirectory() == null ? null : (fd.getDirectory() + + File.separatorChar + fd.getFile()); + } - // Inner Classes - // ///////////////////////////////////////////////////////////////////////////////////// + // Inner Classes + // ///////////////////////////////////////////////////////////////////////////////////// - protected Font.Glyph _createGlyph(Font f, char c) { - return new AWTGlyph(f, c); - } + protected Font.Glyph _createGlyph(Font f, char c) { + return new AWTGlyph(f, c); + } - protected static class AWTGlyph extends Font.Glyph { - private Image i = null; - private static ColorModel cmodel = new DirectColorModel(32, 0x00FF0000, - 0x0000FF00, 0x000000FF, 0xFF000000); + protected static class AWTGlyph extends 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; } }; - */ + // 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(Font f, char c) { - super(f, c); - } + public AWTGlyph(Font f, char c) { + super(f, c); + } - Image getImage() { - if (i == null && isLoaded) { + Image getImage() { + if (i == null && isLoaded) { - int[] data2 = new int[data.length]; - for (int i = 0; i < data2.length; i++) - data2[i] = ((data[i]) & 0xff) << 24; + 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) { - } - mediatracker.removeImage(i); - synchronized (AWTPixelBuffer.class) { - if (AWTPixelBuffer.component == null) { - AWTPixelBuffer.component = new Frame(); - AWTPixelBuffer.component.setVisible(false); - AWTPixelBuffer.component.addNotify(); - } - } - data = null; - } - return i; - } - } + 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) { + } + mediatracker.removeImage(i); + synchronized (AWTPixelBuffer.class) { + if (AWTPixelBuffer.component == null) { + AWTPixelBuffer.component = new Frame(); + AWTPixelBuffer.component.setVisible(false); + AWTPixelBuffer.component.addNotify(); + } + } + data = null; + } + return i; + } + } - protected static class AWTPicture extends Picture { - public Image i = null; - private static ColorModel cmodel = new DirectColorModel(32, 0x00FF0000, - 0x0000FF00, 0x000000FF, 0xFF000000); + protected static class AWTPicture extends Picture { + public Image i = null; + private static ColorModel cmodel = new DirectColorModel(32, 0x00FF0000, + 0x0000FF00, 0x000000FF, 0xFF000000); - boolean initialized = false; + boolean initialized = false; - public AWTPicture(JS r) { - super(r); - } + public AWTPicture(JS r) { + super(r); + } - public void init() { - if (initialized) - return; - initialized = true; - 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) { - } - mediatracker.removeImage(i); - synchronized (AWTPixelBuffer.class) { - if (AWTPixelBuffer.component == null) { - AWTPixelBuffer.component = new Frame(); - AWTPixelBuffer.component.setVisible(false); - AWTPixelBuffer.component.addNotify(); - } - } - } - } + public void init() { + if (initialized) + return; + initialized = true; + 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) { + } + mediatracker.removeImage(i); + synchronized (AWTPixelBuffer.class) { + if (AWTPixelBuffer.component == null) { + AWTPixelBuffer.component = new Frame(); + AWTPixelBuffer.component.setVisible(false); + AWTPixelBuffer.component.addNotify(); + } + } + } + } - protected static class AWTPixelBuffer implements PixelBuffer { + protected static class AWTPixelBuffer implements PixelBuffer { - protected Image i = null; - protected Graphics g = null; - protected AWTSurface surface = null; + protected Image i = null; + protected Graphics g = null; + protected AWTSurface surface = null; - /** - * JDK1.1 platforms require that a component be associated with each - * off-screen buffer - */ - static Component component = null; + /** + * JDK1.1 platforms require that a component be associated with each + * off-screen buffer + */ + static Component component = null; - public AWTPixelBuffer() { - } + public AWTPixelBuffer() { + } - public AWTPixelBuffer(Image i) { - this.i = i; - g = i.getGraphics(); - } + public AWTPixelBuffer(Image i) { + this.i = i; + g = i.getGraphics(); + } - public AWTPixelBuffer(AWTSurface s) { - this(Platform.getScreenWidth(), Platform.getScreenHeight()); - this.surface = s; - } + public AWTPixelBuffer(AWTSurface s) { + this(Platform.getScreenWidth(), Platform.getScreenHeight()); + this.surface = s; + } - public AWTPixelBuffer(int w, int h) { - synchronized (AWTPixelBuffer.class) { - if (component == null) { - component = new Frame(); - component.setVisible(false); - component.addNotify(); - } - } - i = component.createImage(w, h); - g = i.getGraphics(); - } + public AWTPixelBuffer(int w, int h) { + synchronized (AWTPixelBuffer.class) { + if (component == null) { + component = new Frame(); + component.setVisible(false); + component.addNotify(); + } + } + i = component.createImage(w, h); + g = i.getGraphics(); + } - public int getHeight() { - return i == null ? 0 : i.getHeight(null); - } + public int getHeight() { + return i == null ? 0 : i.getHeight(null); + } - public int getWidth() { - return i == null ? 0 : i.getWidth(null); - } + public int getWidth() { + return i == null ? 0 : i.getWidth(null); + } - /** draw an unscaled image */ - public void drawPicture(Picture source, int dx, int dy, int cx1, - int cy1, int cx2, int cy2) { - ((AWTPicture) source).init(); - g.setClip(cx1, cy1, cx2 - cx1, cy2 - cy1); - g.drawImage(((AWTPicture) source).i, dx, dy, null); - g.setClip(0, 0, i.getWidth(null), i.getHeight(null)); - } + /** draw an unscaled image */ + public void drawPicture(Picture source, int dx, int dy, int cx1, + int cy1, int cx2, int cy2) { + ((AWTPicture) source).init(); + g.setClip(cx1, cy1, cx2 - cx1, cy2 - cy1); + g.drawImage(((AWTPicture) source).i, dx, dy, null); + g.setClip(0, 0, i.getWidth(null), i.getHeight(null)); + } - /** draw an scaled image */ - public void drawPicture(Picture source, int dx1, int dy1, int dx2, - int dy2, int sx1, int sy1, int sx2, int sy2) { - ((AWTPicture) source).init(); - g.drawImage(((AWTPicture) source).i, dx1, dy1, dx2, dy2, sx1, sy1, - sx2, sy2, null); - } + /** draw an scaled image */ + public void drawPicture(Picture source, int dx1, int dy1, int dx2, + int dy2, int sx1, int sy1, int sx2, int sy2) { + ((AWTPicture) source).init(); + g.drawImage(((AWTPicture) source).i, dx1, dy1, dx2, dy2, sx1, sy1, + sx2, sy2, null); + } - /** implemented with java.awt 1.1's setXORMode() */ - public void drawGlyph(Font.Glyph source, int dx, int dy, int cx1, - int cy1, int cx2, int cy2, int rgb) { + /** implemented with java.awt 1.1's setXORMode() */ + public void drawGlyph(Font.Glyph source, int dx, int dy, int cx1, + int cy1, int cx2, int cy2, int rgb) { - // XOR the target region - g.setXORMode(new java.awt.Color((rgb & 0x00ff0000) >> 16, - (rgb & 0x0000ff00) >> 8, rgb & 0x000000ff)); - g.setColor(new java.awt.Color(0x0, 0x0, 0x0)); - g.fillRect(cx1, cy1, cx2 - cx1, cy2 - cy1); + // XOR the target region + g.setXORMode(new java.awt.Color((rgb & 0x00ff0000) >> 16, + (rgb & 0x0000ff00) >> 8, rgb & 0x000000ff)); + g.setColor(new java.awt.Color(0x0, 0x0, 0x0)); + g.fillRect(cx1, cy1, cx2 - cx1, cy2 - cy1); - // blacken the area we want the glyph to cover - g.setPaintMode(); - g.setClip(cx1, cy1, cx2 - cx1, cy2 - cy1); - g.drawImage(((AWTGlyph) source).getImage(), dx, dy, null); - g.setClip(0, 0, i.getWidth(null), i.getHeight(null)); + // blacken the area we want the glyph to cover + g.setPaintMode(); + g.setClip(cx1, cy1, cx2 - cx1, cy2 - cy1); + g.drawImage(((AWTGlyph) source).getImage(), dx, dy, null); + g.setClip(0, 0, i.getWidth(null), i.getHeight(null)); - // XOR back, turning black into the chosen rgb color - g.setXORMode(new java.awt.Color((rgb & 0x00ff0000) >> 16, - (rgb & 0x0000ff00) >> 8, rgb & 0x000000ff)); - g.setColor(new java.awt.Color(0x0, 0x0, 0x0)); - g.fillRect(cx1, cy1, cx2 - cx1, cy2 - cy1); + // XOR back, turning black into the chosen rgb color + g.setXORMode(new java.awt.Color((rgb & 0x00ff0000) >> 16, + (rgb & 0x0000ff00) >> 8, rgb & 0x000000ff)); + g.setColor(new java.awt.Color(0x0, 0x0, 0x0)); + g.fillRect(cx1, cy1, cx2 - cx1, cy2 - cy1); - // restore the graphics context - g.setPaintMode(); - } + // restore the graphics context + g.setPaintMode(); + } - // FIXME: try to use os acceleration - public void fillTrapezoid(int x1, int x2, int y1, int x3, int x4, - int y2, int argb) { - g.setColor(new java.awt.Color((argb & 0x00FF0000) >> 16, - (argb & 0x0000FF00) >> 8, (argb & 0x000000FF), - (argb & 0xFF000000) >>> 24)); - if (x1 == x3 && x2 == x4) { - g.fillRect(x1, y1, x4 - x1, y2 - y1); - } else - for (int y = y1; y < y2; y++) { - int _x1 = (int) Math.floor((y - y1) * (x3 - x1) / (y2 - y1) - + x1); - int _y1 = (int) Math.floor(y); - int _x2 = (int) Math.ceil((y - y1) * (x4 - x2) / (y2 - y1) - + x2); - int _y2 = (int) Math.floor(y) + 1; - if (_x1 > _x2) { - int _x0 = _x1; - _x1 = _x2; - _x2 = _x0; - } - g.fillRect(_x1, _y1, _x2 - _x1, _y2 - _y1); - } - } + // FIXME: try to use os acceleration + public void fillTrapezoid(int x1, int x2, int y1, int x3, int x4, + int y2, int argb) { + g.setColor(new java.awt.Color((argb & 0x00FF0000) >> 16, + (argb & 0x0000FF00) >> 8, (argb & 0x000000FF), + (argb & 0xFF000000) >>> 24)); + if (x1 == x3 && x2 == x4) { + g.fillRect(x1, y1, x4 - x1, y2 - y1); + } else + for (int y = y1; y < y2; y++) { + int _x1 = (int) Math.floor((y - y1) * (x3 - x1) / (y2 - y1) + + x1); + int _y1 = (int) Math.floor(y); + int _x2 = (int) Math.ceil((y - y1) * (x4 - x2) / (y2 - y1) + + x2); + int _y2 = (int) Math.floor(y) + 1; + if (_x1 > _x2) { + int _x0 = _x1; + _x1 = _x2; + _x2 = _x0; + } + g.fillRect(_x1, _y1, _x2 - _x1, _y2 - _y1); + } + } - public void drawLine(int x1, int y1, int x2, int y2, int color) { - // TODO Auto-generated method stub - throw new Error("FIXME: not yet implemented"); - } + public void drawLine(int x1, int y1, int x2, int y2, int color) { + // TODO Auto-generated method stub + throw new Error("FIXME: not yet implemented"); + } - public void fillTriangle(int x1, int y1, int x2, int y2, int x3, - int y3, int color) { - // TODO Auto-generated method stub - throw new Error("FIXME: not yet implemented"); - } - } + public void fillTriangle(int x1, int y1, int x2, int y2, int x3, + int y3, int color) { + // TODO Auto-generated method stub + throw new Error("FIXME: not yet implemented"); + } + } - protected static class AWTSurface extends Surface.DoubleBufferedSurface - implements MouseListener, MouseMotionListener, MouseWheelListener, - KeyListener, ComponentListener, WindowListener { + protected static class AWTSurface extends Surface.DoubleBufferedSurface + implements MouseListener, MouseMotionListener, MouseWheelListener, + KeyListener, ComponentListener, WindowListener { - public void blit(PixelBuffer s, int sx, int sy, int dx, int dy, - int dx2, int dy2) { - discoverInsets(); - try { - window.getGraphics().drawImage(((AWTPixelBuffer) s).i, - dx + leftInset, dy + topInset, dx2 + leftInset, - dy2 + topInset, sx, sy, sx + (dx2 - dx), - sy + (dy2 - dy), null); - } catch (NullPointerException npe) { /* - * FIXME: handle this - * gracefully - */ - } - } + public void blit(PixelBuffer s, int sx, int sy, int dx, int dy, + int dx2, int dy2) { + discoverInsets(); + try { + window.getGraphics().drawImage(((AWTPixelBuffer) s).i, + dx + leftInset, dy + topInset, dx2 + leftInset, + dy2 + topInset, sx, sy, sx + (dx2 - dx), + sy + (dy2 - dy), null); + } catch (NullPointerException npe) { /* + * FIXME: handle this + * gracefully + */ + } + } - /** - * if (component instanceof Frame) then frame == window else frame == - * null - */ - Frame frame = null; - Window window = null; + /** + * if (component instanceof Frame) then frame == window else frame == + * null + */ + Frame frame = null; + Window window = null; - /** our component's insets */ - // protected Insets insets = new Insets(0, 0, 0, 0); - /** - * some JDKs let us recycle a single Dimension object when calling - * getSize() - */ - Dimension singleSize = new Dimension(); + /** our component's insets */ + // protected Insets insets = new Insets(0, 0, 0, 0); + /** + * some JDKs let us recycle a single Dimension object when calling + * getSize() + */ + Dimension singleSize = new Dimension(); - public void toBack() { - if (window != null) - window.toBack(); - } + public void toBack() { + if (window != null) + window.toBack(); + } - public void toFront() { - if (window != null) - window.toFront(); - } + public void toFront() { + if (window != null) + window.toFront(); + } - public void setLocation() { - if (window != null) - window.setLocation(x, y); - } + public void setLocation() { + if (window != null) + window.setLocation(x, y); + } - public void setTitleBarText(String s) { - if (frame != null) - frame.setTitle(s); - } + public void setTitleBarText(String s) { + if (frame != null) + frame.setTitle(s); + } - public void setInvisible(boolean b) { - window.setVisible(!b); - } + public void setInvisible(boolean b) { + window.setVisible(!b); + } - public void setIcon(Picture i) { - if (frame == null) - return; - // frame.setIconImage(image); - // BROKEN - setting the icon - // ... problem setting icon causes java to hang if from AWTPicture's - // image - // ImageIcon(..).getImage() seems to work however. - // frame.setIconImage(((AWTPicture)i).i); - } + public void setIcon(Picture i) { + if (frame == null) + return; + // frame.setIconImage(image); + // BROKEN - setting the icon + // ... problem setting icon causes java to hang if from AWTPicture's + // image + // ImageIcon(..).getImage() seems to work however. + // frame.setIconImage(((AWTPicture)i).i); + } - public void _setSize(int width, int height) { - discoverInsets(); - // System.err.println("_setSize: "+width+", "+height - // +" ("+leftInset+", "+rightInset+", "+topInset+", - // "+bottomInset+")"); - window.setSize(width + (leftInset + rightInset), height - + (topInset + bottomInset)); - } + public void _setSize(int width, int height) { + discoverInsets(); + // System.err.println("_setSize: "+width+", "+height + // +" ("+leftInset+", "+rightInset+", "+topInset+", + // "+bottomInset+")"); + window.setSize(width + (leftInset + rightInset), height + + (topInset + bottomInset)); + } - protected void _setMinimized(boolean b) { - Log.warn(this, - "JDK 1.1 platforms cannot minimize or unminimize windows"); - } + protected void _setMinimized(boolean b) { + Log.warn(this, + "JDK 1.1 platforms cannot minimize or unminimize windows"); + } - protected void _setMaximized(boolean b) { - if (!b) { - Log.warn(this, "JDK 1.1 platforms cannot unmaximize windows"); - return; - } - window.setLocation(new Point(0, 0)); - window.setSize(Toolkit.getDefaultToolkit().getScreenSize()); - } + protected void _setMaximized(boolean b) { + if (!b) { + Log.warn(this, "JDK 1.1 platforms cannot unmaximize windows"); + return; + } + window.setLocation(new Point(0, 0)); + window.setSize(Toolkit.getDefaultToolkit().getScreenSize()); + } - class InnerFrame extends Frame { - public InnerFrame() throws java.lang.UnsupportedOperationException { - } + class InnerFrame extends Frame { + public InnerFrame() throws java.lang.UnsupportedOperationException { + } - /** - * overrides the native Frame method to supposedly enforce a minimum - * size - */ - public Dimension getMinimumSize() { - // FEATURE: cache dimension - return new Dimension(root == null ? 0 : root.minwidth, - root == null ? 0 : root.minheight); - } + /** + * overrides the native Frame method to supposedly enforce a minimum + * size + */ + public Dimension getMinimumSize() { + // FEATURE: cache dimension + return new Dimension(root == null ? 0 : root.minwidth, + root == null ? 0 : root.minheight); + } - public void update(Graphics gr) { - paint(gr); - } + public void update(Graphics gr) { + paint(gr); + } - public void paint(Graphics gr) { - Rectangle r = gr.getClipBounds(); + public void paint(Graphics gr) { + Rectangle r = gr.getClipBounds(); - // ugly hack for Java1.4 dynamicLayout on Win32 -- this catches - // expansions during smooth resize - int newwidth = Math.max(r.x - leftInset + r.width, root.width); - int newheight = Math - .max(r.y - topInset + r.height, root.height); - if (newwidth > root.width || newheight > root.height) - componentResized( - window.getWidth() - leftInset - rightInset, window - .getHeight() - - topInset - bottomInset); + // ugly hack for Java1.4 dynamicLayout on Win32 -- this catches + // expansions during smooth resize + int newwidth = Math.max(r.x - leftInset + r.width, root.width); + int newheight = Math + .max(r.y - topInset + r.height, root.height); + if (newwidth > root.width || newheight > root.height) + componentResized( + window.getWidth() - leftInset - rightInset, window + .getHeight() + - topInset - bottomInset); - refreshFromBackbuffer(r.x - leftInset, r.y - topInset, r.width, - r.height); - } + refreshFromBackbuffer(r.x - leftInset, r.y - topInset, r.width, + r.height); + } - public InputMethodRequests getInputMethodRequests() { - // REMARK - makes us a passive client FOOTNOTE1 - return null; - } - } + public InputMethodRequests getInputMethodRequests() { + // REMARK - makes us a passive client FOOTNOTE1 + return null; + } + } - class InnerWindow extends Window { - public InnerWindow() throws java.lang.UnsupportedOperationException { - super(new Frame()); - } + class InnerWindow extends Window { + public InnerWindow() throws java.lang.UnsupportedOperationException { + super(new Frame()); + } - /** - * overrides the native Window method to supposedly enforce a - * minimum size - */ - public Dimension getMinimumSize() { - // FEATURE: cache dimension - return new Dimension(root == null ? 0 : root.minwidth, - root == null ? 0 : root.minheight); - } + /** + * overrides the native Window method to supposedly enforce a + * minimum size + */ + public Dimension getMinimumSize() { + // FEATURE: cache dimension + return new Dimension(root == null ? 0 : root.minwidth, + root == null ? 0 : root.minheight); + } - public void update(Graphics gr) { - paint(gr); - } + public void update(Graphics gr) { + paint(gr); + } - public void paint(Graphics gr) { - Rectangle r = gr.getClipBounds(); - refreshFromBackbuffer(r.x - leftInset, r.y - topInset, r.width, - r.height); - } + public void paint(Graphics gr) { + Rectangle r = gr.getClipBounds(); + refreshFromBackbuffer(r.x - leftInset, r.y - topInset, r.width, + r.height); + } - public InputMethodRequests getInputMethodRequests() { - // REMARK - makes us a passive client FOOTNOTE1 - return null; - } - } + public InputMethodRequests getInputMethodRequests() { + // REMARK - makes us a passive client FOOTNOTE1 + return null; + } + } - /** establish the size of the frame decorations */ - private void discoverInsets() { - Insets i = window.getInsets(); - if (leftInset == i.left && topInset == i.top - && bottomInset == i.bottom && rightInset == i.right) - return; - leftInset = i.left; - topInset = i.top; - bottomInset = i.bottom; - rightInset = i.right; - // respect the size of the root box - window.setSize(pendingWidth + (leftInset + rightInset), - pendingHeight + (topInset + bottomInset)); - } + /** establish the size of the frame decorations */ + private void discoverInsets() { + Insets i = window.getInsets(); + if (leftInset == i.left && topInset == i.top + && bottomInset == i.bottom && rightInset == i.right) + return; + leftInset = i.left; + topInset = i.top; + bottomInset = i.bottom; + rightInset = i.right; + // respect the size of the root box + window.setSize(pendingWidth + (leftInset + rightInset), + pendingHeight + (topInset + bottomInset)); + } - /** sets the maximum size of the frame */ - public void setMaximumSize(int maxw, int maxh) { + /** sets the maximum size of the frame */ + public void setMaximumSize(int maxw, int maxh) { - } + } - /** - * note that the minimum size is handled by getMinimumSize in - * InnerFrame/InnerWindow - */ - public void setMinimumSize(int minx, int miny, boolean resizable) { - if (frame != null) - frame.setResizable(resizable); - // FEATURE: Java 1.5 - // window.setMinimumSize(new - // Dimension(root.minwidth+leftInset+rightInset, - // root.minheight+topInset+bottomInset)); - } + /** + * note that the minimum size is handled by getMinimumSize in + * InnerFrame/InnerWindow + */ + public void setMinimumSize(int minx, int miny, boolean resizable) { + if (frame != null) + frame.setResizable(resizable); + // FEATURE: Java 1.5 + // window.setMinimumSize(new + // Dimension(root.minwidth+leftInset+rightInset, + // root.minheight+topInset+bottomInset)); + } - private int rootfill = 0x0; - private Color rootcolor = null; + private int rootfill = 0x0; + private Color rootcolor = null; - private final void setBackgroundColor() { - rootfill = root.fillcolor; - rootcolor = (rootfill & 0xFF000000) == 0 ? Color.white : new Color( - (rootfill >> 16) & 0xff, (rootfill >> 8) & 0xff, - (rootfill) & 0xff); - window.setBackground(rootcolor); - } + private final void setBackgroundColor() { + rootfill = root.fillcolor; + rootcolor = (rootfill & 0xFF000000) == 0 ? Color.white : new Color( + (rootfill >> 16) & 0xff, (rootfill >> 8) & 0xff, + (rootfill) & 0xff); + window.setBackground(rootcolor); + } - public void render() { - // useful optimisation; - if (rootfill != root.fillcolor) - setBackgroundColor(); - super.render(); - } + public void render() { + // useful optimisation; + if (rootfill != root.fillcolor) + setBackgroundColor(); + super.render(); + } - AWTSurface(Box root, boolean framed) { - super(root); + AWTSurface(Box root, boolean framed) { + super(root); - try { - if (framed) - window = frame = new InnerFrame(); - else - window = new InnerWindow(); - // this is here to catch HeadlessException on jdk1.4 - } catch (java.lang.UnsupportedOperationException e) { - Log - .error(this, - "Exception thrown in AWTSurface$InnerFrame() -- this should never happen"); - Log.error(this, e); - } + try { + if (framed) + window = frame = new InnerFrame(); + else + window = new InnerWindow(); + // this is here to catch HeadlessException on jdk1.4 + } catch (java.lang.UnsupportedOperationException e) { + Log + .error(this, + "Exception thrown in AWTSurface$InnerFrame() -- this should never happen"); + Log.error(this, e); + } - // set the default icon image to the vexi logo - if (frame != null) - frame.setIconImage(new ImageIcon(Main.class - .getResource("builtin/vexi-icon.png")).getImage()); + // set the default icon image to the vexi logo + if (frame != null) + frame.setIconImage(new ImageIcon(Main.class + .getResource("builtin/vexi-icon.png")).getImage()); - // Theoretically pack causes the insets to be calculated. - // - // AWT Bug - (Linux X11 at least) - // The insets calculated are not always exact. It seems - // that only a guess is returned. - window.pack(); - setLocation(); - setSize(pendingWidth, pendingHeight); // setSize handles the - // insets + // Theoretically pack causes the insets to be calculated. + // + // AWT Bug - (Linux X11 at least) + // The insets calculated are not always exact. It seems + // that only a guess is returned. + window.pack(); + setLocation(); + setSize(pendingWidth, pendingHeight); // setSize handles the + // insets - // initialise the backbuffer and window with the root colour - // REMARK - this is for nicer initial rendering - setBackgroundColor(); - AWTPixelBuffer buf = (AWTPixelBuffer) backbuffer; - buf.g.setColor(rootcolor); - buf.g.fillRect(0, 0, pendingWidth, pendingHeight); + // initialise the backbuffer and window with the root colour + // REMARK - this is for nicer initial rendering + setBackgroundColor(); + AWTPixelBuffer buf = (AWTPixelBuffer) backbuffer; + buf.g.setColor(rootcolor); + buf.g.fillRect(0, 0, pendingWidth, pendingHeight); - window.addMouseListener(this); - window.addKeyListener(this); - window.addComponentListener(this); - window.addMouseMotionListener(this); - window.addMouseWheelListener(this); - window.addWindowListener(this); - //workaround for an OS X limitation - try { - window.getInputContext().setCompositionEnabled(false); - } catch (UnsupportedOperationException e) { - Log.warn(this, "setCompositionEnabled() failed. Are you running OS X?"); - } - // window.add + window.addMouseListener(this); + window.addKeyListener(this); + window.addComponentListener(this); + window.addMouseMotionListener(this); + window.addMouseWheelListener(this); + window.addWindowListener(this); + //workaround for an OS X limitation + try { + window.getInputContext().setCompositionEnabled(false); + } catch (UnsupportedOperationException e) { + Log.warn(this, "setCompositionEnabled() failed. Are you running OS X?"); + } + // window.add - // IMPORTANT: this must be called before render() to ensure - // that our peer has been created - makeVisible(); - } + // IMPORTANT: this must be called before render() to ensure + // that our peer has been created + makeVisible(); + } - protected void makeVisible() { - window.setVisible(true); - } + protected void makeVisible() { + window.setVisible(true); + } - public void _dispose() { - window.removeMouseListener(this); - window.removeMouseWheelListener(this); + public void _dispose() { + window.removeMouseListener(this); + window.removeMouseWheelListener(this); - // removed to work around a jdk1.3 bug - /* window.removeKeyListener(this); */ + // removed to work around a jdk1.3 bug + /* window.removeKeyListener(this); */ - window.removeComponentListener(this); - window.removeMouseMotionListener(this); - window.removeWindowListener(this); - window.dispose(); - } + window.removeComponentListener(this); + window.removeMouseMotionListener(this); + window.removeWindowListener(this); + window.dispose(); + } - public void syncCursor() { - if (cursor.equals("crosshair")) - window.setCursor(Cursor - .getPredefinedCursor(Cursor.CROSSHAIR_CURSOR)); - else if (cursor.equals("east")) - window.setCursor(Cursor - .getPredefinedCursor(Cursor.E_RESIZE_CURSOR)); - else if (cursor.equals("move")) - window - .setCursor(Cursor - .getPredefinedCursor(Cursor.MOVE_CURSOR)); - else if (cursor.equals("north")) - window.setCursor(Cursor - .getPredefinedCursor(Cursor.N_RESIZE_CURSOR)); - else if (cursor.equals("northeast")) - window.setCursor(Cursor - .getPredefinedCursor(Cursor.NE_RESIZE_CURSOR)); - else if (cursor.equals("northwest")) - window.setCursor(Cursor - .getPredefinedCursor(Cursor.NW_RESIZE_CURSOR)); - else if (cursor.equals("south")) - window.setCursor(Cursor - .getPredefinedCursor(Cursor.S_RESIZE_CURSOR)); - else if (cursor.equals("southeast")) - window.setCursor(Cursor - .getPredefinedCursor(Cursor.SE_RESIZE_CURSOR)); - else if (cursor.equals("southwest")) - window.setCursor(Cursor - .getPredefinedCursor(Cursor.SW_RESIZE_CURSOR)); - else if (cursor.equals("text")) - window - .setCursor(Cursor - .getPredefinedCursor(Cursor.TEXT_CURSOR)); - else if (cursor.equals("west")) - window.setCursor(Cursor - .getPredefinedCursor(Cursor.W_RESIZE_CURSOR)); - else if (cursor.equals("wait")) - window - .setCursor(Cursor - .getPredefinedCursor(Cursor.WAIT_CURSOR)); - else if (cursor.equals("hand")) - window - .setCursor(Cursor - .getPredefinedCursor(Cursor.HAND_CURSOR)); - else - window.setCursor(Cursor - .getPredefinedCursor(Cursor.DEFAULT_CURSOR)); - } + public void syncCursor() { + if (cursor.equals("crosshair")) + window.setCursor(Cursor + .getPredefinedCursor(Cursor.CROSSHAIR_CURSOR)); + else if (cursor.equals("east")) + window.setCursor(Cursor + .getPredefinedCursor(Cursor.E_RESIZE_CURSOR)); + else if (cursor.equals("move")) + window + .setCursor(Cursor + .getPredefinedCursor(Cursor.MOVE_CURSOR)); + else if (cursor.equals("north")) + window.setCursor(Cursor + .getPredefinedCursor(Cursor.N_RESIZE_CURSOR)); + else if (cursor.equals("northeast")) + window.setCursor(Cursor + .getPredefinedCursor(Cursor.NE_RESIZE_CURSOR)); + else if (cursor.equals("northwest")) + window.setCursor(Cursor + .getPredefinedCursor(Cursor.NW_RESIZE_CURSOR)); + else if (cursor.equals("south")) + window.setCursor(Cursor + .getPredefinedCursor(Cursor.S_RESIZE_CURSOR)); + else if (cursor.equals("southeast")) + window.setCursor(Cursor + .getPredefinedCursor(Cursor.SE_RESIZE_CURSOR)); + else if (cursor.equals("southwest")) + window.setCursor(Cursor + .getPredefinedCursor(Cursor.SW_RESIZE_CURSOR)); + else if (cursor.equals("text")) + window + .setCursor(Cursor + .getPredefinedCursor(Cursor.TEXT_CURSOR)); + else if (cursor.equals("west")) + window.setCursor(Cursor + .getPredefinedCursor(Cursor.W_RESIZE_CURSOR)); + else if (cursor.equals("wait")) + window + .setCursor(Cursor + .getPredefinedCursor(Cursor.WAIT_CURSOR)); + else if (cursor.equals("hand")) + window + .setCursor(Cursor + .getPredefinedCursor(Cursor.HAND_CURSOR)); + else + window.setCursor(Cursor + .getPredefinedCursor(Cursor.DEFAULT_CURSOR)); + } - // AWT Message translation - // //////////////////////////////////////////////////////////////// + // AWT Message translation + // //////////////////////////////////////////////////////////////// - // these functions are all executed in the AWT thread, not the - // MessageQueue thread. As a result, they must be *extremely* - // careful about invoking methods on instances of Box. Currently, - // they should only enqueue messages, use Box.whoIs() - // (unsynchronised but thought to be safe), and modify members of - // Surface. + // these functions are all executed in the AWT thread, not the + // MessageQueue thread. As a result, they must be *extremely* + // careful about invoking methods on instances of Box. Currently, + // they should only enqueue messages, use Box.whoIs() + // (unsynchronised but thought to be safe), and modify members of + // Surface. - public void componentHidden(ComponentEvent e) { - } + public void componentHidden(ComponentEvent e) { + } - public void componentShown(ComponentEvent e) { - } + public void componentShown(ComponentEvent e) { + } - public void windowOpened(WindowEvent e) { - } + public void windowOpened(WindowEvent e) { + } - public void windowClosed(WindowEvent e) { - } + public void windowClosed(WindowEvent e) { + } - public void windowClosing(WindowEvent e) { - Close(); - } + public void windowClosing(WindowEvent e) { + Close(); + } - public void windowIconified(WindowEvent e) { - Minimized(true); - } + public void windowIconified(WindowEvent e) { + Minimized(true); + } - public void windowDeiconified(WindowEvent e) { - dirty(0, 0, root.width, root.height); - Minimized(false); - } + public void windowDeiconified(WindowEvent e) { + dirty(0, 0, root.width, root.height); + Minimized(false); + } - public void windowActivated(WindowEvent e) { - Focused(true); - } + public void windowActivated(WindowEvent e) { + Focused(true); + } - public void windowDeactivated(WindowEvent e) { - Focused(false); - } + public void windowDeactivated(WindowEvent e) { + Focused(false); + } - public void componentMoved(ComponentEvent e) { - PosChange(window.getLocation().x, window.getLocation().y); - } + public void componentMoved(ComponentEvent e) { + PosChange(window.getLocation().x, window.getLocation().y); + } - public void componentResized(ComponentEvent e) { - // Insets first known exactly on first componentResized event - // Before being set visible (AWT on top of XWindows at least) - // after pack it seems AWT guesses what the insets will be - // Take every time in case they change(?!) - discoverInsets(); - // System.err.println("componentResized: "+window.getWidth()+", - // "+window.getHeight() - // +" ("+leftInset+", "+rightInset+", "+topInset+", - // "+bottomInset+")"); - componentResized(window.getWidth() - leftInset - rightInset, window - .getHeight() - - topInset - bottomInset); - } + public void componentResized(ComponentEvent e) { + // Insets first known exactly on first componentResized event + // Before being set visible (AWT on top of XWindows at least) + // after pack it seems AWT guesses what the insets will be + // Take every time in case they change(?!) + discoverInsets(); + // System.err.println("componentResized: "+window.getWidth()+", + // "+window.getHeight() + // +" ("+leftInset+", "+rightInset+", "+topInset+", + // "+bottomInset+")"); + componentResized(window.getWidth() - leftInset - rightInset, window + .getHeight() + - topInset - bottomInset); + } - public void componentResized(int newwidth, int newheight) { - // First we fill the expanded part of the buffer before - // an old (dirty) copy of that buffer part gets painted - // REMARK - synchronized so we won't fill during render - synchronized (this) { - AWTPixelBuffer buf = (AWTPixelBuffer) backbuffer; - buf.g.setColor(new java.awt.Color( - (root.fillcolor >> 16) & 0xff, - (root.fillcolor >> 8) & 0xff, (root.fillcolor) & 0xff)); - if (pendingWidth < newwidth) { - buf.g.fillRect(pendingWidth, 0, newwidth, newheight); - dirty(pendingWidth, 0, newwidth - pendingWidth, newheight); - } - if (pendingHeight < newheight) { - buf.g.fillRect(0, pendingHeight, newwidth, newheight); - dirty(0, pendingHeight, newwidth, newheight - pendingHeight); - } - SizeChange(newwidth, newheight); - } - } + public void componentResized(int newwidth, int newheight) { + // First we fill the expanded part of the buffer before + // an old (dirty) copy of that buffer part gets painted + // REMARK - synchronized so we won't fill during render + synchronized (this) { + AWTPixelBuffer buf = (AWTPixelBuffer) backbuffer; + buf.g.setColor(new java.awt.Color( + (root.fillcolor >> 16) & 0xff, + (root.fillcolor >> 8) & 0xff, (root.fillcolor) & 0xff)); + if (pendingWidth < newwidth) { + buf.g.fillRect(pendingWidth, 0, newwidth, newheight); + dirty(pendingWidth, 0, newwidth - pendingWidth, newheight); + } + if (pendingHeight < newheight) { + buf.g.fillRect(0, pendingHeight, newwidth, newheight); + dirty(0, pendingHeight, newwidth, newheight - pendingHeight); + } + SizeChange(newwidth, newheight); + } + } - public void keyTyped(KeyEvent k) { - // REMARK - we are a so called 'passive Input Method' client. - // We receive composed text (e.g. asian characters) as key events - // where we want to convert them into a keypressed/keyreleased - // Vexi event. Unfortunately we need a way to distinguish between - // events due to inputMethods (which we want) and those from the - // keyboard which are already handled via keyPressed/keyReleased. - // HACK Simplest is to just except non-ascii chars. - int unicode = (int) k.getKeyChar(); - if (255 >= unicode) - return; - KeyPressed("" + k.getKeyChar()); - KeyReleased("" + k.getKeyChar()); - } + public void keyTyped(KeyEvent k) { + // REMARK - we are a so called 'passive Input Method' client. + // We receive composed text (e.g. asian characters) as key events + // where we want to convert them into a keypressed/keyreleased + // Vexi event. Unfortunately we need a way to distinguish between + // events due to inputMethods (which we want) and those from the + // keyboard which are already handled via keyPressed/keyReleased. + // HACK Simplest is to just except non-ascii chars. + int unicode = (int) k.getKeyChar(); + if (255 >= unicode) + return; + KeyPressed("" + k.getKeyChar()); + KeyReleased("" + k.getKeyChar()); + } - public void keyPressed(KeyEvent k) { - KeyPressed(translateKey(k)); - } + public void keyPressed(KeyEvent k) { + KeyPressed(translateKey(k)); + } - public void keyReleased(KeyEvent k) { - KeyReleased(translateKey(k)); - } + public void keyReleased(KeyEvent k) { + KeyReleased(translateKey(k)); + } - public void mouseExited(MouseEvent m) { - mouseMoved(m); - } + public void mouseExited(MouseEvent m) { + mouseMoved(m); + } - public void mouseEntered(MouseEvent m) { - mouseMoved(m); - } + public void mouseEntered(MouseEvent m) { + mouseMoved(m); + } - public void mouseDragged(MouseEvent m) { - mouseMoved(m); - } + public void mouseDragged(MouseEvent m) { + mouseMoved(m); + } - public void mouseMoved(MouseEvent m) { + public void mouseMoved(MouseEvent m) { - // ugly hack for Java1.4 dynamicLayout on Win32 -- this catches - // contractions during smooth resize - int newwidth = window.getWidth() - leftInset - rightInset; - int newheight = window.getHeight() - topInset - bottomInset; - if (newwidth != root.width || newheight != root.height) - componentResized(newwidth, newheight); + // ugly hack for Java1.4 dynamicLayout o... [truncated message content] |