#ifdef __PRIVATE__
//#
//#	File:		DrPlPrt.idl
//#
//#	Contains:	Class definition for DrawPalette Part
//#
//#	Written by:	Jeff Hanson
//#
//#	Copyright:	c 1994-95 by Novell, all rights reserved.
//#
//#
#else
//#	Copyright:	c 1994-1995 by Novell, Inc., all rights reserved.
#endif

#ifndef _DRPLPRT_
#define _DRPLPRT_

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

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

interface DrawPalette;

//==============================================================================
// Classes used in this interface
//==============================================================================

interface OrderedCollection;
interface OrderedCollectionIterator;
interface ODEmbeddedFramesIterator;
interface ODFacet;
interface ODFrame;
interface ODMenuBar;
interface ODFocusSet;
interface ODShape;
interface ODStorageUnit;
interface ODSession;
interface ODWindow;
interface DrawPaletteExt;
interface ODPartWrapper;

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

#ifdef __PRIVATE__
typedef somToken OrderedCollection;
typedef somToken ODToolSpacePos;
#endif

//==============================================================================
// DrawPalette
//==============================================================================

module ModDrawPalette
{

interface DrawPalette : ODPart
{
#ifdef __PRIVATE__
	ODBoolean HandleMouseDown(in ODEventData event, in ODFrame frame, in ODFacet facet);
	ODBoolean HandleMenuEvent(in ODFrame frame, in ODEventData event);
	void DoIdle(in ODEventData event, in ODFrame frame, in ODFacet facet);
	ODWindow CreateAWindow(in ODFrame sourceFrame);
	void ActivateFrame(in ODFrame frame);
	void DeActivateFrame(in ODFrame frame);
	void ActivatingWindow(in ODFrame frame);
	void DeActivatingWindow(in ODFrame frame);
	OrderedCollection* GetDisplayFrames ();
	void AddPlatformMenu(in ODMenuID aMenuID);
	void RemovePlatformMenu(in ODMenuID aMenuID);
	void Redraw(in ODBoolean EraseFlag);
	void CommonInitDrawPalette();
	void InstallMenus(in ODFrame  frame );
	void RemoveMenus(in ODFrame  frame );
	void MinimizeFrameShape(in ODFacet  facet );
	ODShape CalcActualDrawPaletteShape(in ODPlatformWindow window, in ODFacet facet);
#endif

#ifdef __SOMIDL__
	implementation
	{
		majorversion = 1;
		minorversion = 0;
		
	releaseorder:
	#ifdef __PRIVATE__
		HandleMouseDown,
		HandleMenuEvent,
		DoIdle,
		CreateAWindow,
		ActivateFrame,
		DeActivateFrame,
		ActivatingWindow,
		DeActivatingWindow,
		GetDisplayFrames,
		AddPlatformMenu,
		RemovePlatformMenu,
		Redraw,
		CommonInitDrawPalette,
		InstallMenus,
		RemoveMenus,
		MinimizeFrameShape,
		CalcActualDrawPaletteShape;
	#else
		reserved1,
		reserved2,
		reserved3,
		reserved4,
		reserved5,
		reserved6,
		reserved7,
		reserved8,
		reserved9,
		reserved10,
		reserved11,
		reserved12,
		reserved13,
		reserved14,
		reserved15,
		reserved16,
		reserved17;
	#endif

	override:
		somInit,
		somUninit,
		Release,
		RevealFrame,
		EmbeddedFrameSpec,
		CreateEmbeddedFramesIterator,
		AttachSourceFrame,
		ViewTypeChanged,
		PresentationChanged,
		SequenceChanged,
		RequestEmbeddedFrame,
		RemoveEmbeddedFrame,
		RequestFrameShape,
		UsedShapeChanged,
		AdjustBorderShape,
		FacetRemoved,
		CanvasChanged,
		CanvasUpdated,
		HighlightChanged,
		GetPrintResolution,
		RevealLink,
		EmbeddedFrameChanged,
		LinkStatusChanged,
		CloneInto,
		ExternalizeKinds,
		ChangeKind,
		HandleEventInEmbedded,
		AdjustMenus,
		UndoAction,
		RedoAction,
		DisposeActionState,
		WriteActionState,
		ReadActionState,
		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,
		ReleaseExtension,
		ContainingPartPropertiesChanged,
		GetContainingPartProperties,
		InitPart,
		InitPartFromStorage;
	
	// instance variables
    #ifdef __PRIVATE__
		passthru C_xh =
			""
			"#define	kBUTTON_ONE		1"
			"";
		OrderedCollection*	fDisplayFrames;
		ODID				fWindowID;			
		ODMenuBar 			fMenuBar;
		ODFocusSet 			fFocusSet;
		ODTypeToken			fModalFocus;
		ODStorageUnit		fTestDrawPaletteSU;
		ODSession 			fSession;
		DrawPaletteExt		fDrawPaletteExt;
		ODULong				fActiveTool;
		ODPartWrapper		fPartWrapper;
	#endif
	};
#endif
};

};  //# Module ModDrawPalette

#endif // _DRPLPRT_
