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 }