| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ui/gfx/platform_font_win.h" | 5 #include "ui/gfx/platform_font_win.h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "base/memory/ref_counted.h" | 8 #include "base/memory/ref_counted.h" |
| 9 #include "base/strings/string16.h" | 9 #include "base/strings/string16.h" |
| 10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 120 {base::ASCIIToUTF16("Tahoma"), 10}, | 120 {base::ASCIIToUTF16("Tahoma"), 10}, |
| 121 {base::ASCIIToUTF16("Tahoma"), 16}, | 121 {base::ASCIIToUTF16("Tahoma"), 16}, |
| 122 {base::ASCIIToUTF16("Segoe UI"), 6}, | 122 {base::ASCIIToUTF16("Segoe UI"), 6}, |
| 123 {base::ASCIIToUTF16("Segoe UI"), 8}, | 123 {base::ASCIIToUTF16("Segoe UI"), 8}, |
| 124 {base::ASCIIToUTF16("Segoe UI"), 20}, | 124 {base::ASCIIToUTF16("Segoe UI"), 20}, |
| 125 }; | 125 }; |
| 126 | 126 |
| 127 base::win::ScopedGetDC screen_dc(NULL); | 127 base::win::ScopedGetDC screen_dc(NULL); |
| 128 gfx::ScopedSetMapMode mode(screen_dc, MM_TEXT); | 128 gfx::ScopedSetMapMode mode(screen_dc, MM_TEXT); |
| 129 | 129 |
| 130 for (int i = 0; i < arraysize(fonts); ++i) { | 130 for (const FontInfo& font : fonts) { |
| 131 LOGFONT font_info = {0}; | 131 LOGFONT font_info = {0}; |
| 132 | 132 |
| 133 font_info.lfHeight = -fonts[i].font_size; | 133 font_info.lfHeight = -font.font_size; |
| 134 font_info.lfWeight = FW_NORMAL; | 134 font_info.lfWeight = FW_NORMAL; |
| 135 wcscpy_s(font_info.lfFaceName, | 135 wcscpy_s(font_info.lfFaceName, font.font_name.length() + 1, |
| 136 fonts[i].font_name.length() + 1, | 136 font.font_name.c_str()); |
| 137 fonts[i].font_name.c_str()); | |
| 138 | 137 |
| 139 HFONT font = CreateFontIndirect(&font_info); | 138 HFONT hFont = CreateFontIndirect(&font_info); |
| 140 | 139 |
| 141 TEXTMETRIC font_metrics; | 140 TEXTMETRIC font_metrics; |
| 142 PlatformFontWin::GetTextMetricsForFont(screen_dc, font, &font_metrics); | 141 PlatformFontWin::GetTextMetricsForFont(screen_dc, hFont, &font_metrics); |
| 143 | 142 |
| 144 scoped_refptr<PlatformFontWin::HFontRef> h_font_gdi( | 143 scoped_refptr<PlatformFontWin::HFontRef> h_font_gdi( |
| 145 PlatformFontWin::CreateHFontRefFromGDI(font, font_metrics)); | 144 PlatformFontWin::CreateHFontRefFromGDI(hFont, font_metrics)); |
| 146 | 145 |
| 147 scoped_refptr<PlatformFontWin::HFontRef> h_font_skia( | 146 scoped_refptr<PlatformFontWin::HFontRef> h_font_skia( |
| 148 PlatformFontWin::CreateHFontRefFromSkia(font, font_metrics)); | 147 PlatformFontWin::CreateHFontRefFromSkia(hFont, font_metrics)); |
| 149 | 148 |
| 150 EXPECT_EQ(h_font_gdi->font_size(), h_font_skia->font_size()); | 149 EXPECT_EQ(h_font_gdi->font_size(), h_font_skia->font_size()); |
| 151 EXPECT_EQ(h_font_gdi->style(), h_font_skia->style()); | 150 EXPECT_EQ(h_font_gdi->style(), h_font_skia->style()); |
| 152 EXPECT_EQ(h_font_gdi->font_name(), h_font_skia->font_name()); | 151 EXPECT_EQ(h_font_gdi->font_name(), h_font_skia->font_name()); |
| 153 EXPECT_EQ(h_font_gdi->ave_char_width(), h_font_skia->ave_char_width()); | 152 EXPECT_EQ(h_font_gdi->ave_char_width(), h_font_skia->ave_char_width()); |
| 154 | 153 |
| 155 EXPECT_LE(abs(h_font_gdi->cap_height() - h_font_skia->cap_height()), 1); | 154 EXPECT_LE(abs(h_font_gdi->cap_height() - h_font_skia->cap_height()), 1); |
| 156 EXPECT_LE(abs(h_font_gdi->baseline() - h_font_skia->baseline()), 1); | 155 EXPECT_LE(abs(h_font_gdi->baseline() - h_font_skia->baseline()), 1); |
| 157 EXPECT_LE(abs(h_font_gdi->height() - h_font_skia->height()), 1); | 156 EXPECT_LE(abs(h_font_gdi->height() - h_font_skia->height()), 1); |
| 158 } | 157 } |
| (...skipping 19 matching lines...) Expand all Loading... |
| 178 | 177 |
| 179 FontInfo fonts[] = { | 178 FontInfo fonts[] = { |
| 180 {base::ASCIIToUTF16("MS Shell Dlg"), "Microsoft Sans Serif"}, | 179 {base::ASCIIToUTF16("MS Shell Dlg"), "Microsoft Sans Serif"}, |
| 181 {base::ASCIIToUTF16("MS Shell Dlg 2"), "Tahoma"}, | 180 {base::ASCIIToUTF16("MS Shell Dlg 2"), "Tahoma"}, |
| 182 {base::ASCIIToUTF16("FooBar"), "Arial"}, | 181 {base::ASCIIToUTF16("FooBar"), "Arial"}, |
| 183 }; | 182 }; |
| 184 | 183 |
| 185 base::win::ScopedGetDC screen_dc(NULL); | 184 base::win::ScopedGetDC screen_dc(NULL); |
| 186 gfx::ScopedSetMapMode mode(screen_dc, MM_TEXT); | 185 gfx::ScopedSetMapMode mode(screen_dc, MM_TEXT); |
| 187 | 186 |
| 188 for (int i = 0; i < arraysize(fonts); ++i) { | 187 for (const FontInfo& font : fonts) { |
| 189 LOGFONT font_info = {0}; | 188 LOGFONT font_info = {0}; |
| 190 | 189 |
| 191 font_info.lfHeight = -10; | 190 font_info.lfHeight = -10; |
| 192 font_info.lfWeight = FW_NORMAL; | 191 font_info.lfWeight = FW_NORMAL; |
| 193 wcscpy_s(font_info.lfFaceName, | 192 wcscpy_s(font_info.lfFaceName, font.font_name.length() + 1, |
| 194 fonts[i].font_name.length() + 1, | 193 font.font_name.c_str()); |
| 195 fonts[i].font_name.c_str()); | |
| 196 | 194 |
| 197 HFONT font = CreateFontIndirect(&font_info); | 195 HFONT hFont = CreateFontIndirect(&font_info); |
| 198 | 196 |
| 199 TEXTMETRIC font_metrics; | 197 TEXTMETRIC font_metrics; |
| 200 PlatformFontWin::GetTextMetricsForFont(screen_dc, font, &font_metrics); | 198 PlatformFontWin::GetTextMetricsForFont(screen_dc, hFont, &font_metrics); |
| 201 | 199 |
| 202 scoped_refptr<PlatformFontWin::HFontRef> h_font_skia( | 200 scoped_refptr<PlatformFontWin::HFontRef> h_font_skia( |
| 203 PlatformFontWin::CreateHFontRefFromSkia(font, font_metrics)); | 201 PlatformFontWin::CreateHFontRefFromSkia(hFont, font_metrics)); |
| 204 | 202 |
| 205 EXPECT_EQ(fonts[i].expected_font_name, h_font_skia->font_name()); | 203 EXPECT_EQ(font.expected_font_name, h_font_skia->font_name()); |
| 206 } | 204 } |
| 207 } | 205 } |
| 208 | 206 |
| 209 } // namespace gfx | 207 } // namespace gfx |
| OLD | NEW |