| OLD | NEW | 
|---|
| 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_LOCATION_BAR_CONTROLLER_H_ | 5 #ifndef CHROME_BROWSER_EXTENSIONS_LOCATION_BAR_CONTROLLER_H_ | 
| 6 #define CHROME_BROWSER_EXTENSIONS_LOCATION_BAR_CONTROLLER_H_ | 6 #define CHROME_BROWSER_EXTENSIONS_LOCATION_BAR_CONTROLLER_H_ | 
| 7 #pragma once | 7 #pragma once | 
| 8 | 8 | 
| 9 #include <set> | 9 #include <set> | 
| 10 #include <string> | 10 #include <string> | 
| 11 #include <vector> | 11 #include <vector> | 
| 12 | 12 | 
| 13 #include "base/memory/scoped_ptr.h" |  | 
| 14 |  | 
| 15 class ExtensionAction; | 13 class ExtensionAction; | 
| 16 | 14 | 
| 17 namespace extensions { | 15 namespace extensions { | 
| 18 | 16 | 
| 19 // Interface for a class that controls the the extension icons that show up in | 17 // Interface for a class that controls the the extension icons that show up in | 
| 20 // the location bar. Depending on switches, these icons can have differing | 18 // the location bar. Depending on switches, these icons can have differing | 
| 21 // behavior. | 19 // behavior. | 
| 22 class LocationBarController { | 20 class LocationBarController { | 
| 23  public: | 21  public: | 
| 24   // The reaction that the UI should take after executing |OnClicked|. | 22   // The reaction that the UI should take after executing |OnClicked|. | 
| 25   enum Action { | 23   enum Action { | 
| 26     ACTION_NONE, | 24     ACTION_NONE, | 
| 27     ACTION_SHOW_POPUP, | 25     ACTION_SHOW_POPUP, | 
| 28     ACTION_SHOW_CONTEXT_MENU, | 26     ACTION_SHOW_CONTEXT_MENU, | 
| 29   }; | 27   }; | 
| 30 | 28 | 
| 31   virtual ~LocationBarController() {} | 29   virtual ~LocationBarController() {} | 
| 32 | 30 | 
| 33   // Utility to add any actions to |out| which aren't present in |actions|. | 31   // Utility to add any actions to |out| which aren't present in |actions|. | 
| 34   static void AddMissingActions( | 32   static void AddMissingActions( | 
| 35       const std::set<ExtensionAction*>& actions, | 33       const std::set<ExtensionAction*>& actions, | 
| 36       std::vector<ExtensionAction*>* out); | 34       std::vector<ExtensionAction*>* out); | 
| 37 | 35 | 
| 38   // Gets the action data for all extensions. | 36   // Gets the action data for all extensions. | 
| 39   virtual scoped_ptr<std::vector<ExtensionAction*> > GetCurrentActions() = 0; | 37   virtual std::vector<ExtensionAction*> GetCurrentActions() = 0; | 
| 40 | 38 | 
| 41   // 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 | 
| 42   // 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 | 
| 43   // returns the action that should be taken in response (if any). | 41   // returns the action that should be taken in response (if any). | 
| 44   // TODO(kalman): make mouse_button an enum. | 42   // TODO(kalman): make mouse_button an enum. | 
| 45   virtual Action OnClicked(const std::string& extension_id, | 43   virtual Action OnClicked(const std::string& extension_id, | 
| 46                            int mouse_button) = 0; | 44                            int mouse_button) = 0; | 
| 47 }; | 45 }; | 
| 48 | 46 | 
| 49 }  // namespace extensions | 47 }  // namespace extensions | 
| 50 | 48 | 
| 51 #endif  // CHROME_BROWSER_EXTENSIONS_LOCATION_BAR_CONTROLLER_H_ | 49 #endif  // CHROME_BROWSER_EXTENSIONS_LOCATION_BAR_CONTROLLER_H_ | 
| OLD | NEW | 
|---|