| // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CONTENT_BROWSER_RENDER_WIDGET_HOST_DELEGATE_H_ |
| #define CONTENT_BROWSER_RENDER_WIDGET_HOST_DELEGATE_H_ |
| |
| #include "base/basictypes.h" |
| #include "build/build_config.h" |
| #include "content/common/content_export.h" |
| #include "ui/gfx/native_widget_types.h" |
| |
| namespace blink { |
| class WebMouseWheelEvent; |
| class WebGestureEvent; |
| } |
| |
| namespace content { |
| |
| class BrowserAccessibilityManager; |
| class RenderWidgetHostImpl; |
| struct NativeWebKeyboardEvent; |
| |
| // |
| // RenderWidgetHostDelegate |
| // |
| // An interface implemented by an object interested in knowing about the state |
| // of the RenderWidgetHost. |
| class CONTENT_EXPORT RenderWidgetHostDelegate { |
| public: |
| // The RenderWidgetHost is going to be deleted. |
| virtual void RenderWidgetDeleted(RenderWidgetHostImpl* render_widget_host) {} |
| |
| // Callback to give the browser a chance to handle the specified keyboard |
| // event before sending it to the renderer. |
| // Returns true if the |event| was handled. Otherwise, if the |event| would |
| // be handled in HandleKeyboardEvent() method as a normal keyboard shortcut, |
| // |*is_keyboard_shortcut| should be set to true. |
| virtual bool PreHandleKeyboardEvent(const NativeWebKeyboardEvent& event, |
| bool* is_keyboard_shortcut); |
| |
| // Callback to inform the browser that the renderer did not process the |
| // specified events. This gives an opportunity to the browser to process the |
| // event (used for keyboard shortcuts). |
| virtual void HandleKeyboardEvent(const NativeWebKeyboardEvent& event) {} |
| |
| // Callback to inform the browser that the renderer did not process the |
| // specified mouse wheel event. Returns true if the browser has handled |
| // the event itself. |
| virtual bool HandleWheelEvent(const blink::WebMouseWheelEvent& event); |
| |
| // Callback to give the browser a chance to handle the specified gesture |
| // event before sending it to the renderer. |
| // Returns true if the |event| was handled. |
| virtual bool PreHandleGestureEvent(const blink::WebGestureEvent& event); |
| |
| // Callback to inform the browser that the renderer did not process the |
| // specified gesture event. Returns true if the |event| was handled. |
| virtual bool HandleGestureEvent(const blink::WebGestureEvent& event); |
| |
| // Notifies that screen rects were sent to renderer process. |
| virtual void DidSendScreenRects(RenderWidgetHostImpl* rwh) {} |
| |
| // Notifies that RenderWidgetHost will toggle touch emulation. |
| virtual void OnTouchEmulationEnabled(bool enabled) {} |
| |
| // Get the root BrowserAccessibilityManager for this frame tree. |
| virtual BrowserAccessibilityManager* GetRootBrowserAccessibilityManager(); |
| |
| // Get the root BrowserAccessibilityManager for this frame tree, |
| // or create it if it doesn't exist. |
| virtual BrowserAccessibilityManager* |
| GetOrCreateRootBrowserAccessibilityManager(); |
| |
| #if defined(OS_WIN) |
| virtual gfx::NativeViewAccessible GetParentNativeViewAccessible(); |
| #endif |
| |
| protected: |
| virtual ~RenderWidgetHostDelegate() {} |
| }; |
| |
| } // namespace content |
| |
| #endif // CONTENT_BROWSER_RENDER_WIDGET_HOST_DELEGATE_H_ |