1bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch// Copyright 2013 The Chromium Authors. All rights reserved.
2bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
3bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch// found in the LICENSE file.
4bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch
5bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch#ifndef CONTENT_BROWSER_RENDERER_HOST_INPUT_WEB_INPUT_EVENT_BUILDERS_ANDROID_H_
6bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch#define CONTENT_BROWSER_RENDERER_HOST_INPUT_WEB_INPUT_EVENT_BUILDERS_ANDROID_H_
7bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch
85d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include <jni.h>
95d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
10bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch#include "third_party/WebKit/public/web/WebInputEvent.h"
11bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch
12bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdochnamespace content {
13bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch
14a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)class MotionEventAndroid;
15a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
16bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdochclass WebMouseEventBuilder {
17bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch public:
18f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  static blink::WebMouseEvent Build(blink::WebInputEvent::Type type,
195d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                    blink::WebMouseEvent::Button button,
205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                    double time_sec,
215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                    int window_x,
225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                    int window_y,
235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                    int modifiers,
245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                    int click_count);
25bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch};
26bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch
27bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdochclass WebMouseWheelEventBuilder {
28bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch public:
29bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  enum Direction {
30bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    DIRECTION_UP,
31bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    DIRECTION_DOWN,
32bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    DIRECTION_LEFT,
33bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    DIRECTION_RIGHT,
34bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  };
35bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch
36f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  static blink::WebMouseWheelEvent Build(Direction direction,
375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                         double time_sec,
385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                         int window_x,
395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                         int window_y);
40bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch};
41bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch
42bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdochclass WebKeyboardEventBuilder {
43bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch public:
44f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  static blink::WebKeyboardEvent Build(blink::WebInputEvent::Type type,
455d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                       int modifiers,
465d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                       double time_sec,
475d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                       int keycode,
485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                       int unicode_character,
495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                       bool is_system_key);
50bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch};
51bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch
52bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdochclass WebGestureEventBuilder {
53bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch public:
54f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  static blink::WebGestureEvent Build(blink::WebInputEvent::Type type,
555d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                      double time_sec,
565d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                      int x,
575d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                      int y);
585d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)};
595d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
60bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch}  // namespace content
61bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch
62bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch#endif  // CONTENT_BROWSER_RENDERER_HOST_INPUT_WEB_INPUT_EVENT_BUILDERS_ANDROID_H_
63