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 3 // found in the LICENSE file. 4 5 #include "ui/gfx/font.h" 6 7 #include "base/strings/utf_string_conversions.h" 8 #include "ui/gfx/platform_font.h" 9 10 namespace gfx { 11 12 //////////////////////////////////////////////////////////////////////////////// 13 // Font, public: 14 15 Font::Font() : platform_font_(PlatformFont::CreateDefault()) { 16 } 17 18 Font::Font(const Font& other) : platform_font_(other.platform_font_) { 19 } 20 21 gfx::Font& Font::operator=(const Font& other) { 22 platform_font_ = other.platform_font_; 23 return *this; 24 } 25 26 Font::Font(NativeFont native_font) 27 : platform_font_(PlatformFont::CreateFromNativeFont(native_font)) { 28 } 29 30 Font::Font(PlatformFont* platform_font) : platform_font_(platform_font) { 31 } 32 33 Font::Font(const std::string& font_name, int font_size) 34 : platform_font_(PlatformFont::CreateFromNameAndSize(font_name, 35 font_size)) { 36 } 37 38 Font::~Font() { 39 } 40 41 Font Font::DeriveFont(int size_delta) const { 42 return DeriveFont(size_delta, GetStyle()); 43 } 44 45 Font Font::DeriveFont(int size_delta, int style) const { 46 return platform_font_->DeriveFont(size_delta, style); 47 } 48 49 int Font::GetHeight() const { 50 return platform_font_->GetHeight(); 51 } 52 53 int Font::GetBaseline() const { 54 return platform_font_->GetBaseline(); 55 } 56 57 int Font::GetCapHeight() const { 58 return platform_font_->GetCapHeight(); 59 } 60 61 int Font::GetAverageCharacterWidth() const { 62 return platform_font_->GetAverageCharacterWidth(); 63 } 64 65 int Font::GetStringWidth(const base::string16& text) const { 66 return platform_font_->GetStringWidth(text); 67 } 68 69 int Font::GetExpectedTextWidth(int length) const { 70 return platform_font_->GetExpectedTextWidth(length); 71 } 72 73 int Font::GetStyle() const { 74 return platform_font_->GetStyle(); 75 } 76 77 std::string Font::GetFontName() const { 78 return platform_font_->GetFontName(); 79 } 80 81 std::string Font::GetActualFontNameForTesting() const { 82 return platform_font_->GetActualFontNameForTesting(); 83 } 84 85 int Font::GetFontSize() const { 86 return platform_font_->GetFontSize(); 87 } 88 89 NativeFont Font::GetNativeFont() const { 90 return platform_font_->GetNativeFont(); 91 } 92 93 } // namespace gfx 94