53 |
import java.awt.im.InputMethodHighlight; |
import java.awt.im.InputMethodHighlight; |
54 |
import java.awt.image.BufferedImage; |
import java.awt.image.BufferedImage; |
55 |
import java.awt.image.ColorModel; |
import java.awt.image.ColorModel; |
56 |
|
import java.awt.image.DirectColorModel; |
57 |
import java.awt.image.ImageConsumer; |
import java.awt.image.ImageConsumer; |
58 |
import java.awt.image.ImageObserver; |
import java.awt.image.ImageObserver; |
59 |
import java.awt.image.ImageProducer; |
import java.awt.image.ImageProducer; |
141 |
| ImageObserver.HEIGHT; |
| ImageObserver.HEIGHT; |
142 |
|
|
143 |
if (image instanceof GtkImage) |
if (image instanceof GtkImage) |
144 |
{ |
return ((GtkImage) image).checkImage (observer); |
|
status = ((GtkImage) image).checkImage (); |
|
|
} |
|
145 |
|
|
146 |
if (observer != null) |
if (observer != null) |
147 |
observer.imageUpdate (image, status, |
observer.imageUpdate (image, status, |
249 |
if (useGraphics2D()) |
if (useGraphics2D()) |
250 |
return bufferedImageOrError(GdkPixbufDecoder.createBufferedImage (filename)); |
return bufferedImageOrError(GdkPixbufDecoder.createBufferedImage (filename)); |
251 |
else |
else |
252 |
{ |
return new GtkImage (filename); |
|
GdkPixbufDecoder d = new GdkPixbufDecoder (filename); |
|
|
GtkImage image = new GtkImage (d, null); |
|
|
d.startProduction (image); |
|
|
return image; |
|
|
} |
|
253 |
} |
} |
254 |
|
|
255 |
public Image createImage (URL url) |
public Image createImage (URL url) |
259 |
else |
else |
260 |
{ |
{ |
261 |
GdkPixbufDecoder d = new GdkPixbufDecoder (url); |
GdkPixbufDecoder d = new GdkPixbufDecoder (url); |
262 |
GtkImage image = new GtkImage (d, null); |
GtkImage image = new GtkImage (d); |
|
d.startProduction (image); |
|
263 |
return image; |
return image; |
264 |
} |
} |
265 |
} |
} |
269 |
if (useGraphics2D()) |
if (useGraphics2D()) |
270 |
return bufferedImageOrError(GdkPixbufDecoder.createBufferedImage (producer)); |
return bufferedImageOrError(GdkPixbufDecoder.createBufferedImage (producer)); |
271 |
else |
else |
272 |
{ |
return new GtkImage (producer); |
|
GtkImage image = new GtkImage (producer, null); |
|
|
producer.startProduction (image); |
|
|
return image; |
|
|
} |
|
273 |
} |
} |
274 |
|
|
275 |
public Image createImage (byte[] imagedata, int imageoffset, |
public Image createImage (byte[] imagedata, int imageoffset, |
284 |
GdkPixbufDecoder d = new GdkPixbufDecoder (imagedata, |
GdkPixbufDecoder d = new GdkPixbufDecoder (imagedata, |
285 |
imageoffset, |
imageoffset, |
286 |
imagelength); |
imagelength); |
287 |
GtkImage image = new GtkImage (d, null); |
GtkImage image = new GtkImage (d); |
|
d.startProduction (image); |
|
288 |
return image; |
return image; |
289 |
} |
} |
290 |
} |
} |
300 |
return new GdkPixbufDecoder(url); |
return new GdkPixbufDecoder(url); |
301 |
} |
} |
302 |
|
|
303 |
|
/** |
304 |
|
* Returns the native color model (which isn't the same as the default |
305 |
|
* ARGB color model, but doesn't have to be). |
306 |
|
*/ |
307 |
public ColorModel getColorModel () |
public ColorModel getColorModel () |
308 |
{ |
{ |
309 |
return ColorModel.getRGBdefault (); |
/* Return the GDK-native ABGR format */ |
310 |
|
return new DirectColorModel(32, |
311 |
|
0x000000FF, |
312 |
|
0x0000FF00, |
313 |
|
0x00FF0000, |
314 |
|
0xFF000000); |
315 |
} |
} |
316 |
|
|
317 |
public String[] getFontList () |
public String[] getFontList () |
407 |
public boolean prepareImage (Image image, int width, int height, |
public boolean prepareImage (Image image, int width, int height, |
408 |
ImageObserver observer) |
ImageObserver observer) |
409 |
{ |
{ |
410 |
|
/* GtkImages are always prepared, as long as they're loaded. */ |
411 |
if (image instanceof GtkImage) |
if (image instanceof GtkImage) |
412 |
{ |
return ((((GtkImage)image).checkImage (observer) & |
413 |
GtkImage i = (GtkImage) image; |
ImageObserver.ALLBITS) != 0); |
414 |
|
|
415 |
if (i.isLoaded ()) return true; |
/* Assume anything else is too */ |
416 |
|
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; |
|
|
} |
|
|
else |
|
|
return true; |
|
417 |
} |
} |
418 |
|
|
419 |
public native void sync(); |
public native void sync(); |