aboutsummaryrefslogtreecommitdiff
path: root/Src/Winamp/SkinElementAlias.h
diff options
context:
space:
mode:
authorJef <jef@targetspot.com>2024-09-24 08:54:57 -0400
committerJef <jef@targetspot.com>2024-09-24 08:54:57 -0400
commit20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (patch)
tree12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/Winamp/SkinElementAlias.h
parent537bcbc86291b32fc04ae4133ce4d7cac8ebe9a7 (diff)
downloadwinamp-20d28e80a5c861a9d5f449ea911ab75b4f37ad0d.tar.gz
Initial community commit
Diffstat (limited to 'Src/Winamp/SkinElementAlias.h')
-rw-r--r--Src/Winamp/SkinElementAlias.h65
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