/* @(#)Z 1.2 com/src/ui/idl/FocusMod.idl, odui, od96nt, odnt9712d 97/03/21 16:49:40 (96/07/15 18:28:37) */


#ifndef _FOCUSMOD_
#define _FOCUSMOD_

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

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

interface  ODFocusModule;

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

interface  ODSession;
interface  ODFrame;
interface  ODFocusOwnerIterator;

//=====================================================================================
// Class ODFocusModule
//=====================================================================================

interface ODFocusModule : ODObject
{
	void InitFocusModule(in ODSession session);

	ODBoolean IsFocusExclusive(in ODTypeToken focus);

	void SetFocusOwnership(in ODTypeToken focus, in ODFrame frame);

	void UnsetFocusOwnership(in ODTypeToken focus, in ODFrame frame);

	void TransferFocusOwnership(in ODTypeToken focus, 
								in ODFrame transferringFrame,
					  			in ODFrame newOwner);

	ODFrame AcquireFocusOwner(in ODTypeToken focus);

	ODFocusOwnerIterator CreateOwnerIterator(in ODTypeToken focus);

	ODBoolean BeginRelinquishFocus(in ODTypeToken focus,
								   in ODFrame requestingFrame);

	void CommitRelinquishFocus(in ODTypeToken focus,
							   in ODFrame requestingFrame);

	void AbortRelinquishFocus(in ODTypeToken focus,
							  in ODFrame requestingFrame);

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

  		functionprefix = ODFocusModule;

		releaseorder:
			InitFocusModule,
			IsFocusExclusive,
			SetFocusOwnership,
			UnsetFocusOwnership,
			TransferFocusOwnership,
			AcquireFocusOwner,
			CreateOwnerIterator,
			BeginRelinquishFocus,
			CommitRelinquishFocus,
			AbortRelinquishFocus;

  	};
#endif 
};

#endif 
