diff options
author | altimofeev@chromium.org <altimofeev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-01 13:15:50 +0000 |
---|---|---|
committer | altimofeev@chromium.org <altimofeev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-01 13:15:50 +0000 |
commit | 3606592f61a1569aa211aa968ecc75952f11e9a2 (patch) | |
tree | 00836eda3decdb504d5cb2adb3da0838b4b83ffa /chrome | |
parent | c759a33935b7d73b76eec9e66997fe5501b1174f (diff) | |
download | chromium_src-3606592f61a1569aa211aa968ecc75952f11e9a2.zip chromium_src-3606592f61a1569aa211aa968ecc75952f11e9a2.tar.gz chromium_src-3606592f61a1569aa211aa968ecc75952f11e9a2.tar.bz2 |
Aligns the network menu width with combo box width.
BUG=chromium-os:7100
TEST=Boot device. On "Select network" screen click on the network
selection combo box. The networks menu that will appear has the same
width as combo box itself.
Review URL: http://codereview.chromium.org/3586005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61173 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/chromeos/login/network_selection_view.cc | 12 | ||||
-rw-r--r-- | chrome/browser/chromeos/status/network_menu.cc | 10 | ||||
-rw-r--r-- | chrome/browser/chromeos/status/network_menu.h | 8 |
3 files changed, 23 insertions, 7 deletions
diff --git a/chrome/browser/chromeos/login/network_selection_view.cc b/chrome/browser/chromeos/login/network_selection_view.cc index 652b3cd..19b3955 100644 --- a/chrome/browser/chromeos/login/network_selection_view.cc +++ b/chrome/browser/chromeos/login/network_selection_view.cc @@ -66,6 +66,10 @@ const int kSelectionBoxHeight = 29; // horizontal size, eaten by those icons. const int kMenuHorizontalOffset = -1; +// Constants were taken from 'views/controls/menu_button.cc'. +const int kDefaultMenuOffsetX = -2; +const int kDefaultMenuOffsetY = -4; + // Vertical addition to the menu window to make it appear exactly below // MenuButton. const int kMenuVerticalOffset = 3; @@ -210,6 +214,7 @@ void NetworkSelectionView::InitLayout() { 2 * kPaddingColumnWidth - kMediumPaddingColumnWidth - widest_label; delegate_->language_switch_menu()->SetFirstLevelMenuWidth( dropdown_width - kMenuWidthOffset); + network_dropdown_->SetFirstLevelMenuWidth(dropdown_width - kMenuWidthOffset); // Define layout and column set for entire screen (welcome + screen). views::GridLayout* screen_layout = new views::GridLayout(this); @@ -288,6 +293,7 @@ void NetworkSelectionView::Init() { languages_menubutton_->SetFocusable(true); languages_menubutton_->SetNormalHasBorder(true); // Menu is positioned by bottom right corner of the MenuButton. + // TODO(altimofeev): switch to the absolute offsets (button related) delegate_->language_switch_menu()->set_menu_offset(kMenuHorizontalOffset, kMenuVerticalOffset); @@ -297,6 +303,12 @@ void NetworkSelectionView::Init() { network_dropdown_ = new NetworkControlWithAccelerators(false, GetNativeWindow(), delegate_); + + // TODO(altimofeev): switch to the absolute offsets (button related) + network_dropdown_->set_menu_offset( + kDefaultMenuOffsetX + kMenuHorizontalOffset, + kDefaultMenuOffsetY + kMenuVerticalOffset); + network_dropdown_->SetNormalHasBorder(true); network_dropdown_->SetFocusable(true); diff --git a/chrome/browser/chromeos/status/network_menu.cc b/chrome/browser/chromeos/status/network_menu.cc index dbcbfe4..2408575 100644 --- a/chrome/browser/chromeos/status/network_menu.cc +++ b/chrome/browser/chromeos/status/network_menu.cc @@ -23,7 +23,8 @@ namespace chromeos { const int NetworkMenu::kNumWifiImages = 9; NetworkMenu::NetworkMenu() - : ALLOW_THIS_IN_INITIALIZER_LIST(network_menu_(this)) { + : ALLOW_THIS_IN_INITIALIZER_LIST(network_menu_(this)), + min_width_(-1) { } NetworkMenu::~NetworkMenu() { @@ -167,6 +168,8 @@ void NetworkMenu::ActivatedAt(int index) { } void NetworkMenu::SetFirstLevelMenuWidth(int width) { + min_width_ = width; + // This actually has no effect since menu is rebuilt before showing. network_menu_.SetMinimumWidth(width); } @@ -239,6 +242,11 @@ void NetworkMenu::RunMenu(views::View* source, const gfx::Point& pt) { InitMenuItems(); network_menu_.Rebuild(); network_menu_.UpdateStates(); + // Restore menu width, if it was set up. + // NOTE: width isn't checked for correctness here since all width-related + // logic implemented inside |network_menu_|. + if (min_width_ != -1) + network_menu_.SetMinimumWidth(min_width_); refreshing_menu_ = false; network_menu_.RunMenuAt(pt, views::Menu2::ALIGN_TOPRIGHT); } diff --git a/chrome/browser/chromeos/status/network_menu.h b/chrome/browser/chromeos/status/network_menu.h index 2fef343..d689235 100644 --- a/chrome/browser/chromeos/status/network_menu.h +++ b/chrome/browser/chromeos/status/network_menu.h @@ -74,11 +74,6 @@ class NetworkMenu : public views::ViewMenuDelegate, void SetFirstLevelMenuWidth(int width); - void set_menu_offset(int delta_x, int delta_y) { - delta_x_ = delta_x; - delta_y_ = delta_y; - } - // Cancels the active menu. void CancelMenu(); @@ -154,7 +149,8 @@ class NetworkMenu : public views::ViewMenuDelegate, // The network menu. views::Menu2 network_menu_; - int delta_x_, delta_y_; + // Holds minimum width or -1 if it wasn't set up. + int min_width_; DISALLOW_COPY_AND_ASSIGN(NetworkMenu); }; |