summaryrefslogtreecommitdiffstats
path: root/views/window/window.cc
diff options
context:
space:
mode:
Diffstat (limited to 'views/window/window.cc')
-rw-r--r--views/window/window.cc44
1 files changed, 44 insertions, 0 deletions
diff --git a/views/window/window.cc b/views/window/window.cc
new file mode 100644
index 0000000..5a41c4f
--- /dev/null
+++ b/views/window/window.cc
@@ -0,0 +1,44 @@
+// Copyright (c) 2009 The Chromium Authors. All rights reserved. Use of this
+// source code is governed by a BSD-style license that can be found in the
+// LICENSE file.
+
+#include "views/window/window.h"
+
+#include "app/gfx/font.h"
+#include "app/l10n_util.h"
+#include "app/resource_bundle.h"
+#include "base/gfx/size.h"
+#include "base/string_util.h"
+
+namespace views {
+
+// static
+int Window::GetLocalizedContentsWidth(int col_resource_id) {
+ 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) {
+ 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
+gfx::Size Window::GetLocalizedContentsSize(int col_resource_id,
+ int row_resource_id) {
+ return gfx::Size(GetLocalizedContentsWidth(col_resource_id),
+ GetLocalizedContentsHeight(row_resource_id));
+}
+
+} // namespace views