Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(566)

Side by Side Diff: chrome/browser/renderer_context_menu/render_view_context_menu.h

Issue 417063004: Separate Toolkit specific impl (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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.
lazyboy 2014/07/31 18:59:04 nit: Initializes the ...
oshima 2014/07/31 19:51:15 Done.
58 virtual void Init(ui::SimpleMenuModel* menu_model) = 0;
59
60 virtual void Cancel() = 0;
61
62 // Update the actual menu items controlled by the toolkit.
lazyboy 2014/07/31 18:59:04 nit: // Updates the actual ....
oshima 2014/07/31 19:51:15 Done.
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
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
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
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_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698