[email protected] | c6ac841 | 2010-08-13 16:43:03 | [diff] [blame] | 1 | // Copyright (c) 2006-2008 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 | |||||
[email protected] | 08397d5 | 2011-02-05 01:53:38 | [diff] [blame] | 5 | #include "ui/gfx/font.h" |
[email protected] | c6ac841 | 2010-08-13 16:43:03 | [diff] [blame] | 6 | |
[email protected] | cb8788d | 2010-12-10 23:44:06 | [diff] [blame] | 7 | #include "base/utf_string_conversions.h" |
[email protected] | 08397d5 | 2011-02-05 01:53:38 | [diff] [blame] | 8 | #include "ui/gfx/platform_font.h" |
[email protected] | c6ac841 | 2010-08-13 16:43:03 | [diff] [blame] | 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 | |||||
[email protected] | 76fcc3e | 2011-01-12 16:24:45 | [diff] [blame] | 33 | Font::Font(const string16& font_name, int font_size) |
[email protected] | c6ac841 | 2010-08-13 16:43:03 | [diff] [blame] | 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::GetAverageCharacterWidth() const { | ||||
58 | return platform_font_->GetAverageCharacterWidth(); | ||||
59 | } | ||||
60 | |||||
[email protected] | 13658c4 | 2011-01-04 20:46:14 | [diff] [blame] | 61 | int Font::GetStringWidth(const string16& text) const { |
62 | return platform_font_->GetStringWidth(text); | ||||
[email protected] | c6ac841 | 2010-08-13 16:43:03 | [diff] [blame] | 63 | } |
64 | |||||
65 | int Font::GetExpectedTextWidth(int length) const { | ||||
66 | return platform_font_->GetExpectedTextWidth(length); | ||||
67 | } | ||||
68 | |||||
69 | int Font::GetStyle() const { | ||||
70 | return platform_font_->GetStyle(); | ||||
71 | } | ||||
72 | |||||
[email protected] | 76fcc3e | 2011-01-12 16:24:45 | [diff] [blame] | 73 | string16 Font::GetFontName() const { |
[email protected] | c6ac841 | 2010-08-13 16:43:03 | [diff] [blame] | 74 | return platform_font_->GetFontName(); |
75 | } | ||||
76 | |||||
77 | int Font::GetFontSize() const { | ||||
78 | return platform_font_->GetFontSize(); | ||||
79 | } | ||||
80 | |||||
81 | NativeFont Font::GetNativeFont() const { | ||||
82 | return platform_font_->GetNativeFont(); | ||||
83 | } | ||||
84 | |||||
85 | } // namespace gfx |