Index: chrome/browser/chromeos/status/network_menu.h |
diff --git a/chrome/browser/chromeos/status/network_menu.h b/chrome/browser/chromeos/status/network_menu.h |
index 030d79acb1c7c595dc8c951b225f71f924785561..80142e4e7b4ffb00327bb4c04c1239dcab8c9c69 100644 |
--- a/chrome/browser/chromeos/status/network_menu.h |
+++ b/chrome/browser/chromeos/status/network_menu.h |
@@ -12,6 +12,7 @@ |
#include "base/memory/scoped_ptr.h" |
#include "chrome/browser/chromeos/cros/network_library.h" // ConnectionType |
#include "ui/gfx/native_widget_types.h" // gfx::NativeWindow |
+#include "views/controls/menu/menu_delegate.h" |
#include "views/controls/menu/view_menu_delegate.h" |
namespace { |
@@ -29,8 +30,9 @@ class Canvas; |
} |
namespace views { |
-class MenuItemView; |
class MenuButton; |
+class MenuItemInterface; |
+class MenuItemView; |
} |
namespace chromeos { |
@@ -78,7 +80,10 @@ class NetworkMenu { |
virtual bool ShouldOpenButtonOptions() const = 0; |
}; |
- NetworkMenu(Delegate* delegate, bool is_browser_mode); |
+ NetworkMenu(Delegate* delegate, |
+ bool is_browser_mode, |
+ views::MenuItemInterface* menu_item); |
+ |
virtual ~NetworkMenu(); |
// Cancels the active menu. |
@@ -87,9 +92,6 @@ class NetworkMenu { |
// Update the menu (e.g. when the network list or status has changed). |
void UpdateMenu(); |
- // Run the menu. |
- void RunMenu(views::View* source); |
- |
// Shows network details in Web UI options window. |
void ShowTabbedNetworkSettings(const Network* network) const; |
@@ -97,8 +99,12 @@ class NetworkMenu { |
Delegate* delegate() const { return delegate_; } |
bool is_browser_mode() const { return is_browser_mode_; } |
- // Setters. |
- void set_min_width(int min_width) { min_width_ = min_width; } |
+ protected: |
+ views::MenuDelegate* GetMenuDelegate(); |
+ |
+ // The network menu. |
+ scoped_ptr<views::MenuItemInterface> menu_item_; |
+ scoped_ptr<NetworkMenuModel> main_menu_model_; |
private: |
friend class NetworkMenuModel; |
@@ -112,14 +118,28 @@ class NetworkMenu { |
// Set to true if we are currently refreshing the menu. |
bool refreshing_menu_; |
- // The network menu. |
- scoped_ptr<views::MenuItemView> menu_item_view_; |
- scoped_ptr<NetworkMenuModel> main_menu_model_; |
+ DISALLOW_COPY_AND_ASSIGN(NetworkMenu); |
+}; |
+ |
+class NetworkMenuView : public NetworkMenu { |
+ public: |
+ NetworkMenuView(NetworkMenu::Delegate* delegate, |
+ bool is_browser_mode); |
+ |
+ virtual ~NetworkMenuView(); |
+ |
+ // Run the menu. |
+ void RunMenu(views::View* source); |
+ |
+ // Setters. |
+ void set_min_width(int min_width) { min_width_ = min_width; } |
+ |
+ private: |
+ // This is a weak pointer to the MenuItemInterface implementation. |
+ views::MenuItemView* menu_item_view_; |
// Holds minimum width of the menu. |
int min_width_; |
- |
- DISALLOW_COPY_AND_ASSIGN(NetworkMenu); |
}; |
} // namespace chromeos |