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

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

#ifndef IwbaserendercontextHPP
#define IwbaserendercontextHPP

#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 <Iwvclcomponent.hpp>	// Pascal unit
#include <Iwvclclasses.hpp>	// Pascal unit
#include <Swsystem.hpp>	// Pascal unit
#include <Iwapplication.hpp>	// Pascal unit
#include <Iwtypes.hpp>	// Pascal unit
#include <Iwbaselayoutcomponent.hpp>	// Pascal unit
#include <Iwmarkuplanguagetag.hpp>	// Pascal unit

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

namespace Iwbaserendercontext
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TIWContainerContext;
class DELPHICLASS TIWBaseComponentContext;
class PASCALIMPLEMENTATION TIWContainerContext : public System::TObject 
{
	typedef System::TObject inherited;
	
private:
	Classes::TStringList* FControlList;
	Classes::TStringList* FContextList;
	Classes::TStringList* FAliasControlList;
	Classes::TStringList* FAliasContextList;
	Classes::TStringList* FMarkupTagList;
	Iwbaselayoutcomponent::TIWBaseLayoutComponent* FLayout;
	Iwtypes::TIWControlEncode FControlEncode;
	bool FUpdateTree;
	Iwapplication::TIWApplication* FWebApplication;
	Iwmarkuplanguagetag::TIWMarkupLanguageTag* __fastcall GetMarkupLanguageTag(AnsiString AControl);
	Classes::TComponent* __fastcall GetControlInstance(AnsiString AControl);
	int __fastcall GetControlsCount(void);
	Classes::TComponent* __fastcall GetControlInstanceFromIndex(int AIndex);
	TIWBaseComponentContext* __fastcall GetComponentContext(AnsiString AName);
	
public:
	__fastcall TIWContainerContext(Iwapplication::TIWApplication* AWebApplication);
	__fastcall virtual ~TIWContainerContext(void);
	bool __fastcall IsValidComponent(AnsiString AName);
	void __fastcall AddComponent(TIWBaseComponentContext* AComponentContext, Iwmarkuplanguagetag::TIWMarkupLanguageTag* AMarkupLanguageTag = (Iwmarkuplanguagetag::TIWMarkupLanguageTag*)(0x0));
	void __fastcall RemoveComponent(TIWBaseComponentContext* AComponentContext);
	__property bool UpdateTree = {read=FUpdateTree, write=FUpdateTree, nodefault};
	__property Iwmarkuplanguagetag::TIWMarkupLanguageTag* MarkupLanguageTag[AnsiString AControl] = {read=GetMarkupLanguageTag};
	__property TIWBaseComponentContext* ComponentContext[AnsiString AName] = {read=GetComponentContext};
	__property Classes::TComponent* Components[AnsiString AControl] = {read=GetControlInstance};
	__property int ComponentsCount = {read=GetControlsCount, nodefault};
	__property Classes::TComponent* ComponentsList[int AIndex] = {read=GetControlInstanceFromIndex};
	__property Iwtypes::TIWControlEncode ControlEncode = {read=FControlEncode, nodefault};
	__property Iwbaselayoutcomponent::TIWBaseLayoutComponent* LayoutManager = {read=FLayout, write=FLayout};
	__property Iwapplication::TIWApplication* WebApplication = {read=FWebApplication};
};


typedef TMetaClass* TIWBaseComponentContextClass;

class DELPHICLASS TIWBasePageContext;
class PASCALIMPLEMENTATION TIWBasePageContext : public System::TObject 
{
	typedef System::TObject inherited;
	
private:
	Iwapplication::TIWApplication* FWebApplication;
	
public:
	__fastcall virtual TIWBasePageContext(Iwapplication::TIWApplication* AWebApplication);
	virtual void __fastcall Clear(bool ADesignTime = false);
	virtual void __fastcall AppendContext(TIWBaseComponentContext* AContext);
	__property Iwapplication::TIWApplication* WebApplication = {read=FWebApplication};
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TIWBasePageContext(void) { }
	#pragma option pop
	
};


class PASCALIMPLEMENTATION TIWBaseComponentContext : public System::TObject 
{
	typedef System::TObject inherited;
	
private:
	Iwmarkuplanguagetag::TIWMarkupLanguageTag* FMLTag;
	Classes::TComponent* FComponent;
	TIWContainerContext* FContainerContext;
	Iwapplication::TIWApplication* FWebApplication;
	TIWBasePageContext* FBasePageContext;
	AnsiString FPostRender;
	void __fastcall SetMLTag(const Iwmarkuplanguagetag::TIWMarkupLanguageTag* Value);
	
public:
	__fastcall virtual TIWBaseComponentContext(Classes::TComponent* AComponent, TIWContainerContext* AContainerContext, TIWBasePageContext* APageContext);
	__fastcall virtual ~TIWBaseComponentContext(void);
	__property TIWBasePageContext* BasePageContext = {read=FBasePageContext};
	__property TIWContainerContext* ContainerContext = {read=FContainerContext, write=FContainerContext};
	__property Classes::TComponent* Component = {read=FComponent};
	__property Iwmarkuplanguagetag::TIWMarkupLanguageTag* MarkupLanguageTag = {read=FMLTag, write=SetMLTag};
	__property Iwapplication::TIWApplication* WebApplication = {read=FWebApplication};
	__property AnsiString PostRender = {read=FPostRender, write=FPostRender};
};


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

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

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