#include "customgui_linkbox.h"
#include "c4d_string.h"
#include "c4d_gui.h"

static CustomGuiLinkBoxLib *lib_LinkBox = NULL;

static CustomGuiLinkBoxLib *CheckLib(LONG offset)
{
	return (CustomGuiLinkBoxLib*)CheckLib(CUSTOMGUI_LINKBOX,offset,(C4DLibrary**)lib_LinkBox);
}

#define LinkBoxCall(b) 				CustomGuiLinkBoxLib *lib = CheckLib(LIBOFFSET(CustomGuiLinkBoxLib,b)); \
															if (!lib || !lib->b) return; \
															(((iLinkBox*)this)->*(lib->b))

#define LinkBoxCallR(a,b) 		CustomGuiLinkBoxLib *lib = CheckLib(LIBOFFSET(CustomGuiLinkBoxLib,b)); \
															if (!lib || !lib->b) return a; \
															return (((iLinkBox*)this)->*(lib->b))

#define LinkBoxGuiCall(b) 		CustomGuiLinkBoxLib *lib = CheckLib(LIBOFFSET(CustomGuiLinkBoxLib,b)); \
															if (!lib || !lib->b) return; \
															(((iLinkBoxGui*)this)->*(lib->b))

#define LinkBoxGuiCallR(a,b)	CustomGuiLinkBoxLib *lib = CheckLib(LIBOFFSET(CustomGuiLinkBoxLib,b)); \
															if (!lib || !lib->b) return a; \
															return (((iLinkBoxGui*)this)->*(lib->b))

BaseList2D* LinkBoxGui::GetLink(const BaseDocument* doc)
{
  LinkBoxGuiCallR(NULL, GetLink)(doc);
}

Bool LinkBoxGui::SetLink(const BaseList2D* obj)
{
  LinkBoxGuiCallR(FALSE, SetLink)(obj);
}
