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

Unified Diff: chrome/browser/chromeos/status/network_menu.cc

Issue 7520037: [cros] Network dropdown button in WebUI. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: move handle click Created 9 years, 5 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/chromeos/status/network_menu.cc
diff --git a/chrome/browser/chromeos/status/network_menu.cc b/chrome/browser/chromeos/status/network_menu.cc
index 7fb406016bfc96a2989a9e34a84658570d9c3fc3..4862d390f3398401c4c9062809756a304a84da2d 100644
--- a/chrome/browser/chromeos/status/network_menu.cc
+++ b/chrome/browser/chromeos/status/network_menu.cc
@@ -146,8 +146,8 @@ class NetworkMenuModel : public views::MenuDelegate {
// instance by calling PopulateMenuItem() on each one. Subclasses override
// PopulateMenuItem(), transform command_id into the correct range for
// the menu, and call the base class PopulateMenuItem().
- virtual void PopulateMenu(views::MenuItemView* menu);
- virtual void PopulateMenuItem(views::MenuItemView* menu,
+ virtual void PopulateMenu(views::MenuItemInterface* menu);
+ virtual void PopulateMenuItem(views::MenuItemInterface* menu,
int index,
int command_id);
@@ -217,7 +217,7 @@ class MoreMenuModel : public NetworkMenuModel {
// NetworkMenuModel implementation.
virtual void InitMenuItems(bool is_browser_mode,
bool should_open_button_options) OVERRIDE;
- virtual void PopulateMenuItem(views::MenuItemView* menu,
+ virtual void PopulateMenuItem(views::MenuItemInterface* menu,
int index,
int command_id) OVERRIDE;
@@ -233,7 +233,7 @@ class VPNMenuModel : public NetworkMenuModel {
// NetworkMenuModel implementation.
virtual void InitMenuItems(bool is_browser_mode,
bool should_open_button_options) OVERRIDE;
- virtual void PopulateMenuItem(views::MenuItemView* menu,
+ virtual void PopulateMenuItem(views::MenuItemInterface* menu,
int index,
int command_id) OVERRIDE;
@@ -253,7 +253,7 @@ class MainMenuModel : public NetworkMenuModel {
// NetworkMenuModel implementation.
virtual void InitMenuItems(bool is_browser_mode,
bool should_open_button_options) OVERRIDE;
- virtual void PopulateMenuItem(views::MenuItemView* menu,
+ virtual void PopulateMenuItem(views::MenuItemInterface* menu,
int index,
int command_id) OVERRIDE;
@@ -275,12 +275,8 @@ class MainMenuModel : public NetworkMenuModel {
////////////////////////////////////////////////////////////////////////////////
// NetworkMenuModel, public methods:
-void NetworkMenuModel::PopulateMenu(views::MenuItemView* menu) {
- if (menu->HasSubmenu()) {
- const int old_count = menu->GetSubmenu()->child_count();
- for (int i = 0; i < old_count; ++i)
- menu->RemoveMenuItemAt(0);
- }
+void NetworkMenuModel::PopulateMenu(views::MenuItemInterface* menu) {
+ menu->ClearSubmenu();
const int menu_items_count = GetItemCount();
for (int i = 0; i < menu_items_count; ++i)
@@ -288,14 +284,14 @@ void NetworkMenuModel::PopulateMenu(views::MenuItemView* menu) {
}
void NetworkMenuModel::PopulateMenuItem(
- views::MenuItemView* menu, int index, int command_id) {
+ views::MenuItemInterface* menu, int index, int command_id) {
DCHECK_GT(GetItemCount(), index);
switch (GetTypeAt(index)) {
case ui::MenuModel::TYPE_SEPARATOR:
menu->AppendSeparator();
break;
case ui::MenuModel::TYPE_COMMAND: {
- views::MenuItemView* item = NULL;
+ views::MenuItemInterface* item = NULL;
SkBitmap icon;
if (GetIconAt(index, &icon)) {
item = menu->AppendMenuItemWithIcon(command_id,
@@ -309,7 +305,7 @@ void NetworkMenuModel::PopulateMenuItem(
break;
}
case ui::MenuModel::TYPE_SUBMENU: {
- views::MenuItemView* submenu = NULL;
+ views::MenuItemInterface* submenu = NULL;
SkBitmap icon;
if (GetIconAt(index, &icon)) {
submenu = menu->AppendSubMenuWithIcon(command_id,
@@ -865,7 +861,7 @@ void MainMenuModel::InitMenuItems(bool is_browser_mode,
}
void MainMenuModel::PopulateMenuItem(
- views::MenuItemView* menu, int index, int command_id) {
+ views::MenuItemInterface* menu, int index, int command_id) {
int main_command_id = command_id | kMainIndexMask;
NetworkMenuModel::PopulateMenuItem(menu, index, main_command_id);
}
@@ -975,7 +971,7 @@ void VPNMenuModel::InitMenuItems(bool is_browser_mode,
}
void VPNMenuModel::PopulateMenuItem(
- views::MenuItemView* menu, int index, int command_id) {
+ views::MenuItemInterface* menu, int index, int command_id) {
int vpn_command_id = command_id | kVPNIndexMask;
NetworkMenuModel::PopulateMenuItem(menu, index, vpn_command_id);
}
@@ -1060,7 +1056,7 @@ void MoreMenuModel::InitMenuItems(
}
void MoreMenuModel::PopulateMenuItem(
- views::MenuItemView* menu, int index, int command_id) {
+ views::MenuItemInterface* menu, int index, int command_id) {
int more_command_id = command_id | kMoreIndexMask;
NetworkMenuModel::PopulateMenuItem(menu, index, more_command_id);
}
@@ -1068,23 +1064,22 @@ void MoreMenuModel::PopulateMenuItem(
////////////////////////////////////////////////////////////////////////////////
// NetworkMenu
-NetworkMenu::NetworkMenu(Delegate* delegate, bool is_browser_mode)
- : delegate_(delegate),
+
+NetworkMenu::NetworkMenu(Delegate* delegate,
+ bool is_browser_mode,
+ views::MenuItemInterface* menu_item)
+ : menu_item_(menu_item),
+ delegate_(delegate),
is_browser_mode_(is_browser_mode),
- refreshing_menu_(false),
- min_width_(kDefaultMinimumWidth) {
+ refreshing_menu_(false) {
main_menu_model_.reset(new MainMenuModel(this));
- menu_item_view_.reset(new views::MenuItemView(main_menu_model_.get()));
- menu_item_view_->set_has_icons(true);
- menu_item_view_->set_menu_position(
- views::MenuItemView::POSITION_BELOW_BOUNDS);
}
NetworkMenu::~NetworkMenu() {
}
void NetworkMenu::CancelMenu() {
- menu_item_view_->Cancel();
+ menu_item_->Cancel();
}
void NetworkMenu::UpdateMenu() {
@@ -1093,26 +1088,11 @@ void NetworkMenu::UpdateMenu() {
refreshing_menu_ = true;
main_menu_model_->InitMenuItems(
is_browser_mode(), delegate_->ShouldOpenButtonOptions());
- main_menu_model_->PopulateMenu(menu_item_view_.get());
- menu_item_view_->ChildrenChanged();
+ main_menu_model_->PopulateMenu(menu_item_.get());
+ menu_item_->ChildrenChanged();
refreshing_menu_ = false;
}
-void NetworkMenu::RunMenu(views::View* source) {
- NetworkLibrary* cros = CrosLibrary::Get()->GetNetworkLibrary();
- cros->RequestNetworkScan();
-
- UpdateMenu();
-
- gfx::Point screen_location;
- views::View::ConvertPointToScreen(source, &screen_location);
- gfx::Rect bounds(screen_location, source->size());
- menu_item_view_->GetSubmenu()->set_minimum_preferred_width(min_width_);
- menu_item_view_->RunMenuAt(source->GetWidget()->GetTopLevelWidget(),
- delegate_->GetMenuButton(), bounds,
- views::MenuItemView::TOPRIGHT, true);
-}
-
void NetworkMenu::ShowTabbedNetworkSettings(const Network* network) const {
DCHECK(network);
Browser* browser = BrowserList::GetLastActive();
@@ -1132,4 +1112,40 @@ void NetworkMenu::ShowTabbedNetworkSettings(const Network* network) const {
browser->ShowOptionsTab(page);
}
+views::MenuDelegate* NetworkMenu::GetMenuDelegate() {
+ return main_menu_model_.get();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// NetworkMenuView
+
+NetworkMenuView::NetworkMenuView(Delegate* delegate, bool is_browser_mode)
+ : NetworkMenu(delegate, is_browser_mode, NULL),
+ min_width_(kDefaultMinimumWidth) {
+ menu_item_view_ = new views::MenuItemView(main_menu_model_.get());
+ menu_item_.reset(menu_item_view_);
+
+ menu_item_view_->set_has_icons(true);
+ menu_item_view_->set_menu_position(
+ views::MenuItemView::POSITION_BELOW_BOUNDS);
+}
+
+NetworkMenuView::~NetworkMenuView() {
+}
+
+void NetworkMenuView::RunMenu(views::View* source) {
+ NetworkLibrary* cros = CrosLibrary::Get()->GetNetworkLibrary();
+ cros->RequestNetworkScan();
+
+ UpdateMenu();
+
+ gfx::Point screen_location;
+ views::View::ConvertPointToScreen(source, &screen_location);
+ gfx::Rect bounds(screen_location, source->size());
+ menu_item_view_->GetSubmenu()->set_minimum_preferred_width(min_width_);
+ menu_item_view_->RunMenuAt(source->GetWidget()->GetTopLevelWidget(),
+ delegate()->GetMenuButton(), bounds,
+ views::MenuItemView::TOPRIGHT, true);
+}
+
} // namespace chromeos

Powered by Google App Engine
This is Rietveld 408576698