1db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block/* 22daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch * Copyright (C) 2010, 2011 Apple Inc. All rights reserved. 3db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * 4db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * Redistribution and use in source and binary forms, with or without 5db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * modification, are permitted provided that the following conditions 6db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * are met: 7db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * 1. Redistributions of source code must retain the above copyright 8db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * notice, this list of conditions and the following disclaimer. 9db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * 2. Redistributions in binary form must reproduce the above copyright 10db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * notice, this list of conditions and the following disclaimer in the 11db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * documentation and/or other materials provided with the distribution. 12db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * 13db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' 14db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 15db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS 17db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 18db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 19db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 20db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 21db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 22db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 23db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * THE POSSIBILITY OF SUCH DAMAGE. 24db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block */ 25db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 26dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#ifndef EventSendingController_h 27dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#define EventSendingController_h 28db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 29dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#include "JSWrappable.h" 302daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#include <WebKit2/WKEvent.h> 312daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#include <WebKit2/WKGeometry.h> 32dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#include <wtf/PassRefPtr.h> 33db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 34dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdochnamespace WTR { 35db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 36dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdochclass EventSendingController : public JSWrappable { 37dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdochpublic: 38dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch static PassRefPtr<EventSendingController> create(); 39dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch virtual ~EventSendingController(); 40db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 41dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch void makeWindowObject(JSContextRef, JSObjectRef windowObject, JSValueRef* exception); 42db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 43dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch // JSWrappable 44dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch virtual JSClassRef wrapperClass(); 45db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 462daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch void mouseDown(int button, JSValueRef modifierArray); 472daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch void mouseUp(int button, JSValueRef modifierArray); 482daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch void mouseMoveTo(int x, int y); 492daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch void leapForward(int milliseconds); 50db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 51dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch // Zoom functions. 52dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch void textZoomIn(); 53dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch void textZoomOut(); 54dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch void zoomPageIn(); 55dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch void zoomPageOut(); 562daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch void scalePageBy(double scale, double x, double y); 57dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch 58dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdochprivate: 59dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch EventSendingController(); 602daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 612daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch void updateClickCount(WKEventMouseButton); 622daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 632daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch double m_time; 642daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch WKPoint m_position; 652daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 662daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch int m_clickCount; 672daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch double m_clickTime; 682daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch WKPoint m_clickPosition; 692daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch WKEventMouseButton m_clickButton; 70dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch}; 71dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch 72dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch} // namespace WTR 73dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch 74dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#endif // EventSendingController_h 75