#ifndef _CUSTOMGUI_HYPERLINK_STATIC_H_
#define _CUSTOMGUI_HYPERLINK_STATIC_H_

#ifdef _INTERNAL_HYPERLINK_STATIC_
	#define _INTERNAL_BASECUSTOM_
#endif

#include "customgui_base.h"
#include "c4d_customguidata.h"
#include "c4d_basecontainer.h"
#include "c4d_customdatatype.h"



#define CUSTOMGUI_HYPER_LINK_STATIC   1009180 // user gadget
#define CUSTOMDATATYPE_HYPER_LINK_STATIC   1009617



//#define HyperLinkStatic_BORDER 'brdr'
//#define HyperLinkStatic_BUTTON 'butt'

#define HYPERLINK_LINK_TEXT     'hllt' // the static text (string ID)
#define HYPERLINK_LINK_DEST     'hlld' // link destination (string ID)
#define HYPERLINK_IS_LINK       'hlil' // TRUE, if this is a real hyperlink, static text otherwise


class HyperLinkData : public iCustomDataType<HyperLinkData>
{
private:
  HyperLinkData();

public:
  void SetStrings(const String* pStrLink = NULL, const String* pStrText = NULL);
  void GetStrings(String* pStrLink = NULL, String* pStrText = NULL);
};


class HyperLinkCustomGui : public BaseCustomGui<CUSTOMGUI_HYPER_LINK_STATIC>
{
private:
		HyperLinkCustomGui();

	public:
		Bool SetLinkString(const String* pStrLink = NULL, const String *pStrText = NULL);
		Bool GetLinkString(String* pStrLink = NULL, String *pStrText = NULL);
};





// INTERNAL STUFF -- INTERNAL STUFF -- INTERNAL STUFF -- INTERNAL STUFF -- INTERNAL STUFF
// INTERNAL STUFF -- INTERNAL STUFF -- INTERNAL STUFF -- INTERNAL STUFF -- INTERNAL STUFF
// INTERNAL STUFF -- INTERNAL STUFF -- INTERNAL STUFF -- INTERNAL STUFF -- INTERNAL STUFF

#ifndef _INTERNAL_HYPERLINK_STATIC_
	class iHyperLinkCustomGui : public iBaseCustomGui
	{
	};
  class iHyperLinkData;
#else
	class iHyperLinkCustomGui;
	class iHyperLinkData;
#endif

struct HyperLinkStaticLib : public BaseCustomGuiLib
{
	Bool		(iHyperLinkCustomGui::*SetLinkString	)(const String* pStrLink, const String *pStrText);
	Bool		(iHyperLinkCustomGui::*GetLinkString	)(String* pStrLink, String *pStrText);
	void		(iHyperLinkData::*SetStrings	)(const String* pStrLink, const String* pStrText);
	void		(iHyperLinkData::*GetStrings	)(String* pStrLink, String* pStrText);
};

// INTERNAL STUFF -- INTERNAL STUFF -- INTERNAL STUFF -- INTERNAL STUFF -- INTERNAL STUFF
// INTERNAL STUFF -- INTERNAL STUFF -- INTERNAL STUFF -- INTERNAL STUFF -- INTERNAL STUFF
// INTERNAL STUFF -- INTERNAL STUFF -- INTERNAL STUFF -- INTERNAL STUFF -- INTERNAL STUFF

#endif // _CUSTOMGUI_HYPERLINK_STATIC_H_
