/////////////////////////////////////////////////////////////////////////////
// Name:        No names yet.
// Purpose:     Contrib. demo
// Author:      Aleksandras Gluchovas
// Modified by:
// Created:     2000/02/08
// RCS-ID:      $Id: eventinfo.h,v 1.3 2001/04/04 12:42:37 aleksandras Exp $
// Copyright:   (c) Aleksandras Gluchovas
// Licence:   	GPL (version 2.0 or later)
/////////////////////////////////////////////////////////////////////////////

#ifndef __EVENTINFO_G__
#define __EVENTINFO_G__

#include "wx/string.h"

class EventInfo
{
public:
	char* mEventMacro; 
	char* mEventClass;
	char* mItemClass;
	char* mEventTableEntry;
	char* mProto;
	char* mImp;
	char* mHelpText;

	/*** static methods ***/

	static EventInfo* FindEventInfoByMacro( const wxString& macroName );
};

WX_DEFINE_ARRAY( EventInfo*, EventInfoListT );

class EventEntryInfo : public wxObject
{
public:
	EventEntryInfo();

	wxString mId1;
	wxString mId2;
	wxString mType;
	wxString mMethod;

	wxString mBody;

	EventInfo* mpEventInfo;

	size_t mSrcPos; // index of character which starts
					// the body of impementation for this event
					// or (size_t)(-1) if not present
};


WX_DEFINE_ARRAY( EventEntryInfo*, EventEntryInfoListT );

class GenBindRuleInfo;
class GenBindRuleVarTypeInfo;

class ResourceItemInfo
{
public:
	ResourceItemInfo();

	wxString mId;
	wxString mClass;
	wxString mSubclass;

	// TBD:: comments..
	wxString mCtrlMember;
	wxString mType;
	wxString mMember;
	wxString mInitValue;
	wxString mGetter;
	wxString mSetter;

	GenBindRuleInfo* mpRule;
	GenBindRuleVarTypeInfo* mpVarType;
};

WX_DEFINE_ARRAY( ResourceItemInfo*, ResourceItemInfoListT );

extern EventInfo gEventInfoArray[];

extern int EventInfoCnt();

#endif __// EVENTINFO_G__
