diff options
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 |