// Borland C++ Builder
// Copyright (c) 1995, 2005 by Borland Software Corporation
// All rights reserved

// (DO NOT EDIT: machine generated header) 'Paletteapi.pas' rev: 10.00

#ifndef PaletteapiHPP
#define PaletteapiHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member functions
#pragma pack(push,8)
#include <System.hpp>	// Pascal unit
#include <Sysinit.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <Toolsapi.hpp>	// Pascal unit
#include <Graphics.hpp>	// Pascal unit
#include <Activex.hpp>	// Pascal unit
#include <Menus.hpp>	// Pascal unit
#include <Graphutil.hpp>	// Pascal unit

//-- user supplied -----------------------------------------------------------

namespace Paletteapi
{
//-- type declarations -------------------------------------------------------
#pragma option push -b-
enum TNTAPaintIconSize { pi16x16, pi24x24, pi32x32 };
#pragma option pop

__interface INTAPalettePaintIcon;
typedef System::DelphiInterface<INTAPalettePaintIcon> _di_INTAPalettePaintIcon;
__interface  INTERFACE_UUID("{D9BAD01A-99D9-4661-A470-90C7BC743DC9}") INTAPalettePaintIcon  : public IInterface 
{
	
public:
	virtual void __fastcall Paint(const Graphics::TCanvas* Canvas, const int X, const int Y, const TNTAPaintIconSize IconSize) = 0 ;
};

#pragma option push -b-
enum TPalDragState { pdsDragEnter, pdsDragLeave, pdsDragMove };
#pragma option pop

__interface IOTAPaletteDragAcceptor;
typedef System::DelphiInterface<IOTAPaletteDragAcceptor> _di_IOTAPaletteDragAcceptor;
__interface  INTERFACE_UUID("{44E0BDCA-EEDD-45A5-8170-A764D9E26056}") IOTAPaletteDragAcceptor  : public IInterface 
{
	
public:
	virtual unsigned __fastcall GetHandle(void) = 0 ;
	__property unsigned Handle = {read=GetHandle};
};

__interface IOTADesignerDragAcceptor;
typedef System::DelphiInterface<IOTADesignerDragAcceptor> _di_IOTADesignerDragAcceptor;
__interface  INTERFACE_UUID("{0047B6A0-D238-4627-8EBD-9F66A57CF2F5}") IOTADesignerDragAcceptor  : public IOTAPaletteDragAcceptor 
{
	
};

__interface IOTACodeEditorDragAcceptor;
typedef System::DelphiInterface<IOTACodeEditorDragAcceptor> _di_IOTACodeEditorDragAcceptor;
__interface  INTERFACE_UUID("{7A8E3301-46A6-4226-9B8F-0BCEC7E9E801}") IOTACodeEditorDragAcceptor  : public IOTAPaletteDragAcceptor 
{
	
public:
	virtual System::TObject* __fastcall GetEditorControl(void) = 0 ;
	__property System::TObject* EditorControl = {read=GetEditorControl};
};

__interface IOTAPaletteDragDropOp;
typedef System::DelphiInterface<IOTAPaletteDragDropOp> _di_IOTAPaletteDragDropOp;
__interface  INTERFACE_UUID("{A6364D92-37AB-4C39-ACA3-4CB1F8BD0C94}") IOTAPaletteDragDropOp  : public IInterface 
{
	
public:
	virtual void __fastcall DragOver(_di_IOTAPaletteDragAcceptor Target, int X, int Y, TPalDragState State, bool &Accept) = 0 ;
	virtual void __fastcall DragDrop(_di_IOTAPaletteDragAcceptor Target, int X, int Y) = 0 ;
};

__interface IOTAPaletteOleDragDropOp;
typedef System::DelphiInterface<IOTAPaletteOleDragDropOp> _di_IOTAPaletteOleDragDropOp;
__interface  INTERFACE_UUID("{5B524357-BB75-4C8A-B88F-954075A60FFD}") IOTAPaletteOleDragDropOp  : public IInterface 
{
	
public:
	virtual tagFORMATETC __fastcall GetFormatRec(void) = 0 ;
	virtual bool __fastcall QueryGetData(const tagFORMATETC &SourceFormat) = 0 ;
	virtual bool __fastcall GetData(const tagFORMATETC &SourceFormat, /* out */ tagSTGMEDIUM &Medium) = 0 ;
};

__interface IOTAPaletteCursor;
typedef System::DelphiInterface<IOTAPaletteCursor> _di_IOTAPaletteCursor;
__interface  INTERFACE_UUID("{26DDEB04-1FFC-45B0-98E7-02AD8706AF70}") IOTAPaletteCursor  : public IInterface 
{
	
public:
	virtual bool __fastcall SetCursor(void) = 0 ;
};

__interface IOTABasePaletteItem;
typedef System::DelphiInterface<IOTABasePaletteItem> _di_IOTABasePaletteItem;
__interface  INTERFACE_UUID("{9CAEBEBF-6BFB-4E9A-B5E7-C3146DEFA6E8}") IOTABasePaletteItem  : public IInterface 
{
	
public:
	virtual bool __fastcall GetCanDelete(void) = 0 ;
	virtual AnsiString __fastcall GetHelpName(void) = 0 ;
	virtual AnsiString __fastcall GetHintText(void) = 0 ;
	virtual AnsiString __fastcall GetIDString(void) = 0 ;
	virtual AnsiString __fastcall GetName(void) = 0 ;
	virtual bool __fastcall GetVisible(void) = 0 ;
	virtual void __fastcall SetHelpName(const AnsiString Value) = 0 ;
	virtual void __fastcall SetName(const AnsiString Value) = 0 ;
	virtual void __fastcall SetVisible(const bool Value) = 0 ;
	virtual void __fastcall SetHintText(const AnsiString Value) = 0 ;
	__property bool CanDelete = {read=GetCanDelete};
	__property AnsiString HelpName = {read=GetHelpName, write=SetHelpName};
	__property AnsiString HintText = {read=GetHintText, write=SetHintText};
	__property AnsiString IDString = {read=GetIDString};
	__property AnsiString Name = {read=GetName, write=SetName};
	__property bool Visible = {read=GetVisible, write=SetVisible};
	virtual void __fastcall Execute(void) = 0 ;
	virtual void __fastcall Delete(void) = 0 ;
};

__interface IOTAGetPaletteItem;
typedef System::DelphiInterface<IOTAGetPaletteItem> _di_IOTAGetPaletteItem;
__interface  INTERFACE_UUID("{ED77C99B-5994-4C8B-92BB-CB72B3BEEBD9}") IOTAGetPaletteItem  : public IInterface 
{
	
public:
	virtual _di_IOTABasePaletteItem __fastcall GetPaletteItem(void) = 0 ;
};

__interface IOTAExecutePaletteItem;
typedef System::DelphiInterface<IOTAExecutePaletteItem> _di_IOTAExecutePaletteItem;
__interface  INTERFACE_UUID("{70FAFCB8-EE3D-487F-B546-00E002AA7027}") IOTAExecutePaletteItem  : public IInterface 
{
	
public:
	virtual void __fastcall ExecutePaletteItem(_di_IOTABasePaletteItem Item) = 0 ;
};

__interface IOTAComponentPaletteItem;
typedef System::DelphiInterface<IOTAComponentPaletteItem> _di_IOTAComponentPaletteItem;
__interface  INTERFACE_UUID("{5A1A13FD-48B6-4A76-BB3F-374102172767}") IOTAComponentPaletteItem  : public IOTABasePaletteItem 
{
	
public:
	virtual void __fastcall SetPackageName(const AnsiString Value) = 0 ;
	virtual void __fastcall SetClassName(const AnsiString Value) = 0 ;
	virtual void __fastcall SetUnitName(const AnsiString Value) = 0 ;
	virtual AnsiString __fastcall GetClassName(void) = 0 ;
	virtual AnsiString __fastcall GetPackageName(void) = 0 ;
	virtual AnsiString __fastcall GetUnitName(void) = 0 ;
	__property AnsiString ClassName = {read=GetClassName, write=SetClassName};
	__property AnsiString PackageName = {read=GetPackageName, write=SetPackageName};
	__property AnsiString UnitName = {read=GetUnitName, write=SetUnitName};
};

__interface IOTAPaletteGroup;
typedef System::DelphiInterface<IOTAPaletteGroup> _di_IOTAPaletteGroup;
__interface  INTERFACE_UUID("{C7593CE8-1A0B-409F-B21F-84D983593F77}") IOTAPaletteGroup  : public IOTABasePaletteItem 
{
	
public:
	_di_IOTABasePaletteItem operator[](int Index) { return Items[Index]; }
	
public:
	virtual int __fastcall GetCount(void) = 0 ;
	virtual _di_IOTABasePaletteItem __fastcall GetItem(const int Index) = 0 ;
	__property int Count = {read=GetCount};
	__property _di_IOTABasePaletteItem Items[int Index] = {read=GetItem/*, default*/};
	virtual _di_IOTAPaletteGroup __fastcall AddGroup(const AnsiString Name, const AnsiString IDString) = 0 ;
	virtual int __fastcall AddItem(const _di_IOTABasePaletteItem Item) = 0 ;
	virtual void __fastcall Clear(void) = 0 ;
	virtual _di_IOTABasePaletteItem __fastcall FindItem(const AnsiString IDString, bool Recurse) = 0 ;
	virtual _di_IOTABasePaletteItem __fastcall FindItemByName(const AnsiString Name, bool Recurse) = 0 ;
	virtual _di_IOTAPaletteGroup __fastcall FindItemGroup(const AnsiString IDString) = 0 ;
	virtual _di_IOTAPaletteGroup __fastcall FindItemGroupByName(const AnsiString Name) = 0 ;
	virtual void __fastcall InsertItem(const int Index, const _di_IOTABasePaletteItem Item) = 0 ;
	virtual int __fastcall IndexOf(const _di_IOTABasePaletteItem Item) = 0 ;
	virtual void __fastcall Move(const int CurIndex, const int NewIndex) = 0 ;
	virtual bool __fastcall RemoveItem(const AnsiString IDString, bool Recurse) = 0 ;
};

__interface IOTAPaletteNotifier;
typedef System::DelphiInterface<IOTAPaletteNotifier> _di_IOTAPaletteNotifier;
__interface  INTERFACE_UUID("{6A3D2F2D-19BD-487E-A715-F1E7FECF8791}") IOTAPaletteNotifier  : public IOTANotifier 
{
	
public:
	virtual void __fastcall ItemAdded(const _di_IOTAPaletteGroup Group, const _di_IOTABasePaletteItem Item) = 0 ;
	virtual void __fastcall ItemRemoved(const _di_IOTAPaletteGroup Group, const _di_IOTABasePaletteItem Item) = 0 ;
	virtual void __fastcall SelectedToolChanged(const _di_IOTABasePaletteItem Tool) = 0 ;
	virtual void __fastcall BeginUpdate(void) = 0 ;
	virtual void __fastcall EndUpdate(void) = 0 ;
};

struct TOTAPaletteColorItem
{
	
public:
	Graphics::TColor StartColor;
	Graphics::TColor EndColor;
	Graphics::TColor TextColor;
} ;

struct TOTAPaletteButtonColors
{
	
public:
	Graphics::TColor RegularColor;
	Graphics::TColor SelectedColor;
	Graphics::TColor HotColor;
} ;

struct TOTAPaletteOptions
{
	
public:
	Graphics::TColor BackgroundColor;
	Graphics::TColor BackgroundGradientColor;
	bool BoldCaptions;
	bool CaptionOnlyBorder;
	bool UsePlusMinus;
	Graphutil::TGradientDirection CategoryGradientDirection;
	Graphutil::TGradientDirection BackgroundGradientDirection;
} ;

__interface IOTAPaletteColorScheme;
typedef System::DelphiInterface<IOTAPaletteColorScheme> _di_IOTAPaletteColorScheme;
__interface  INTERFACE_UUID("{75D3424A-6518-4465-B940-E004D7FFBB0C}") IOTAPaletteColorScheme  : public IInterface 
{
	
public:
	TOTAPaletteColorItem operator[](int Index) { return Colors[Index]; }
	
public:
	virtual TOTAPaletteButtonColors __fastcall GetButtonColors(void) = 0 ;
	virtual TOTAPaletteColorItem __fastcall GetColor(const int Index) = 0 ;
	virtual int __fastcall GetCount(void) = 0 ;
	virtual AnsiString __fastcall GetIDString(void) = 0 ;
	virtual AnsiString __fastcall GetName(void) = 0 ;
	virtual TOTAPaletteOptions __fastcall GetOptions(void) = 0 ;
	__property TOTAPaletteButtonColors ButtonColors = {read=GetButtonColors};
	__property TOTAPaletteOptions Options = {read=GetOptions};
	__property TOTAPaletteColorItem Colors[int Index] = {read=GetColor/*, default*/};
	__property int Count = {read=GetCount};
	__property AnsiString IDString = {read=GetIDString};
	__property AnsiString Name = {read=GetName};
};

__interface IOTAPaletteServices;
typedef System::DelphiInterface<IOTAPaletteServices> _di_IOTAPaletteServices;
__interface  INTERFACE_UUID("{6963F71C-0A3F-4598-B6F6-9574CE0E6847}") IOTAPaletteServices  : public IInterface 
{
	
public:
	virtual void __fastcall SetSelectedTool(const _di_IOTABasePaletteItem Value) = 0 ;
	virtual _di_IOTAPaletteGroup __fastcall GetBaseGroup(void) = 0 ;
	virtual _di_IOTABasePaletteItem __fastcall GetSelectedTool(void) = 0 ;
	virtual int __fastcall AddNotifier(const _di_IOTAPaletteNotifier Notifier) = 0 ;
	__property _di_IOTAPaletteGroup BaseGroup = {read=GetBaseGroup};
	virtual void __fastcall BeginUpdate(void) = 0 ;
	virtual void __fastcall EndUpdate(void) = 0 ;
	virtual void __fastcall ItemAdded(const _di_IOTAPaletteGroup Group, const _di_IOTABasePaletteItem Item) = 0 ;
	virtual void __fastcall ItemRemoved(const _di_IOTAPaletteGroup Group, const _di_IOTABasePaletteItem Item) = 0 ;
	virtual void __fastcall Modified(void) = 0 ;
	virtual int __fastcall RegisterDragAcceptor(const _di_IOTAPaletteDragAcceptor Acceptor) = 0 ;
	virtual void __fastcall UnRegisterDragAcceptor(const int Index) = 0 ;
	virtual Classes::_di_IInterfaceList __fastcall GetDragAcceptors(void) = 0 ;
	virtual int __fastcall RegisterColorScheme(const _di_IOTAPaletteColorScheme ColorScheme) = 0 ;
	virtual void __fastcall UnRegisterColorScheme(const int Index) = 0 ;
	virtual Classes::_di_IInterfaceList __fastcall GetColorSchemes(void) = 0 ;
	virtual void __fastcall RemoveNotifier(const int Index) = 0 ;
	__property _di_IOTABasePaletteItem SelectedTool = {read=GetSelectedTool, write=SetSelectedTool};
	virtual void __fastcall AddPaletteState(const AnsiString State) = 0 ;
	virtual void __fastcall RemovePaletteState(const AnsiString State) = 0 ;
	virtual void __fastcall AddPaletteDesignerState(const AnsiString State) = 0 ;
	virtual bool __fastcall ContainsPaletteState(const AnsiString State) = 0 ;
	virtual AnsiString __fastcall GetPaletteState(void) = 0 ;
};

__interface INTAPaletteContextMenu;
typedef System::DelphiInterface<INTAPaletteContextMenu> _di_INTAPaletteContextMenu;
__interface  INTERFACE_UUID("{B58639BC-4332-45BF-A79E-D4977EE7E024}") INTAPaletteContextMenu  : public IInterface 
{
	
public:
	Menus::TMenuItem* operator[](int Index) { return ContextMenuItems[Index]; }
	
public:
	virtual int __fastcall GetCount(void) = 0 ;
	virtual Menus::TMenuItem* __fastcall GetContextMenuItem(const int Index) = 0 ;
	virtual void __fastcall AddContextMenuItem(const Menus::TMenuItem* MenuItem) = 0 ;
	virtual void __fastcall RemoveContextMenuItem(const Menus::TMenuItem* MenuItem) = 0 ;
	__property Menus::TMenuItem* ContextMenuItems[int Index] = {read=GetContextMenuItem/*, default*/};
	__property int Count = {read=GetCount};
};

//-- var, const, procedure ---------------------------------------------------
#define cPSCodeEditorActive "CodeEditorActive"
#define cPSDesignerActive "DesignerActive"

}	/* namespace Paletteapi */
using namespace Paletteapi;
#pragma pack(pop)
#pragma option pop

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// Paletteapi
