diff options
author | nick@chromium.org <nick@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-08 22:52:45 +0000 |
---|---|---|
committer | nick@chromium.org <nick@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-08 22:52:45 +0000 |
commit | 24f8371b3070f2774830e44b5772297212da2611 (patch) | |
tree | 4b4e127f1b1278c9916bb87a39fbc0d6002cde57 /views | |
parent | 110ebc78d40495b6cca036b7f04c13899a91a21b (diff) | |
download | chromium_src-24f8371b3070f2774830e44b5772297212da2611.zip chromium_src-24f8371b3070f2774830e44b5772297212da2611.tar.gz chromium_src-24f8371b3070f2774830e44b5772297212da2611.tar.bz2 |
Measure the sync wizard dialog in appropriate units:
specifically, units proportional to the fonts used inside of it.
We approximate the font chosen by the wizard's CSS. In actuality, the
CSS chooses a font-face "arial", "sans-serif". We just use the default
sans serif font; arial is the default value for that property.
This fixes an issue where changing to the "Windows Classic" theme
on Vista would cause the dialog to be resized, clipping its
contents, which are unaffected by the UI font size.
Update the default GRIT sizes to closely match the old ones.
Old vs new:
http://www.corp.google.com/~ncarter/wizard-size-screenshots.png
BUG=21828
TEST=verified old size against new size in Aero Theme with default
settings; verified size stays the same under Classic theme.
Review URL: http://codereview.chromium.org/261017
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28465 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views')
-rw-r--r-- | views/window/window.cc | 29 | ||||
-rw-r--r-- | views/window/window.h | 11 |
2 files changed, 34 insertions, 6 deletions
diff --git a/views/window/window.cc b/views/window/window.cc index f2a1501..9f69172 100644 --- a/views/window/window.cc +++ b/views/window/window.cc @@ -14,28 +14,45 @@ namespace views { // static -int Window::GetLocalizedContentsWidth(int col_resource_id) { +int Window::GetLocalizedContentsWidthForFont(int col_resource_id, + const gfx::Font& font) { double chars = 0; StringToDouble(WideToUTF8(l10n_util::GetString(col_resource_id)), &chars); - ResourceBundle& rb = ResourceBundle::GetSharedInstance(); - gfx::Font font = rb.GetFont(ResourceBundle::BaseFont); int width = font.GetExpectedTextWidth(static_cast<int>(chars)); DCHECK(width > 0); return width; } // static -int Window::GetLocalizedContentsHeight(int row_resource_id) { +int Window::GetLocalizedContentsWidth(int col_resource_id) { + return GetLocalizedContentsWidthForFont(col_resource_id, + ResourceBundle::GetSharedInstance().GetFont(ResourceBundle::BaseFont)); +} + +// static +int Window::GetLocalizedContentsHeightForFont(int row_resource_id, + const gfx::Font& font) { double lines = 0; StringToDouble(WideToUTF8(l10n_util::GetString(row_resource_id)), &lines); - ResourceBundle& rb = ResourceBundle::GetSharedInstance(); - gfx::Font font = rb.GetFont(ResourceBundle::BaseFont); int height = static_cast<int>(font.height() * lines); DCHECK(height > 0); return height; } // static +int Window::GetLocalizedContentsHeight(int row_resource_id) { + return GetLocalizedContentsHeightForFont(row_resource_id, + ResourceBundle::GetSharedInstance().GetFont(ResourceBundle::BaseFont)); +} + +gfx::Size Window::GetLocalizedContentsSizeForFont(int col_resource_id, + int row_resource_id, + const gfx::Font& font) { + return gfx::Size(GetLocalizedContentsWidthForFont(col_resource_id, font), + GetLocalizedContentsHeightForFont(row_resource_id, font)); +} + +// static gfx::Size Window::GetLocalizedContentsSize(int col_resource_id, int row_resource_id) { return gfx::Size(GetLocalizedContentsWidth(col_resource_id), diff --git a/views/window/window.h b/views/window/window.h index 8983972..6bb1075 100644 --- a/views/window/window.h +++ b/views/window/window.h @@ -8,6 +8,7 @@ #include "base/gfx/native_widget_types.h" namespace gfx { +class Font; class Rect; class Size; } @@ -42,6 +43,16 @@ class Window { static gfx::Size GetLocalizedContentsSize(int col_resource_id, int row_resource_id); + // These versions of GetLocalizedContents allow a font to be specified + // other than the default UI font. + static int GetLocalizedContentsWidthForFont(int col_resource_id, + const gfx::Font& font); + static int GetLocalizedContentsHeightForFont(int row_resource_id, + const gfx::Font& font); + static gfx::Size GetLocalizedContentsSizeForFont(int col_resource_id, + int row_resource_id, + const gfx::Font& font); + // Closes all windows that aren't identified as "app windows" via // IsAppWindow. Called during application shutdown when the last "app window" // is closed. |