root/dwt/dnd/DNDListener.d

Revision 135:242e33c0e383, 5.3 kB (checked in by Frank Benoit <benoit@tionex.de>, 1 year ago)

Added dnd source, ByteArrayTransfer?,Clipboard completed

Line 
1 /*******************************************************************************
2  * Copyright (c) 2000, 2007 IBM Corporation and others.
3  * All rights reserved. This program and the accompanying materials
4  * are made available under the terms of the Eclipse Public License v1.0
5  * which accompanies this distribution, and is available at
6  * http://www.eclipse.org/legal/epl-v10.html
7  *
8  * Contributors:
9  *     IBM Corporation - initial API and implementation
10  * Port to the D programming language:
11  *     Frank Benoit <benoit@tionex.de>
12  *******************************************************************************/
13 module dwt.dnd.DNDListener;
14
15
16 import dwt.internal.DWTEventListener;
17 import dwt.widgets.Event;
18 import dwt.widgets.TypedListener;
19 import dwt.widgets.Widget;
20 import dwt.dnd.DND;
21 import dwt.dnd.DNDEvent;
22 import dwt.dnd.DragSourceEvent;
23 import dwt.dnd.DragSourceEffect;
24 import dwt.dnd.DragSource;
25 import dwt.dnd.DragSourceListener;
26 import dwt.dnd.DropTargetEvent;
27 import dwt.dnd.DropTargetListener;
28 import dwt.dnd.DropTargetEffect;
29 import dwt.dnd.DropTarget;
30
31
32 class DNDListener : TypedListener {
33     Widget dndWidget;
34 /**
35  * DNDListener constructor comment.
36  * @param listener org.eclipse.swt.internal.DWTEventListener
37  */
38 this(DWTEventListener listener) {
39     super(listener);
40 }
41 public override void handleEvent (Event e) {
42     switch (e.type) {
43         case DND.DragStart: {
44             DragSourceEvent event = new DragSourceEvent(cast(DNDEvent)e);
45             DragSourceEffect sourceEffect = (cast(DragSource) dndWidget).getDragSourceEffect();
46             if (sourceEffect !is null) {
47                 sourceEffect.dragStart (event);
48             }
49             (cast(DragSourceListener) eventListener).dragStart (event);
50             event.updateEvent(cast(DNDEvent)e);
51             break;
52         }
53         case DND.DragEnd: {
54             DragSourceEvent event = new DragSourceEvent(cast(DNDEvent)e);
55             DragSourceEffect sourceEffect = (cast(DragSource) dndWidget).getDragSourceEffect();
56             if (sourceEffect !is null) {
57                 sourceEffect.dragFinished (event);
58             }
59             (cast(DragSourceListener) eventListener).dragFinished (event);
60             event.updateEvent(cast(DNDEvent)e);
61             break;
62         }
63         case DND.DragSetData: {
64             DragSourceEvent event = new DragSourceEvent(cast(DNDEvent)e);
65             DragSourceEffect sourceEffect = (cast(DragSource) dndWidget).getDragSourceEffect();
66             if (sourceEffect !is null) {
67                 sourceEffect.dragSetData (event);
68             }
69             (cast(DragSourceListener) eventListener).dragSetData (event);
70             event.updateEvent(cast(DNDEvent)e);
71             break;
72         }
73         case DND.DragEnter: {
74             DropTargetEvent event = new DropTargetEvent(cast(DNDEvent)e);
75             (cast(DropTargetListener) eventListener).dragEnter (event);
76             DropTargetEffect dropEffect = (cast(DropTarget) dndWidget).getDropTargetEffect();
77             if (dropEffect !is null) {
78                 dropEffect.dragEnter (event);
79             }
80             event.updateEvent(cast(DNDEvent)e);
81             break;
82         }
83         case DND.DragLeave: {
84             DropTargetEvent event = new DropTargetEvent(cast(DNDEvent)e);
85             (cast(DropTargetListener) eventListener).dragLeave (event);
86             DropTargetEffect dropEffect = (cast(DropTarget) dndWidget).getDropTargetEffect();
87             if (dropEffect !is null) {
88                 dropEffect.dragLeave (event);
89             }
90             event.updateEvent(cast(DNDEvent)e);
91             break;
92         }
93         case DND.DragOver: {
94             DropTargetEvent event = new DropTargetEvent(cast(DNDEvent)e);
95             (cast(DropTargetListener) eventListener).dragOver (event);
96             DropTargetEffect dropEffect = (cast(DropTarget) dndWidget).getDropTargetEffect();
97             if (dropEffect !is null) {
98                 dropEffect.dragOver (event);
99             }
100             event.updateEvent(cast(DNDEvent)e);
101             break;
102         }
103         case DND.Drop: {
104             DropTargetEvent event = new DropTargetEvent(cast(DNDEvent)e);
105             (cast(DropTargetListener) eventListener).drop (event);
106             DropTargetEffect dropEffect = (cast(DropTarget) dndWidget).getDropTargetEffect();
107             if (dropEffect !is null) {
108                 dropEffect.drop (event);
109             }
110             event.updateEvent(cast(DNDEvent)e);
111             break;
112         }
113         case DND.DropAccept: {
114             DropTargetEvent event = new DropTargetEvent(cast(DNDEvent)e);
115             (cast(DropTargetListener) eventListener).dropAccept (event);
116             DropTargetEffect dropEffect = (cast(DropTarget) dndWidget).getDropTargetEffect();
117             if (dropEffect !is null) {
118                 dropEffect.dropAccept (event);
119             }
120             event.updateEvent(cast(DNDEvent)e);
121             break;
122         }
123         case DND.DragOperationChanged: {
124             DropTargetEvent event = new DropTargetEvent(cast(DNDEvent)e);
125             (cast(DropTargetListener) eventListener).dragOperationChanged (event);
126             DropTargetEffect dropEffect = (cast(DropTarget) dndWidget).getDropTargetEffect();
127             if (dropEffect !is null) {
128                 dropEffect.dragOperationChanged (event);
129             }
130             event.updateEvent(cast(DNDEvent)e);
131             break;
132         }
133         default:
134
135     }
136 }
137 }
Note: See TracBrowser for help on using the browser.