void EventSendingController::mouseMoveTo(int x, int y) { #ifdef USE_WEBPROCESS_EVENT_SIMULATION m_position.x = x; m_position.y = y; WKBundlePageSimulateMouseMotion(InjectedBundle::shared().page()->page(), m_position, m_time); #else WKRetainPtr<WKStringRef> EventSenderMessageName(AdoptWK, WKStringCreateWithUTF8CString("EventSender")); WKRetainPtr<WKMutableDictionaryRef> EventSenderMessageBody(AdoptWK, WKMutableDictionaryCreate()); WKRetainPtr<WKStringRef> subMessageKey(AdoptWK, WKStringCreateWithUTF8CString("SubMessage")); WKRetainPtr<WKStringRef> subMessageName(AdoptWK, WKStringCreateWithUTF8CString("MouseMoveTo")); WKDictionaryAddItem(EventSenderMessageBody.get(), subMessageKey.get(), subMessageName.get()); WKRetainPtr<WKStringRef> xKey(AdoptWK, WKStringCreateWithUTF8CString("X")); WKRetainPtr<WKDoubleRef> xRef(AdoptWK, WKDoubleCreate(x)); WKDictionaryAddItem(EventSenderMessageBody.get(), xKey.get(), xRef.get()); WKRetainPtr<WKStringRef> yKey(AdoptWK, WKStringCreateWithUTF8CString("Y")); WKRetainPtr<WKDoubleRef> yRef(AdoptWK, WKDoubleCreate(y)); WKDictionaryAddItem(EventSenderMessageBody.get(), yKey.get(), yRef.get()); WKBundlePostSynchronousMessage(InjectedBundle::shared().bundle(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0); #endif }
void EventSendingController::setTouchPointRadius(int radiusX, int radiusY) { WKRetainPtr<WKStringRef> EventSenderMessageName(AdoptWK, WKStringCreateWithUTF8CString("EventSender")); WKRetainPtr<WKMutableDictionaryRef> EventSenderMessageBody(AdoptWK, WKMutableDictionaryCreate()); WKRetainPtr<WKStringRef> subMessageKey(AdoptWK, WKStringCreateWithUTF8CString("SubMessage")); WKRetainPtr<WKStringRef> subMessageName(AdoptWK, WKStringCreateWithUTF8CString("SetTouchPointRadius")); WKDictionaryAddItem(EventSenderMessageBody.get(), subMessageKey.get(), subMessageName.get()); WKRetainPtr<WKStringRef> xKey(AdoptWK, WKStringCreateWithUTF8CString("RadiusX")); WKRetainPtr<WKUInt64Ref> xRef(AdoptWK, WKUInt64Create(radiusX)); WKDictionaryAddItem(EventSenderMessageBody.get(), xKey.get(), xRef.get()); WKRetainPtr<WKStringRef> yKey(AdoptWK, WKStringCreateWithUTF8CString("RadiusY")); WKRetainPtr<WKUInt64Ref> yRef(AdoptWK, WKUInt64Create(radiusY)); WKDictionaryAddItem(EventSenderMessageBody.get(), yKey.get(), yRef.get()); WKBundlePostSynchronousMessage(InjectedBundle::shared().bundle(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0); }
void EventSendingController::mouseScrollBy(int x, int y) { WKRetainPtr<WKStringRef> EventSenderMessageName(AdoptWK, WKStringCreateWithUTF8CString("EventSender")); WKRetainPtr<WKMutableDictionaryRef> EventSenderMessageBody(AdoptWK, WKMutableDictionaryCreate()); WKRetainPtr<WKStringRef> subMessageKey(AdoptWK, WKStringCreateWithUTF8CString("SubMessage")); WKRetainPtr<WKStringRef> subMessageName(AdoptWK, WKStringCreateWithUTF8CString("MouseScrollBy")); WKDictionaryAddItem(EventSenderMessageBody.get(), subMessageKey.get(), subMessageName.get()); WKRetainPtr<WKStringRef> xKey(AdoptWK, WKStringCreateWithUTF8CString("X")); WKRetainPtr<WKDoubleRef> xRef(AdoptWK, WKDoubleCreate(x)); WKDictionaryAddItem(EventSenderMessageBody.get(), xKey.get(), xRef.get()); WKRetainPtr<WKStringRef> yKey(AdoptWK, WKStringCreateWithUTF8CString("Y")); WKRetainPtr<WKDoubleRef> yRef(AdoptWK, WKDoubleCreate(y)); WKDictionaryAddItem(EventSenderMessageBody.get(), yKey.get(), yRef.get()); WKBundlePostSynchronousMessage(InjectedBundle::shared().bundle(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0); }
void EventSendingController::updateTouchPoint(int index, int x, int y) { WKRetainPtr<WKStringRef> EventSenderMessageName(AdoptWK, WKStringCreateWithUTF8CString("EventSender")); WKRetainPtr<WKMutableDictionaryRef> EventSenderMessageBody(AdoptWK, WKMutableDictionaryCreate()); WKRetainPtr<WKStringRef> subMessageKey(AdoptWK, WKStringCreateWithUTF8CString("SubMessage")); WKRetainPtr<WKStringRef> subMessageName(AdoptWK, WKStringCreateWithUTF8CString("UpdateTouchPoint")); WKDictionaryAddItem(EventSenderMessageBody.get(), subMessageKey.get(), subMessageName.get()); WKRetainPtr<WKStringRef> indexKey(AdoptWK, WKStringCreateWithUTF8CString("Index")); WKRetainPtr<WKUInt64Ref> indexRef(AdoptWK, WKUInt64Create(index)); WKDictionaryAddItem(EventSenderMessageBody.get(), indexKey.get(), indexRef.get()); WKRetainPtr<WKStringRef> xKey(AdoptWK, WKStringCreateWithUTF8CString("X")); WKRetainPtr<WKUInt64Ref> xRef(AdoptWK, WKUInt64Create(x)); WKDictionaryAddItem(EventSenderMessageBody.get(), xKey.get(), xRef.get()); WKRetainPtr<WKStringRef> yKey(AdoptWK, WKStringCreateWithUTF8CString("Y")); WKRetainPtr<WKUInt64Ref> yRef(AdoptWK, WKUInt64Create(y)); WKDictionaryAddItem(EventSenderMessageBody.get(), yKey.get(), yRef.get()); WKBundlePostSynchronousMessage(InjectedBundle::shared().bundle(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0); }
UTF16String *GetValue(const wchar_t *pwszName) noexcept { const auto iter = xm_mapValues.find(xKey(pwszName, std::wcslen(pwszName))); return (iter == xm_mapValues.end()) ? nullptr : &(iter->second); }
Package *GetPackage(const wchar_t *pwszName) noexcept { const auto iter = xm_mapPackages.find(xKey(pwszName, std::wcslen(pwszName))); return (iter == xm_mapPackages.end()) ? nullptr : &(iter->second); }