THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 29/09/2010 at 14:21, xxxxxxxx wrote:
It is possible but not simple. If you don't want them to be buttons, just omit BUTTON from the .res file:
// Ogreebler.res
CONTAINER Ogreebler
{
NAME Ogreebler;
INCLUDE Obase;
GROUP ID_OBJECTPROPERTIES
{
DEFAULT 1;
// Help and Information about Greebler
BITMAPBUTTON GREEBLER_INFO { ANIM OFF; BUTTON; }
...
// GreeblerObject.cpp
// NodeData.Message
//*---------------------------------------------------------------------------*
Bool GreeblerObj::Message(GeListNode* node, LONG type, void* data)
//*---------------------------------------------------------------------------*
{
if (!node) return FALSE;
if (type == MSG_DESCRIPTION_GETBITMAP)
return MsgGetBitmap(static_cast<DescriptionGetBitmap*>(data), static_cast<BaseObject*>(node));
...
return SUPER::Message(node,type,data);
}
// GreeblerObj.MsgGetBitmap
//*---------------------------------------------------------------------------*
Bool GreeblerObj::MsgGetBitmap(DescriptionGetBitmap* dgb, BaseObject* op)
//*---------------------------------------------------------------------------*
{
if (!(dgb && op)) return TRUE;
BaseContainer* bc = op->GetDataInstance();
LONG id = dgb->id[0].id;
if (id == GREEBLER_INFO)
{
Filename bg = GeGetPluginPath()+Filename("res")+Filename("banner.tif");
if (!GeFExist(bg)) return TRUE;
AutoAlloc<BaseBitmap> bm;
bm->Init(bg);
dgb->bmp = bm.Release();
}
return TRUE;
}
// NodeData.GetDParameter
//*---------------------------------------------------------------------------*
Bool GreeblerObj::GetDParameter(GeListNode* node, const DescID& id, GeData& t_data, DESCFLAGS_GET& flags)
//*---------------------------------------------------------------------------*
{
if (!node) return FALSE;
LONG did = id[0].id;
switch (did)
{
// BitmapButtons
case GREEBLER_INFO:
{
BitmapButtonStruct bbs(static_cast<PluginObject*>(node), id, 0L);
t_data = GeData(CUSTOMDATATYPE_BITMAPBUTTON, bbs);
flags |= DESCFLAGS_GET_PARAM_GET;
break;
}
default:
break;
}
return SUPER::GetDParameter(node, id, t_data, flags);
}
// NodeData.SetDParameter
//*---------------------------------------------------------------------------*
Bool GreeblerObj::SetDParameter(GeListNode* node, const DescID& id, const GeData& t_data, DESCFLAGS_SET& flags)
//*---------------------------------------------------------------------------*
{
if (!node) return FALSE;
LONG did = id[0].id;
// Info BitmapButton
if (did == GREEBLER_INFO)
{
if (flags & DESCFLAGS_SET_USERINTERACTION)
{
// user clicked on button - open Dialog
greebler->ShowHelpDialog();
}
flags |= DESCFLAGS_SET_PARAM_SET;
}
return SUPER::SetDParameter(node, id, t_data, flags);
}