- enumValue = static_cast<WebCore::MouseButton>(enumValue | WebCore::NoButton);
- if (enumString == "LeftButton")
- enumValue = static_cast<WebCore::MouseButton>(enumValue | WebCore::LeftButton);
- if (enumString == "MiddleButton")
- enumValue = static_cast<WebCore::MouseButton>(enumValue | WebCore::MiddleButton);
- if (enumString == "RightButton")
- enumValue = static_cast<WebCore::MouseButton>(enumValue | WebCore::RightButton);
+ enumValue = static_cast<Test::MouseButton>(enumValue | Test::NoButton);
+ else if (enumString == "LeftButton")
+ enumValue = static_cast<Test::MouseButton>(enumValue | Test::LeftButton);
+ else if (enumString == "MiddleButton")
+ enumValue = static_cast<Test::MouseButton>(enumValue | Test::MiddleButton);
+ else if (enumString == "RightButton")
+ enumValue = static_cast<Test::MouseButton>(enumValue | Test::RightButton);
+ }
+
+ return true;
+}
+
+EncodedValue EncodingTraits<Test::PlatformEvent::Type>::encodeValue(const Test::PlatformEvent::Type& enumValue)
+{
+ EncodedValue encodedValue = EncodedValue::createArray();
+ if (enumValue & Test::PlatformEvent::Mouse) {
+ encodedValue.append<String>(ASCIILiteral("Mouse"));
+ if (enumValue == Test::PlatformEvent::Mouse)
+ return encodedValue;
+ }
+ if (enumValue & Test::PlatformEvent::Key) {
+ encodedValue.append<String>(ASCIILiteral("Key"));
+ if (enumValue == Test::PlatformEvent::Key)
+ return encodedValue;
+ }
+ if (enumValue & Test::PlatformEvent::Touch) {
+ encodedValue.append<String>(ASCIILiteral("Touch"));
+ if (enumValue == Test::PlatformEvent::Touch)
+ return encodedValue;
+ }
+ if (enumValue & Test::PlatformEvent::Wheel) {
+ encodedValue.append<String>(ASCIILiteral("Wheel"));
+ if (enumValue == Test::PlatformEvent::Wheel)
+ return encodedValue;
+ }
+ return encodedValue;
+}
+
+bool EncodingTraits<Test::PlatformEvent::Type>::decodeValue(EncodedValue& encodedValue, Test::PlatformEvent::Type& enumValue)
+{
+ Vector<String> enumStrings;
+ if (!EncodingTraits<Vector<String>>::decodeValue(encodedValue, enumStrings))
+ return false;
+
+ for (const String& enumString : enumStrings) {
+ if (enumString == "Mouse")
+ enumValue = static_cast<Test::PlatformEvent::Type>(enumValue | Test::PlatformEvent::Mouse);
+ else if (enumString == "Key")
+ enumValue = static_cast<Test::PlatformEvent::Type>(enumValue | Test::PlatformEvent::Key);
+ else if (enumString == "Touch")
+ enumValue = static_cast<Test::PlatformEvent::Type>(enumValue | Test::PlatformEvent::Touch);
+ else if (enumString == "Wheel")
+ enumValue = static_cast<Test::PlatformEvent::Type>(enumValue | Test::PlatformEvent::Wheel);