diff options
author | fitzsim <fitzsim@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-11-12 00:37:34 +0000 |
---|---|---|
committer | fitzsim <fitzsim@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-11-12 00:37:34 +0000 |
commit | 122ce965e6a2cfd03426146540e17f6a5034e45c (patch) | |
tree | 76d0f90da057662bc2f5deb1bc000be30244807e /libjava/gnu/java/awt/peer/gtk/GtkToolkit.java | |
parent | c057b68ee6d2ead95ee3fd6424d506dfc8c13854 (diff) | |
download | ppe42-gcc-122ce965e6a2cfd03426146540e17f6a5034e45c.tar.gz ppe42-gcc-122ce965e6a2cfd03426146540e17f6a5034e45c.zip |
2003-11-11 Thomas Fitzsimmons <fitzsim@redhat.com>
* Makefile.am: Add GdkPixbufDecoder.java and
gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
* Makefile.in: Regenerate.
* gnu/java/awt/image/ImageDecoder.java (ImageDecoder(byte[],int,int)):
New constructor.
(startProduction): Create ByteArrayInputStream when url and filename are
null.
(produce): Declare stream parameter as InputStream.
* gnu/java/awt/image/XBMDecoder.java (produce): Declare stream parameter
as InputStream.
* gnu/java/awt/peer/gtk/GdkPixbufDecoder.java
(GdkPixbufDecoder(byte[],int,int)): New constructor.
(produce): Declare stream parameter as InputStream.
* gnu/java/awt/peer/gtk/GtkComponentPeer.java (prepareImage): Throw NPE
if image is null. Set image's observer before running PrepareImage
thread. Pass image to startProduction.
* gnu/java/awt/peer/gtk/GtkImage.java: Add null checks before calls to
source's member functions.
(observer): New field.
(setObserver): New method.
(setDimensions, setPixels, imageComplete): Call observer's imageUpdate.
* gnu/java/awt/peer/gtk/GtkToolkit.java (checkImage, getImage): Return
new GtkImage.
(prepareImage): Implement.
* java/awt/Component.java: Add static fields incrementalDraw and
redrawRate.
(imageUpdate): Implement.
(createImage): Call Toolkit's createImage if peer is null.
(prepareImage): Throw NPE if image is null.
* java/awt/MediaTracker.java: Fix return value.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@73476 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/gnu/java/awt/peer/gtk/GtkToolkit.java')
-rw-r--r-- | libjava/gnu/java/awt/peer/gtk/GtkToolkit.java | 55 |
1 files changed, 36 insertions, 19 deletions
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkToolkit.java b/libjava/gnu/java/awt/peer/gtk/GtkToolkit.java index 9f669ac5281..7f8ae2ecd03 100644 --- a/libjava/gnu/java/awt/peer/gtk/GtkToolkit.java +++ b/libjava/gnu/java/awt/peer/gtk/GtkToolkit.java @@ -56,6 +56,7 @@ import gnu.java.awt.EmbeddedWindow; import gnu.java.awt.EmbeddedWindowSupport; import gnu.java.awt.peer.EmbeddedWindowPeer; import gnu.classpath.Configuration; +import gnu.java.awt.peer.gtk.GdkPixbufDecoder; /* This class uses a deprecated method java.awt.peer.ComponentPeer.getPeer(). This merits comment. We are basically calling Sun's bluff on this one. @@ -91,24 +92,17 @@ public class GtkToolkit extends Toolkit public int checkImage (Image image, int width, int height, ImageObserver observer) { - return ImageObserver.ALLBITS; - -// GtkImage i = (GtkImage) image; -// return i.checkImage (); + return ((GtkImage) image).checkImage (); } public Image createImage (String filename) { - // FIXME - gcj local: GdkPixbufDecoder doesn't work. - // return new GtkImage (new GdkPixbufDecoder (filename), null); - return null; + return new GtkImage (new GdkPixbufDecoder (filename), null); } public Image createImage (URL url) { - // FIXME - gcj local: GdkPixbufDecoder doesn't work. - // return new GtkImage (new GdkPixbufDecoder (url), null); - return null; + return new GtkImage (new GdkPixbufDecoder (url), null); } public Image createImage (ImageProducer producer) @@ -117,10 +111,12 @@ public class GtkToolkit extends Toolkit } public Image createImage (byte[] imagedata, int imageoffset, - int imagelength) + int imagelength) { - // System.out.println ("createImage byte[] NOT SUPPORTED"); - return null; + return new GtkImage (new GdkPixbufDecoder (imagedata, + imageoffset, + imagelength), + null); } public ColorModel getColorModel () @@ -144,16 +140,12 @@ public class GtkToolkit extends Toolkit public Image getImage (String filename) { - // FIXME - gcj local: GdkPixbufDecoder doesn't work. - // return new GtkImage (new GdkPixbufDecoder (filename), null); - return null; + return new GtkImage (new GdkPixbufDecoder (filename), null); } public Image getImage (URL url) { - // FIXME - gcj local: GdkPixbufDecoder doesn't work. - // return new GtkImage (new GdkPixbufDecoder (url), null); - return null; + return new GtkImage (new GdkPixbufDecoder (url), null); } public PrintJob getPrintJob (Frame frame, String jobtitle, Properties props) @@ -177,6 +169,31 @@ public class GtkToolkit extends Toolkit public boolean prepareImage (Image image, int width, int height, ImageObserver observer) { + if (image == null) + throw new NullPointerException (); + + GtkImage i = (GtkImage) image; + + if (i.isLoaded ()) return true; + + class PrepareImage extends Thread + { + GtkImage image; + ImageObserver observer; + + PrepareImage (GtkImage image, ImageObserver observer) + { + this.image = image; + image.setObserver (observer); + } + + public void run () + { + image.source.startProduction (image); + } + } + + new PrepareImage (i, observer).start (); return false; } |