#ifdef __PRIVATE__
//#
//#	File:		FocusSet.idl
//#
//#	Contains:	Class definition for ODFocusSet
//#
//#	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
//#		 <4>	  6/7/94	RR		Privatise change log
//#
//#	To Do:
//#
#else
//#	Copyright:	c 1993-1994 by Apple Computer, Inc., all rights reserved.
#endif

#ifndef _FOCUSSET_
#define _FOCUSSET_

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

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

interface  ODFocusSet;

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

interface  ODFocusSetIterator;

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

typedef somToken LinkedList;
#endif

//=====================================================================================
// ODFocusSet
//=====================================================================================

interface ODFocusSet : ODObject
{
	void InitFocusSet();

	void Add(in ODTypeToken focus);

	void Remove(in ODTypeToken focus);

	ODBoolean Contains(in ODTypeToken focus);

	ODFocusSetIterator  CreateIterator();

#ifdef __PRIVATE__

  LinkedList*   GetImplementation();

#endif

#ifdef __SOMIDL__
	implementation
	{
  		functionprefix = ODFocusSet;

	override:
		somInit,
		somUninit;
		
    releaseorder:
        InitFocusSet,
        Add,
        Remove,
        Contains,
        CreateIterator,
        GetImplementation;
		
    #ifdef __PRIVATE__
	passthru C_xh = "
	""
	"class LinkedList;"
	"";
      LinkedList*  fImplementation;
    #endif

  };
#endif
};

#endif // _FOCUSSET_
