InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
DragDropConstants.h
1 //========================================================================================
2 //
3 // $File$
4 //
5 // Owner: Dave Burnard
6 //
7 // $Author$
8 //
9 // $DateTime$
10 //
11 // $Revision$
12 //
13 // $Change$
14 //
15 // Copyright 1997-2010 Adobe Systems Incorporated. All rights reserved.
16 //
17 // NOTICE: Adobe permits you to use, modify, and distribute this file in accordance
18 // with the terms of the Adobe license agreement accompanying it. If you have received
19 // this file from a source other than Adobe, then your use, modification, or
20 // distribution of it requires the prior written permission of Adobe.
21 //
22 //
23 // Constants and Simple Classes used in the Drag and Drop framework
24 //
25 //========================================================================================
26 
27 #ifndef __DragDropConstants__
28 #define __DragDropConstants__
29 
30 #include "PMFlavorTypes.h"
31 
32 
40 {
41  public:
47  enum eHelperType {
58  };
59 };
60 
65 class DragDrop
66 {
67  public:
72  enum eCursorType { kDefaultDragCursors = -99 };
73 
78  enum eOutlineType {
83  };
84 
96  };
97 
107  };
108 
119  };
120 
133  };
134 
150  };
151 
163  kDrag = kDragCommand, kDragMove = kDragMoveCommand, kDrop = kDropCommand
164  };
165 
171  enum eHelperType {
178  };
179 
180 
187  {
188  public:
193  fResponse(kWontAcceptDrop),
194  fTargetWillDrawTrackingFeedback(kUseDefaultTrackingFeedback),
195  fTargetWillProvideCursorFeedback(kUseDefaultCursorFeedback),
196  fTargetTrackingBehavior(kUseDefaultTargetTracking) {}
197 
207  eTargetWillDrawTrackingFeedback willTargetDrawTrackingFeedback = kUseDefaultTrackingFeedback,
208  eTargetWillProvideCursorFeedback willTargetProvideCursorFeedback = kUseDefaultCursorFeedback,
209  eTargetTrackingBehavior targetTrackingBehavior = kUseDefaultTargetTracking,
210  PMFlavorPriority priority = kUnknownFlavorPriority
211  )
212  : DataExchangeResponse((response != kWontAcceptDrop && response != kNoDropEffectCursor), priority),
213  fResponse(response),
214  fTargetWillDrawTrackingFeedback(willTargetDrawTrackingFeedback),
215  fTargetWillProvideCursorFeedback(willTargetProvideCursorFeedback),
216  fTargetTrackingBehavior(targetTrackingBehavior) {}
217 
227  eTargetResponse targResponse,
228  eTargetWillDrawTrackingFeedback willTargetDrawTrackingFeedback = kUseDefaultTrackingFeedback,
229  eTargetWillProvideCursorFeedback willTargetProvideCursorFeedback = kUseDefaultCursorFeedback,
230  eTargetTrackingBehavior targetTrackingBehavior = kUseDefaultTargetTracking
231  )
232  : DataExchangeResponse(deResponse),
233  fResponse(targResponse),
234  fTargetWillDrawTrackingFeedback(willTargetDrawTrackingFeedback),
235  fTargetWillProvideCursorFeedback(willTargetProvideCursorFeedback),
236  fTargetTrackingBehavior(targetTrackingBehavior) {}
237 
241  : DataExchangeResponse(other), fResponse(other.fResponse),
242  fTargetWillDrawTrackingFeedback(other.fTargetWillDrawTrackingFeedback),
243  fTargetWillProvideCursorFeedback(other.fTargetWillProvideCursorFeedback),
244  fTargetTrackingBehavior(other.fTargetTrackingBehavior) {}
245 
246  bool16 CanTargetAccept() const {return CanDo();}
247  eTargetResponse GetResponse() const {return fResponse;}
248  bool16 WillTargetDrawTrackingFeedback() const {return fTargetWillDrawTrackingFeedback == DragDrop::kTargetWillDrawTrackingFeedback;}
249  bool16 WillTargetProvideCursorFeedback() const {return fTargetWillProvideCursorFeedback == DragDrop::kTargetWillProvideCursorFeedback;}
250  bool16 TargetTrackingBehaviorIsSticky() const {return fTargetTrackingBehavior == DragDrop::kTargetTrackingBehaviorIsSticky;}
251 
252  protected:
253  eTargetResponse fResponse;
254  eTargetWillDrawTrackingFeedback fTargetWillDrawTrackingFeedback;
255  eTargetWillProvideCursorFeedback fTargetWillProvideCursorFeedback;
256  eTargetTrackingBehavior fTargetTrackingBehavior;
257  };
258 
263 };
264 
265 
266 #endif