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

Unified Diff: chrome/browser/tab_contents/render_view_context_menu_observer.h

Issue 7713033: Integrate the Spelling service to Chrome. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/tab_contents/render_view_context_menu_observer.h
===================================================================
--- chrome/browser/tab_contents/render_view_context_menu_observer.h (revision 0)
+++ chrome/browser/tab_contents/render_view_context_menu_observer.h (revision 0)
@@ -0,0 +1,102 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_TAB_CONTENTS_RENDER_VIEW_CONTEXT_MENU_OBSERVER_H_
+#define CHROME_BROWSER_TAB_CONTENTS_RENDER_VIEW_CONTEXT_MENU_OBSERVER_H_
+#pragma once
+
+struct ContextMenuParams;
+
+// The interface used for implementing context-menu items. The following
+// instruction describe how to implement a context-menu item with this
+// interface.
+//
+// 1. Add command IDs for the context-menu items to 'chrome_command_ids.h'.
+//
+// #define IDC_MY_COMMAND 99999
+//
+// 2. Add strings for the context-menu items to 'generated_sources.grd'.
+//
+// <message name="IDS_MY_COMMAND" desc="...">
+// My command
+// </message>
+//
+// 3. Create a class that implements this interface. (It is a good idea to use
+// the RenderViewContextMenuDelegate interface to avoid accessing the
+// RenderViewContextMenu class directly.)
+//
+// class MyMenuObserver : public RenderViewContextMenuObserver {
+// public:
+// MyMenuObserver(RenderViewContextMenuDelegate* d);
+// ~MyMenuObserver();
+//
+// virtual void InitMenu(const ContextMenuParams& params) OVERRIDE;
+// virtual bool IsCommandIdSupported(int command_id) OVERRIDE;
+// virtual bool IsCommandIdEnabled(int command_id) OVERRIDE;
+// virtual void ExecuteCommand(int command_id) OVERRIDE;
+//
+// private:
+// RenderViewContextMenuDelgate* delegate_;
+// }
+//
+// void MyMenuObserver::InitMenu(const ContextMenuParams& params) {
+// delegate_->AddMenuItem(IDC_MY_COMMAND,...);
+// }
+//
+// bool MyMenuObserver::IsCommandIdSupported(int command_id) {
+// return command_id == IDC_MY_COMMAND;
+// }
+//
+// bool MyMenuObserver::IsCommandIdEnabled(int command_id) {
+// DCHECK(command_id == IDC_MY_COMMAND);
+// return true;
+// }
+//
+// void MyMenuObserver::ExecuteCommand(int command_id) {
+// DCHECK(command_id == IDC_MY_COMMAND);
+// }
+//
+// 4. Add this observer class to the RenderViewContextMenu class. (It is good
+// to use scoped_ptr<> so Chrome can create its instances only when it needs.)
+//
+// class RenderViewContextMenu {
+// ...
+// private:
+// scoped_ptr<MyMenuObserver> my_menu_observer_;
+// };
+//
+// 5. Create its instance in InitMenu() and add it to the observer list of the
+// RenderViewContextMenu class.
+//
+// void RenderViewContextMenu::InitMenu() {
+// ...
+// my_menu_observer_.reset(new MyMenuObserver(this));
+// observers_.AddObserver(my_menu_observer_.get());
+// }
+//
+//
+class RenderViewContextMenuObserver {
+ public:
+ virtual ~RenderViewContextMenuObserver() {}
+
+ // Called when the RenderViewContextMenu class initializes a context menu. We
+ // usually call RenderViewContextMenuDelegate::AddMenuItem() to add menu items
+ // in this function.
+ virtual void InitMenu(const ContextMenuParams& params);
+
+ // Called when the RenderViewContextMenu class asks whether an observer
+ // listens for the specified command ID. If this function returns true, the
+ // RenderViewContextMenu class calls IsCommandIdEnabled() or ExecuteCommand().
+ virtual bool IsCommandIdSupported(int command_id);
+
+ // Called when the RenderViewContextMenu class sets the initial status of the
+ // specified context-menu item. If we need to enable or disable a context-menu
+ // item while showing, use RenderViewContextMenuDelegate::UpdateMenuItem().
+ virtual bool IsCommandIdEnabled(int command_id);
+
+ // Called when a user selects the specified context-menu item.
+ virtual void ExecuteCommand(int command_id);
+};
+
+#endif // CHROME_BROWSER_TAB_CONTENTS_RENDER_VIEW_CONTEXT_MENU_OBSERVER_H_
Property changes on: chrome\browser\tab_contents\render_view_context_menu_observer.h
___________________________________________________________________
Added: svn:eol-style
+ LF

Powered by Google App Engine
This is Rietveld 408576698