/****************************************************************************************

		I2DExColorPicker.h

		Copyright: (c) 2001 Eovia Corp. All rights reserved.

		I2DExColorPicker definition

		Revision History

		when		who			what & why
		==========	==========	======================================================
		08/03/99	Mathieu		GetColorSpace() to avoid unnecessary conversions
		05/20/99	Nba			Added Sh interface, and GUID, to be able to query the component or the external object
		01/18/98	Mathieu		Removed old elements (FGColor, BGColor) from the interface
								since they're now managed in the Color Picker Window
		12/15/98	Mathieu		ColorCMYK as interface (for CMYK layer)
		11/19/98	Mathieu		Fixed class ID
		11/17/98	Mathieu		Moved implementation from TColorPicker
	
*****************************************************************************************/

#ifndef __I2DExColorPicker__
#define __I2DExColorPicker__

#if CP_PRAGMA_ONCE
#pragma once
#endif

#include "COMTypes.h"
#include "ColorRGB214.h"
#include "ImageIIDs.h"
#include "ColorDefs.h"


//****************************** Family Id ***********************************

const FourCharT kColorPickerFamilyID = kRID_ColorPickerFamilyID;

//****************************************************************************


//************************** Globally Unique Ids ******************************

MCDEFINE_GUID_H(IID_I2DExColorPicker);
MCDEFINE_GUID_H(IID_I2DShColorPicker);

//*****************************************************************************


/*****************************************************************************\
*                                                                             *
*  I2DExColorPicker                                                           *
*                                                                             *
\*****************************************************************************/

class TColorCMYK;

enum EColorItem
{
	kFGColor,
	kBGColor,
	kBothColors,
	kUnknown
};

struct I2DExColorPicker : public IMCUnknown
{   
	public:
	
		virtual MCCOMErr			   MCCOMAPI GetColorRGB		(TColorRGB214&) const = 0;
		virtual MCCOMErr			   MCCOMAPI SetColorRGB		(const TColorRGB214&) = 0;

		virtual MCCOMErr			   MCCOMAPI GetColorCMYK	(TColorCMYK&) const = 0;
		virtual MCCOMErr			   MCCOMAPI SetColorCMYK	(const TColorCMYK&) = 0;

		virtual EICColorSpaceSignature MCCOMAPI GetColorSpace	(void) const = 0;
};

struct I2DShColorPicker : public I2DExColorPicker
{
};

#endif  // __I2DExColorPicker__