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 #ifndef UI_GFX_FONT_LIST_H_ | 5 #ifndef UI_GFX_FONT_LIST_H_ |
6 #define UI_GFX_FONT_LIST_H_ | 6 #define UI_GFX_FONT_LIST_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 23 matching lines...) Expand all Loading... | |
34 // and operator= is used in RenderText::SetFontList(). | 34 // and operator= is used in RenderText::SetFontList(). |
35 class UI_EXPORT FontList { | 35 class UI_EXPORT FontList { |
36 public: | 36 public: |
37 // Creates a font list with a Font with default name and style. | 37 // Creates a font list with a Font with default name and style. |
38 FontList(); | 38 FontList(); |
39 | 39 |
40 // Creates a font list from a string representing font names, styles, and | 40 // Creates a font list from a string representing font names, styles, and |
41 // size. | 41 // size. |
42 explicit FontList(const std::string& font_description_string); | 42 explicit FontList(const std::string& font_description_string); |
43 | 43 |
44 // Creates a font list from font names, styles and size. | |
45 FontList(const std::vector<std::string>& font_names, | |
46 int font_style, | |
47 int font_size); | |
48 | |
44 // Creates a font list from a Font vector. | 49 // Creates a font list from a Font vector. |
45 // All fonts in this vector should have the same style and size. | 50 // All fonts in this vector should have the same style and size. |
46 explicit FontList(const std::vector<Font>& fonts); | 51 explicit FontList(const std::vector<Font>& fonts); |
47 | 52 |
48 // Creates a font list from a Font. | 53 // Creates a font list from a Font. |
49 explicit FontList(const Font& font); | 54 explicit FontList(const Font& font); |
50 | 55 |
51 ~FontList(); | 56 ~FontList(); |
52 | 57 |
53 // Returns a new FontList with the given |font_style| flags. | 58 // Returns a new FontList with the given |font_style| flags. |
54 FontList DeriveFontList(int font_style) const; | 59 FontList DeriveFontList(int font_style) const; |
55 | 60 |
56 // Returns a new FontList with the same font names and style but with the | 61 // Returns a new FontList with the same font names and style but with the |
57 // given font |size| in pixels. | 62 // given font |size| in pixels. |
58 FontList DeriveFontListWithSize(int size) const; | 63 FontList DeriveFontListWithSize(int size) const; |
59 | 64 |
65 // Returns a new FontList with the same font names and style but resized. | |
66 // |size_delta| is the size in pixels to add to the current font size. | |
67 FontList DeriveFontListWithSizeDelta(int size_delta) const; | |
68 | |
69 // Returns a new FontList with the same font names but resized and the given | |
70 // style. |size_delta| is the size in pixels to add to the current font size. | |
Alexei Svitkine (slow)
2013/08/07 19:30:44
Nit: Single space between sentences to be consiste
Yuki
2013/08/08 06:37:36
Done.
| |
71 // |font_style| specifies the new style, which is a bitmask of the values: | |
72 // Font::BOLD, Font::ITALIC and Font::UNDERLINE. | |
73 FontList DeriveFontListWithSizeDeltaAndStyle(int size_delta, | |
74 int font_style) const; | |
75 | |
60 // Returns the height of this font list, which is max(ascent) + max(descent) | 76 // Returns the height of this font list, which is max(ascent) + max(descent) |
61 // for all the fonts in the font list. | 77 // for all the fonts in the font list. |
62 int GetHeight() const; | 78 int GetHeight() const; |
63 | 79 |
64 // Returns the baseline of this font list, which is max(baseline) for all the | 80 // Returns the baseline of this font list, which is max(baseline) for all the |
65 // fonts in the font list. | 81 // fonts in the font list. |
66 int GetBaseline() const; | 82 int GetBaseline() const; |
67 | 83 |
84 // Returns the number of horizontal pixels needed to display |text|. | |
85 int GetStringWidth(const base::string16& text) const; | |
86 | |
87 // Returns the expected number of horizontal pixels needed to display the | |
88 // specified length of characters. Call GetStringWidth() to retrieve the | |
89 // actual number. | |
90 int GetExpectedTextWidth(int length) const; | |
91 | |
68 // Returns the |gfx::Font::FontStyle| style flags for this font list. | 92 // Returns the |gfx::Font::FontStyle| style flags for this font list. |
69 int GetFontStyle() const; | 93 int GetFontStyle() const; |
70 | 94 |
71 // Returns a string representing font names, styles, and size. If the FontList | 95 // Returns a string representing font names, styles, and size. If the FontList |
72 // is initialized by a vector of Font, use the first font's style and size | 96 // is initialized by a vector of Font, use the first font's style and size |
73 // for the description. | 97 // for the description. |
74 const std::string& GetFontDescriptionString() const; | 98 const std::string& GetFontDescriptionString() const; |
75 | 99 |
76 // Returns the font size in pixels. | 100 // Returns the font size in pixels. |
77 int GetFontSize() const; | 101 int GetFontSize() const; |
78 | 102 |
79 // Returns the Font vector. | 103 // Returns the Font vector. |
80 const std::vector<Font>& GetFonts() const; | 104 const std::vector<Font>& GetFonts() const; |
81 | 105 |
82 // Returns the first font in the list. | 106 // Returns the first font in the list. |
83 const Font& GetPrimaryFont() const; | 107 const Font& GetPrimaryFont() const; |
84 | 108 |
85 private: | 109 private: |
110 // Extracts common font height and baseline into |common_height_| and | |
111 // |common_baseline_|. | |
112 void CacheCommonFontHeightAndBaseline() const; | |
113 | |
114 // Extracts font style and size into |font_style_| and |font_size_|. | |
115 void CacheFontStyleAndSize() const; | |
116 | |
86 // A vector of Font. If FontList is constructed with font description string, | 117 // A vector of Font. If FontList is constructed with font description string, |
87 // |fonts_| is not initialized during construction. Instead, it is computed | 118 // |fonts_| is not initialized during construction. Instead, it is computed |
88 // lazily when user asked to get the font vector. | 119 // lazily when user asked to get the font vector. |
89 mutable std::vector<Font> fonts_; | 120 mutable std::vector<Font> fonts_; |
90 | 121 |
91 // A string representing font names, styles, and sizes. | 122 // A string representing font names, styles, and sizes. |
92 // Please refer to the comments before class declaration for details on string | 123 // Please refer to the comments before class declaration for details on string |
93 // format. | 124 // format. |
94 // If FontList is constructed with a vector of font, | 125 // If FontList is constructed with a vector of font, |
95 // |font_description_string_| is not initialized during construction. Instead, | 126 // |font_description_string_| is not initialized during construction. Instead, |
96 // it is computed lazily when user asked to get the font description string. | 127 // it is computed lazily when user asked to get the font description string. |
97 mutable std::string font_description_string_; | 128 mutable std::string font_description_string_; |
98 | 129 |
99 // The cached common height and baseline of the fonts in the font list. | 130 // The cached common height and baseline of the fonts in the font list. |
100 mutable int common_height_; | 131 mutable int common_height_; |
101 mutable int common_baseline_; | 132 mutable int common_baseline_; |
133 | |
134 // Cached font style and size. | |
135 mutable int font_style_; | |
136 mutable int font_size_; | |
102 }; | 137 }; |
103 | 138 |
104 } // namespace gfx | 139 } // namespace gfx |
105 | 140 |
106 #endif // UI_GFX_FONT_LIST_H_ | 141 #endif // UI_GFX_FONT_LIST_H_ |
OLD | NEW |