15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef CONTENT_BROWSER_RENDER_WIDGET_HOST_DELEGATE_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CONTENT_BROWSER_RENDER_WIDGET_HOST_DELEGATE_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "base/basictypes.h" 9c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "build/build_config.h" 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/common/content_export.h" 11c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "ui/gfx/native_widget_types.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)namespace blink { 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class WebMouseWheelEvent; 155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)class WebGestureEvent; 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace content { 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 20116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass BrowserAccessibilityManager; 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class RenderWidgetHostImpl; 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct NativeWebKeyboardEvent; 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// RenderWidgetHostDelegate 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// An interface implemented by an object interested in knowing about the state 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// of the RenderWidgetHost. 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class CONTENT_EXPORT RenderWidgetHostDelegate { 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The RenderWidgetHost is going to be deleted. 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void RenderWidgetDeleted(RenderWidgetHostImpl* render_widget_host) {} 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Callback to give the browser a chance to handle the specified keyboard 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // event before sending it to the renderer. 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns true if the |event| was handled. Otherwise, if the |event| would 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // be handled in HandleKeyboardEvent() method as a normal keyboard shortcut, 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // |*is_keyboard_shortcut| should be set to true. 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool PreHandleKeyboardEvent(const NativeWebKeyboardEvent& event, 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool* is_keyboard_shortcut); 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Callback to inform the browser that the renderer did not process the 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // specified events. This gives an opportunity to the browser to process the 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // event (used for keyboard shortcuts). 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void HandleKeyboardEvent(const NativeWebKeyboardEvent& event) {} 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 47a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) // Callback to inform the browser that the renderer did not process the 48a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) // specified mouse wheel event. Returns true if the browser has handled 49a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) // the event itself. 50a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) virtual bool HandleWheelEvent(const blink::WebMouseWheelEvent& event); 512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Callback to give the browser a chance to handle the specified gesture 535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // event before sending it to the renderer. 545d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Returns true if the |event| was handled. 555d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual bool PreHandleGestureEvent(const blink::WebGestureEvent& event); 565d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 57effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch // Callback to inform the browser that the renderer did not process the 58effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch // specified gesture event. Returns true if the |event| was handled. 59effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch virtual bool HandleGestureEvent(const blink::WebGestureEvent& event); 60effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 6190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) // Notifies that screen rects were sent to renderer process. 6290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) virtual void DidSendScreenRects(RenderWidgetHostImpl* rwh) {} 6390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 64116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // Get the root BrowserAccessibilityManager for this frame tree. 65116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual BrowserAccessibilityManager* GetRootBrowserAccessibilityManager(); 66116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 67116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // Get the root BrowserAccessibilityManager for this frame tree, 68116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // or create it if it doesn't exist. 69116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual BrowserAccessibilityManager* 70116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch GetOrCreateRootBrowserAccessibilityManager(); 71116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 725d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#if defined(OS_WIN) 73c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual gfx::NativeViewAccessible GetParentNativeViewAccessible(); 74c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#endif 75c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) protected: 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~RenderWidgetHostDelegate() {} 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace content 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // CONTENT_BROWSER_RENDER_WIDGET_HOST_DELEGATE_H_ 83