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

Side by Side Diff: chrome/browser/extensions/action_box_controller.h

Issue 10388160: Only return the visible page actions from PageActionController. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: actually fix Created 8 years, 7 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
« no previous file with comments | « no previous file | chrome/browser/extensions/action_box_controller.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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_EXTENSIONS_ACTION_BOX_CONTROLLER_H_ 5 #ifndef CHROME_BROWSER_EXTENSIONS_ACTION_BOX_CONTROLLER_H_
6 #define CHROME_BROWSER_EXTENSIONS_ACTION_BOX_CONTROLLER_H_ 6 #define CHROME_BROWSER_EXTENSIONS_ACTION_BOX_CONTROLLER_H_
7 #pragma once 7 #pragma once
8 8
9 #include <set>
9 #include <string> 10 #include <string>
10 #include <vector> 11 #include <vector>
11 12
12 #include "base/memory/scoped_ptr.h" 13 #include "base/memory/scoped_ptr.h"
13 14
14 class ExtensionAction; 15 class ExtensionAction;
15 16
16 namespace extensions { 17 namespace extensions {
17 18
18 // Controller of the "badges" (aka "page actions") in the UI. 19 // Controller of the "badges" (aka "page actions") in the UI.
19 class ActionBoxController { 20 class ActionBoxController {
20 public: 21 public:
21 // UI decoration on a page box item.
22 enum Decoration {
23 DECORATION_NONE,
24 };
25
26 // Data about a UI badge.
27 struct Data {
28 // The type of decoration that should be applied to the badge.
29 Decoration decoration;
30
31 // The ExtensionAction that corresponds to the badge.
32 ExtensionAction* action;
33 };
34
35 typedef std::vector<Data> DataList;
36
37 // The reaction that the UI should take after executing |OnClicked|. 22 // The reaction that the UI should take after executing |OnClicked|.
38 enum Action { 23 enum Action {
39 ACTION_NONE, 24 ACTION_NONE,
40 ACTION_SHOW_POPUP, 25 ACTION_SHOW_POPUP,
41 ACTION_SHOW_CONTEXT_MENU, 26 ACTION_SHOW_CONTEXT_MENU,
42 }; 27 };
43 28
44 virtual ~ActionBoxController() {} 29 virtual ~ActionBoxController() {}
45 30
46 // Gets the badge data for all extensions. 31 // Utility to add any actions to |out| which aren't present in |actions|.
47 virtual scoped_ptr<DataList> GetAllBadgeData() = 0; 32 static void AddMissingActions(
33 const std::set<ExtensionAction*>& actions,
34 std::vector<ExtensionAction*>* out);
35
36 // Gets the action data for all extensions.
37 virtual scoped_ptr<std::vector<ExtensionAction*> > GetCurrentActions() = 0;
48 38
49 // Notifies this that the badge for an extension has been clicked with some 39 // Notifies this that the badge for an extension has been clicked with some
50 // mouse button (1 for left, 2 for middle, and 3 for right click), and 40 // mouse button (1 for left, 2 for middle, and 3 for right click), and
51 // returns the action that should be taken in response (if any). 41 // returns the action that should be taken in response (if any).
52 virtual Action OnClicked(const std::string& extension_id, 42 virtual Action OnClicked(const std::string& extension_id,
53 int mouse_button) = 0; 43 int mouse_button) = 0;
54 }; 44 };
55 45
56 } // namespace extensions 46 } // namespace extensions
57 47
58 #endif // CHROME_BROWSER_EXTENSIONS_ACTION_BOX_CONTROLLER_H_ 48 #endif // CHROME_BROWSER_EXTENSIONS_ACTION_BOX_CONTROLLER_H_
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/extensions/action_box_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698