winamp/Src/Wasabi/api/skin/skinitem.h
2024-09-24 14:54:57 +02:00

66 lines
1.3 KiB
C++

#ifndef __SKINITEM_H
#define __SKINITEM_H
#include <bfc/dispatch.h>
#include "../xml/ifc_xmlreaderparams.h"
class skin_xmlreaderparams;
class SkinItem : public Dispatchable
{
public:
const wchar_t *getXmlRootPath();
const wchar_t *getName();
ifc_xmlreaderparams *getParams();
int getSkinPartId();
SkinItem *getAncestor();
enum
{
SKINITEM_GETXMLROOTPATH = 0,
SKINITEM_GETNAME = 10,
SKINITEM_GETPARAMS = 20,
SKINITEM_GETSKINPARTID = 30,
SKINITEM_GETANCESTOR = 40,
};
};
inline const wchar_t *SkinItem::getXmlRootPath()
{
return _call(SKINITEM_GETXMLROOTPATH, (const wchar_t *)0);
}
inline const wchar_t *SkinItem::getName()
{
return _call(SKINITEM_GETNAME, (const wchar_t *)0);
}
inline ifc_xmlreaderparams *SkinItem::getParams()
{
return _call(SKINITEM_GETPARAMS, (ifc_xmlreaderparams *)NULL);
}
inline int SkinItem::getSkinPartId()
{
return _call(SKINITEM_GETSKINPARTID, (int)0);
}
inline SkinItem *SkinItem::getAncestor()
{
return _call(SKINITEM_GETANCESTOR, (SkinItem *)NULL);
}
class SkinItemI : public SkinItem
{
public:
virtual const wchar_t *getXmlRootPath()=0;
virtual const wchar_t *getName()=0;
virtual ifc_xmlreaderparams *getParams()=0;
virtual int getSkinPartId()=0;
virtual SkinItem *getAncestor()=0;
protected:
RECVS_DISPATCH;
};
#endif