InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
AbstractControlView.h
1 //========================================================================================
2 //
3 // $File$
4 //
5 // Owner: Dave Burnard
6 //
7 // $Author$
8 //
9 // $DateTime$
10 //
11 // $Revision$
12 //
13 // $Change$
14 //
15 // ADOBE CONFIDENTIAL
16 //
17 // Copyright 1997-2008 Adobe Systems Incorporated. All rights reserved.
18 //
19 // NOTICE: All information contained herein is, and remains
20 // the property of Adobe Systems Incorporated and its suppliers,
21 // if any. The intellectual and technical concepts contained
22 // herein are proprietary to Adobe Systems Incorporated and its
23 // suppliers and may be covered by U.S. and Foreign Patents,
24 // patents in process, and are protected by trade secret or copyright law.
25 // Dissemination of this information or reproduction of this material
26 // is strictly forbidden unless prior written permission is obtained
27 // from Adobe Systems Incorporated.
28 //
29 //========================================================================================
30 
31 #ifndef __AbstractControlView__
32 #define __AbstractControlView__
33 
34 #include "IControlView.h"
35 
36 
37 #ifdef WIDGET_BUILD
38 #endif
39 
47 {
48 public:
49  // ----- Initialization -----
50 
52  virtual ~AbstractControlView();
53 
54  virtual void ReadWrite(IPMStream *s, ImplementationID prop);
55 
58  virtual void Init(const WidgetID& widgetId = kDefaultWidgetId,
59  const PMRect& bbox = kZeroRect,
60  RsrcID rsrcID = 0);
61 
64  virtual void DoPostCreate();
65 
67  virtual RsrcID GetRsrcID() const;
68 
70  virtual void SetRsrcID(const RsrcID &id);
71 
73  virtual PluginID GetRsrcPluginID() const;
74 
76  virtual void SetRsrcPluginID(const PluginID &id);
77 
79  virtual WidgetID GetWidgetID() const;
80 
82  virtual void SetWidgetID(const WidgetID &id);
83 
85  virtual void SetFrame(const PMRect& newFrame, bool16 invalidate = kTrue) = 0;
86 
88  virtual const PMRect& GetFrame() const = 0;
89 
91  virtual void Resize(const PMPoint& newDimensions, bool16 invalidate = kTrue) = 0;
92 
94  virtual void MoveTo(const PMPoint& where, bool16 invalidate = kTrue) = 0;
95 
97  virtual void SetFrameBinding(const FrameBinding& binding);
98 
100  virtual FrameBinding GetFrameBinding() const;
101 
103  virtual void AdaptToParentsSize(const PMPoint& dimensions) = 0;
104 
106  virtual void AdaptToChildsGeometry(const PMPoint& delta, const FrameBinding& childsBinding, bool16 invalidate = kFalse) = 0;
107 
111  virtual PMPoint ConstrainDimensions(const PMPoint& dimensions) const;
112 
114  virtual SysRgn GetDrawRegion() = 0;
115 
119  virtual bool16 DrawRegionEncompassesChildRegions() const = 0;
120 
122  virtual SysRect GetBBox() const;
123 
125  virtual PMMatrix* GetContentToWindowTransform() const;
126  virtual void ContentToWindowTransform( PMPoint * point) const;
127  virtual void ContentToWindowTransform( PMRect * rect) const;
128  virtual void ContentToWindowTransform( PMPolygon4 * poly) const;
129 
130  virtual void WindowToContentTransform( PMPoint * point) const;
131  virtual void WindowToContentTransform( PMRect * rect) const;
132  virtual void WindowToContentTransform( PMPolygon4 * poly) const;
133 
134  virtual PMMatrix GetContentToWindowMatrix() const;
135  virtual PMMatrix GetWindowToContentMatrix() const;
136  virtual PMRect GetContentBounds_() const;
137 
139  virtual void InvalidateTransform();
140 
142  virtual void DeleteDrawRegion() = 0;
143 
145  virtual int32 HitTest(const SysPoint& where) = 0;
146 
147 
149  virtual void Draw(IViewPort* viewPort, SysRgn updateRgn) = 0;
150 
152  virtual void ForceRedraw(SysRgn invalidRgn, bool16 forceRedraw) = 0;
153 
155  virtual void Invalidate(PMRect *bbox = nil) = 0;
156 
158  virtual void Validate(PMRect *bbox = nil) = 0;
159 
161  virtual void Hilite(bool16 doHilite = kTrue) = 0;
162 
164  virtual void Unhilite() = 0;
165 
167  virtual bool16 IsHilited() const = 0;
168 
170  virtual bool16 IsRolledOver() const = 0;
171 
173  virtual void Show(bool16 doShow) = 0;
174 
176  virtual void Hide() = 0;
177 
179  virtual bool16 GetVisibleState() const = 0;
180 
182  virtual bool16 IsVisible(bool16 requireVisibleWindow = kFalse) const = 0;
183 
185  virtual void ParentsVisibleStateChanged(bool16 visible);
186 
188  virtual void Enable(bool16 doEnable, bool16 invalidate) = 0;
189 
191  virtual void Disable(bool16 invalidate) = 0;
192 
194  virtual bool16 GetEnableState() const = 0;
195 
197  virtual bool16 IsEnabled() const = 0;
198 
200  virtual void ParentsEnableStateChanged(bool16 enable, bool16 invalidate) = 0;
201 
203  virtual void WindowActivated();
204 
206  virtual void WindowDeactivated();
207 
209  virtual void WindowShown();
210 
212  virtual void WindowHidden();
213 
215  virtual void WindowChanged();
216 
218  virtual void WindowClosed();
219 
221  virtual void ParentPurged();
222 
224  virtual void DoAutoAttach();
225 
227  virtual void DoAutoDetach();
228 
229 protected:
230 
232  virtual void SetVisibleState(bool16 isVisible = kTrue) = 0;
233  virtual void SetEnableState(bool16 isVisible = kTrue) = 0;
234 
236  virtual bool16 AncestorsAreVisible(bool16 requireVisibleWindow) const = 0;
237 
239  virtual bool16 AncestorsAreEnabled() const;
240 
242  IPMUnknown* QueryParentFor(const PMIID& interfaceID) const;
243 
245  void NotifyParent(const WidgetAttributeID& id);
246 
247 
249  virtual PMMatrix* GetUpdatedContentToWindowTransform() = 0;
250 
256  virtual void CreateDrawRegion(SysRgn& drawRgn) = 0;
257 
258 
260  virtual PMMatrix* CreateTransform();
261 
263  void DestroyContentTransform();
264 
266  virtual void DestroyWrappedSystemControls();
267 
269  virtual bool16 IsAutoAttached() const = 0;
270  virtual void SetIsAutoAttached(bool16 flag = kTrue) = 0;
271 
275  virtual void HandleAutoAttach();
276 
280  virtual void HandleAutoDetach();
281 
283  virtual void SetRsrcID(const RsrcID &id, const bool isDarkIcon);
284 
285 protected:
286 
287 
288  WidgetID fWidgetId;
289  PMRsrcID fRsrcId;
290  FrameBinding fFrameBinding;
291  PMRect fFrame;
292 
293  PMMatrix* fContentTransform;
294 
295 
296 };
297 
298 
299 
300 #endif
301