/* @(#)Z 1.4 com/src/layout/idl/Frame.idl, odlayout, od96nt, odnt9712d 97/03/21 16:44:50 (96/07/15 18:32:47) */


#ifndef _FRAME_
#define _FRAME_

#ifndef _PSTOBJ_
#include "PstObj.idl"
#endif

//==============================================================================
// Classes defined in this interface
//==============================================================================

interface  ODFrame;

//==============================================================================
// Classes used by this interface
//==============================================================================

interface  ODFrameFacetIterator;

interface  ODCanvas;
interface  ODFacet;
interface  ODPart;
interface  ODShape;
interface  ODTransform;
interface  ODWindow;



//==============================================================================
// ODFrame
//==============================================================================

interface ODFrame :  ODPersistentObject
{

   ODFrame     AcquireContainingFrame();

   void        SetContainingFrame(in ODFrame frame);

   ODWindow    AcquireWindow();

   void        SetWindow(in ODWindow window);

   ODULong     GetFrameGroup();

   void        SetFrameGroup(in ODULong groupID);

   ODULong     GetSequenceNumber();

   void        ChangeSequenceNumber(in ODULong sequenceNumber);

   ODBoolean   IsRoot();

   ODBoolean   IsSubframe();

   void        SetSubframe(in ODBoolean isSubframe);

   ODBoolean   IsOverlaid();

   ODBoolean   IsFrozen();

   void        SetFrozen(in ODBoolean isFrozen);

   ODBoolean   DoesPropagateEvents();

   void        SetPropagateEvents(in ODBoolean doesPropagateEvents);

   ODBoolean   IsInLimbo();

   void        SetInLimbo(in ODBoolean isInLimbo);

   ODPart      AcquirePart();

   void        ChangePart(in ODPart part);

   ODInfoType  GetPartInfo();

   void        SetPartInfo(in ODInfoType partInfo);

   ODTypeToken GetViewType();

   void        SetViewType(in ODTypeToken viewType);

   void        ChangeViewType(in ODTypeToken viewType);

   ODTypeToken GetPresentation();

   void        SetPresentation(in ODTypeToken presentation);

   void        ChangePresentation(in ODTypeToken presentation);

   void        FacetAdded(in ODFacet facet);

   void        FacetRemoved(in ODFacet facet);

   ODFrameFacetIterator    CreateFacetIterator();

   ODShape     CreateShape();

   ODShape     AcquireFrameShape(in ODCanvas biasCanvas);

   void        ChangeFrameShape(in ODShape shape, in ODCanvas biasCanvas);

   ODShape     RequestFrameShape(in ODShape shape, in ODCanvas biasCanvas);

   ODShape     AcquireUsedShape(in ODCanvas biasCanvas);

   void        ChangeUsedShape(in ODShape shape, in ODCanvas biasCanvas);

   ODTransform CreateTransform();

   ODTransform AcquireInternalTransform(in ODCanvas biasCanvas);

   void        ChangeInternalTransform(in ODTransform transform, in ODCanvas biasCanvas);

   void        GetContentExtent(out ODPoint contentExtent);

   void        ChangeContentExtent(in ODPoint contentExtent);

   ODBoolean   IsDroppable();

   void        SetDroppable(in ODBoolean isDroppable);

   ODBoolean   IsDragging();

   void        SetDragging(in ODBoolean isDragging);

   void        ContentUpdated(in ODUpdateID change);

   void        ChangeLinkStatus(in ODLinkStatus status);

   ODLinkStatus GetLinkStatus();

   ODBoolean   EditInLink();

   void        Invalidate(in ODShape invalidShape, in ODCanvas biasCanvas);

   void        Validate(in ODShape validShape, in ODCanvas biasCanvas);

   void        InvalidateActiveBorder();

   void        DrawActiveBorder();

   void        Close();

   void        Remove();


#ifdef __SOMIDL__
   implementation
   {
       majorversion = 1; minorversion = 0;

       functionprefix = ODFrame;

       override:
           somUninit,
           Purge,
           Release,
           ReleaseAll,
           Externalize,
           GetID,
           CloneInto;

       releaseorder:
           AcquireContainingFrame,
           SetContainingFrame,
           AcquireWindow,
           SetWindow,
           GetFrameGroup,
           SetFrameGroup,
           GetSequenceNumber,
           ChangeSequenceNumber,
           IsRoot,
           IsSubframe,
           SetSubframe,
           IsOverlaid,
           IsFrozen,
           SetFrozen,
           DoesPropagateEvents,
           SetPropagateEvents,
           IsInLimbo,
           SetInLimbo,
           AcquirePart,
           ChangePart,
           GetPartInfo,
           SetPartInfo,
           GetViewType,
           SetViewType,
           ChangeViewType,
           GetPresentation,
           SetPresentation,
           ChangePresentation,
           FacetAdded,
           FacetRemoved,
           CreateFacetIterator,
           CreateShape,
           AcquireFrameShape,
           ChangeFrameShape,
           RequestFrameShape,
           AcquireUsedShape,
           ChangeUsedShape,
           CreateTransform,
           AcquireInternalTransform,
           ChangeInternalTransform,
           GetContentExtent,
           ChangeContentExtent,
           IsDroppable,
           SetDroppable,
           IsDragging,
           SetDragging,
           ContentUpdated,
           ChangeLinkStatus,
           GetLinkStatus,
           EditInLink,
           Invalidate,
           Validate,
           InvalidateActiveBorder,
           DrawActiveBorder,
           Close,
           Remove,
           reserved1,
           reserved2,
           reserved3,
           reserved4,
           reserved5,
           reserved6,
           reserved7;

   };
#endif
};

#endif 
