24 #ifndef __IControlView__ 25 #define __IControlView__ 29 #include "SystemUtils.h" 32 #include "IControlViewDefs.h" 42 typedef uint32 WidgetAttributeID;
43 typedef uint16 FrameBinding;
46 static const WidgetID kDefaultWidgetId = 0;
55 enum { kDefaultIID = IID_ICONTROLVIEW };
66 virtual void Init(
const WidgetID& widgetId = kDefaultWidgetId,
67 const PMRect& fFrame = kZeroRect,
68 RsrcID rsrcID = 0) = 0;
73 virtual void DoPostCreate() = 0;
83 virtual RsrcID GetRsrcID()
const = 0;
88 virtual void SetRsrcID(
const RsrcID &
id) = 0;
92 virtual PluginID GetRsrcPluginID()
const = 0;
96 virtual void SetRsrcPluginID(
const PluginID &
id) = 0;
102 virtual WidgetID GetWidgetID()
const = 0;
106 virtual void SetWidgetID(
const WidgetID &
id) = 0;
112 virtual void SetClipToSelfEnabled(bool16 clipChildren)
const = 0;
125 virtual void SetFrame(
const PMRect& newFrame, bool16 invalidate = kTrue) = 0;
130 virtual const PMRect& GetFrame()
const = 0;
135 virtual const PMRect GetLocalFrame()
const = 0;
139 virtual void Resize(
const PMPoint& newDimensions, bool16 invalidate = kTrue) = 0;
146 virtual void MoveTo(
const PMPoint& where, bool16 invalidate = kTrue) = 0;
156 virtual void SetFrameBinding(
const FrameBinding& binding) = 0;
161 virtual FrameBinding GetFrameBinding()
const = 0;
166 virtual void AdaptToParentsSize(
const PMPoint& dimensions) = 0;
171 virtual void AdaptToChildsGeometry(
const PMPoint& delta,
const FrameBinding& childsBinding, bool16 invalidate = kFalse) = 0;
175 virtual PMPoint ConstrainDimensions(
const PMPoint& dimensions)
const = 0;
181 virtual SysRgn GetDrawRegion() = 0;
190 virtual bool16 DrawRegionEncompassesChildRegions()
const = 0;
199 virtual SysRect GetBBox()
const = 0;
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;
221 virtual void InvalidateTransform() = 0;
226 virtual void DeleteDrawRegion() = 0;
230 virtual int32 HitTest(
const SysPoint& where) = 0;
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;
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;
265 virtual void Draw(
IViewPort* viewPort, SysRgn updateRgn = nil) = 0;
271 virtual void Invalidate(
PMRect *invalidRect = nil) = 0;
277 virtual void Validate(
PMRect *invalidRect = nil) = 0;
285 virtual void ForceRedraw(SysRgn invalidRgn = nil, bool16 forceRedraw = kTrue) = 0;
290 virtual void Hilite(bool16 doHilite = kTrue) = 0;
294 virtual void Unhilite() = 0;
299 virtual bool16 IsHilited()
const = 0;
304 virtual bool16 IsRolledOver()
const = 0;
310 void ShowView(bool16 doShow = kTrue)
322 virtual void Show(bool16 doShow = kTrue) = 0;
326 virtual void Hide() = 0;
331 virtual bool16 GetVisibleState()
const = 0;
337 virtual bool16 IsVisible(bool16 requireVisibleWindow = kFalse)
const = 0;
341 virtual void ParentsVisibleStateChanged(bool16 visible) = 0;
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;
357 virtual bool16 IsEnabled()
const = 0;
361 virtual void ParentsEnableStateChanged(bool16 visible, bool16 invalidate = kTrue) = 0;
373 virtual void WindowActivated() = 0;
378 virtual void WindowDeactivated() = 0;
383 virtual void WindowShown() = 0;
387 virtual void WindowHidden() = 0;
392 virtual void WindowChanged() = 0;
397 virtual void WindowClosed() = 0;
408 virtual void ParentPurged() = 0;
420 virtual void DoAutoAttach() = 0;
425 virtual void DoAutoDetach() = 0;
436 virtual void SetRsrcID(
const RsrcID &
id,
const bool isDarkIcon) = 0;