diff options
author | Jean-Francois Mauguit <jfmauguit@mac.com> | 2024-09-24 09:03:25 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-24 09:03:25 -0400 |
commit | bab614c421ed7ae329d26bf028c4a3b1d2450f5a (patch) | |
tree | 12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/Wasabi/api/skin/widgets/xuigradientwnd.cpp | |
parent | 4bde6044fddf053f31795b9eaccdd2a5a527d21f (diff) | |
parent | 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (diff) | |
download | winamp-bab614c421ed7ae329d26bf028c4a3b1d2450f5a.tar.gz |
Merge pull request #5 from WinampDesktop/community
Merge to main
Diffstat (limited to 'Src/Wasabi/api/skin/widgets/xuigradientwnd.cpp')
-rw-r--r-- | Src/Wasabi/api/skin/widgets/xuigradientwnd.cpp | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/Src/Wasabi/api/skin/widgets/xuigradientwnd.cpp b/Src/Wasabi/api/skin/widgets/xuigradientwnd.cpp new file mode 100644 index 00000000..141e6e48 --- /dev/null +++ b/Src/Wasabi/api/skin/widgets/xuigradientwnd.cpp @@ -0,0 +1,66 @@ +#include <precomp.h> + +#include "xuigradientwnd.h" +#ifndef _WASABIRUNTIME + +BEGIN_SERVICES(XuiGradient_Svc); +DECLARE_SERVICE(XuiObjectCreator<GradientWndXuiSvc>); +END_SERVICES(XuiGradient_Svc, _XuiGradient_Svc); + +#ifdef _X86_ +extern "C" { int _link_GradientXuiSvc; } +#else +extern "C" { int __link_GradientXuiSvc; } +#endif + +#endif + + +enum { P_X1, P_Y1, P_X2, P_Y2, P_POINTS, P_GG }; + +XMLParamPair XuiGradientWnd::params[] = { + {P_X1, L"GRADIENT_X1"}, + {P_Y1, L"GRADIENT_Y1"}, + {P_X2, L"GRADIENT_X2"}, + {P_Y2, L"GRADIENT_Y2"}, + {P_POINTS, L"POINTS"}, + {P_GG, L"GAMMAGROUP"}, + }; +XuiGradientWnd::XuiGradientWnd() +{ + myxuihandle = newXuiHandle(); + CreateXMLParameters(myxuihandle); +} + +void XuiGradientWnd::CreateXMLParameters(int master_handle) +{ + //XUIGRADIENTWND_PARENT::CreateXMLParameters(master_handle); + int numParams = sizeof(params) / sizeof(params[0]); + hintNumberOfParams(myxuihandle, numParams); + for (int i = 0;i < numParams;i++) + { + if (params[i].id == P_GG) + addParam(myxuihandle, params[i], XUI_ATTRIBUTE_IMPLIED); + else + addParam(myxuihandle, params[i], XUI_ATTRIBUTE_REQUIRED); + } +} + +int XuiGradientWnd::setXuiParam(int xuihandle, int xmlattributeid, const wchar_t *xmlattributename, const wchar_t *value) +{ + if (xuihandle != myxuihandle) + return XUIGRADIENTWND_PARENT::setXuiParam(xuihandle, xmlattributeid, xmlattributename, value); + switch (xmlattributeid) + { + case P_X1: setX1((float)WTOF(value)); break; + case P_Y1: setY1((float)WTOF(value)); break; + case P_X2: setX2((float)WTOF(value)); break; + case P_Y2: setY2((float)WTOF(value)); break; + case P_POINTS: setPoints(value); break; + case P_GG: setGammaGroup(value); break; + default: + return 0; + } + invalidate(); // what the hell + return 1; +}
\ No newline at end of file |