InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
IControlView.h
1 //========================================================================================
2 //
3 // $File$
4 //
5 // Owner: Frits Habermann
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 
24 #ifndef __IControlView__
25 #define __IControlView__
26 
27 #include "PMTypes.h"
28 #include "widgetid.h"
29 #include "SystemUtils.h"
30 #include "PMRect.h"
31 #include "PMString.h"
32 #include "IControlViewDefs.h"
33 
34 class IViewPort;
35 //class ITransform;
36 class PMRect;
37 class PMPolygon4;
38 //========================================================================================
39 // Types
40 //========================================================================================
41 
42 typedef uint32 WidgetAttributeID;
43 typedef uint16 FrameBinding;
44 
46 static const WidgetID kDefaultWidgetId = 0;
47 
51 class INTERFACE_DECL IControlView : public IPMUnknown
52 {
53 public:
54  /* Default IID to be used by UseDefaultIID() */
55  enum { kDefaultIID = IID_ICONTROLVIEW };
56 
57  // -----------------------------------------------------------
60 
66  virtual void Init(const WidgetID& widgetId = kDefaultWidgetId,
67  const PMRect& fFrame = kZeroRect,
68  RsrcID rsrcID = 0) = 0;
73  virtual void DoPostCreate() = 0;
74 
76 
77  // -----------------------------------------------------------
80 
83  virtual RsrcID GetRsrcID() const = 0;
84 
88  virtual void SetRsrcID(const RsrcID &id) = 0;
89 
92  virtual PluginID GetRsrcPluginID() const = 0;
93 
96  virtual void SetRsrcPluginID(const PluginID &id) = 0;
97  // Get and set the resources plugin id for the widget.
102  virtual WidgetID GetWidgetID() const = 0;
103 
106  virtual void SetWidgetID(const WidgetID &id) = 0;
107 
112  virtual void SetClipToSelfEnabled(bool16 clipChildren) const = 0;
113 
115 
116 
117  // -----------------------------------------------------------
125  virtual void SetFrame(const PMRect& newFrame, bool16 invalidate = kTrue) = 0;
126 
130  virtual const PMRect& GetFrame() const = 0;
131 
135  virtual const PMRect GetLocalFrame() const = 0;
136 
139  virtual void Resize(const PMPoint& newDimensions, bool16 invalidate = kTrue) = 0;
140 
146  virtual void MoveTo(const PMPoint& where, bool16 invalidate = kTrue) = 0;
147 
156  virtual void SetFrameBinding(const FrameBinding& binding) = 0;
157 
161  virtual FrameBinding GetFrameBinding() const = 0;
162 
166  virtual void AdaptToParentsSize(const PMPoint& dimensions) = 0;
167 
171  virtual void AdaptToChildsGeometry(const PMPoint& delta, const FrameBinding& childsBinding, bool16 invalidate = kFalse) = 0;
172 
175  virtual PMPoint ConstrainDimensions(const PMPoint& dimensions) const = 0;
176 
181  virtual SysRgn GetDrawRegion() = 0;
182 
190  virtual bool16 DrawRegionEncompassesChildRegions() const = 0;
191 
199  virtual SysRect GetBBox() const = 0;
200 
207  virtual PMMatrix* GetContentToWindowTransform() const = 0;
208  virtual void ContentToWindowTransform( PMPoint * point) const = 0;
209  virtual void ContentToWindowTransform( PMRect * rect) const = 0;
210  virtual void ContentToWindowTransform( PMPolygon4 * poly) const = 0;
211  virtual void WindowToContentTransform( PMPoint * point) const = 0;
212  virtual void WindowToContentTransform( PMRect * rect) const = 0;
213  virtual void WindowToContentTransform( PMPolygon4 * poly) const = 0;
214  virtual PMMatrix GetContentToWindowMatrix() const = 0;
215  virtual PMMatrix GetWindowToContentMatrix() const = 0;
216  virtual PMRect GetContentBounds_() const = 0;
217 
221  virtual void InvalidateTransform() = 0;
222 
226  virtual void DeleteDrawRegion() = 0;
227 
230  virtual int32 HitTest(const SysPoint& where) = 0;
231 
232  // Geometry methods replacing similar ones from IWindowPort that are no longer supported, as of CS6.
233  //
234  // Note the unlike IWindowPort, these methods don't require an acquired and/or focused viewport to work.
235  //
236  // Also note that IWindowPort converts between global and window coordinates, so the term "local" can be misleading.
237  // That why here we have two versions of, GlobalToLocal (and vice versa) one converting to window coords and one converting to view
238  // coords. To avoid confusion, neither of the new methods is named GlobalToLocal.
239  // Where the "window" is defined by the object above us in the hierarchy containing an IWindow interface.
240 
244  virtual PMRect GlobalToView(const PMRect& convertRect) const = 0;
245  virtual PMPoint GlobalToView(const PMPoint& convertPoint) const = 0;
246  virtual PMRect GlobalToWindow(const PMRect& convertRect) const = 0;
247  virtual PMPoint GlobalToWindow(const PMPoint& convertPoint) const = 0;
248 
252  virtual PMRect ViewToGlobal(const PMRect& convertRect) const = 0;
253  virtual PMPoint ViewToGlobal(const PMPoint& convertPoint) const = 0;
254  virtual PMRect WindowToGlobal(const PMRect& convertRect) const = 0;
255  virtual PMPoint WindowToGlobal(const PMPoint& convertPoint) const = 0;
256 
258 
259  // -----------------------------------------------------------
262 
265  virtual void Draw(IViewPort* viewPort, SysRgn updateRgn = nil) = 0;
266 
271  virtual void Invalidate(PMRect *invalidRect = nil) = 0;
272 
277  virtual void Validate(PMRect *invalidRect = nil) = 0;
278 
279 
285  virtual void ForceRedraw(SysRgn invalidRgn = nil, bool16 forceRedraw = kTrue) = 0;
286 
290  virtual void Hilite(bool16 doHilite = kTrue) = 0;
291 
294  virtual void Unhilite() = 0;
295 
299  virtual bool16 IsHilited() const = 0;
300 
304  virtual bool16 IsRolledOver() const = 0;
306 
307  // -----------------------------------------------------------
310  void ShowView(bool16 doShow = kTrue)
311  {
312  Show( doShow);
313  }
314  void HideView()
315  {
316  Hide();
317  }
318 
319 private:
322  virtual void Show(bool16 doShow = kTrue) = 0;
323 
326  virtual void Hide() = 0;
327 public:
328 
331  virtual bool16 GetVisibleState() const = 0;
332  //
337  virtual bool16 IsVisible(bool16 requireVisibleWindow = kFalse) const = 0;
338  //
341  virtual void ParentsVisibleStateChanged(bool16 visible) = 0;
342  // Called whenever the widget's parent's visible state changes.
343 
346  virtual void Enable(bool16 doEnable = kTrue, bool16 invalidate = kTrue) = 0;
349  virtual void Disable(bool16 invalidate = kTrue) = 0;
352  virtual bool16 GetEnableState() const = 0;
353 
357  virtual bool16 IsEnabled() const = 0;
358 
361  virtual void ParentsEnableStateChanged(bool16 visible, bool16 invalidate = kTrue) = 0;
362 
364 
365  // -----------------------------------------------------------
368 
373  virtual void WindowActivated() = 0;
378  virtual void WindowDeactivated() = 0;
379 
380 
383  virtual void WindowShown() = 0;
384 
387  virtual void WindowHidden() = 0;
388 
392  virtual void WindowChanged() = 0;
393 
394 
397  virtual void WindowClosed() = 0;
398 
399 
401 
402  // -----------------------------------------------------------
408  virtual void ParentPurged() = 0;
409 
411 
412 
413  // -----------------------------------------------------------
416 
420  virtual void DoAutoAttach() = 0;
421 
425  virtual void DoAutoDetach() = 0;
426 
427  // -----------------------------------------------------------
429 
430 
436  virtual void SetRsrcID(const RsrcID &id,const bool isDarkIcon) = 0;
437 //
438 //public :
439 // //
440 // //@}
441 };
442 
443 #endif