Index: content/public/browser/web_contents_view_delegate.h |
=================================================================== |
--- content/public/browser/web_contents_view_delegate.h (revision 126521) |
+++ content/public/browser/web_contents_view_delegate.h (working copy) |
@@ -6,27 +6,42 @@ |
#define CONTENT_PUBLIC_BROWSER_WEB_CONTENTS_VIEW_WIN_DELEGATE_H_ |
#pragma once |
+#if defined(TOOLKIT_USES_GTK) |
+#include <gtk/gtk.h> |
+#elif defined(OS_MACOSX) |
+#import <Cocoa/Cocoa.h> |
+#endif |
+ |
#include "content/common/content_export.h" |
#include "ui/gfx/native_widget_types.h" |
+#if defined(OS_MACOSX) |
+@protocol RenderWidgetHostViewMacDelegate; |
+#endif |
+ |
namespace gfx { |
class Size; |
} |
namespace content { |
+class RenderWidgetHost; |
class WebDragDestDelegate; |
struct ContextMenuParams; |
-// This interface allows a client to extend the functionality of |
-// WebContentsViewWin. |
-class CONTENT_EXPORT WebContentsViewWinDelegate { |
+// This interface allows a client to extend the functionality of the |
+// WebContentsView implementation. |
+class CONTENT_EXPORT WebContentsViewDelegate { |
public: |
- virtual ~WebContentsViewWinDelegate() {} |
+ virtual ~WebContentsViewDelegate() {} |
// Returns a delegate to process drags not handled by content. |
virtual WebDragDestDelegate* GetDragDestDelegate() = 0; |
+ // Shows a context menu. |
+ virtual void ShowContextMenu(const content::ContextMenuParams& params) = 0; |
+ |
+#if defined(OS_WIN) && !defined(USE_AURA) |
// These methods allow the embedder to intercept WebContentsViewWin's |
// implementation of these WebContentsView methods. See the WebContentsView |
// interface documentation for more information about these methods. |
@@ -34,8 +49,36 @@ |
virtual void RestoreFocus() = 0; |
virtual bool Focus() = 0; |
virtual void TakeFocus(bool reverse) = 0; |
- virtual void ShowContextMenu(const content::ContextMenuParams& params) = 0; |
virtual void SizeChanged(const gfx::Size& size) = 0; |
+#elif defined(TOOLKIT_USES_GTK) |
+ // Initializes the WebContentsViewDelegate. |
+ virtual void Initialize(GtkWidget* expanded_container) = 0; |
+ |
+ // Returns the top widget that contains |view| passed in from WrapView. This |
+ // is exposed through TabContentsViewGtk::GetNativeView() when a wrapper is |
+ // supplied to a TabContentsViewGtk. |
+ virtual gfx::NativeView GetNativeView() const = 0; |
+ |
+ // Handles a focus event from the renderer process. |
+ virtual void Focus() = 0; |
+ |
+ // Gives the delegate a first chance at focus events from our render widget |
+ // host, before the main view invokes its default behaviour. Returns TRUE if |
+ // |return_value| has been set and that value should be returned to GTK+. |
+ virtual gboolean OnNativeViewFocusEvent(GtkWidget* widget, |
+ GtkDirectionType type, |
+ gboolean* return_value) = 0; |
+#elif defined(OS_MACOSX) |
+ // Returns a newly-created delegate for the RenderWidgetHostViewMac, to handle |
+ // events on the responder chain. |
+ virtual NSObject<RenderWidgetHostViewMacDelegate>* |
+ CreateRenderWidgetHostViewDelegate( |
+ RenderWidgetHost* render_widget_host) = 0; |
+ |
+ // Notifications that the native view was created/destroyed. |
+ virtual void NativeViewCreated(NSView* view) = 0; |
+ virtual void NativeViewDestroyed(NSView* view) = 0; |
+#endif |
}; |
} // namespace content |