OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_BROWSER_RENDERER_CONTEXT_MENU_RENDER_VIEW_CONTEXT_MENU_H_ | 5 #ifndef CHROME_BROWSER_RENDERER_CONTEXT_MENU_RENDER_VIEW_CONTEXT_MENU_H_ |
6 #define CHROME_BROWSER_RENDERER_CONTEXT_MENU_RENDER_VIEW_CONTEXT_MENU_H_ | 6 #define CHROME_BROWSER_RENDERER_CONTEXT_MENU_RENDER_VIEW_CONTEXT_MENU_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 #include <string> | 9 #include <string> |
10 | 10 |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
42 } | 42 } |
43 | 43 |
44 namespace blink { | 44 namespace blink { |
45 struct WebMediaPlayerAction; | 45 struct WebMediaPlayerAction; |
46 struct WebPluginAction; | 46 struct WebPluginAction; |
47 } | 47 } |
48 | 48 |
49 class RenderViewContextMenu : public ui::SimpleMenuModel::Delegate, | 49 class RenderViewContextMenu : public ui::SimpleMenuModel::Delegate, |
50 public RenderViewContextMenuProxy { | 50 public RenderViewContextMenuProxy { |
51 public: | 51 public: |
52 // A delegate interface to communicate with the toolkit used by | |
53 // the embedder. | |
54 class ToolkitDelegate { | |
55 public: | |
56 virtual ~ToolkitDelegate() {} | |
57 // Initialize the toolkit's menu. | |
58 virtual void Init(ui::SimpleMenuModel* menu_model) = 0; | |
59 | |
60 virtual void Cancel() = 0; | |
61 | |
62 // Updates the actual menu items controlled by the toolkit. | |
63 virtual void UpdateMenuItem(int command_id, | |
64 bool enabled, | |
65 bool hidden, | |
66 const base::string16& title) = 0; | |
67 }; | |
68 | |
52 static const size_t kMaxSelectionTextLength; | 69 static const size_t kMaxSelectionTextLength; |
53 | 70 |
54 // Convert a command ID so that it fits within the range for | 71 // Convert a command ID so that it fits within the range for |
55 // content context menu. | 72 // content context menu. |
56 static int ConvertToContentCustomCommandId(int id); | 73 static int ConvertToContentCustomCommandId(int id); |
57 | 74 |
58 // True if the given id is the one generated for content context menu. | 75 // True if the given id is the one generated for content context menu. |
59 static bool IsContentCustomCommandId(int id); | 76 static bool IsContentCustomCommandId(int id); |
60 | 77 |
61 RenderViewContextMenu(content::RenderFrameHost* render_frame_host, | 78 RenderViewContextMenu(content::RenderFrameHost* render_frame_host, |
(...skipping 10 matching lines...) Expand all Loading... | |
72 const ui::SimpleMenuModel& menu_model() const { return menu_model_; } | 89 const ui::SimpleMenuModel& menu_model() const { return menu_model_; } |
73 const content::ContextMenuParams& params() const { return params_; } | 90 const content::ContextMenuParams& params() const { return params_; } |
74 | 91 |
75 // SimpleMenuModel::Delegate implementation. | 92 // SimpleMenuModel::Delegate implementation. |
76 virtual bool IsCommandIdChecked(int command_id) const OVERRIDE; | 93 virtual bool IsCommandIdChecked(int command_id) const OVERRIDE; |
77 virtual bool IsCommandIdEnabled(int command_id) const OVERRIDE; | 94 virtual bool IsCommandIdEnabled(int command_id) const OVERRIDE; |
78 virtual void ExecuteCommand(int command_id, int event_flags) OVERRIDE; | 95 virtual void ExecuteCommand(int command_id, int event_flags) OVERRIDE; |
79 virtual void MenuWillShow(ui::SimpleMenuModel* source) OVERRIDE; | 96 virtual void MenuWillShow(ui::SimpleMenuModel* source) OVERRIDE; |
80 virtual void MenuClosed(ui::SimpleMenuModel* source) OVERRIDE; | 97 virtual void MenuClosed(ui::SimpleMenuModel* source) OVERRIDE; |
81 | 98 |
82 // RenderViewContextMenuProxy implementation. | 99 // RenderViewContextMenuProxy implementation.em |
sky
2014/07/31 21:23:43
nit: remove em
oshima
2014/07/31 22:02:15
Done.
| |
83 virtual void AddMenuItem(int command_id, | 100 virtual void AddMenuItem(int command_id, |
84 const base::string16& title) OVERRIDE; | 101 const base::string16& title) OVERRIDE; |
85 virtual void AddCheckItem(int command_id, | 102 virtual void AddCheckItem(int command_id, |
86 const base::string16& title) OVERRIDE; | 103 const base::string16& title) OVERRIDE; |
87 virtual void AddSeparator() OVERRIDE; | 104 virtual void AddSeparator() OVERRIDE; |
88 virtual void AddSubMenu(int command_id, | 105 virtual void AddSubMenu(int command_id, |
89 const base::string16& label, | 106 const base::string16& label, |
90 ui::MenuModel* model) OVERRIDE; | 107 ui::MenuModel* model) OVERRIDE; |
91 virtual void UpdateMenuItem(int command_id, | 108 virtual void UpdateMenuItem(int command_id, |
92 bool enabled, | 109 bool enabled, |
93 bool hidden, | 110 bool hidden, |
94 const base::string16& title) OVERRIDE; | 111 const base::string16& title) OVERRIDE; |
95 virtual content::RenderViewHost* GetRenderViewHost() const OVERRIDE; | 112 virtual content::RenderViewHost* GetRenderViewHost() const OVERRIDE; |
96 virtual content::WebContents* GetWebContents() const OVERRIDE; | 113 virtual content::WebContents* GetWebContents() const OVERRIDE; |
97 virtual content::BrowserContext* GetBrowserContext() const OVERRIDE; | 114 virtual content::BrowserContext* GetBrowserContext() const OVERRIDE; |
98 | 115 |
99 protected: | 116 protected: |
117 void set_toolkit_delegate(scoped_ptr<ToolkitDelegate> delegate) { | |
118 toolkit_delegate_ = delegate.Pass(); | |
119 } | |
120 | |
121 ToolkitDelegate* toolkit_delegate() { | |
122 return toolkit_delegate_.get(); | |
123 } | |
124 | |
100 void InitMenu(); | 125 void InitMenu(); |
101 Profile* GetProfile(); | 126 Profile* GetProfile(); |
102 | 127 |
103 // Platform specific functions. | 128 // Platform specific functions. |
104 virtual void PlatformInit() = 0; | |
105 virtual void PlatformCancel() = 0; | |
106 virtual bool GetAcceleratorForCommandId( | 129 virtual bool GetAcceleratorForCommandId( |
107 int command_id, | 130 int command_id, |
108 ui::Accelerator* accelerator) = 0; | 131 ui::Accelerator* accelerator) = 0; |
109 virtual void AppendPlatformEditableItems(); | 132 virtual void AppendPlatformEditableItems(); |
110 | 133 |
111 content::ContextMenuParams params_; | 134 content::ContextMenuParams params_; |
112 content::WebContents* source_web_contents_; | 135 content::WebContents* source_web_contents_; |
113 // The RenderFrameHost's IDs. | 136 // The RenderFrameHost's IDs. |
114 int render_process_id_; | 137 int render_process_id_; |
115 int render_frame_id_; | 138 int render_frame_id_; |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
210 | 233 |
211 // Our observers. | 234 // Our observers. |
212 mutable ObserverList<RenderViewContextMenuObserver> observers_; | 235 mutable ObserverList<RenderViewContextMenuObserver> observers_; |
213 | 236 |
214 // Whether a command has been executed. Used to track whether menu observers | 237 // Whether a command has been executed. Used to track whether menu observers |
215 // should be notified of menu closing without execution. | 238 // should be notified of menu closing without execution. |
216 bool command_executed_; | 239 bool command_executed_; |
217 | 240 |
218 scoped_ptr<ContextMenuContentType> content_type_; | 241 scoped_ptr<ContextMenuContentType> content_type_; |
219 | 242 |
243 scoped_ptr<ToolkitDelegate> toolkit_delegate_; | |
244 | |
220 DISALLOW_COPY_AND_ASSIGN(RenderViewContextMenu); | 245 DISALLOW_COPY_AND_ASSIGN(RenderViewContextMenu); |
221 }; | 246 }; |
222 | 247 |
223 #endif // CHROME_BROWSER_RENDERER_CONTEXT_MENU_RENDER_VIEW_CONTEXT_MENU_H_ | 248 #endif // CHROME_BROWSER_RENDERER_CONTEXT_MENU_RENDER_VIEW_CONTEXT_MENU_H_ |
OLD | NEW |