Mercurial > projects > dwt-mac
comparison dwt/dnd/DragSource.d @ 7:e831403a80a9
Add 'cast' to casts
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Wed, 27 Aug 2008 14:30:35 +0200 |
parents | 1a8b3cb347e0 |
children | a9ab4c738ed8 |
comparison
equal
deleted
inserted
replaced
6:b903c16b6f48 | 7:e831403a80a9 |
---|---|
173 } | 173 } |
174 }); | 174 }); |
175 | 175 |
176 Object effect = control.getData(DEFAULT_DRAG_SOURCE_EFFECT); | 176 Object effect = control.getData(DEFAULT_DRAG_SOURCE_EFFECT); |
177 if (effect instanceof DragSourceEffect) { | 177 if (effect instanceof DragSourceEffect) { |
178 dragEffect = (DragSourceEffect) effect; | 178 dragEffect = cast(DragSourceEffect) effect; |
179 } else if (control instanceof Tree) { | 179 } else if (control instanceof Tree) { |
180 dragEffect = new TreeDragSourceEffect((Tree) control); | 180 dragEffect = new TreeDragSourceEffect(cast(Tree) control); |
181 } else if (control instanceof Table) { | 181 } else if (control instanceof Table) { |
182 dragEffect = new TableDragSourceEffect((Table) control); | 182 dragEffect = new TableDragSourceEffect(cast(Table) control); |
183 } | 183 } |
184 } | 184 } |
185 | 185 |
186 static int checkStyle (int style) { | 186 static int checkStyle (int style) { |
187 if (style is DWT.NONE) return DND.DROP_MOVE; | 187 if (style is DWT.NONE) return DND.DROP_MOVE; |
198 if (dragSendRefCon is 0) return null; | 198 if (dragSendRefCon is 0) return null; |
199 Display display = Display.findDisplay(Thread.currentThread()); | 199 Display display = Display.findDisplay(Thread.currentThread()); |
200 if (display is null || display.isDisposed()) return null; | 200 if (display is null || display.isDisposed()) return null; |
201 Widget widget = display.findWidget(dragSendRefCon); | 201 Widget widget = display.findWidget(dragSendRefCon); |
202 if (widget is null) return null; | 202 if (widget is null) return null; |
203 return (DragSource)widget.getData(DND.DRAG_SOURCE_KEY); | 203 return cast(DragSource)widget.getData(DND.DRAG_SOURCE_KEY); |
204 } | 204 } |
205 | 205 |
206 /** | 206 /** |
207 * Adds the listener to the collection of listeners who will | 207 * Adds the listener to the collection of listeners who will |
208 * be notified when a drag and drop operation is in progress, by sending | 208 * be notified when a drag and drop operation is in progress, by sending |
261 | 261 |
262 int[] theDrag = new int[1]; | 262 int[] theDrag = new int[1]; |
263 if (OS.NewDrag(theDrag) !is OS.noErr) { | 263 if (OS.NewDrag(theDrag) !is OS.noErr) { |
264 event = new DNDEvent(); | 264 event = new DNDEvent(); |
265 event.widget = this; | 265 event.widget = this; |
266 event.time = (int)System.currentTimeMillis(); | 266 event.time = cast(int)System.currentTimeMillis(); |
267 event.doit = false; | 267 event.doit = false; |
268 event.detail = DND.DROP_NONE; | 268 event.detail = DND.DROP_NONE; |
269 notifyListeners(DND.DragEnd, event); | 269 notifyListeners(DND.DragEnd, event); |
270 return; | 270 return; |
271 } | 271 } |
280 if (transfer instanceof FileTransfer) { | 280 if (transfer instanceof FileTransfer) { |
281 TransferData transferData = new TransferData(); | 281 TransferData transferData = new TransferData(); |
282 transferData.type = types[0]; | 282 transferData.type = types[0]; |
283 DNDEvent event2 = new DNDEvent(); | 283 DNDEvent event2 = new DNDEvent(); |
284 event2.widget = this; | 284 event2.widget = this; |
285 event2.time = (int)System.currentTimeMillis(); | 285 event2.time = cast(int)System.currentTimeMillis(); |
286 event2.dataType = transferData; | 286 event2.dataType = transferData; |
287 notifyListeners(DND.DragSetData, event2); | 287 notifyListeners(DND.DragSetData, event2); |
288 if (event2.data !is null) { | 288 if (event2.data !is null) { |
289 for (int j = 0; j < types.length; j++) { | 289 for (int j = 0; j < types.length; j++) { |
290 transferData.type = types[j]; | 290 transferData.type = types[j]; |
309 | 309 |
310 int theRegion = 0; | 310 int theRegion = 0; |
311 Image newImage = null; | 311 Image newImage = null; |
312 try { | 312 try { |
313 theRegion = OS.NewRgn(); | 313 theRegion = OS.NewRgn(); |
314 OS.SetRectRgn(theRegion, (short)(pt.h), (short)(pt.v), (short)(pt.h+20), (short)(pt.v+20)); | 314 OS.SetRectRgn(theRegion, cast(short)(pt.h), cast(short)(pt.v), cast(short)(pt.h+20), cast(short)(pt.v+20)); |
315 | 315 |
316 int operations = opToOsOp(getStyle()); | 316 int operations = opToOsOp(getStyle()); |
317 //set operations twice - local and not local | 317 //set operations twice - local and not local |
318 OS.SetDragAllowableActions(theDrag[0], operations, true); | 318 OS.SetDragAllowableActions(theDrag[0], operations, true); |
319 OS.SetDragAllowableActions(theDrag[0], operations, false); | 319 OS.SetDragAllowableActions(theDrag[0], operations, false); |
337 } | 337 } |
338 OS.SetDragImageWithCGImage(theDrag[0], image.handle, imageOffsetPt, 0); | 338 OS.SetDragImageWithCGImage(theDrag[0], image.handle, imageOffsetPt, 0); |
339 } | 339 } |
340 EventRecord theEvent = new EventRecord(); | 340 EventRecord theEvent = new EventRecord(); |
341 theEvent.message = OS.kEventMouseMoved; | 341 theEvent.message = OS.kEventMouseMoved; |
342 theEvent.modifiers = (short)OS.GetCurrentEventKeyModifiers(); | 342 theEvent.modifiers = cast(short)OS.GetCurrentEventKeyModifiers(); |
343 theEvent.what = (short)OS.osEvt; | 343 theEvent.what = cast(short)OS.osEvt; |
344 theEvent.where_h = pt.h; | 344 theEvent.where_h = pt.h; |
345 theEvent.where_v = pt.v; | 345 theEvent.where_v = pt.v; |
346 int result = OS.TrackDrag(theDrag[0], theEvent, theRegion); | 346 int result = OS.TrackDrag(theDrag[0], theEvent, theRegion); |
347 int operation = DND.DROP_NONE; | 347 int operation = DND.DROP_NONE; |
348 if (result is OS.noErr) { | 348 if (result is OS.noErr) { |
350 OS.GetDragDropAction(theDrag[0], outAction); | 350 OS.GetDragDropAction(theDrag[0], outAction); |
351 operation = osOpToOp(outAction[0]); | 351 operation = osOpToOp(outAction[0]); |
352 } | 352 } |
353 event = new DNDEvent(); | 353 event = new DNDEvent(); |
354 event.widget = this; | 354 event.widget = this; |
355 event.time = (int)System.currentTimeMillis(); | 355 event.time = cast(int)System.currentTimeMillis(); |
356 event.doit = result is OS.noErr; | 356 event.doit = result is OS.noErr; |
357 event.detail = operation; | 357 event.detail = operation; |
358 notifyListeners(DND.DragEnd, event); | 358 notifyListeners(DND.DragEnd, event); |
359 } finally { | 359 } finally { |
360 if (theRegion !is 0) OS.DisposeRgn(theRegion); | 360 if (theRegion !is 0) OS.DisposeRgn(theRegion); |
367 if (theType is 0) return OS.badDragFlavorErr; | 367 if (theType is 0) return OS.badDragFlavorErr; |
368 TransferData transferData = new TransferData(); | 368 TransferData transferData = new TransferData(); |
369 transferData.type = theType; | 369 transferData.type = theType; |
370 DNDEvent event = new DNDEvent(); | 370 DNDEvent event = new DNDEvent(); |
371 event.widget = this; | 371 event.widget = this; |
372 event.time = (int)System.currentTimeMillis(); | 372 event.time = cast(int)System.currentTimeMillis(); |
373 event.dataType = transferData; | 373 event.dataType = transferData; |
374 notifyListeners(DND.DragSetData, event); | 374 notifyListeners(DND.DragSetData, event); |
375 Transfer transfer = null; | 375 Transfer transfer = null; |
376 for (int i = 0; i < transferAgents.length; i++) { | 376 for (int i = 0; i < transferAgents.length; i++) { |
377 Transfer transferAgent = transferAgents[i]; | 377 Transfer transferAgent = transferAgents[i]; |
423 DragSourceListener[] dragListeners = new DragSourceListener[length]; | 423 DragSourceListener[] dragListeners = new DragSourceListener[length]; |
424 int count = 0; | 424 int count = 0; |
425 for (int i = 0; i < length; i++) { | 425 for (int i = 0; i < length; i++) { |
426 Listener listener = listeners[i]; | 426 Listener listener = listeners[i]; |
427 if (listener instanceof DNDListener) { | 427 if (listener instanceof DNDListener) { |
428 dragListeners[count] = (DragSourceListener) ((DNDListener) listener).getEventListener(); | 428 dragListeners[count] = cast(DragSourceListener) (cast(DNDListener) listener).getEventListener(); |
429 count++; | 429 count++; |
430 } | 430 } |
431 } | 431 } |
432 if (count is length) return dragListeners; | 432 if (count is length) return dragListeners; |
433 DragSourceListener[] result = new DragSourceListener[count]; | 433 DragSourceListener[] result = new DragSourceListener[count]; |