OLD | NEW |
| (Empty) |
1 // Copyright (c) 2012 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. | |
4 | |
5 #ifndef CHROME_BROWSER_TAB_CONTENTS_CHROME_WEB_CONTENTS_VIEW_MAC_DELEGATE_H_ | |
6 #define CHROME_BROWSER_TAB_CONTENTS_CHROME_WEB_CONTENTS_VIEW_MAC_DELEGATE_H_ | |
7 #pragma once | |
8 | |
9 #if defined(__OBJC__) | |
10 | |
11 #include "base/basictypes.h" | |
12 #include "base/memory/scoped_ptr.h" | |
13 #include "content/public/browser/web_contents_view_mac_delegate.h" | |
14 | |
15 class RenderViewContextMenuMac; | |
16 class WebDragBookmarkHandlerMac; | |
17 | |
18 namespace content { | |
19 class WebContents; | |
20 } | |
21 | |
22 // A chrome/ specific class that extends WebContentsViewMac with features that | |
23 // live in chrome/. | |
24 class ChromeWebContentsViewMacDelegate | |
25 : public content::WebContentsViewMacDelegate { | |
26 public: | |
27 explicit ChromeWebContentsViewMacDelegate(content::WebContents* web_contents); | |
28 virtual ~ChromeWebContentsViewMacDelegate(); | |
29 | |
30 // Overridden from WebContentsViewMacDelegate: | |
31 virtual NSObject<RenderWidgetHostViewMacDelegate>* | |
32 CreateRenderWidgetHostViewDelegate( | |
33 content::RenderWidgetHost* render_widget_host) OVERRIDE; | |
34 virtual content::WebDragDestDelegate* DragDelegate() OVERRIDE; | |
35 virtual void ShowContextMenu( | |
36 const content::ContextMenuParams& params) OVERRIDE; | |
37 virtual void NativeViewCreated(NSView* view) OVERRIDE; | |
38 virtual void NativeViewDestroyed(NSView* view) OVERRIDE; | |
39 | |
40 private: | |
41 // The context menu. Callbacks are asynchronous so we need to keep it around. | |
42 scoped_ptr<RenderViewContextMenuMac> context_menu_; | |
43 | |
44 // The chrome specific delegate that receives events from WebDragDestMac. | |
45 scoped_ptr<WebDragBookmarkHandlerMac> bookmark_handler_; | |
46 | |
47 // The WebContents that owns the view. | |
48 content::WebContents* web_contents_; | |
49 | |
50 DISALLOW_COPY_AND_ASSIGN(ChromeWebContentsViewMacDelegate); | |
51 }; | |
52 | |
53 #endif // __OBJC__ | |
54 | |
55 namespace content { | |
56 class WebContents; | |
57 class WebContentsViewMacDelegate; | |
58 } | |
59 | |
60 namespace chrome_web_contents_view_mac_delegate { | |
61 // Creates a ChromeWebContentsViewMacDelegate. | |
62 content::WebContentsViewMacDelegate* CreateWebContentsViewMacDelegate( | |
63 content::WebContents* web_contents); | |
64 } | |
65 | |
66 #endif // CHROME_BROWSER_TAB_CONTENTS_CHROME_WEB_CONTENTS_VIEW_MAC_DELEGATE_H_ | |
OLD | NEW |