InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
AbstractControlView Class Referenceabstract

#include <AbstractControlView.h>

Inheritance diagram for AbstractControlView:
IControlViewIPMUnknownDVHostedWidgetViewDVAbstractControlViewDVBasePanelViewDVControlViewDVDropDownElementViewAGMDrawnPanelViewDVPanelViewCusDtLnkUICustomViewDVGIFPlayerViewHiDPIWidgetControlViewPnlTrvCustomViewTableCellViewDVErasablePanelViewDVPanelViewCustomColorCIDErasablePanelViewDVPalettePanelViewDCLSizPalettePanelViewSnipRunControlViewPalettePanelViewCelPnlPanelViewCusCondTxtPanelView

Public Member Functions

 AbstractControlView (IPMUnknown *boss)
 
virtual void ReadWrite (IPMStream *s, ImplementationID prop)
 
virtual void Init (const WidgetID &widgetId=kDefaultWidgetId, const PMRect &bbox=kZeroRect, RsrcID rsrcID=0)
 
virtual void DoPostCreate ()
 
virtual RsrcID GetRsrcID () const
 
virtual void SetRsrcID (const RsrcID &id)
 
virtual PluginID GetRsrcPluginID () const
 
virtual void SetRsrcPluginID (const PluginID &id)
 
virtual WidgetID GetWidgetID () const
 
virtual void SetWidgetID (const WidgetID &id)
 
virtual void SetFrame (const PMRect &newFrame, bool16 invalidate=kTrue)=0
 
virtual const PMRectGetFrame () const =0
 
virtual void Resize (const PMPoint &newDimensions, bool16 invalidate=kTrue)=0
 
virtual void MoveTo (const PMPoint &where, bool16 invalidate=kTrue)=0
 
virtual void SetFrameBinding (const FrameBinding &binding)
 
virtual FrameBinding GetFrameBinding () const
 
virtual void AdaptToParentsSize (const PMPoint &dimensions)=0
 
virtual void AdaptToChildsGeometry (const PMPoint &delta, const FrameBinding &childsBinding, bool16 invalidate=kFalse)=0
 
virtual PMPoint ConstrainDimensions (const PMPoint &dimensions) const
 
virtual SysRgn GetDrawRegion ()=0
 
virtual bool16 DrawRegionEncompassesChildRegions () const =0
 
virtual SysRect GetBBox () const
 
virtual PMMatrixGetContentToWindowTransform () const
 
virtual void ContentToWindowTransform (PMPoint *point) const
 
virtual void ContentToWindowTransform (PMRect *rect) const
 
virtual void ContentToWindowTransform (PMPolygon4 *poly) const
 
virtual void WindowToContentTransform (PMPoint *point) const
 
virtual void WindowToContentTransform (PMRect *rect) const
 
virtual void WindowToContentTransform (PMPolygon4 *poly) const
 
virtual PMMatrix GetContentToWindowMatrix () const
 
virtual PMMatrix GetWindowToContentMatrix () const
 
virtual PMRect GetContentBounds_ () const
 
virtual void InvalidateTransform ()
 
virtual void DeleteDrawRegion ()=0
 
virtual int32 HitTest (const SysPoint &where)=0
 
virtual void Draw (IViewPort *viewPort, SysRgn updateRgn)=0
 
virtual void ForceRedraw (SysRgn invalidRgn, bool16 forceRedraw)=0
 
virtual void Invalidate (PMRect *bbox=nil)=0
 
virtual void Validate (PMRect *bbox=nil)=0
 
virtual void Hilite (bool16 doHilite=kTrue)=0
 
virtual void Unhilite ()=0
 
virtual bool16 IsHilited () const =0
 
virtual bool16 IsRolledOver () const =0
 
virtual void Show (bool16 doShow)=0
 
virtual void Hide ()=0
 
virtual bool16 GetVisibleState () const =0
 
virtual bool16 IsVisible (bool16 requireVisibleWindow=kFalse) const =0
 
virtual void ParentsVisibleStateChanged (bool16 visible)
 
virtual void Enable (bool16 doEnable, bool16 invalidate)=0
 
virtual void Disable (bool16 invalidate)=0
 
virtual bool16 GetEnableState () const =0
 
virtual bool16 IsEnabled () const =0
 
virtual void ParentsEnableStateChanged (bool16 enable, bool16 invalidate)=0
 
virtual void WindowActivated ()
 
virtual void WindowDeactivated ()
 
virtual void WindowShown ()
 
virtual void WindowHidden ()
 
virtual void WindowChanged ()
 
virtual void WindowClosed ()
 
virtual void ParentPurged ()
 
virtual void DoAutoAttach ()
 
virtual void DoAutoDetach ()
 
- Public Member Functions inherited from IControlView
virtual void SetClipToSelfEnabled (bool16 clipChildren) const =0
 
virtual const PMRect GetLocalFrame () const =0
 
virtual PMRect GlobalToView (const PMRect &convertRect) const =0
 
virtual PMPoint GlobalToView (const PMPoint &convertPoint) const =0
 
virtual PMRect GlobalToWindow (const PMRect &convertRect) const =0
 
virtual PMPoint GlobalToWindow (const PMPoint &convertPoint) const =0
 
virtual PMRect ViewToGlobal (const PMRect &convertRect) const =0
 
virtual PMPoint ViewToGlobal (const PMPoint &convertPoint) const =0
 
virtual PMRect WindowToGlobal (const PMRect &convertRect) const =0
 
virtual PMPoint WindowToGlobal (const PMPoint &convertPoint) const =0
 
void ShowView (bool16 doShow=kTrue)
 
void HideView ()
 
- Public Member Functions inherited from IPMUnknown
virtual IPMUnknownQueryInterface (PMIID interfaceID) const =0
 
virtual void AddRef () const =0
 
virtual void Release () const =0
 

Protected Member Functions

virtual void SetVisibleState (bool16 isVisible=kTrue)=0
 
virtual void SetEnableState (bool16 isVisible=kTrue)=0
 
virtual bool16 AncestorsAreVisible (bool16 requireVisibleWindow) const =0
 
virtual bool16 AncestorsAreEnabled () const
 
IPMUnknownQueryParentFor (const PMIID &interfaceID) const
 
void NotifyParent (const WidgetAttributeID &id)
 
virtual PMMatrixGetUpdatedContentToWindowTransform ()=0
 
virtual void CreateDrawRegion (SysRgn &drawRgn)=0
 
virtual PMMatrixCreateTransform ()
 
void DestroyContentTransform ()
 
virtual void DestroyWrappedSystemControls ()
 
virtual bool16 IsAutoAttached () const =0
 
virtual void SetIsAutoAttached (bool16 flag=kTrue)=0
 
virtual void HandleAutoAttach ()
 
virtual void HandleAutoDetach ()
 
virtual void SetRsrcID (const RsrcID &id, const bool isDarkIcon)
 

Protected Attributes

WidgetID fWidgetId
 
PMRsrcID fRsrcId
 
FrameBinding fFrameBinding
 
PMRect fFrame
 
PMMatrixfContentTransform
 

Additional Inherited Members

- Public Types inherited from IControlView
enum  { kDefaultIID = IID_ICONTROLVIEW }
 

Detailed Description

This class is a new base class used to implement IControlView for essentially all widgets. It's purpose is to isolate Drover-based widgets from some of the assumptions found in CControlView related to wrapping platform widgets. Implementations in AbstractControlView must be independent of how the ControlView is actually implemented - so it deals mostly with identification, notification, common data, etc.

See Also
IControlView, CControlView, DVControlView

Member Function Documentation

virtual void AbstractControlView::AdaptToChildsGeometry (const PMPointdelta,
const FrameBinding & childsBinding,
bool16 invalidate = kFalse 
)
pure virtual

Resizes based on the current binding setting of child. Subclasses rarely override this method

Implements IControlView.

Implemented in DVHostedWidgetView.

virtual void AbstractControlView::AdaptToParentsSize (const PMPointdimensions)
pure virtual

Resizes based on the current binding setting. Subclasses rarely override this method

Implements IControlView.

Implemented in DVHostedWidgetView.

virtual bool16 AbstractControlView::AncestorsAreEnabled () const
protectedvirtual

Checks if all parents of this widget are enabled.

virtual bool16 AbstractControlView::AncestorsAreVisible (bool16 requireVisibleWindow) const
protectedpure virtual

Checks if all parents of this widget are visible. Optionally check the window as well

Implemented in DVHostedWidgetView.

virtual PMPoint AbstractControlView::ConstrainDimensions (const PMPointdimensions) const
virtual

Default implementation just returns the dimensions passed in. If your widget has some limits on how it resizes(e.g. only want to grow shrink in increments of a row height or something) you need to override this method.

Implements IControlView.

Reimplemented in CelPnlPanelView, DCLSizPalettePanelView, CusCondTxtPanelView, and SnipRunControlView.

virtual void AbstractControlView::CreateDrawRegion (SysRgn & drawRgn)
protectedpure virtual
Return a region that defines the drawing area of the control.  Default implementation creates a region from the control bbox.

Overriding this allows you to create a different draw region. Some controls do this to draw a drop shadow outside the bounds of the control. Your draw region should not extend beyond your parent's draw region, so your draw region should usually be an intersection of your adjusted bbox and your parent's draw region.

Implemented in DVHostedWidgetView.

virtual PMMatrix* AbstractControlView::CreateTransform ()
protectedvirtual

Allocates a new transform. Subclasses rarely need to override this method

virtual void AbstractControlView::DeleteDrawRegion ()
pure virtual

Default implementation throws away cached Draw Region. Next call to GetDrawRegion will recalculate it. Subclasses rarely override this method

Implements IControlView.

Implemented in DVHostedWidgetView.

void AbstractControlView::DestroyContentTransform ()
protected

Frees the content Transform.

virtual void AbstractControlView::DestroyWrappedSystemControls ()
protectedvirtual

Destroy any platform controls wrapped by this control. Does nothing by default - see CControlView

virtual void AbstractControlView::Disable (bool16 invalidate)
pure virtual

Sets enable flag. Optionally causes inval.

Implements IControlView.

Implemented in DVHostedWidgetView, and DVDropDownElementView.

virtual void AbstractControlView::DoAutoAttach ()
virtual

Calls the AutoAttach method of the observer on the same boss with IID_IOBSERVER, plus attaches additional observers using the IControlViewObservers interface

Implements IControlView.

virtual void AbstractControlView::DoAutoDetach ()
virtual

Calls the AutoDetach method of the observer on the same boss with IID_IOBSERVER, plus detaches additional observers using the IControlViewObservers interface

Implements IControlView.

Reimplemented in DVHostedWidgetView.

virtual void AbstractControlView::DoPostCreate ()
virtual

Default implementation resets transform and panorama. Subclasses sometimes override this to do some delayed initialization.

Implements IControlView.

Reimplemented in AGMDrawnPanelView, DVGIFPlayerView, CelPnlPanelView, DVBasePanelView, DVHostedWidgetView, and DVPanelView.

virtual void AbstractControlView::Draw (IViewPortviewPort,
SysRgn updateRgn 
)
pure virtual
virtual bool16 AbstractControlView::DrawRegionEncompassesChildRegions () const
pure virtual

As a default, Child regions will be contained within their parent's draw region(returns kTrue), but this can be overridden by some views to indicate that child regions are independant of their parent regions.

Implements IControlView.

Implemented in DVHostedWidgetView.

virtual void AbstractControlView::Enable (bool16 doEnable,
bool16 invalidate 
)
pure virtual

Sets enable flag. Optionally causes inval.

Implements IControlView.

Implemented in DVHostedWidgetView, and DVDropDownElementView.

virtual void AbstractControlView::ForceRedraw (SysRgn invalidRgn,
bool16 forceRedraw 
)
pure virtual

Force the control to redraw, or just the invalid region passed in.

Implements IControlView.

Implemented in DVHostedWidgetView.

virtual SysRect AbstractControlView::GetBBox () const
virtual

Returns value based on Frame and transform.

Implements IControlView.

virtual PMMatrix* AbstractControlView::GetContentToWindowTransform () const
virtual

Default implementation returns cached transform, or uses bbox and panorama to calculate the current transform. Subclasses rarely override this method

Implements IControlView.

virtual SysRgn AbstractControlView::GetDrawRegion ()
pure virtual

Returns stored value, or calls CreateDrawRegion if it doesn't have one. Subclasses rarely override this method

Implements IControlView.

Implemented in DVHostedWidgetView.

virtual bool16 AbstractControlView::GetEnableState () const
pure virtual

Returns stored value. Subclasses rarely override this method

Implements IControlView.

Implemented in DVHostedWidgetView.

virtual const PMRect& AbstractControlView::GetFrame () const
pure virtual

Returns Frame of widget.

Implements IControlView.

Implemented in DVHostedWidgetView.

virtual FrameBinding AbstractControlView::GetFrameBinding () const
virtual

Returns stored value. Subclasses rarely override this method

Implements IControlView.

Reimplemented in DVHostedWidgetView.

virtual RsrcID AbstractControlView::GetRsrcID () const
virtual

Returns stored value. Subclasses rarely override this method

Implements IControlView.

virtual PluginID AbstractControlView::GetRsrcPluginID () const
virtual

Returns stored value. Subclasses rarely override this method

Implements IControlView.

virtual PMMatrix* AbstractControlView::GetUpdatedContentToWindowTransform ()
protectedpure virtual

Calculates new transform from current bbox and panorama. Subclasses usually don't need to override this method

Implemented in DVHostedWidgetView.

virtual bool16 AbstractControlView::GetVisibleState () const
pure virtual

Returns stored value. Subclasses rarely override this method

Implements IControlView.

Implemented in DVHostedWidgetView.

virtual WidgetID AbstractControlView::GetWidgetID () const
virtual

Returns stored value. Subclasses rarely override this method

Implements IControlView.

virtual void AbstractControlView::HandleAutoAttach ()
protectedvirtual
As control views are enabled, activated and shown we only want to call Attach once. These

methods make sure that AutoAttach is only called once.

virtual void AbstractControlView::HandleAutoDetach ()
protectedvirtual
As control views are disabled, deactivated and hidden we only want to call Detach once. These

methods make sure that AutoDetach is only called once.

virtual void AbstractControlView::Hide ()
pure virtual

Sets visible flag. Causes inval. Does AutoDetach of observer

Implements IControlView.

Implemented in DVHostedWidgetView, and DVBasePanelView.

virtual void AbstractControlView::Hilite (bool16 doHilite = kTrue)
pure virtual

Sets stored value.

Implements IControlView.

Implemented in DVHostedWidgetView, and DVBasePanelView.

virtual int32 AbstractControlView::HitTest (const SysPointwhere)
pure virtual

Default implementation returns kTrue if the passed in point is within the bbox of the control view. Subclasses who want different hittest behavior must override this method.

Implements IControlView.

Implemented in DVHostedWidgetView.

virtual void AbstractControlView::Init (const WidgetIDwidgetId = kDefaultWidgetId,
const PMRectbbox = kZeroRect,
RsrcID rsrcID = 0 
)
virtual

Default implementation just stores off WidgetID, bbox, and RsrcID

Implements IControlView.

Reimplemented in DVHostedWidgetView, CusDtLnkUICustomView, and PnlTrvCustomView.

virtual void AbstractControlView::Invalidate (PMRectbbox = nil)
pure virtual

Inval the draw region of this control, or just the bbox passed in.

Implements IControlView.

Implemented in DVHostedWidgetView.

virtual void AbstractControlView::InvalidateTransform ()
virtual

Default implementation throws away cached Transform. Next call to GetContentToWindowTransform will recalculate it. Subclasses rarely override this method

Implements IControlView.

Reimplemented in DVBasePanelView.

virtual bool16 AbstractControlView::IsAutoAttached () const
protectedpure virtual

Check if AutoAttach was called more recently than AutoDetach

Implemented in DVHostedWidgetView.

virtual bool16 AbstractControlView::IsEnabled () const
pure virtual

Returns stored value. Subclasses rarely override this method

Implements IControlView.

Implemented in DVHostedWidgetView.

virtual bool16 AbstractControlView::IsHilited () const
pure virtual

Returns stored value.

Implements IControlView.

Implemented in DVHostedWidgetView.

virtual bool16 AbstractControlView::IsRolledOver () const
pure virtual

Returns stored value.

Implements IControlView.

Implemented in DVHostedWidgetView.

virtual bool16 AbstractControlView::IsVisible (bool16 requireVisibleWindow = kFalse) const
pure virtual

Returns stored value. Subclasses rarely override this method

Implements IControlView.

Implemented in DVHostedWidgetView.

virtual void AbstractControlView::MoveTo (const PMPointwhere,
bool16 invalidate = kTrue 
)
pure virtual

Moves the widget. Invals appropriately.

Implements IControlView.

Implemented in DVHostedWidgetView.

void AbstractControlView::NotifyParent (const WidgetAttributeID & id)
protected

Notify parent of an attrubute change, such as kWidgetSize

virtual void AbstractControlView::ParentPurged ()
virtual

Default implementation invalidates transform, destroys system control, deletes draw region

Implements IControlView.

Reimplemented in DVBasePanelView.

virtual void AbstractControlView::ParentsEnableStateChanged (bool16 enable,
bool16 invalidate 
)
pure virtual

Default implementation just invals(if requested to)

Implements IControlView.

Implemented in DVHostedWidgetView.

virtual void AbstractControlView::ParentsVisibleStateChanged (bool16 visible)
virtual

Does AutoAttach or AutoDetach of observer

Implements IControlView.

Reimplemented in DVBasePanelView.

IPMUnknown* AbstractControlView::QueryParentFor (const PMIIDinterfaceID) const
protected

Convenience method to make it easier to get your window or your parent view. Continues querying up the widget hierarchy until a boss with the requested interface is found.

virtual void AbstractControlView::Resize (const PMPointnewDimensions,
bool16 invalidate = kTrue 
)
pure virtual

Resizes the widget. Invals appropriately.

Implements IControlView.

Implemented in CelPnlPanelView, DVHostedWidgetView, and SnipRunControlView.

virtual void AbstractControlView::SetFrame (const PMRectnewFrame,
bool16 invalidate = kTrue 
)
pure virtual

Moves and resizes the widget. Invals appropriately.

Implements IControlView.

Implemented in DVHostedWidgetView.

virtual void AbstractControlView::SetFrameBinding (const FrameBinding & binding)
virtual

Sets stored value. Subclasses rarely override this method

Implements IControlView.

Reimplemented in DVHostedWidgetView.

virtual void AbstractControlView::SetRsrcID (const RsrcID & id)
virtual

Sets stored value. Subclasses rarely override this method

Implements IControlView.

virtual void AbstractControlView::SetRsrcID (const RsrcID & id,
const bool isDarkIcon 
)
protectedvirtual

Sets stored value. Used for setting icon at a particular theme. Subclasses rarely override this method

Implements IControlView.

virtual void AbstractControlView::SetRsrcPluginID (const PluginIDid)
virtual

Sets stored value. Subclasses rarely override this method

Implements IControlView.

virtual void AbstractControlView::SetVisibleState (bool16 isVisible = kTrue)
protectedpure virtual

Changes value of state flag, no side effects

Implemented in DVHostedWidgetView.

virtual void AbstractControlView::SetWidgetID (const WidgetIDid)
virtual

Sets stored value. Subclasses rarely override this method

Implements IControlView.

virtual void AbstractControlView::Show (bool16 doShow)
pure virtual

Sets visible flag. Causes inval. Does AutoAttach or AutoDetach of observer

Implements IControlView.

Implemented in DVHostedWidgetView, and DVBasePanelView.

virtual void AbstractControlView::Unhilite ()
pure virtual

Sets stored value.

Implements IControlView.

Implemented in DVHostedWidgetView, and DVBasePanelView.

virtual void AbstractControlView::Validate (PMRectbbox = nil)
pure virtual

Validate the draw region of this control, or just the bbox passed in.

Implements IControlView.

Implemented in DVHostedWidgetView.

virtual void AbstractControlView::WindowActivated ()
virtual

Default implementation does nothing

Implements IControlView.

Reimplemented in DVBasePanelView.

virtual void AbstractControlView::WindowChanged ()
virtual

Default implementation Auto attaches/detaches observer, invalidates transform, destroys system control

Implements IControlView.

Reimplemented in DVBasePanelView.

virtual void AbstractControlView::WindowClosed ()
virtual

Default implementation invalidates transform, destroys system control, deletes draw region

Implements IControlView.

Reimplemented in DVBasePanelView.

virtual void AbstractControlView::WindowDeactivated ()
virtual

Default implementation does nothing

Implements IControlView.

Reimplemented in DVBasePanelView.

virtual void AbstractControlView::WindowHidden ()
virtual

Default implementation AutoDetaches observer

Implements IControlView.

Reimplemented in DVBasePanelView.

virtual void AbstractControlView::WindowShown ()
virtual

Default implementation AutoAttaches observer

Implements IControlView.

Reimplemented in DVBasePanelView.