Makefile.am: Add GdkPixbufDecoder.java and gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
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. From-SVN: r73476
This commit is contained in:
parent
c754c6f131
commit
a5966c9ef9
11 changed files with 207 additions and 47 deletions
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue