Index: chrome/browser/chromeos/login/update_view.cc |
diff --git a/chrome/browser/chromeos/login/update_view.cc b/chrome/browser/chromeos/login/update_view.cc |
index 1e633d763ba7c8bf063792c84e3198be8727dead..9facdbe943c9a4c031fb0f632d915a5714194ea3 100644 |
--- a/chrome/browser/chromeos/login/update_view.cc |
+++ b/chrome/browser/chromeos/login/update_view.cc |
@@ -33,6 +33,8 @@ const int kProgressBarY = 250; |
const int kEscapeToSkipLabelY = 290; |
// Progress bar width. |
const int kProgressBarWidth = 450; |
+// Horizontal spacing (ex. min left and right margins for label on the screen). |
+const int kHorizontalSpacing = 25; |
// Label color. |
const SkColor kLabelColor = 0xFF000000; |
@@ -61,17 +63,13 @@ void UpdateView::Init() { |
ResourceBundle& res_bundle = ResourceBundle::GetSharedInstance(); |
gfx::Font base_font = res_bundle.GetFont(ResourceBundle::BaseFont); |
- installing_updates_label_ = new views::Label(); |
- installing_updates_label_->SetColor(kLabelColor); |
+ InitLabel(&installing_updates_label_); |
installing_updates_label_->SetFont(base_font); |
- installing_updates_label_->SetHorizontalAlignment(views::Label::ALIGN_CENTER); |
- installing_updates_label_->SetMultiLine(true); |
progress_bar_ = new views::ProgressBar(); |
+ AddChildView(progress_bar_); |
UpdateLocalizedStrings(); |
- AddChildView(installing_updates_label_); |
- AddChildView(progress_bar_); |
#if !defined(OFFICIAL_BUILD) |
escape_to_skip_label_ = new views::Label(); |
@@ -100,30 +98,29 @@ void UpdateView::AddProgress(int ticks) { |
progress_bar_->AddProgress(ticks); |
} |
-void UpdateView::Layout() { |
- int x_center = width() / 2; |
- int preferred_width = installing_updates_label_->GetPreferredSize().width(); |
- int preferred_height = installing_updates_label_->GetPreferredSize().height(); |
- installing_updates_label_->SetBounds( |
+// Sets the bounds of the view, placing it at the center of the screen |
+// with the |y| coordinate provided. |width| could specify desired view width |
+// otherwise preferred width/height are used. |
+// |x_center| specifies screen center. |
+static void setViewBounds( |
+ views::View* view, int x_center, int y, int width = -1) { |
+ int preferred_width = (width >= 0) ? width : view->GetPreferredSize().width(); |
+ int preferred_height = view->GetPreferredSize().height(); |
+ view->SetBounds( |
x_center - preferred_width / 2, |
- kInstallingUpdatesLabelY, |
- preferred_width, |
- preferred_height); |
- preferred_width = kProgressBarWidth; |
- preferred_height = progress_bar_->GetPreferredSize().height(); |
- progress_bar_->SetBounds( |
- x_center - preferred_width / 2, |
- kProgressBarY, |
+ y, |
preferred_width, |
preferred_height); |
+} |
+ |
+void UpdateView::Layout() { |
+ int x_center = width() / 2; |
+ int max_width = width() - GetInsets().width() - 2 * kHorizontalSpacing; |
+ installing_updates_label_->SizeToFit(max_width); |
+ setViewBounds(installing_updates_label_, x_center, kInstallingUpdatesLabelY); |
+ setViewBounds(progress_bar_, x_center, kProgressBarY, kProgressBarWidth); |
#if !defined(OFFICIAL_BUILD) |
- preferred_width = escape_to_skip_label_->GetPreferredSize().width(); |
- preferred_height = escape_to_skip_label_->GetPreferredSize().height(); |
- escape_to_skip_label_->SetBounds( |
- x_center - preferred_width / 2, |
- kEscapeToSkipLabelY, |
- preferred_width, |
- preferred_height); |
+ setViewBounds(escape_to_skip_label_, x_center, kEscapeToSkipLabelY); |
#endif |
SchedulePaint(); |
} |
@@ -141,4 +138,12 @@ bool UpdateView::AcceleratorPressed(const views::Accelerator& a) { |
return false; |
} |
+void UpdateView::InitLabel(views::Label** label) { |
+ *label = new views::Label(); |
+ (*label)->SetColor(kLabelColor); |
+ (*label)->SetHorizontalAlignment(views::Label::ALIGN_CENTER); |
+ (*label)->SetMultiLine(true); |
+ AddChildView(*label); |
+} |
+ |
} // namespace chromeos |