#ifdef __PRIVATE__
//#
//#	File:		ODVideo.idl
//#
//#	Contains:	Class definition for odvideo Part
//#
//#	Written by:	Brad Nicholes and Don Griffes
//#	SOMized by:	Jeff Hanson
//#
//#	Copyright:	c 1995 by Novell, all rights reserved.
//#
//#
#else
//#	Copyright:	c 1995 by Novell, Inc., all rights reserved.
#endif


#ifndef _ODVIDEO_
#define _ODVIDEO_

#ifndef _PART_
#include "Part.idl"
#endif

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

interface VideoPart;

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

interface ODFacet;
interface ODFrame;
interface ODMenuBar;
interface ODFocusSet;
interface ODShape;
interface ODStorageUnit;
interface ODSession;
interface ODWindow;
interface ODSemanticInterface;
interface DButton;
interface ODPartWrapper;

//=====================================================================================
// Implementation Types
//=====================================================================================

#ifdef __PRIVATE__
typedef somToken OrderedCollection;
#endif


module ModVideoPart
{

//==============================================================================
// ODVideoPart
//==============================================================================

interface VideoPart : ODPart
{
#ifdef __PRIVATE__
	void CommonInitVideo();
	void OpenVideo();
	void CloseVideo();
	void PlayVideo();
	void StopVideo();
	void RewindVideo();
	void PauseVideo();
	void AdjustPalette();
	void UpdateVideoWindow(in ODPlatformCanvas aPltFrmCanvas);
	void UpdateVideoWindowSize();
	void InstallMenus(in ODFrame frame);
	void RemoveMenus(in ODFrame frame);
	void MinimizeFrameShape(in ODFrame frame);
	ODShape CalcActualButtonShape(in ODPlatformWindow window);
	ODPlatformWindow CreateShadowWindow(in ODPlatformWindow hParent);
	void EmbedControl();
	void MoveSizeShadowWindow();
	ODBoolean HandleMouseDown(in ODEventData event, in ODFrame frame, in ODFacet facet);
	ODBoolean HandleMenuEvent(in ODFrame frame, in ODEventData	event);
	ODSemanticInterface GetSemanticInterface();
	ODWindow VdoCreateWindow(in ODFrame sourceFrame);
	void ActivateFrame(in ODFrame frame);
	void DeActivateFrame(in ODFrame frame);
	void ActivatingWindow(in ODFrame frame);
	void DeActivatingWindow(in ODFrame frame);
   	void MMNotifyReceived();
	OrderedCollection* GetDisplayFrames();
#endif

#ifdef __SOMIDL__
	implementation
	{
		majorversion = 1;
		minorversion = 0;
		
	releaseorder:
	#ifdef __PRIVATE__
		CommonInitVideo,
		OpenVideo,
		CloseVideo,
		PlayVideo,
		StopVideo,
		RewindVideo,
		PauseVideo,
		AdjustPalette,
		UpdateVideoWindow,
		UpdateVideoWindowSize,
		InstallMenus,
		RemoveMenus,
		MinimizeFrameShape,
		CalcActualButtonShape,
		CreateShadowWindow,
		EmbedControl,
		MoveSizeShadowWindow,
		HandleMouseDown,
		HandleMenuEvent,
		GetSemanticInterface,
		VdoCreateWindow,
		ActivateFrame,
		DeActivateFrame,
		ActivatingWindow,
		DeActivatingWindow,
	   	MMNotifyReceived,
		GetDisplayFrames;
	#else
		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;
	#endif

	override:
		somInit,
		somUninit,
		FacetRemoved,
		AdjustMenus,
		FulfillPromise,
		DropCompleted,
		DragEnter,
		DragWithin,
		DragLeave,
		Drop,
		DisplayFrameRemoved,
		DisplayFrameAdded,
		DisplayFrameClosed,
		FrameShapeChanged,
		GeometryChanged,
 		FacetAdded,
		WritePartInfo,
		ReadPartInfo,
		Open,
		Draw,
		CreateLink,
		LinkUpdated,
		Purge,
		Externalize,
		BeginRelinquishFocus,
		CommitRelinquishFocus,
		AbortRelinquishFocus,
		FocusAcquired,
		FocusLost,
		HandleEvent,
		MouseEnter,
		MouseWithin,
		MouseLeave,
		GetExtension,
		HasExtension,
		InitPart,
		InitPartFromStorage;
	
	// instance variables
    #ifdef __PRIVATE__
		ODPlatformMenu		fVideoMenu;
		ODPlatformMenu		fPaletteMenu;
		ODSemanticInterface	fSemtIntf;
		int					ObjectNumber;
		DButton				Buttons;
		int					State;
		int					Palette;
		int					ToolState;
		int					RepeatFlag;
		char				FileName[180];
		OrderedCollection*	fDisplayFrames;
		ODID				fWindowID;			// ID of View As Window window
		ODMenuBar 			fMenuBar;
		ODFocusSet 			fFocusSet;
		ODTypeToken			fSelectionFocus;
		ODTypeToken			fMenuFocus;
		ODTypeToken			fKeyFocus;
		ODTypeToken			fModalFocus;
		ODStorageUnit		fVideoSU;
		ODID				fSettingsWindow;
		ODBoolean			fSettingsWindowWasShown;
		ODPlatformWindow	fShadowWindow;
		ODSession 			fSession;
		ODPartWrapper		fPartWrapper;
	#endif
	};
#endif
};

};  //# Module ModVideoPart

#endif // _ODVIDEO_
