// CodeGear C++Builder
// Copyright (c) 1995, 2009 by Embarcadero Technologies, Inc.
// All rights reserved

// (DO NOT EDIT: machine generated header) 'Anychart.pas' rev: 21.00

#ifndef AnychartHPP
#define AnychartHPP

#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 <Windows.hpp>	// Pascal unit
#include <Messages.hpp>	// Pascal unit
#include <Sysutils.hpp>	// Pascal unit
#include <Variants.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <Graphics.hpp>	// Pascal unit
#include <Controls.hpp>	// Pascal unit
#include <Forms.hpp>	// Pascal unit
#include <Dialogs.hpp>	// Pascal unit
#include <Stdctrls.hpp>	// Pascal unit
#include <Objlist.hpp>	// Pascal unit
#include <Teeshape.hpp>	// Pascal unit
#include <Arrowcha.hpp>	// Pascal unit
#include <Ganttch.hpp>	// Pascal unit
#include <Bubblech.hpp>	// Pascal unit
#include <Math.hpp>	// Pascal unit
#include <Series.hpp>	// Pascal unit
#include <Extctrls.hpp>	// Pascal unit
#include <Teeprocs.hpp>	// Pascal unit
#include <Teengine.hpp>	// Pascal unit
#include <Chart.hpp>	// Pascal unit

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

namespace Anychart
{
//-- type declarations -------------------------------------------------------
#pragma option push -b-
enum TSeriesType { stLine, stArea, stPoint, stVertBar, stHorzBar, stPie, stShape, stFastLine, stArrows, stGantt, stBubble };
#pragma option pop

#pragma option push -b-
enum TMarkStyle { msValue, msPercent, msLabel, msLabelPercent, msLabelValue, msLegend, msPercentTotal, msLabelPercentTotal, msXValue };
#pragma option pop

__interface IChartTitleAdapter;
typedef System::DelphiInterface<IChartTitleAdapter> _di_IChartTitleAdapter;
class DELPHICLASS TAnyChartTitle;
__interface  INTERFACE_UUID("{234F43E0-1A64-11DA-89D6-00024413CFA7}") IChartTitleAdapter  : public System::IInterface 
{
	
public:
	virtual void __fastcall ReferenceChartTitle(TAnyChartTitle* ChartTitle) = 0 ;
	virtual void __fastcall ReleaseChartTitle(void) = 0 ;
};

class PASCALIMPLEMENTATION TAnyChartTitle : public System::TObject
{
	typedef System::TObject inherited;
	
private:
	_di_IChartTitleAdapter FChartTitleAdapter;
	Chart::TChartTitle* FTitle;
	Graphics::TFont* FFont;
	Graphics::TColor FDefColor;
	void __fastcall FontChange(System::TObject* Sneder);
	void __fastcall SetChartTitleAdapter(const _di_IChartTitleAdapter Value);
	void __fastcall SetAdjustFrame(const bool Value);
	void __fastcall SetAlignment(const Classes::TAlignment Value);
	void __fastcall SetBrushColor(const Graphics::TColor Value);
	void __fastcall SetBrushStyle(const Graphics::TBrushStyle Value);
	void __fastcall SetFont(const Graphics::TFont* Value);
	void __fastcall SetText(const System::UnicodeString Value);
	void __fastcall SetVisible(const bool Value);
	bool __fastcall GetAdjustFrame(void);
	Classes::TAlignment __fastcall GetAlignment(void);
	Graphics::TColor __fastcall GetBrushColor(void);
	Graphics::TBrushStyle __fastcall GetBrushStyle(void);
	System::UnicodeString __fastcall GetText(void);
	bool __fastcall GetVisible(void);
	
public:
	__fastcall TAnyChartTitle(void);
	__fastcall virtual ~TAnyChartTitle(void);
	__property bool AdjustFrame = {read=GetAdjustFrame, write=SetAdjustFrame, nodefault};
	__property Classes::TAlignment Alignment = {read=GetAlignment, write=SetAlignment, nodefault};
	__property Graphics::TColor BrushColor = {read=GetBrushColor, write=SetBrushColor, nodefault};
	__property Graphics::TBrushStyle BrushStyle = {read=GetBrushStyle, write=SetBrushStyle, nodefault};
	__property Graphics::TFont* Font = {read=FFont, write=SetFont};
	__property System::UnicodeString Text = {read=GetText, write=SetText};
	__property bool Visible = {read=GetVisible, write=SetVisible, nodefault};
	__property _di_IChartTitleAdapter ChartTitleAdapter = {read=FChartTitleAdapter, write=SetChartTitleAdapter};
};


__interface ISeriesAdapter;
typedef System::DelphiInterface<ISeriesAdapter> _di_ISeriesAdapter;
class DELPHICLASS TAnySeries;
__interface  INTERFACE_UUID("{234F43E1-1A64-11DA-89D6-00024413CFA7}") ISeriesAdapter  : public System::IInterface 
{
	
public:
	virtual void __fastcall ReferenceSeries(TAnySeries* Series) = 0 ;
	virtual void __fastcall ReleaseSeries(void) = 0 ;
};

__interface IValueListAdapter;
typedef System::DelphiInterface<IValueListAdapter> _di_IValueListAdapter;
class DELPHICLASS TAnyChartValueList;
__interface  INTERFACE_UUID("{46977A20-3AA8-11DA-89D4-00024413CFA7}") IValueListAdapter  : public System::IInterface 
{
	
public:
	virtual void __fastcall ReferenceValueList(TAnyChartValueList* ValueList) = 0 ;
	virtual void __fastcall ReleaseValueList(void) = 0 ;
};

class PASCALIMPLEMENTATION TAnyChartValueList : public System::TObject
{
	typedef System::TObject inherited;
	
private:
	Teengine::TChartValueList* FValueList;
	_di_IValueListAdapter FValueListAdapter;
	double __fastcall GetMaxValue(void);
	double __fastcall GetMinValue(void);
	double __fastcall GetTotalValue(void);
	void __fastcall SetValueListAdapter(const _di_IValueListAdapter Value);
	
public:
	__fastcall TAnyChartValueList(void);
	double __fastcall Value(int Index);
	void __fastcall SetValue(int Index, double Value);
	int __fastcall Count(void);
	void __fastcall Delete(int ValueIndex);
	double __fastcall First(void);
	double __fastcall Last(void);
	int __fastcall Locate(const double Value);
	__property double MaxValue = {read=GetMaxValue};
	__property double MinValue = {read=GetMinValue};
	__property double Total = {read=GetTotalValue};
	__property _di_IValueListAdapter ValueListAdapter = {read=FValueListAdapter, write=SetValueListAdapter};
public:
	/* TObject.Destroy */ inline __fastcall virtual ~TAnyChartValueList(void) { }
	
};


#pragma option push -b-
enum TShapeStyle { ssRectangle, ssCircle, ssVertLine, ssHorizLine, ssTriangle, ssInvertTriangle, ssLine, ssDiamond };
#pragma option pop

class PASCALIMPLEMENTATION TAnySeries : public System::TObject
{
	typedef System::TObject inherited;
	
private:
	TAnyChartValueList* FXValueList;
	TAnyChartValueList* FYValueList;
	TAnyChartValueList* FStartXValueList;
	TAnyChartValueList* FStartYValueList;
	TAnyChartValueList* FEndXValueList;
	TAnyChartValueList* FEndYValueList;
	TAnyChartValueList* FStartValueList;
	TAnyChartValueList* FEndValueList;
	TAnyChartValueList* FRadiusValueList;
	TAnyChartValueList* FPieValues;
	Teengine::TChartSeries* FSeries;
	TSeriesType FSeriesType;
	_di_ISeriesAdapter FSeriesAdapter;
	TMarkStyle __fastcall GetMarkStyle(void);
	bool __fastcall GetMarkVisible(void);
	void __fastcall SetMarkStyle(const TMarkStyle Value);
	void __fastcall SetMarkVisible(const bool Value);
	void __fastcall SetSeriesAdapter(const _di_ISeriesAdapter Value);
	System::UnicodeString __fastcall GetTitle(void);
	void __fastcall SetTitle(const System::UnicodeString Value);
	Graphics::TColor __fastcall GetShapeColor(void);
	Graphics::TColor __fastcall GetShapeFrameColor(void);
	double __fastcall GetShapeX0(void);
	double __fastcall GetShapeX1(void);
	double __fastcall GetShapeY0(void);
	double __fastcall GetShapeY1(void);
	TShapeStyle __fastcall GetStyle(void);
	void __fastcall SetShapeColor(const Graphics::TColor Value);
	void __fastcall SetShapeFrameColor(const Graphics::TColor Value);
	void __fastcall SetShapeX0(const double Value);
	void __fastcall SetShapeX1(const double Value);
	void __fastcall SetShapeY0(const double Value);
	void __fastcall SetShapeY1(const double Value);
	void __fastcall SetStyle(const TShapeStyle Value);
	
public:
	__fastcall TAnySeries(void);
	__fastcall virtual ~TAnySeries(void);
	void __fastcall Add(const double AValue, const System::UnicodeString ALabel, Graphics::TColor AColor);
	void __fastcall AddNull(const System::UnicodeString ALabel);
	void __fastcall AddXY(const double AXValue, const double AYValue, const System::UnicodeString AXLabel, Graphics::TColor AColor);
	void __fastcall AddArrow(const double X0, const double Y0, const double X1, const double Y1, const System::UnicodeString ALabel, Graphics::TColor AColor);
	void __fastcall AddGantt(const double AStart, const double AEnd, const double AY, const System::UnicodeString AXLabel);
	void __fastcall AddBubble(const double AX, const double AY, const double ARadius, const System::UnicodeString AXLabel, Graphics::TColor AColor);
	double __fastcall XScreenToValue(int ScreenPos);
	double __fastcall YScreenToValue(int ScreenPos);
	void __fastcall Delete(int ValueIndex);
	int __fastcall Count(void);
	void __fastcall Clear(void);
	void __fastcall FillSampleValues(int NumValues);
	void __fastcall Rotate(int Angle);
	__property bool MarkVisible = {read=GetMarkVisible, write=SetMarkVisible, nodefault};
	__property TMarkStyle MarkStyle = {read=GetMarkStyle, write=SetMarkStyle, nodefault};
	__property TSeriesType SeriesStyle = {read=FSeriesType, nodefault};
	__property System::UnicodeString Title = {read=GetTitle, write=SetTitle};
	__property TAnyChartValueList* XValues = {read=FXValueList};
	__property TAnyChartValueList* YValues = {read=FYValueList};
	__property TAnyChartValueList* StartXValues = {read=FStartXValueList};
	__property TAnyChartValueList* StartYValues = {read=FStartYValueList};
	__property TAnyChartValueList* EndXValues = {read=FEndXValueList};
	__property TAnyChartValueList* EndYValues = {read=FEndYValueList};
	__property TAnyChartValueList* StartValues = {read=FStartValueList};
	__property TAnyChartValueList* EndValues = {read=FEndValueList};
	__property TAnyChartValueList* RadiusValues = {read=FRadiusValueList};
	__property TAnyChartValueList* PieValues = {read=FPieValues};
	__property TShapeStyle ShapeStyle = {read=GetStyle, write=SetStyle, nodefault};
	__property Graphics::TColor ShapeColor = {read=GetShapeColor, write=SetShapeColor, nodefault};
	__property Graphics::TColor ShapeFrameColor = {read=GetShapeFrameColor, write=SetShapeFrameColor, nodefault};
	__property double ShapeX0 = {read=GetShapeX0, write=SetShapeX0};
	__property double ShapeY0 = {read=GetShapeY0, write=SetShapeY0};
	__property double ShapeX1 = {read=GetShapeX1, write=SetShapeX1};
	__property double ShapeY1 = {read=GetShapeY1, write=SetShapeY1};
	__property _di_ISeriesAdapter SeriesAdapter = {read=FSeriesAdapter, write=SetSeriesAdapter};
};


__interface IChartAdapter;
typedef System::DelphiInterface<IChartAdapter> _di_IChartAdapter;
class DELPHICLASS TAnyChart;
__interface  INTERFACE_UUID("{234F43E2-1A64-11DA-89D6-00024413CFA7}") IChartAdapter  : public System::IInterface 
{
	
public:
	virtual void __fastcall ReferenceChart(TAnyChart* Chart) = 0 ;
	virtual void __fastcall ReleaseChart(void) = 0 ;
};

class DELPHICLASS TNewChart;
class PASCALIMPLEMENTATION TNewChart : public Chart::TChart
{
	typedef Chart::TChart inherited;
	
private:
	bool FDrawFrame;
	
protected:
	virtual void __fastcall Paint(void);
	
public:
	TAnyChart* AnyChart;
	__fastcall virtual TNewChart(Classes::TComponent* AOwner);
public:
	/* TCustomChart.Destroy */ inline __fastcall virtual ~TNewChart(void) { }
	
public:
	/* TWinControl.CreateParented */ inline __fastcall TNewChart(HWND ParentWindow) : Chart::TChart(ParentWindow) { }
	
};


#pragma option push -b-
enum TAnyGradientDirection { agdTopBottom, agdBottomTop, agdLeftRight, agdRightLeft, agdFromCenter, agdFromTopLeft, agdFromBottomLeft, agdRadial, agdDiagonalUp, agdDiagonalDown };
#pragma option pop

class PASCALIMPLEMENTATION TAnyChart : public System::TObject
{
	typedef System::TObject inherited;
	
private:
	TNewChart* FChart;
	TAnyChartTitle* FFoot;
	TAnyChartTitle* FTitle;
	Objlist::TObjList* FSeriesList;
	_di_IChartAdapter FChartAdapter;
	void __fastcall DeleteItems(void);
	void __fastcall SetAxisVisible(const bool Value);
	void __fastcall SetBorderVisible(const bool Value);
	void __fastcall SetColor(const Graphics::TColor Value);
	void __fastcall SetEnable(const bool Value);
	void __fastcall SetFoot(const TAnyChartTitle* Value);
	void __fastcall SetHeight(const int Value);
	void __fastcall SetLegendVisible(const bool Value);
	void __fastcall SetTitle(const TAnyChartTitle* Value);
	void __fastcall SetView3D(const bool Value);
	void __fastcall SetVisible(const bool Value);
	void __fastcall SetWidth(const int Value);
	void __fastcall InitChart(void);
	void __fastcall SetChartAdapter(const _di_IChartAdapter Value);
	int __fastcall GetLeft(void);
	int __fastcall GetTop(void);
	void __fastcall SetLeft(const int Value);
	void __fastcall SetTop(const int Value);
	bool __fastcall GetHorzGridLine(void);
	bool __fastcall GetVertGridLine(void);
	void __fastcall SetHorzGridLine(const bool Value);
	void __fastcall SetVertGridLine(const bool Value);
	int __fastcall GetChart3DPercent(void);
	void __fastcall SetChart3DPercent(const int Value);
	bool __fastcall GetAxisVisible(void);
	bool __fastcall GetBorderVisible(void);
	Graphics::TColor __fastcall GetColor(void);
	bool __fastcall GetEnable(void);
	int __fastcall GetHeight(void);
	bool __fastcall GetLegendVisible(void);
	bool __fastcall GetView3D(void);
	bool __fastcall GetVisible(void);
	int __fastcall GetWidth(void);
	Graphics::TColor __fastcall GetHorzGridLineColor(void);
	Graphics::TPenStyle __fastcall GetHorzGridLineStyle(void);
	int __fastcall GetHorzGridLineWidth(void);
	Graphics::TColor __fastcall GetVertGridLineColor(void);
	Graphics::TPenStyle __fastcall GetVertGridLineStyle(void);
	int __fastcall GetVertGridLineWidth(void);
	void __fastcall SetHorzGridLineColor(const Graphics::TColor Value);
	void __fastcall SetHorzGridLineStyle(const Graphics::TPenStyle Value);
	void __fastcall SetHorzGridLineWidth(const int Value);
	void __fastcall SetVertGridLineColor(const Graphics::TColor Value);
	void __fastcall SetVertGridLineStyle(const Graphics::TPenStyle Value);
	void __fastcall SetVertGridLineWidth(const int Value);
	TAnyGradientDirection __fastcall GetGradientDirection(void);
	Graphics::TColor __fastcall GetGradientEndColor(void);
	Graphics::TColor __fastcall GetGradientStartColor(void);
	bool __fastcall GetGradientVisible(void);
	void __fastcall SetGradientDirection(const TAnyGradientDirection Value);
	void __fastcall SetGradientEndColor(const Graphics::TColor Value);
	void __fastcall SetGradientStartColor(const Graphics::TColor Value);
	void __fastcall SetGradientVisible(const bool Value);
	
public:
	__fastcall TAnyChart(void);
	__fastcall virtual ~TAnyChart(void);
	TAnySeries* __fastcall AddSeries(TSeriesType SeriesType);
	void __fastcall DeleteSeries(int Index);
	TAnySeries* __fastcall Series(int Index);
	void __fastcall SaveToStream(Classes::TStream* Stream);
	void __fastcall LoadFromStream(Classes::TStream* Stream);
	__property TAnyChartTitle* Title = {read=FTitle, write=SetTitle};
	__property TAnyChartTitle* Foot = {read=FFoot, write=SetFoot};
	__property bool LegendVisible = {read=GetLegendVisible, write=SetLegendVisible, nodefault};
	__property bool AxisVisible = {read=GetAxisVisible, write=SetAxisVisible, nodefault};
	__property bool BorderVisible = {read=GetBorderVisible, write=SetBorderVisible, nodefault};
	__property bool View3D = {read=GetView3D, write=SetView3D, nodefault};
	__property Graphics::TColor Color = {read=GetColor, write=SetColor, nodefault};
	__property bool Visible = {read=GetVisible, write=SetVisible, nodefault};
	__property bool Enable = {read=GetEnable, write=SetEnable, nodefault};
	__property int Height = {read=GetHeight, write=SetHeight, nodefault};
	__property int Width = {read=GetWidth, write=SetWidth, nodefault};
	__property int Left = {read=GetLeft, write=SetLeft, nodefault};
	__property int Top = {read=GetTop, write=SetTop, nodefault};
	__property Graphics::TColor HorzGridLineColor = {read=GetHorzGridLineColor, write=SetHorzGridLineColor, nodefault};
	__property Graphics::TPenStyle HorzGridLineStyle = {read=GetHorzGridLineStyle, write=SetHorzGridLineStyle, nodefault};
	__property int HorzGridLineWidth = {read=GetHorzGridLineWidth, write=SetHorzGridLineWidth, nodefault};
	__property Graphics::TColor VertGridLineColor = {read=GetVertGridLineColor, write=SetVertGridLineColor, nodefault};
	__property Graphics::TPenStyle VertGridLineStyle = {read=GetVertGridLineStyle, write=SetVertGridLineStyle, nodefault};
	__property int VertGridLineWidth = {read=GetVertGridLineWidth, write=SetVertGridLineWidth, nodefault};
	__property bool HorzGridLine = {read=GetHorzGridLine, write=SetHorzGridLine, nodefault};
	__property bool VertGridLine = {read=GetVertGridLine, write=SetVertGridLine, nodefault};
	__property int Chart3DPercent = {read=GetChart3DPercent, write=SetChart3DPercent, nodefault};
	__property bool GradientVisible = {read=GetGradientVisible, write=SetGradientVisible, nodefault};
	__property TAnyGradientDirection GradientDirection = {read=GetGradientDirection, write=SetGradientDirection, nodefault};
	__property Graphics::TColor GradientStartColor = {read=GetGradientStartColor, write=SetGradientStartColor, nodefault};
	__property Graphics::TColor GradientEndColor = {read=GetGradientEndColor, write=SetGradientEndColor, nodefault};
	__property TNewChart* Chart = {read=FChart};
	__property _di_IChartAdapter ChartAdapter = {read=FChartAdapter, write=SetChartAdapter};
};


//-- var, const, procedure ---------------------------------------------------
extern PACKAGE void __fastcall SaveTeeChartToStream(Chart::TCustomChart* AChart, Classes::TStream* AStream);
extern PACKAGE void __fastcall LoadTeeChartFromStream(Chart::TCustomChart* AChart, Classes::TStream* AStream);
extern PACKAGE void __fastcall SaveTeeChartToFile(Chart::TCustomChart* AChart, const System::UnicodeString AFileName);
extern PACKAGE void __fastcall LoadTeeChartFromFile(Chart::TCustomChart* AChart, const System::UnicodeString AName);

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

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