Index: ui/gfx/canvas.cc |
diff --git a/ui/gfx/canvas.cc b/ui/gfx/canvas.cc |
index eb0834ba8d9ac7ed0bd166d4d6a1d420f0074b07..1a316e9db7e447546f26e90a36ca9f082ab718c1 100644 |
--- a/ui/gfx/canvas.cc |
+++ b/ui/gfx/canvas.cc |
@@ -4,6 +4,7 @@ |
#include "ui/gfx/canvas.h" |
+#include <cmath> |
#include <limits> |
#include "base/i18n/rtl.h" |
@@ -84,6 +85,20 @@ void Canvas::RecreateBackingCanvas(const Size& size, |
// static |
void Canvas::SizeStringInt(const base::string16& text, |
+ const FontList& font_list, |
+ int* width, |
+ int* height, |
+ int line_height, |
+ int flags) { |
+ float fractional_width = *width, factional_height = *height; |
Alexei Svitkine (slow)
2013/10/07 23:33:28
Nit: Separate lines.
jianli
2013/10/08 00:01:18
Done.
|
+ SizeStringFloat(text, font_list, &fractional_width, |
+ &factional_height, line_height, flags); |
+ *width = std::ceil(fractional_width); |
+ *height = std::ceil(factional_height); |
+} |
+ |
+// static |
+void Canvas::SizeStringInt(const base::string16& text, |
const Font& font, |
int* width, |
int* height, |
@@ -101,6 +116,14 @@ int Canvas::GetStringWidth(const base::string16& text, |
} |
// static |
+float Canvas::GetStringWidthF(const base::string16& text, |
+ const FontList& font_list) { |
+ float width = 0, height = 0; |
+ SizeStringFloat(text, font_list, &width, &height, 0, NO_ELLIPSIS); |
+ return width; |
+} |
+ |
+// static |
int Canvas::GetStringWidth(const base::string16& text, const Font& font) { |
int width = 0, height = 0; |
SizeStringInt(text, FontList(font), &width, &height, 0, NO_ELLIPSIS); |