diff options
author | Jef <jef@targetspot.com> | 2024-09-24 08:54:57 -0400 |
---|---|---|
committer | Jef <jef@targetspot.com> | 2024-09-24 08:54:57 -0400 |
commit | 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (patch) | |
tree | 12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/Winamp/SkinElementAlias.h | |
parent | 537bcbc86291b32fc04ae4133ce4d7cac8ebe9a7 (diff) | |
download | winamp-20d28e80a5c861a9d5f449ea911ab75b4f37ad0d.tar.gz |
Initial community commit
Diffstat (limited to 'Src/Winamp/SkinElementAlias.h')
-rw-r--r-- | Src/Winamp/SkinElementAlias.h | 65 |
1 files changed, 65 insertions, 0 deletions
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 <api/skin/skinitem.h> +#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;i<p->getNbItems();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 |