| 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);
|
| };
|
|
|
|
|