Index: chrome/browser/chromeos/status/clock_menu_button.cc |
=================================================================== |
--- chrome/browser/chromeos/status/clock_menu_button.cc (revision 44004) |
+++ chrome/browser/chromeos/status/clock_menu_button.cc (working copy) |
@@ -28,13 +28,24 @@ |
host_(host) { |
set_border(NULL); |
SetFont(ResourceBundle::GetSharedInstance().GetFont( |
- ResourceBundle::BaseFont).DeriveFont(0, gfx::Font::BOLD)); |
- SetEnabledColor(SK_ColorWHITE); |
+ ResourceBundle::BaseFont).DeriveFont(1, gfx::Font::BOLD)); |
+ SetEnabledColor(0xB3FFFFFF); // White with 70% Alpha |
SetShowHighlighted(false); |
- // Set initial text to make sure that the text button wide enough. |
- std::wstring zero = ASCIIToWide("00"); |
- SetText(l10n_util::GetStringF(IDS_STATUSBAR_CLOCK_SHORT_TIME_AM, zero, zero)); |
- SetText(l10n_util::GetStringF(IDS_STATUSBAR_CLOCK_SHORT_TIME_PM, zero, zero)); |
+ // Fill text with 0s to figure out max width of text size. |
+ ClearMaxTextSize(); |
+ std::wstring zero = ASCIIToWide("0"); |
+ std::wstring zerozero = ASCIIToWide("00"); |
+ SetText(l10n_util::GetStringF(IDS_STATUSBAR_CLOCK_SHORT_TIME_AM, |
+ zero, zerozero)); |
+ SetText(l10n_util::GetStringF(IDS_STATUSBAR_CLOCK_SHORT_TIME_PM, |
+ zero, zerozero)); |
+ max_width_one_digit = GetPreferredSize().width(); |
+ ClearMaxTextSize(); |
+ SetText(l10n_util::GetStringF(IDS_STATUSBAR_CLOCK_SHORT_TIME_AM, |
+ zerozero, zerozero)); |
+ SetText(l10n_util::GetStringF(IDS_STATUSBAR_CLOCK_SHORT_TIME_PM, |
+ zerozero, zerozero)); |
+ max_width_two_digit = GetPreferredSize().width(); |
set_alignment(TextButton::ALIGN_RIGHT); |
UpdateTextAndSetNextTimer(); |
// Init member prefs so we can update the clock if prefs change. |
@@ -91,7 +102,16 @@ |
std::wstring time_string = l10n_util::GetStringF(msg, hour_str, min_str); |
+ // See if the preferred size changed. If so, relayout the StatusAreaView. |
+ int cur_width = GetPreferredSize().width(); |
+ int new_width = hour < 10 ? max_width_one_digit : max_width_two_digit; |
SetText(time_string); |
+ set_max_width(new_width); |
+ |
+ // If width has changed, we want to relayout the StatusAreaView. |
+ if (new_width != cur_width) |
+ PreferredSizeChanged(); |
+ |
SchedulePaint(); |
} |