// Borland C++ Builder
// Copyright (c) 1995, 1999 by Borland International
// All rights reserved

// (DO NOT EDIT: machine generated header) 'ChartLink.pas' rev: 5.00

#ifndef ChartLinkHPP
#define ChartLinkHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <Grids.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit
#include <Graphics.hpp>	// Pascal unit
#include <AdvGrid.hpp>	// Pascal unit
#include <TeEngine.hpp>	// Pascal unit
#include <Series.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.hpp>	// Pascal unit

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

namespace Chartlink
{
//-- type declarations -------------------------------------------------------
#pragma option push -b-
enum TGridDataType { dtCellRange, dtFullRow, dtFullColumn, dtNormalRow, dtNormalColumn, dtNone };
#pragma option pop

class DELPHICLASS TGridData;
class PASCALIMPLEMENTATION TGridData : public Classes::TPersistent 
{
	typedef Classes::TPersistent inherited;
	
private:
	int FLeft;
	int FTop;
	int FRight;
	int FBottom;
	TGridDataType FDataType;
	int FColumn;
	int FRow;
	
__published:
	__property int Left = {read=FLeft, write=FLeft, nodefault};
	__property int Top = {read=FTop, write=FTop, nodefault};
	__property int Right = {read=FRight, write=FRight, nodefault};
	__property int Bottom = {read=FBottom, write=FBottom, nodefault};
	__property int Column = {read=FColumn, write=FColumn, nodefault};
	__property int Row = {read=FRow, write=FRow, nodefault};
	__property TGridDataType DataType = {read=FDataType, write=FDataType, nodefault};
public:
	#pragma option push -w-inl
	/* TPersistent.Destroy */ inline __fastcall virtual ~TGridData(void) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TObject.Create */ inline __fastcall TGridData(void) : Classes::TPersistent() { }
	#pragma option pop
	
};


class DELPHICLASS TChartLink;
class PASCALIMPLEMENTATION TChartLink : public Advgrid::TGridChangeNotifier 
{
	typedef Advgrid::TGridChangeNotifier inherited;
	
private:
	Teengine::TChartSeries* FSeries;
	Advgrid::TAdvStringGrid* FGrid;
	TGridData* FGridValues;
	TGridData* FGridLegends;
	bool FActive;
	void __fastcall SetGrid(const Advgrid::TAdvStringGrid* Value);
	void __fastcall SetGridLegends(const TGridData* Value);
	void __fastcall SetGridValues(const TGridData* Value);
	void __fastcall SetActive(const bool Value);
	
protected:
	virtual void __fastcall CellsChanged(const Windows::TRect &R);
	virtual void __fastcall Notification(Classes::TComponent* AComponent, Classes::TOperation AOperation
		);
	
public:
	__fastcall virtual TChartLink(Classes::TComponent* AOwner);
	__fastcall virtual ~TChartLink(void);
	void __fastcall Synchronize(void);
	
__published:
	__property bool Active = {read=FActive, write=SetActive, nodefault};
	__property Advgrid::TAdvStringGrid* Grid = {read=FGrid, write=SetGrid};
	__property TGridData* GridValues = {read=FGridValues, write=SetGridValues};
	__property TGridData* GridLegends = {read=FGridLegends, write=SetGridLegends};
	__property Teengine::TChartSeries* Series = {read=FSeries, write=FSeries};
};


//-- var, const, procedure ---------------------------------------------------

}	/* namespace Chartlink */
#if !defined(NO_IMPLICIT_NAMESPACE_USE)
using namespace Chartlink;
#endif
#pragma option pop	// -w-
#pragma option pop	// -Vx

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