From 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d Mon Sep 17 00:00:00 2001 From: Jef Date: Tue, 24 Sep 2024 14:54:57 +0200 Subject: Initial community commit --- Src/Winamp/SkinElementAlias.h | 65 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 Src/Winamp/SkinElementAlias.h (limited to 'Src/Winamp/SkinElementAlias.h') diff --git a/Src/Winamp/SkinElementAlias.h b/Src/Winamp/SkinElementAlias.h new file mode 100644 index 00000000..462f9d9c --- /dev/null +++ b/Src/Winamp/SkinElementAlias.h @@ -0,0 +1,65 @@ +#pragma once +#include +#include "ParamList.h" +struct SkinElementAlias : public SkinItemI +{ +public: + + SkinElementAlias(const wchar_t *_aliasname, const wchar_t *_idtarget, int _scriptid = -1, int _secondarycounter = 0) + : aliasname(_aliasname), idtarget(_idtarget), scriptid(_scriptid), seccount(_secondarycounter) //, rootpath(path) + { + params = NULL; + /* + if (p != NULL) { + params = new XmlReaderParamsI(); + for (int i=0;igetNbItems();i++) { + params->addItem(p->getItemName(i), p->getItemValue(i)); + } + } + */ + } + virtual ~SkinElementAlias() + { + delete params; + } + + const wchar_t *getAliasName() { return aliasname; } + const wchar_t *getTargetId() { return idtarget; } + int getSecCount() { return seccount; } + + virtual const wchar_t *getXmlRootPath() { return rootpath; } + virtual const wchar_t *getName() { return L"elementalias"; } + virtual ifc_xmlreaderparams *getParams() { return params; } + virtual int getSkinPartId() { return scriptid; } + virtual SkinItem *getAncestor(); + +private: + StringW aliasname; + StringW idtarget; + int scriptid; + int seccount; + ParamList *params; + StringW rootpath; +}; + +class SortSkinElementAlias +{ +public: + static int compareItem(SkinElementAlias *p1, SkinElementAlias *p2) + { + int r = WCSICMP(p1->getAliasName(), p2->getAliasName()); + if (!r) + { + if (p1->getSkinPartId() < p2->getSkinPartId()) return -1; + if (p1->getSkinPartId() > p2->getSkinPartId()) return 1; + if (p1->getSecCount() < p2->getSecCount()) return -1; + if (p1->getSecCount() > p2->getSecCount()) return 1; + return 0; + } + return r; + } + static int compareAttrib(const wchar_t *attrib, SkinElementAlias *item) + { + return WCSICMP(attrib, item->getAliasName()); + } +}; \ No newline at end of file -- cgit