// 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_RENDERER_HOST_RENDER_WIDGET_HOST_DELEGATE_H_ #define CONTENT_BROWSER_RENDERER_HOST_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) {} // The RenderWidgetHost got the focus. virtual void RenderWidgetGotFocus(RenderWidgetHostImpl* render_widget_host) {} // The RenderWidget was resized. virtual void RenderWidgetWasResized(RenderWidgetHostImpl* render_widget_host, bool width_changed) {} // The screen info has changed. virtual void ScreenInfoChanged() {} // 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); // Notifies that screen rects were sent to renderer process. virtual void DidSendScreenRects(RenderWidgetHostImpl* rwh) {} // 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_RENDERER_HOST_RENDER_WIDGET_HOST_DELEGATE_H_