summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authoraltimofeev@chromium.org <altimofeev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-01 13:15:50 +0000
committeraltimofeev@chromium.org <altimofeev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-01 13:15:50 +0000
commit3606592f61a1569aa211aa968ecc75952f11e9a2 (patch)
tree00836eda3decdb504d5cb2adb3da0838b4b83ffa /chrome
parentc759a33935b7d73b76eec9e66997fe5501b1174f (diff)
downloadchromium_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.cc12
-rw-r--r--chrome/browser/chromeos/status/network_menu.cc10
-rw-r--r--chrome/browser/chromeos/status/network_menu.h8
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);
};