Mercurial > projects > dwt2
comparison org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/ImageLoader.d @ 54:70388b0e6dad
[swt lin] compiles
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Fri, 27 Mar 2009 23:31:11 +0100 |
parents | ddbfe84d86df |
children |
comparison
equal
deleted
inserted
replaced
53:7e78af7adab5 | 54:70388b0e6dad |
---|---|
11 * Frank Benoit <benoit@tionex.de> | 11 * Frank Benoit <benoit@tionex.de> |
12 *******************************************************************************/ | 12 *******************************************************************************/ |
13 module org.eclipse.swt.graphics.ImageLoader; | 13 module org.eclipse.swt.graphics.ImageLoader; |
14 | 14 |
15 import java.lang.all; | 15 import java.lang.all; |
16 import java.util.Vector; | |
16 | 17 |
17 | 18 |
18 public import org.eclipse.swt.graphics.ImageLoaderListener; | 19 public import org.eclipse.swt.graphics.ImageLoaderListener; |
19 public import org.eclipse.swt.graphics.ImageLoaderEvent; | 20 public import org.eclipse.swt.graphics.ImageLoaderEvent; |
20 public import org.eclipse.swt.graphics.ImageData; | 21 public import org.eclipse.swt.graphics.ImageData; |
95 public int repeatCount; | 96 public int repeatCount; |
96 | 97 |
97 /* | 98 /* |
98 * the set of ImageLoader event listeners, created on demand | 99 * the set of ImageLoader event listeners, created on demand |
99 */ | 100 */ |
100 ImageLoaderListener[] imageLoaderListeners; | 101 Vector imageLoaderListeners; |
101 | 102 |
102 /** | 103 /** |
103 * Construct a new empty ImageLoader. | 104 * Construct a new empty ImageLoader. |
104 */ | 105 */ |
105 public this() { | 106 public this() { |
107 imageLoaderListeners = new Vector(); | |
106 reset(); | 108 reset(); |
107 } | 109 } |
108 | 110 |
109 /** | 111 /** |
110 * Resets the fields of the ImageLoader, except for the | 112 * Resets the fields of the ImageLoader, except for the |
281 * @see ImageLoaderListener | 283 * @see ImageLoaderListener |
282 * @see ImageLoaderEvent | 284 * @see ImageLoaderEvent |
283 */ | 285 */ |
284 public void addImageLoaderListener(ImageLoaderListener listener) { | 286 public void addImageLoaderListener(ImageLoaderListener listener) { |
285 if (listener is null) SWT.error (SWT.ERROR_NULL_ARGUMENT); | 287 if (listener is null) SWT.error (SWT.ERROR_NULL_ARGUMENT); |
286 imageLoaderListeners ~= listener; | 288 imageLoaderListeners.addElement(cast(Object)listener); |
287 } | 289 } |
288 | 290 |
289 /** | 291 /** |
290 * Removes the listener from the collection of listeners who will be | 292 * Removes the listener from the collection of listeners who will be |
291 * notified when image data is either partially or completely loaded. | 293 * notified when image data is either partially or completely loaded. |
298 * | 300 * |
299 * @see #addImageLoaderListener(ImageLoaderListener) | 301 * @see #addImageLoaderListener(ImageLoaderListener) |
300 */ | 302 */ |
301 public void removeImageLoaderListener(ImageLoaderListener listener) { | 303 public void removeImageLoaderListener(ImageLoaderListener listener) { |
302 if (listener is null) SWT.error (SWT.ERROR_NULL_ARGUMENT); | 304 if (listener is null) SWT.error (SWT.ERROR_NULL_ARGUMENT); |
303 if (imageLoaderListeners.length is 0 ) return; | 305 if (imageLoaderListeners is null ) return; |
304 imageLoaderListeners.length = tango.core.Array.remove( imageLoaderListeners, listener, delegate bool(ImageLoaderListener l1, ImageLoaderListener l2 ){ return l1 is l2; }); | 306 imageLoaderListeners.removeElement( cast(Object)listener ); |
305 } | 307 } |
306 | 308 |
307 /** | 309 /** |
308 * Returns <code>true</code> if the receiver has image loader | 310 * Returns <code>true</code> if the receiver has image loader |
309 * listeners, and <code>false</code> otherwise. | 311 * listeners, and <code>false</code> otherwise. |
312 * | 314 * |
313 * @see #addImageLoaderListener(ImageLoaderListener) | 315 * @see #addImageLoaderListener(ImageLoaderListener) |
314 * @see #removeImageLoaderListener(ImageLoaderListener) | 316 * @see #removeImageLoaderListener(ImageLoaderListener) |
315 */ | 317 */ |
316 public bool hasListeners() { | 318 public bool hasListeners() { |
317 return imageLoaderListeners.length > 0; | 319 if( imageLoaderListeners is null ) return false; |
320 return imageLoaderListeners.size() > 0; | |
318 } | 321 } |
319 | 322 |
320 /** | 323 /** |
321 * Notifies all image loader listeners that an image loader event | 324 * Notifies all image loader listeners that an image loader event |
322 * has occurred. Pass the specified event object to each listener. | 325 * has occurred. Pass the specified event object to each listener. |
323 * | 326 * |
324 * @param event the <code>ImageLoaderEvent</code> to send to each <code>ImageLoaderListener</code> | 327 * @param event the <code>ImageLoaderEvent</code> to send to each <code>ImageLoaderListener</code> |
325 */ | 328 */ |
326 public void notifyListeners(ImageLoaderEvent event) { | 329 public void notifyListeners(ImageLoaderEvent event) { |
327 if (!hasListeners()) return; | 330 if (!hasListeners()) return; |
328 foreach( listener; imageLoaderListeners ){ | 331 int size = imageLoaderListeners.size(); |
332 for (int i = 0; i < size; i++) { | |
333 ImageLoaderListener listener = cast(ImageLoaderListener) imageLoaderListeners.elementAt(i); | |
329 listener.imageDataLoaded(event); | 334 listener.imageDataLoaded(event); |
330 } | 335 } |
331 } | 336 } |
332 | 337 |
333 } | 338 } |