Chromium Code Reviews
[email protected] (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1080)

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

Issue 1042003: Initial version of an experimental Extensions Context Menu API.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 9 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.h
===================================================================
--- chrome/browser/tab_contents/render_view_context_menu.h (revision 42220)
+++ chrome/browser/tab_contents/render_view_context_menu.h (working copy)
@@ -1,15 +1,20 @@
-// Copyright (c) 2006-2009 The Chromium Authors. All rights reserved.
+// Copyright (c) 2010 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_H_
#define CHROME_BROWSER_TAB_CONTENTS_RENDER_VIEW_CONTEXT_MENU_H_
+#include <map>
+#include <string>
+#include <vector>
+
#include "base/string16.h"
#include "chrome/common/page_transition_types.h"
#include "webkit/glue/context_menu.h"
#include "webkit/glue/window_open_disposition.h"
+class ExtensionMenuItem;
class Profile;
class TabContents;
@@ -89,7 +94,29 @@
void AppendCopyItem();
void AppendEditableItems();
void AppendSearchProvider();
+ void AppendAllExtensionItems();
+ // When extensions have more than 1 top-level item or a single parent item
+ // with children, we will start a sub menu. In the case of 1 parent with
+ // children, we will remove the parent from |items| and insert the children
+ // into it. The |index| parameter is incremented if we start a submenu. This
+ // returns true if a submenu was started. If we had multiple top-level items
+ // that needed to be pushed into a submenu, we'll use |extension_name| as the
+ // title.
+ bool MaybeStartExtensionSubMenu(const string16& selection_text,
+ const std::string& extension_name,
+ std::vector<const ExtensionMenuItem*>* items,
+ int* index);
+
+ // Fills in |items| with matching items for extension with |extension_id|.
+ void GetItemsForExtension(const std::string& extension_id,
+ std::vector<const ExtensionMenuItem*>* items);
+
+ // This is a helper function to append items for one particular extension.
+ // The |index| parameter is used for assigning id's, and is incremented for
+ // each item actually added.
+ void AppendExtensionItems(const std::string& extension_id, int* index);
+
// Opens the specified URL string in a new tab. If |in_current_window| is
// false, a new window is created to hold the new tab.
void OpenURL(const GURL& url,
@@ -110,10 +137,21 @@
bool IsDevCommandEnabled(int id) const;
+ // Returns a (possibly truncated) version of the current selection text
+ // suitable or putting in the title of a menu item.
+ string16 PrintableSelectionText();
+
+ // Attempts to get an ExtensionMenuItem given the id of a context menu item.
+ ExtensionMenuItem* GetExtensionMenuItem(int id) const;
+
// The destination URL to use if the user tries to search for or navigate to
// a text selection.
GURL selection_navigation_url_;
+ // Maps the id from a context menu item to the ExtensionMenuItem's internal
+ // id.
+ std::map<int, int> extension_item_map_;
+
DISALLOW_COPY_AND_ASSIGN(RenderViewContextMenu);
};

Powered by Google App Engine
This is Rietveld 408576698