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.
5 #ifndef CONTENT_SHELL_BROWSER_SHELL_WEB_CONTENTS_VIEW_DELEGATE_H_
6 #define CONTENT_SHELL_BROWSER_SHELL_WEB_CONTENTS_VIEW_DELEGATE_H_
8 #include "content/public/browser/web_contents.h"
9 #include "content/public/browser/web_contents_view_delegate.h"
10 #include "content/public/common/context_menu_params.h"
12 #if defined(TOOLKIT_GTK)
13 #include "ui/base/gtk/gtk_signal.h"
14 #include "ui/base/gtk/owned_widget_gtk.h"
19 class ShellWebContentsViewDelegate
: public WebContentsViewDelegate
{
21 explicit ShellWebContentsViewDelegate(WebContents
* web_contents
);
22 virtual ~ShellWebContentsViewDelegate();
24 // Overridden from WebContentsViewDelegate:
25 virtual void ShowContextMenu(const ContextMenuParams
& params
) OVERRIDE
;
26 virtual WebDragDestDelegate
* GetDragDestDelegate() OVERRIDE
;
28 #if defined(TOOLKIT_GTK)
29 virtual void Initialize(GtkWidget
* expanded_container
,
30 ui::FocusStoreGtk
* focus_store
) OVERRIDE
;
31 virtual gfx::NativeView
GetNativeView() const OVERRIDE
;
32 virtual void Focus() OVERRIDE
;
33 virtual gboolean
OnNativeViewFocusEvent(GtkWidget
* widget
,
34 GtkDirectionType type
,
35 gboolean
* return_value
) OVERRIDE
;
36 #elif defined(OS_MACOSX)
37 virtual NSObject
<RenderWidgetHostViewMacDelegate
>*
38 CreateRenderWidgetHostViewDelegate(
39 RenderWidgetHost
* render_widget_host
) OVERRIDE
;
40 void ActionPerformed(int id
);
42 virtual void StoreFocus() OVERRIDE
;
43 virtual void RestoreFocus() OVERRIDE
;
44 virtual bool Focus() OVERRIDE
;
45 virtual void TakeFocus(bool reverse
) OVERRIDE
;
46 virtual void SizeChanged(const gfx::Size
& size
) OVERRIDE
;
47 void MenuItemSelected(int selection
);
51 WebContents
* web_contents_
;
52 ContextMenuParams params_
;
54 #if defined(TOOLKIT_GTK)
55 ui::OwnedWidgetGtk floating_
;
56 GtkWidget
* expanded_container_
;
58 CHROMEGTK_CALLBACK_0(ShellWebContentsViewDelegate
, void,
60 CHROMEGTK_CALLBACK_0(ShellWebContentsViewDelegate
, void,
61 OnForwardMenuActivated
);
62 CHROMEGTK_CALLBACK_0(ShellWebContentsViewDelegate
, void,
63 OnReloadMenuActivated
);
64 CHROMEGTK_CALLBACK_0(ShellWebContentsViewDelegate
, void,
65 OnOpenURLMenuActivated
);
66 CHROMEGTK_CALLBACK_0(ShellWebContentsViewDelegate
, void,
68 CHROMEGTK_CALLBACK_0(ShellWebContentsViewDelegate
, void,
70 CHROMEGTK_CALLBACK_0(ShellWebContentsViewDelegate
, void,
71 OnPasteMenuActivated
);
72 CHROMEGTK_CALLBACK_0(ShellWebContentsViewDelegate
, void,
73 OnDeleteMenuActivated
);
74 CHROMEGTK_CALLBACK_0(ShellWebContentsViewDelegate
, void,
75 OnInspectMenuActivated
);
78 DISALLOW_COPY_AND_ASSIGN(ShellWebContentsViewDelegate
);
81 } // namespace content
83 #endif // CONTENT_SHELL_BROWSER_SHELL_WEB_CONTENTS_VIEW_DELEGATE_H_