InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
IDynamicTrackerData.h
1 //========================================================================================
2 //
3 // $File$
4 //
5 // Owner: Richard Rodseth
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 // Purpose: Notifies document observers during tracking. Used by the Transform Panel
24 // to update fields during creation tracking. In some cases, non-dynamic trackers use this
25 // interface to notify (e.g. column tracker, zero point tracker, zoom tool tracker, but
26 // all these trackers don't affect the selection. For trackers that operate on the selection,
27 // (e.g. move, scale, resize, etc), they notify via dynamic commands.
28 //
29 //========================================================================================
30 
31 #ifndef __IDynamicTrackerData__
32 #define __IDynamicTrackerData__
33 
34 #include "PMPoint.h"
35 
37 {
38 public:
39 
40  enum TrackingState { kNotTracking, kBeginTracking, kContinueTracking, kEndTracking, kAbortTracking };
41  enum TrackingEffect
42  {
43  kAffectsNone= 0,
44  kAffectsX = 1,
45  kAffectsY = 2,
46  kAffectsXY = kAffectsX | kAffectsY,
47  kAffectsW = 4,
48  kAffectsXW = kAffectsX | kAffectsW,
49  kAffectsH = 8,
50  kAffectsYH = kAffectsY | kAffectsH,
51  kAffectsXYW = kAffectsXY | kAffectsW,
52  kAffectsXYH = kAffectsXY | kAffectsH,
53  kAffectsWH = kAffectsW | kAffectsH,
54  kAffectsXYWH = kAffectsXY | kAffectsWH,
55  kAffectsL = 16,
56  kAffectsWHL = kAffectsWH | kAffectsL, //Bug# 1399913 - for measure tool tracker
57  kAffectsXYWHL = kAffectsXY | kAffectsWH | kAffectsL, // Line tracker broadcasts this
58  kAffectsD1 = kAffectsL, // Same as kAffectsL
59  kAffectsXYL = kAffectsXY | kAffectsL,
60  kAffectsXYD1 = kAffectsXYL, // Same as kAffectsXYL
61  kAffectsD2 = 32,
62  kAffectsXYD2 = kAffectsXY | kAffectsD2,
63  kAffectsDeltaX = 64, // Dragging points in path selection
64  kAffectsDeltaY = 128,
65  kAffectsDeltaXDeltaY = kAffectsDeltaX | kAffectsDeltaY,
66  kAffectsXYDeltaX = kAffectsXY | kAffectsDeltaX,
67  kAffectsXYDeltaY = kAffectsXY | kAffectsDeltaY,
68  kAffectsXYDeltaXDeltaY = kAffectsXY | kAffectsDeltaX | kAffectsDeltaY,
69  kMarqueeSelection = 256, // Dragging in marquee selection
70 
71  kAffectsScaleX = 512,
72  kAffectsScaleY = 1024,
73  kAffectsSkewAngle = 2048,
74  kAffectsRotationAngle = 4096,
75  kAffectsTransform = kAffectsScaleX | kAffectsScaleY | kAffectsSkewAngle | kAffectsRotationAngle,
76 
77  kUnknown = 32768
78  };
79 
80  virtual void NotifyBeginTracking(const PBPMPoint& startPoint,
81  const TrackingEffect& effect) = 0;
82 
83  virtual void NotifyContinueTracking(const PBPMPoint& startPoint,
84  const PBPMPoint& endPoint,
85  const TrackingEffect& effect) = 0;
86 
87  virtual void NotifyContinueTracking(const PBPMPoint& startPoint,
88  const PBPMPoint& middlePoint,
89  const PBPMPoint& endPoint,
90  const TrackingEffect& effect) = 0;
91 
92  virtual void NotifyEndTracking(const PBPMPoint& startPoint,
93  const PBPMPoint& endPoint, const TrackingEffect& effect) = 0;
94 
95  virtual PBPMPoint GetStartPoint() const = 0;
96  virtual PBPMPoint GetEndPoint() const = 0;
97  virtual PBPMPoint GetMiddlePoint() const = 0;
98 
99  virtual TrackingState GetTrackingState() const = 0;
100  virtual TrackingEffect GetTrackingEffect() const = 0;
101 
108  virtual void EnableGridMode(bool enabled) = 0;
112  virtual void SetRows(int32 rows) = 0;
116  virtual void SetColumns(int32 columns) = 0;
123  virtual void SetInsets(const PMReal& left, const PMReal& top, const PMReal& right, const PMReal& bottom) = 0;
127  virtual void SetHorizontalSpacing(const PMReal& horzSpace) = 0;
131  virtual void SetVerticalSpacing(const PMReal& vertSpace) = 0;
132  virtual void SetGridBounds(const PMRect& bounds) = 0;
133 
137  virtual bool IsGridModeEnabled() const = 0;
141  virtual int32 GetRows() const = 0;
145  virtual int32 GetColumns() const = 0;
149  virtual const PMRect& GetInsets() const = 0;
153  virtual PMReal GetHorizontalSpacing() const = 0;
157  virtual PMReal GetVerticalSpacing() const = 0;
161  virtual const PMRect& GetGridBounds() const = 0;
162 };
163 
164 #endif
165