Refactor management of overview window copy lifetime into a separate class.
[chromium-blink-merge.git] / content / shell / browser / shell_web_contents_view_delegate.h
blob86d97b407b05446d38fe3dd07fc78ca4e837c3d1
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"
15 #endif
17 namespace content {
19 class ShellWebContentsViewDelegate : public WebContentsViewDelegate {
20 public:
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);
41 #elif defined(OS_WIN)
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);
48 #endif
50 private:
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,
59 OnBackMenuActivated);
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,
67 OnCutMenuActivated);
68 CHROMEGTK_CALLBACK_0(ShellWebContentsViewDelegate, void,
69 OnCopyMenuActivated);
70 CHROMEGTK_CALLBACK_0(ShellWebContentsViewDelegate, void,
71 OnPasteMenuActivated);
72 CHROMEGTK_CALLBACK_0(ShellWebContentsViewDelegate, void,
73 OnDeleteMenuActivated);
74 CHROMEGTK_CALLBACK_0(ShellWebContentsViewDelegate, void,
75 OnInspectMenuActivated);
76 #endif
78 DISALLOW_COPY_AND_ASSIGN(ShellWebContentsViewDelegate);
81 } // namespace content
83 #endif // CONTENT_SHELL_BROWSER_SHELL_WEB_CONTENTS_VIEW_DELEGATE_H_