#ifdef __PRIVATE__
//#
//#	File:		WinIter.idl
//#
//#	Contains:	Class definition for ODWindowIterator
//#
//#	Written by:	Richard Rodseth
//#
//#	Copyright:	c 1994 by Apple Computer, Inc., all rights reserved.
//#
//#	Change History (most recent first):
//#
//#		 <2>	 6/16/94	RR		Added function prefix
//#		 <1>	  6/8/94	RR		first checked in
//#		 <1>	  6/8/94	RR		first checked in
//#		 <5>	  6/7/94	RR		Privatise change log
//#		 <1>	  5/9/94	VL		first checked in
//#
//#	To Do:
//#
#else
//#	Copyright:	c 1993-1994 by Apple Computer, Inc., all rights reserved.
#endif

#ifndef _WINITER_
#define _WINITER_

#ifndef _ODOBJECT_
#include "ODObject.idl"
#endif

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

interface  ODWindowIterator;        // An iterator for all windows

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

interface  ODWindowState;
interface  ODWindow;

#ifdef __PRIVATE__
//=====================================================================================
// Implementation Types
//=====================================================================================

typedef somToken LinkedListIterator;
#endif

//=====================================================================================
// Class ODWindowIterator
//=====================================================================================

interface ODWindowIterator : ODObject
{
#ifdef __PRIVATE__

	void InitWindowIterator(in ODWindowState windowState);

#endif

 	ODWindow First();

	ODWindow Next();

	ODWindow Last();

	ODWindow Previous();

	ODBoolean IsNotComplete();

#ifdef __SOMIDL__
	implementation
	{
  		functionprefix = ODWindowIterator;

	override:
		somInit,
    	somUninit;
    releaseorder:
        InitWindowIterator,
        First,
        Next,
        Last,
        Previous,
        IsNotComplete;
		
    #ifdef __PRIVATE__
	passthru C_xih = "
	""
	"class LinkedListIterator;"
	"";
      ODWindowState  fWindowState;
      LinkedListIterator* fIterator;
    #endif

  	};
#endif
};

#endif // _WINITER_
