/* @(#) 1.12 com/src/ui/idl/Window.idl, odui, od96nt, odnt9712d 2/19/97 15:26:54 [3/21/97 16:49:43] */

/********************************************************************/
/*  Licensed Materials - Property of IBM                            */
/*                                                                  */
/*                                                                  */
/* Copyright (C) International Business Machines Corp., 1994.       */
/* Copyright (C) Apple Computer, Inc., 1994                         */
/*                                                                  */
/*  US Government Users Restricted Rights -                         */
/*  Use, duplication, or disclosure restricted                      */
/*  by GSA ADP Schedule Contract with IBM Corp.                     */
/********************************************************************/

#ifndef _WINDOW_
#define _WINDOW_

#ifndef _REFCTOBJ_
#include "RefCtObj.idl"
#endif

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

interface  ODWindow;

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

interface  ODFacet;
interface  ODFrame;



//=====================================================================================
// ODWindow
//=====================================================================================

interface ODWindow :  ODRefCntObject
{

        ODPlatformWindow GetPlatformWindow();

        ODFrame AcquireSourceFrame();

        void   SetSourceFrame(in ODFrame frame);

        ODFrame   GetRootFrame();

        ODFacet  GetFacetUnderPoint(in ODPoint aPoint);

        ODBoolean IsActive();

        void Open();

        void Close();

        void CloseAndRemove();

        void Show();

        void Hide();

        ODBoolean IsShown();

        ODBoolean IsResizable();

        ODBoolean IsRootWindow();

        ODBoolean ShouldSave();

        void SetShouldSave(in ODBoolean shouldSave);

        ODBoolean ShouldShowLinks();

        void SetShouldShowLinks(in ODBoolean shouldShowLinks);

        void AdjustWindowShape();

        ODID  GetID();

        ODBoolean  IsFloating();

        ODFacet  GetRootFacet();

        void Select();

        void Update();

#if defined(_PLATFORM_OS2_) || defined(_PLATFORM_WIN32_) || defined(_PLATFORM_UNIX_)
        void UpdateWindow(inout ODEventData theEvent);
#endif

        ODBoolean ShouldDispose();


#ifdef __SOMIDL__

        implementation
        {
                majorversion = 1; minorversion = 0;

                functionprefix = ODWindow;

                override:
                        somUninit,
                        Release,
                        Purge;

                releaseorder:
                        GetPlatformWindow,
                        AcquireSourceFrame,
                        SetSourceFrame,
                        GetRootFrame,
                        GetFacetUnderPoint,
                        IsActive,
                        Open,
                        Close,
                        CloseAndRemove,
                        Show,
                        Hide,
                        IsShown,
                        IsResizable,
                        IsRootWindow,
                        ShouldSave,
                        SetShouldSave,
                        ShouldShowLinks,
                        SetShouldShowLinks,
                        AdjustWindowShape,
                        GetID,
                        IsFloating,
                        GetRootFacet,

                        Select,
                        Update,
                        ShouldDispose,
                        SetShouldDispose,

      #ifdef _PLATFORM_MACINTOSH_
                        reserved1, reserved2, reserved3, reserved4, reserved5, reserved6,reserved7,
                        reserved8, reserved9, reserved10, reserved11, reserved12,reserved13, reserved14,
                        reserved15, reserved16, reserved17, reserved18,reserved19, reserved20, reserved21,
                        reserved22, reserved23, reserved24, reserved25, reserved26, reserved27, reserved28
      #endif
      #if defined(_PLATFORM_OS2_) || defined(_PLATFORM_WIN32_)
            reserved1, reserved2, reserved3, reserved4, reserved5, reserved6,
            reserved7, reserved8, reserved9, reserved10, reserved11, reserved12,
            reserved13, reserved14, reserved15, reserved16, reserved17, reserved18,
            reserved19, reserved20, reserved21
      #endif
      #ifdef _PLATFORM_UNIX_
            reserved1, reserved2, reserved3, reserved4, reserved5, reserved6,
            reserved7, reserved8, reserved9, reserved10, reserved11, reserved12,
            reserved13, reserved14, reserved15, reserved16, reserved17, reserved18,
            reserved19, reserved20, reserved21, reserved22, reserved23,  reserved24,
            reserved25,  reserved26
      #endif
#if defined(_PLATFORM_OS2_) || defined(_PLATFORM_WIN32_) || defined(_PLATFORM_UNIX_)
           ,UpdateWindow
#endif
           ;


  };
// #endif 
#endif 
};

#endif // _WINDOW_
