77 receiver:aReceiver |
77 receiver:aReceiver |
78 ^ self new receiver:aReceiver |
78 ^ self new receiver:aReceiver |
79 ! |
79 ! |
80 |
80 |
81 receiver:aReceiver argument:anArgument |
81 receiver:aReceiver argument:anArgument |
82 ^ self receiver:aReceiver argument:anArgument |
82 ^ self |
83 dropObjectSelector:nil |
83 receiver:aReceiver |
84 displayObjectSelector:nil |
84 argument:anArgument |
85 feedBackSelector:nil |
85 dropObjectSelector:nil |
|
86 displayObjectSelector:nil |
|
87 dropFeedBackSelector:nil |
86 ! |
88 ! |
87 |
89 |
88 receiver:aReceiver argument:anArgument dropObjectSelector:aSelector |
90 receiver:aReceiver argument:anArgument dropObjectSelector:aSelector |
89 |
91 |
90 ^ self new receiver:aReceiver argument:anArgument |
92 ^ self new receiver:aReceiver argument:anArgument |
91 dropObjectSelector:aSelector |
93 dropObjectSelector:aSelector |
92 displayObjectSelector:nil |
94 displayObjectSelector:nil |
93 feedBackSelector:nil |
95 dropFeedBackSelector:nil |
94 ! |
96 ! |
95 |
97 |
96 receiver:aReceiver argument:anArgument dropObjectSelector:s1 displayObjectSelector:s2 |
98 receiver:aReceiver argument:anArgument dropObjectSelector:s1 displayObjectSelector:s2 |
97 |
99 |
98 ^ self new receiver:aReceiver argument:anArgument |
100 ^ self new receiver:aReceiver argument:anArgument |
99 dropObjectSelector:s1 |
101 dropObjectSelector:s1 |
100 displayObjectSelector:s2 |
102 displayObjectSelector:s2 |
101 feedBackSelector:nil |
103 dropFeedBackSelector:nil |
102 ! |
104 ! |
103 |
105 |
104 receiver:aReceiver argument:anArgument dropObjectSelector:s1 displayObjectSelector:s2 feedBackSelector:s3 |
106 receiver:aReceiver argument:anArgument dropObjectSelector:s1 displayObjectSelector:s2 dropFeedBackSelector:s3 |
105 |
107 |
106 ^ self new receiver:aReceiver argument:anArgument |
108 ^ self new receiver:aReceiver argument:anArgument |
107 dropObjectSelector:s1 |
109 dropObjectSelector:s1 |
108 displayObjectSelector:s2 |
110 displayObjectSelector:s2 |
109 feedBackSelector:s3 |
111 dropFeedBackSelector:s3 |
|
112 ! |
|
113 |
|
114 receiver:aReceiver argument:anArgument dropObjectSelector:s1 displayObjectSelector:s2 feedBackSelector:s3 |
|
115 |
|
116 ^ self new receiver:aReceiver argument:anArgument |
|
117 dropObjectSelector:s1 |
|
118 displayObjectSelector:s2 |
|
119 dropFeedBackSelector:s3 |
110 ! ! |
120 ! ! |
111 |
121 |
112 !DropSource methodsFor:'accessing'! |
122 !DropSource methodsFor:'accessing'! |
113 |
123 |
114 argument |
124 argument |
115 "returns the user defined argument |
125 "returns the user defined argument" |
116 " |
126 |
117 ^ argument |
127 ^ argument |
118 ! |
128 ! |
119 |
129 |
120 argument:anArgument |
130 argument:anArgument |
121 "set the user defined argument |
131 "set the user defined argument" |
122 " |
132 |
123 argument := anArgument |
133 argument := anArgument |
124 ! |
134 ! |
125 |
135 |
126 displayObjects |
136 displayObjects |
127 "returns a collection of display objects or nil |
137 "returns a collection of display objects or nil" |
128 " |
138 |
129 displayObjectSelector isNil ifTrue:[ |
139 displayObjectSelector isNil ifTrue:[ |
130 ^ nil |
140 ^ nil |
131 ]. |
141 ]. |
132 ^ displayObjectSelector numArgs == 0 ifTrue:[receiver perform:displayObjectSelector] |
142 ^ displayObjectSelector numArgs == 0 ifTrue:[receiver perform:displayObjectSelector] |
133 ifFalse:[receiver perform:displayObjectSelector with:self] |
143 ifFalse:[receiver perform:displayObjectSelector with:self] |
134 ! |
144 ! |
135 |
145 |
136 dropObjects |
146 dropObjects |
137 "returns a collection of objects to drop |
147 "returns a collection of objects to drop" |
138 " |
148 |
139 dropObjectSelector isNil ifTrue:[ |
149 dropObjectSelector isNil ifTrue:[ |
140 ^ nil |
150 ^ nil |
141 ]. |
151 ]. |
142 |
152 |
143 ^ dropObjectSelector numArgs == 0 ifTrue:[receiver perform:dropObjectSelector] |
153 ^ dropObjectSelector numArgs == 0 ifTrue:[receiver perform:dropObjectSelector] |
172 If an argument is required, the argument is the dropSource (self) |
182 If an argument is required, the argument is the dropSource (self) |
173 " |
183 " |
174 displayObjectSelector := aSelectorWithNoneOrOneArgs. |
184 displayObjectSelector := aSelectorWithNoneOrOneArgs. |
175 ! |
185 ! |
176 |
186 |
|
187 dropFeedBackSelector |
|
188 "selector called at end of a drop to give a feedback; the argument to |
|
189 the selector is the dropContext" |
|
190 |
|
191 ^ dropFeedBackSelector |
|
192 ! |
|
193 |
|
194 dropFeedBackSelector:aSelectorWithZeroOrOneArgs |
|
195 "selector called at end of a drop to give a feedback; the argument to |
|
196 the selector is the dropContext" |
|
197 |
|
198 dropFeedBackSelector := aSelectorWithZeroOrOneArgs. |
|
199 ! |
|
200 |
177 dropObjectSelector |
201 dropObjectSelector |
178 "selector to access the draggable objects; a sequence of DropObject's |
202 "selector to access the draggable objects; a sequence of DropObject's |
179 If an argument is required, the argument is the dropSource (self) |
203 If an argument is required, the argument is the dropSource (self) |
180 " |
204 " |
181 ^ dropObjectSelector |
205 ^ dropObjectSelector |
184 dropObjectSelector:aSelectorWithNoneOrOneArgs |
208 dropObjectSelector:aSelectorWithNoneOrOneArgs |
185 "selector to access the draggable objects; a sequence of DropObject's |
209 "selector to access the draggable objects; a sequence of DropObject's |
186 If an argument is required, the argument is the dropSource (self) |
210 If an argument is required, the argument is the dropSource (self) |
187 " |
211 " |
188 dropObjectSelector := aSelectorWithNoneOrOneArgs. |
212 dropObjectSelector := aSelectorWithNoneOrOneArgs. |
189 ! |
|
190 |
|
191 feedBackSelector |
|
192 "selector called at end of a drop to give a feedback; the argument to |
|
193 the selector is the dropContext |
|
194 " |
|
195 ^ feedBackSelector |
|
196 ! |
|
197 |
|
198 feedBackSelector:aSelectorWithNoneOrOneArgs |
|
199 "selector called at end of a drop to give a feedback; the argument to |
|
200 the selector is the dropContext |
|
201 " |
|
202 feedBackSelector := aSelectorWithNoneOrOneArgs. |
|
203 ! |
213 ! |
204 |
214 |
205 startDragSelector |
215 startDragSelector |
206 "send to the receiver to start a DragAndDropManager. If no selector is specified, |
216 "send to the receiver to start a DragAndDropManager. If no selector is specified, |
207 the default drag & drop operation is performed. |
217 the default drag & drop operation is performed. |
221 |
231 |
222 the arguments to the selector are: |
232 the arguments to the selector are: |
223 2 aDropSource (self) Widget |
233 2 aDropSource (self) Widget |
224 3 aDropSource (self) Widget Point |
234 3 aDropSource (self) Widget Point |
225 " |
235 " |
|
236 |
226 startDragSelector := aTwoOrThreeArgSelector |
237 startDragSelector := aTwoOrThreeArgSelector |
227 ! ! |
238 ! ! |
228 |
239 |
229 !DropSource methodsFor:'actions'! |
240 !DropSource methodsFor:'actions'! |
230 |
241 |
231 feedBack:aDropContext |
242 dropFeedBackFrom:aDropContext |
232 "feedback to receiver |
243 "drop feedback to receiver" |
233 " |
244 |
234 feedBackSelector isNil ifTrue:[ |
245 dropFeedBackSelector isNil ifTrue:[ |
235 ^ self |
246 ^ self |
236 ]. |
247 ]. |
237 |
248 |
238 ^ feedBackSelector numArgs == 0 ifTrue:[receiver perform:feedBackSelector] |
249 ^ receiver perform:dropFeedBackSelector withOptionalArgument:aDropContext |
239 ifFalse:[receiver perform:feedBackSelector with:aDropContext] |
|
240 ! |
250 ! |
241 |
251 |
242 startDragIn:aView at:aPoint |
252 startDragIn:aView at:aPoint |
243 "start drag operation for a widget |
253 "start drag operation for a widget |
244 " |
254 " |
256 |
266 |
257 ! ! |
267 ! ! |
258 |
268 |
259 !DropSource methodsFor:'instance creation'! |
269 !DropSource methodsFor:'instance creation'! |
260 |
270 |
261 receiver:aReceiver argument:anArgument dropObjectSelector:s1 displayObjectSelector:s2 feedBackSelector:s3 |
271 receiver:aReceiver argument:anArgument dropObjectSelector:s1 displayObjectSelector:s2 dropFeedBackSelector:s3 |
262 |
|
263 receiver := aReceiver. |
272 receiver := aReceiver. |
264 argument := anArgument. |
273 argument := anArgument. |
265 dropObjectSelector := s1. |
274 dropObjectSelector := s1. |
266 displayObjectSelector := s2. |
275 displayObjectSelector := s2. |
267 feedBackSelector := s3. |
276 dropFeedBackSelector := s3. |
|
277 ! ! |
|
278 |
|
279 !DropSource methodsFor:'obsolete'! |
|
280 |
|
281 feedBackSelector |
|
282 "selector called at end of a drop to give a feedback; the argument to |
|
283 the selector is the dropContext" |
|
284 |
|
285 "/ self obsoleteMethodWarning:'use dropFeedBackSelector'. |
|
286 ^ self dropFeedBackSelector |
|
287 ! |
|
288 |
|
289 feedBackSelector:aSelectorWithZeroOrOneArgs |
|
290 "selector called at end of a drop to give a feedback; the argument to |
|
291 the selector is the dropContext" |
|
292 |
|
293 "/ self obsoleteMethodWarning:'use dropFeedBackSelector:'. |
|
294 self dropFeedBackSelector:aSelectorWithZeroOrOneArgs. |
268 ! ! |
295 ! ! |
269 |
296 |
270 !DropSource class methodsFor:'documentation'! |
297 !DropSource class methodsFor:'documentation'! |
271 |
298 |
272 version |
299 version |
273 ^ '$Header: /cvs/stx/stx/libview2/DropSource.st,v 1.2 2002-12-10 11:03:11 cg Exp $' |
300 ^ '$Header: /cvs/stx/stx/libview2/DropSource.st,v 1.3 2003-03-30 13:02:05 cg Exp $' |
274 ! ! |
301 ! ! |