Home | History | Annotate | Download | only in input
      1 // Copyright 2013 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef CONTENT_BROWSER_RENDERER_HOST_INPUT_INPUT_ACK_HANDLER_H_
      6 #define CONTENT_BROWSER_RENDERER_HOST_INPUT_INPUT_ACK_HANDLER_H_
      7 
      8 #include "base/basictypes.h"
      9 #include "content/browser/renderer_host/event_with_latency_info.h"
     10 #include "content/common/input/input_event_ack_state.h"
     11 #include "content/public/browser/native_web_keyboard_event.h"
     12 #include "third_party/WebKit/public/web/WebInputEvent.h"
     13 
     14 namespace content {
     15 
     16 // Provided customized ack response for input events.
     17 class CONTENT_EXPORT InputAckHandler {
     18  public:
     19   virtual ~InputAckHandler() {}
     20 
     21   // Called upon event ack receipt from the renderer.
     22   virtual void OnKeyboardEventAck(const NativeWebKeyboardEvent& event,
     23                                   InputEventAckState ack_result) = 0;
     24   virtual void OnWheelEventAck(const MouseWheelEventWithLatencyInfo& event,
     25                                InputEventAckState ack_result) = 0;
     26   virtual void OnTouchEventAck(const TouchEventWithLatencyInfo& event,
     27                                InputEventAckState ack_result) = 0;
     28   virtual void OnGestureEventAck(const GestureEventWithLatencyInfo& event,
     29                                  InputEventAckState ack_result) = 0;
     30 
     31   enum UnexpectedEventAckType {
     32     UNEXPECTED_ACK,
     33     UNEXPECTED_EVENT_TYPE,
     34     BAD_ACK_MESSAGE
     35   };
     36   virtual void OnUnexpectedEventAck(UnexpectedEventAckType type) = 0;
     37 };
     38 
     39 } // namespace content
     40 
     41 #endif // CONTENT_BROWSER_RENDERER_HOST_INPUT_INPUT_ACK_HANDLER_H_
     42